From 93e76f3b83c2eba4932d467e1693e9c5dd13b9ee Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 24 Apr 2010 12:14:12 -0400 Subject: [PATCH 01/94] use statusnet_ as namespace prefix for JSON --- lib/apiaction.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index 6ee0a94d94..bb4884b45d 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -225,7 +225,7 @@ class ApiAction extends Action // StatusNet-specific - $twitter_user['statusnet:profile_url'] = $profile->profileurl; + $twitter_user['statusnet_profile_url'] = $profile->profileurl; return $twitter_user; } @@ -314,7 +314,7 @@ class ApiAction extends Action // StatusNet-specific - $twitter_status['statusnet:html'] = $notice->rendered; + $twitter_status['statusnet_html'] = $notice->rendered; return $twitter_status; } @@ -508,7 +508,11 @@ class ApiAction extends Action $this->showTwitterXmlStatus($value, 'retweeted_status'); break; default: - $this->element($element, null, $value); + if (strncmp($element, 'statusnet_', 10) == 0) { + $this->element('statusnet:'.substr($element, 10), null, $value); + } else { + $this->element($element, null, $value); + } } } $this->elementEnd($tag); @@ -533,6 +537,8 @@ class ApiAction extends Action foreach($twitter_user as $element => $value) { if ($element == 'status') { $this->showTwitterXmlStatus($twitter_user['status']); + } else if (strncmp($element, 'statusnet_', 10) == 0) { + $this->element('statusnet:'.substr($element, 10), null, $value); } else { $this->element($element, null, $value); } From 0ef422593ba351d363c584ad781ff92548bc6e9b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 2 Sep 2010 15:39:22 -0700 Subject: [PATCH 02/94] Don't explode if we fail to load a listed attachment id in Notice::attachments() --- classes/Notice.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/classes/Notice.php b/classes/Notice.php index 0eeebfadf3..b991ecbd38 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -578,7 +578,9 @@ class Notice extends Memcached_DataObject if ($f2p->find()) { while ($f2p->fetch()) { $f = File::staticGet($f2p->file_id); - $att[] = clone($f); + if ($f) { + $att[] = clone($f); + } } } return $att; From 6786bbcfbfb445b190fd03e602ee0b1a85abb2af Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 3 Sep 2010 12:34:05 -0700 Subject: [PATCH 03/94] Drop RSSCloud queue items if the notice has a bogus profile, rather than attempting to rerun it due to the initial erroring-out. That's not a recoverable error --- plugins/RSSCloud/RSSCloudQueueHandler.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/RSSCloud/RSSCloudQueueHandler.php b/plugins/RSSCloud/RSSCloudQueueHandler.php index 295c261895..ef11eda2e7 100644 --- a/plugins/RSSCloud/RSSCloudQueueHandler.php +++ b/plugins/RSSCloud/RSSCloudQueueHandler.php @@ -28,7 +28,12 @@ class RSSCloudQueueHandler extends QueueHandler function handle($notice) { - $profile = $notice->getProfile(); + try { + $profile = $notice->getProfile(); + } catch (Exception $e) { + common_log(LOG_ERR, "Dropping RSSCloud item for notice with bogus profile: " . $e->getMessage()); + return true; + } $notifier = new RSSCloudNotifier(); return $notifier->notify($profile); } From 30eee590685349e20b4ded9127da7c19794a70be Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 00:53:39 -0400 Subject: [PATCH 04/94] don't save statuses from protected users --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 7c624fdb3b..964abc0d3e 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -215,6 +215,13 @@ class TwitterStatusFetcher extends ParallelizingDaemon continue; } + // Don't save it if the user is protected + // FIXME: save it but treat it as private + + if ($status->user->protected) { + continue; + } + $this->saveStatus($status, $flink); } From f7d69c38af60fbc984743d20340bd0fd02fd6d77 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 01:46:02 -0400 Subject: [PATCH 05/94] save reply status for Twitter notices --- .../daemons/twitterstatusfetcher.php | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 964abc0d3e..cf75e48f68 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -241,10 +241,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon return; } - $statusUri = 'http://twitter.com/' - . $status->user->screen_name - . '/status/' - . $status->id; + $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id); // check to see if we've already imported the status @@ -270,7 +267,23 @@ class TwitterStatusFetcher extends ParallelizingDaemon ); $notice->source = 'twitter'; + $notice->reply_to = null; + + if (!empty($status->in_reply_to_status_id)) { + $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id); + $reply = Notice::staticGet('uri', $replyUri); + if (!empty($reply)) { + $notice->reply_to = $reply->id; + $notice->conversation = $reply->conversation; + } + } + + if (empty($notice->conversation)) { + $conv = Conversation::create(); + $notice->conversation = $conv->id; + } + $notice->is_local = Notice::GATEWAY; $notice->content = common_shorten_links($status->text); @@ -292,23 +305,28 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } - $orig = clone($notice); - $conv = Conversation::create(); - - $notice->conversation = $conv->id; - - if (!$notice->update($orig)) { - common_log_db_error($notice, 'UPDATE', __FILE__); - common_log(LOG_ERR, $this->name() . - ' - Problem saving notice.'); - } - Inbox::insertNotice($flink->user_id, $notice->id); $notice->blowOnInsert(); return $notice; } + /** + * Make an URI for a status. + * + * @param object $status status object + * + * @return string URI + */ + + function makeStatusURI($username, $id) + { + return 'http://twitter.com/' + . $username + . '/status/' + . $id; + } + /** * Look up a Profile by profileurl field. Profile::staticGet() was * not working consistently. From 0e356d01c13408d0541b0dc04111f613c8d33120 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 16:37:18 -0400 Subject: [PATCH 06/94] push notices through the bridge if they're in reply to a twitter notice --- plugins/TwitterBridge/twitter.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 306ba2442a..9c2ba502bf 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -115,9 +115,12 @@ function is_twitter_bound($notice, $flink) { // Check to see if notice should go to Twitter if (!empty($flink) && ($flink->noticesync & FOREIGN_NOTICE_SEND)) { - // If it's not a Twitter-style reply, or if the user WANTS to send replies. + // If it's not a Twitter-style reply, or if the user WANTS to send replies, + // or if it's in reply to a twitter notice + if (!preg_match('/^@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || - ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { + ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) || + is_twitter_notice($notice->reply_to)) { return true; } } @@ -125,6 +128,18 @@ function is_twitter_bound($notice, $flink) { return false; } +function is_twitter_notice($id) +{ + $notice = Notice::staticGet('id', $id); + + if (empty($notice)) { + // it's not any kind of notice, so it's definitely not a Twitter notice. + return false; + } + + return ($notice->source == 'twitter'); +} + function broadcast_twitter($notice) { $flink = Foreign_link::getByUserID($notice->profile_id, @@ -159,7 +174,6 @@ function twitter_update_params($notice) return $params; } - function broadcast_oauth($notice, $flink) { $user = $flink->getUser(); $statustxt = format_status($notice); From 8b34978892e0302e09ec471d03fabcb1cc4cf9a3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 17:34:10 -0400 Subject: [PATCH 07/94] do a real retweet for a local repeat --- plugins/TwitterBridge/twitter.php | 34 +++++++++++++++++--- plugins/TwitterBridge/twitteroauthclient.php | 15 +++++++++ 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 9c2ba502bf..20cdf42b82 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -145,17 +145,43 @@ function broadcast_twitter($notice) $flink = Foreign_link::getByUserID($notice->profile_id, TWITTER_SERVICE); - if (is_twitter_bound($notice, $flink)) { - if (TwitterOAuthClient::isPackedToken($flink->credentials)) { + // Don't bother with basic auth, since it's no longer allowed + + if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) { + if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) { + return retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + } else if (is_twitter_bound($notice, $flink)) { return broadcast_oauth($notice, $flink); - } else { - return broadcast_basicauth($notice, $flink); } } return true; } +function retweet_notice($flink, $notice) +{ + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $id = twitter_status_id($notice); + + try { + $status = $client->statusesRetweet($id); + } catch (OAuthClientException $e) { + return process_error($e, $flink, $notice); + } +} + +function twitter_status_id($notice) +{ + if ($notice->source == 'twitter' && + preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $notice->uri, $match)) { + return $match[1]; + } + + return null; +} + /** * Pull any extra information from a notice that we should transfer over * to Twitter beyond the notice text itself. diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index d895d8c73c..5e5761360c 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -277,4 +277,19 @@ class TwitterOAuthClient extends OAuthClient return $ids; } + /** + * Calls Twitter's /statuses/retweet/id.json API method + * + * @param int $id id of the notice to retweet + * + * @return retweeted status + */ + + function statusesRetweet($id) + { + $url = "http://api.twitter.com/1/statuses/retweet/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } From 3249370646c9af4a89be532cfee151b1bea0051f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 17:51:28 -0400 Subject: [PATCH 08/94] if something's a retweet, save it as a repeat in bridge --- .../daemons/twitterstatusfetcher.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index cf75e48f68..848e866697 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -231,14 +231,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon $flink->update(); } - function saveStatus($status, $flink) + function saveStatus($status, $flink=null) { $profile = $this->ensureProfile($status->user); if (empty($profile)) { common_log(LOG_ERR, $this->name() . ' - Problem saving notice. No associated Profile.'); - return; + return null; } $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id); @@ -253,7 +253,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon $this->name() . " - Ignoring duplicate import: $statusUri" ); - return; + return $dupe; + } + + // If it's a retweet, save it as a repeat! + + if (!empty($status->retweeted_status)) { + $original = $this->saveStatus($status->retweeted_status); + return $original->repeat($profile->id, 'twitter'); } $notice = new Notice(); @@ -305,7 +312,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } - Inbox::insertNotice($flink->user_id, $notice->id); + if (!empty($flink)) { + Inbox::insertNotice($flink->user_id, $notice->id); + } $notice->blowOnInsert(); return $notice; From 86e8af45a241c6cddffc8fe8789048e3933f5bd3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 11:37:34 -0400 Subject: [PATCH 09/94] some info notices in twitter status fetch for repeats and replies --- .../TwitterBridge/daemons/twitterstatusfetcher.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 848e866697..9892ffc057 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -259,8 +259,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon // If it's a retweet, save it as a repeat! if (!empty($status->retweeted_status)) { + common_log(LOG_INFO, "Status {$status->id} is a retweet of {$status->retweeted_status->id}."); $original = $this->saveStatus($status->retweeted_status); - return $original->repeat($profile->id, 'twitter'); + $repeat = $original->repeat($profile->id, 'twitter'); + common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + return $repeat; } $notice = new Notice(); @@ -278,9 +281,13 @@ class TwitterStatusFetcher extends ParallelizingDaemon $notice->reply_to = null; if (!empty($status->in_reply_to_status_id)) { + common_log(LOG_INFO, "Status {$status->id} is a reply to status {$status->in_reply_to_status_id}"); $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id); $reply = Notice::staticGet('uri', $replyUri); - if (!empty($reply)) { + if (empty($reply)) { + common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); + } else { + common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); $notice->reply_to = $reply->id; $notice->conversation = $reply->conversation; } @@ -289,6 +296,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon if (empty($notice->conversation)) { $conv = Conversation::create(); $notice->conversation = $conv->id; + common_log(LOG_INFO, "No known conversation for status {$status->id} so making a new one {$conv->id}."); } $notice->is_local = Notice::GATEWAY; From 60b1e4afb7c8c78463119b7d2424c861816f57be Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 11:40:33 -0400 Subject: [PATCH 10/94] move inbox insert code to status saver main loop --- .../TwitterBridge/daemons/twitterstatusfetcher.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 9892ffc057..e3f9553ffe 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -222,7 +222,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon continue; } - $this->saveStatus($status, $flink); + $notice = $this->saveStatus($status); + + if (!empty($notice)) { + Inbox::insertNotice($flink->user_id, $notice->id); + } } // Okay, record the time we synced with Twitter for posterity @@ -231,7 +235,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $flink->update(); } - function saveStatus($status, $flink=null) + function saveStatus($status) { $profile = $this->ensureProfile($status->user); @@ -320,9 +324,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } - if (!empty($flink)) { - Inbox::insertNotice($flink->user_id, $notice->id); - } $notice->blowOnInsert(); return $notice; From c307aee06e512da3e3ab1be614bc8ea5ce3d8abf Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:45:15 -0400 Subject: [PATCH 11/94] debug code to dump new status data --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e3f9553ffe..9f0f91fc99 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -260,6 +260,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon return $dupe; } + common_debug("Saving status {$status->id} with data " . print_r($status, true)); + // If it's a retweet, save it as a repeat! if (!empty($status->retweeted_status)) { From 45bdbcdc78cdacdacecee082871ad40cd3c342eb Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:54:20 -0400 Subject: [PATCH 12/94] switch twitterstatusfetcher from friends_timeline to home_timeline --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 9f0f91fc99..601b84ebd9 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -186,7 +186,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $timeline = null; try { - $timeline = $client->statusesFriendsTimeline(); + $timeline = $client->statusesHomeTimeline(); } catch (Exception $e) { common_log(LOG_WARNING, $this->name() . ' - Twitter client unable to get friends timeline for user ' . From 93001a28a650fb87827b6b3d2cd5e47175d907ad Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:54:46 -0400 Subject: [PATCH 13/94] use home_timeline instead of friends_timeline --- plugins/TwitterBridge/twitteroauthclient.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 5e5761360c..32844a16f4 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -188,7 +188,7 @@ class TwitterOAuthClient extends OAuthClient } /** - * Calls Twitter's /statuses/friends_timeline API method + * Calls Twitter's /statuses/home_timeline API method * * @param int $since_id show statuses after this id * @param int $max_id show statuses before this id @@ -197,11 +197,11 @@ class TwitterOAuthClient extends OAuthClient * * @return mixed an array of statuses */ - function statusesFriendsTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) + function statusesHomeTimeline($since_id = null, $max_id = null, + $cnt = null, $page = null) { - $url = 'https://twitter.com/statuses/friends_timeline.json'; + $url = 'https://twitter.com/statuses/home_timeline.json'; $params = array('since_id' => $since_id, 'max_id' => $max_id, 'count' => $cnt, From 1f020125bf979271ff2682e1b1c95f2916e7a1ae Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:58:20 -0400 Subject: [PATCH 14/94] remove basic auth code for Twitter since it's no longer supported --- .../daemons/synctwitterfriends.php | 4 +- .../daemons/twitterstatusfetcher.php | 3 +- plugins/TwitterBridge/twitter.php | 46 ---- .../TwitterBridge/twitterbasicauthclient.php | 229 ------------------ 4 files changed, 3 insertions(+), 279 deletions(-) delete mode 100644 plugins/TwitterBridge/twitterbasicauthclient.php diff --git a/plugins/TwitterBridge/daemons/synctwitterfriends.php b/plugins/TwitterBridge/daemons/synctwitterfriends.php index df7da0943d..5641142d35 100755 --- a/plugins/TwitterBridge/daemons/synctwitterfriends.php +++ b/plugins/TwitterBridge/daemons/synctwitterfriends.php @@ -144,8 +144,8 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon $client = new TwitterOAuthClient($token->key, $token->secret); common_debug($this->name() . '- Grabbing friends IDs with OAuth.'); } else { - $client = new TwitterBasicAuthClient($flink); - common_debug($this->name() . '- Grabbing friends IDs with basic auth.'); + common_debug("Skipping Twitter friends for {$flink->user_id} since not OAuth."); + return $friends; } try { diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 601b84ebd9..dfd2d274c5 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -179,8 +179,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $client = new TwitterOAuthClient($token->key, $token->secret); common_debug($this->name() . ' - Grabbing friends timeline with OAuth.'); } else { - $client = new TwitterBasicAuthClient($flink); - common_debug($this->name() . ' - Grabbing friends timeline with basic auth.'); + common_debug("Skipping friends timeline for $flink->foreign_id since not OAuth."); } $timeline = null; diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 20cdf42b82..99ca2ada61 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -244,52 +244,6 @@ function broadcast_oauth($notice, $flink) { return true; } -function broadcast_basicauth($notice, $flink) -{ - $user = $flink->getUser(); - - $statustxt = format_status($notice); - $params = twitter_update_params($notice); - - $client = new TwitterBasicAuthClient($flink); - $status = null; - - try { - $status = $client->statusesUpdate($statustxt, $params); - } catch (BasicAuthException $e) { - return process_error($e, $flink, $notice); - } - - if (empty($status)) { - - $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' . - 'trying to post notice %d for %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - - common_log(LOG_WARNING, $errmsg); - - $errmsg = sprintf('No data returned by Twitter API when ' . - 'trying to post notice %d for %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - common_log(LOG_WARNING, $errmsg); - return false; - } - - $msg = sprintf('Twitter bridge - posted notice %d to Twitter using ' . - 'HTTP basic auth for User %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - - common_log(LOG_INFO, $msg); - - return true; -} - function process_error($e, $flink, $notice) { $user = $flink->getUser(); diff --git a/plugins/TwitterBridge/twitterbasicauthclient.php b/plugins/TwitterBridge/twitterbasicauthclient.php deleted file mode 100644 index 2c18c94695..0000000000 --- a/plugins/TwitterBridge/twitterbasicauthclient.php +++ /dev/null @@ -1,229 +0,0 @@ -. - * - * @category Integration - * @package StatusNet - * @author Zach Copley - * @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') && !defined('LACONICA')) { - exit(1); -} - -/** - * General Exception wrapper for HTTP basic auth errors - * - * @category Integration - * @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 BasicAuthException extends Exception -{ -} - -/** - * Class for talking to the Twitter API with HTTP Basic Auth. - * - * @category Integration - * @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 TwitterBasicAuthClient -{ - var $screen_name = null; - var $password = null; - - /** - * constructor - * - * @param Foreign_link $flink a Foreign_link storing the - * Twitter user's password, etc. - */ - function __construct($flink) - { - $fuser = $flink->getForeignUser(); - $this->screen_name = $fuser->nickname; - $this->password = $flink->credentials; - } - - /** - * Calls Twitter's /statuses/update API method - * - * @param string $status text of the status - * @param mixed $params optional other parameters to pass to Twitter, - * as defined. For back-compatibility, if an int - * is passed we'll consider it a reply-to ID. - * - * @return mixed the status - */ - function statusesUpdate($status, $in_reply_to_status_id = null) - { - $url = 'https://twitter.com/statuses/update.json'; - if (is_numeric($params)) { - $params = array('in_reply_to_status_id' => intval($params)); - } - $params['status'] = $status; - $params['source'] = common_config('integration', 'source'); - $response = $this->httpRequest($url, $params); - $status = json_decode($response); - return $status; - } - - /** - * Calls Twitter's /statuses/friends_timeline API method - * - * @param int $since_id show statuses after this id - * @param int $max_id show statuses before this id - * @param int $cnt number of statuses to show - * @param int $page page number - * - * @return mixed an array of statuses - */ - function statusesFriendsTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) - { - $url = 'https://twitter.com/statuses/friends_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $statuses = json_decode($response); - return $statuses; - } - - /** - * Calls Twitter's /statuses/friends API method - * - * @param int $id id of the user whom you wish to see friends of - * @param int $user_id numerical user id - * @param int $screen_name screen name - * @param int $page page number - * - * @return mixed an array of twitter users and their latest status - */ - function statusesFriends($id = null, $user_id = null, $screen_name = null, - $page = null) - { - $url = "https://twitter.com/statuses/friends.json"; - - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $friends = json_decode($response); - return $friends; - } - - /** - * Calls Twitter's /statuses/friends/ids API method - * - * @param int $id id of the user whom you wish to see friends of - * @param int $user_id numerical user id - * @param int $screen_name screen name - * @param int $page page number - * - * @return mixed a list of ids, 100 per page - */ - function friendsIds($id = null, $user_id = null, $screen_name = null, - $page = null) - { - $url = "https://twitter.com/friends/ids.json"; - - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $ids = json_decode($response); - return $ids; - } - - /** - * Make an HTTP request - * - * @param string $url Where to make the request - * @param array $params post parameters - * - * @return mixed the request - * @throws BasicAuthException - */ - function httpRequest($url, $params = null, $auth = true) - { - $request = HTTPClient::start(); - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); - - if ($auth) { - $request->setAuth($this->screen_name, $this->password); - } - - if (isset($params)) { - // Twitter is strict about accepting invalid "Expect" headers - $headers = array('Expect:'); - $response = $request->post($url, $headers, $params); - } else { - $response = $request->get($url); - } - - $code = $response->getStatus(); - - if ($code < 200 || $code >= 400) { - throw new BasicAuthException($response->getBody(), $code); - } - - return $response->getBody(); - } - -} From a3a6ad26d5b0ba8cbabce19b8714dba361e91c3d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 13:00:37 -0400 Subject: [PATCH 15/94] remove require_once for disappeared TwitterBasicAuthClient --- plugins/TwitterBridge/daemons/synctwitterfriends.php | 1 - plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 1 - plugins/TwitterBridge/twitter.php | 1 - 3 files changed, 3 deletions(-) diff --git a/plugins/TwitterBridge/daemons/synctwitterfriends.php b/plugins/TwitterBridge/daemons/synctwitterfriends.php index 5641142d35..02546a02ca 100755 --- a/plugins/TwitterBridge/daemons/synctwitterfriends.php +++ b/plugins/TwitterBridge/daemons/synctwitterfriends.php @@ -33,7 +33,6 @@ END_OF_TRIM_HELP; require_once INSTALLDIR . '/scripts/commandline.inc'; require_once INSTALLDIR . '/lib/parallelizingdaemon.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; /** diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index dfd2d274c5..e5fac1fec6 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -40,7 +40,6 @@ require_once INSTALLDIR . '/scripts/commandline.inc'; require_once INSTALLDIR . '/lib/common.php'; require_once INSTALLDIR . '/lib/daemon.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; /** diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 99ca2ada61..b8e5457402 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -23,7 +23,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { define('TWITTER_SERVICE', 1); // Twitter is foreign_service ID 1 -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; function add_twitter_user($twitter_id, $screen_name) From cbcd811d614dda597868047cec2e59fcd9431671 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 15:05:38 -0400 Subject: [PATCH 16/94] do our own repeating so we can pass in a uri --- .../daemons/twitterstatusfetcher.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e5fac1fec6..4e4befe06e 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -265,9 +265,23 @@ class TwitterStatusFetcher extends ParallelizingDaemon if (!empty($status->retweeted_status)) { common_log(LOG_INFO, "Status {$status->id} is a retweet of {$status->retweeted_status->id}."); $original = $this->saveStatus($status->retweeted_status); - $repeat = $original->repeat($profile->id, 'twitter'); - common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); - return $repeat; + if (empty($original)) { + return null; + } else { + $author = $original->getProfile(); + // TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. + // TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. + $content = sprintf(_('RT @%1$s %2$s'), + $author->nickname, + $original->content); + $repeat = Notice::saveNew($profile->id, + $content, + 'twitter', + array('repeat_of' => $original->id, + 'uri' => $statusUri)); + common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + return $repeat; + } } $notice = new Notice(); From 4aca91d05d428c6e9fb7541c4d627e992b221c34 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:00:18 -0400 Subject: [PATCH 17/94] add in_reply_to_status_id if notice is from twitter --- plugins/TwitterBridge/twitter.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index b8e5457402..33d5443c22 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -196,6 +196,10 @@ function twitter_update_params($notice) $params['lat'] = $notice->lat; $params['long'] = $notice->lon; } + if (!empty($notice->reply_to) && is_twitter_notice($notice->reply_to)) { + $reply = Notice::staticGet('id', $notice->reply_to); + $params['in_reply_to_status_id'] = twitter_status_id($reply); + } return $params; } From 16b219f1efbb9ed078a279a798b60ce1ac4ed100 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:45:55 -0400 Subject: [PATCH 18/94] Save notice-to-status mapping in its own table Introduce a table mapping notices to Twitter statuses. Initialize this table at checkSchema() time. Save the mapping when we push or pull statuses. Use the table to determine if a notice has a Twitter equivalent. --- plugins/TwitterBridge/Notice_to_status.php | 166 ++++++++++++++++++ plugins/TwitterBridge/TwitterBridgePlugin.php | 60 ++++++- .../daemons/twitterstatusfetcher.php | 2 + plugins/TwitterBridge/twitter.php | 25 +-- 4 files changed, 236 insertions(+), 17 deletions(-) create mode 100644 plugins/TwitterBridge/Notice_to_status.php diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php new file mode 100644 index 0000000000..ecd4905dcc --- /dev/null +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -0,0 +1,166 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for mapping notices to statuses + * + * Notices flow back and forth between Twitter and StatusNet. We use this + * table to remember which StatusNet notice corresponds to which Twitter + * status. + * + * Note that notice_id is unique only within a single database; if you + * want to share this data for some reason, get the notice's URI and use + * that instead, since it's universally unique. + * + * @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 Notice_to_status extends Memcached_DataObject +{ + public $__table = 'notice_to_status'; // table name + public $notice_id; // int(4) primary_key not_null + public $status_id; // int(4) + 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 Notice_to_status object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Notice_to_status', $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('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'status_id' => DB_DATAOBJECT_INT + 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, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('notice_id' => 'K', 'status_id' => 'U'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * If a table has a single integer column as its primary key, DB_DataObject + * assumes that the column is auto-incrementing and makes a sequence table + * to do this incrementation. Since we don't need this for our class, we + * overload this method and return the magic formula that DB_DataObject needs. + * + * @return array magic three-false array that stops auto-incrementing. + */ + + function sequenceKey() + { + return array(false, false, false); + } + + /** + * Save a mapping between a notice and a status + * + * @param integer $notice_id ID of the notice in StatusNet + * @param integer $status_id ID of the status in Twitter + * + * @return Notice_to_status new object for this value + */ + + static function saveNew($notice_id, $status_id) + { + $n2s = new Notice_to_status(); + + $n2s->notice_id = $notice_id; + $n2s->status_id = $status_id; + $n2s->created = common_sql_now(); + + $n2s->insert(); + + return $n2s; + } +} diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 8e3eba3186..5676025c22 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -194,18 +194,21 @@ class TwitterBridgePlugin extends Plugin */ function onAutoload($cls) { + $dir = dirname(__FILE__); + switch ($cls) { case 'TwittersettingsAction': case 'TwitterauthorizationAction': case 'TwitterloginAction': case 'TwitteradminpanelAction': - include_once INSTALLDIR . '/plugins/TwitterBridge/' . - strtolower(mb_substr($cls, 0, -6)) . '.php'; + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; case 'TwitterOAuthClient': case 'TwitterQueueHandler': - include_once INSTALLDIR . '/plugins/TwitterBridge/' . - strtolower($cls) . '.php'; + include_once $dir . '/' . strtolower($cls) . '.php'; + return false; + case 'Notice_to_status': + include_once $dir . '/' . $cls . '.php'; return false; default: return true; @@ -360,5 +363,52 @@ class TwitterBridgePlugin extends Plugin } } -} + /** + * Database schema setup + * + * We maintain a table mapping StatusNet notices to Twitter statuses + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing user-submitted flags on profiles + + $schema->ensureTable('notice_to_status', + array(new ColumnDef('notice_id', 'integer', null, + false, 'PRI'), + new ColumnDef('status_id', 'integer', null, + false, 'UNI'), + new ColumnDef('created', 'datetime', null, + false))); + + // We update any notices that may have come in from + // Twitter that we don't have a status_id for. Note that + // this won't catch notices that originated at this StatusNet site. + + $n = new Notice(); + + $n->query('SELECT notice.id, notice.uri ' . + 'FROM notice LEFT JOIN notice_to_status ' . + 'ON notice.id = notice_to_status.notice_id ' . + 'WHERE notice.source = "twitter"' . + 'AND notice_to_status.status_id = NULL'); + + while ($n->fetch()) { + if (preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $n->uri, $match)) { + + $status_id = $match[1]; + + Notice_to_status::saveNew($n->id, $status_id); + } + } + + return true; + } +} diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 4e4befe06e..ae66c50aed 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -280,6 +280,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon array('repeat_of' => $original->id, 'uri' => $statusUri)); common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + Notice_to_status::saveNew($repeat->id, $status->id); return $repeat; } } @@ -338,6 +339,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } + Notice_to_status::saveNew($notice->id, $status->id); $notice->blowOnInsert(); return $notice; diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 33d5443c22..94eaedee51 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -129,14 +129,9 @@ function is_twitter_bound($notice, $flink) { function is_twitter_notice($id) { - $notice = Notice::staticGet('id', $id); + $n2s = Notice_to_status::staticGet('notice_id', $id); - if (empty($notice)) { - // it's not any kind of notice, so it's definitely not a Twitter notice. - return false; - } - - return ($notice->source == 'twitter'); + return (!empty($n2s)); } function broadcast_twitter($notice) @@ -166,6 +161,9 @@ function retweet_notice($flink, $notice) try { $status = $client->statusesRetweet($id); + if (!empty($status)) { + Notice_to_status::saveNew($notice->id, $status->id); + } } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } @@ -173,12 +171,12 @@ function retweet_notice($flink, $notice) function twitter_status_id($notice) { - if ($notice->source == 'twitter' && - preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $notice->uri, $match)) { - return $match[1]; + $n2s = Notice_to_status::staticGet('notice_id', $id); + if (empty($n2s)) { + return null; + } else { + return $n2s->status_id; } - - return null; } /** @@ -214,6 +212,9 @@ function broadcast_oauth($notice, $flink) { try { $status = $client->statusesUpdate($statustxt, $params); + if (!empty($status)) { + Notice_to_status::saveNew($notice->id, $status->id); + } } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } From b2bcbf4a777c1fa7af91df6041296d5814b585b2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:49:52 -0400 Subject: [PATCH 19/94] use Notice_to_status to check for duplicates --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index ae66c50aed..027e572b02 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -247,15 +247,15 @@ class TwitterStatusFetcher extends ParallelizingDaemon // check to see if we've already imported the status - $dupe = $this->checkDupe($profile, $statusUri); + $n2s = Notice_to_status::staticGet('status_id', $status->id); - if (!empty($dupe)) { + if (!empty($n2s)) { common_log( LOG_INFO, $this->name() . - " - Ignoring duplicate import: $statusUri" + " - Ignoring duplicate import: {$status->id}" ); - return $dupe; + return Notice::staticGet('id', $n2s->notice_id); } common_debug("Saving status {$status->id} with data " . print_r($status, true)); From 3e8569d99f6283ba5cdf52d4f58e616ef1e2dd4a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:52:26 -0400 Subject: [PATCH 20/94] Delete Notice_to_status when a notice is deleted --- plugins/TwitterBridge/TwitterBridgePlugin.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 5676025c22..b0f99c1798 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -411,4 +411,21 @@ class TwitterBridgePlugin extends Plugin return true; } + + /** + * If a notice gets deleted, remove the Notice_to_status mapping + * + * @param Notice $notice The notice getting deleted + * + * @return boolean hook value + */ + + function onNoticeDeleteRelated($notice) + { + $n2s = Notice_to_status::staticGet('notice_id', $notice->id); + if (!empty($n2s)) { + $n2s->delete(); + } + return true; + } } From f8a4a8f5bad2102c672f691a998fb15eef73f334 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:55:53 -0400 Subject: [PATCH 21/94] SQL syntax error when initializing notice_to_status table --- plugins/TwitterBridge/TwitterBridgePlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index b0f99c1798..a13c15cc78 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -398,7 +398,7 @@ class TwitterBridgePlugin extends Plugin 'FROM notice LEFT JOIN notice_to_status ' . 'ON notice.id = notice_to_status.notice_id ' . 'WHERE notice.source = "twitter"' . - 'AND notice_to_status.status_id = NULL'); + 'AND notice_to_status.status_id IS NULL'); while ($n->fetch()) { if (preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $n->uri, $match)) { From 0a5e1f2d88f8841dac65e2cd0e3bc0b12ef79501 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:05:11 -0400 Subject: [PATCH 22/94] do a uniqueness check before saving new notice-to-status mapping --- plugins/TwitterBridge/Notice_to_status.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php index ecd4905dcc..0d94927e42 100644 --- a/plugins/TwitterBridge/Notice_to_status.php +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -153,6 +153,18 @@ class Notice_to_status extends Memcached_DataObject static function saveNew($notice_id, $status_id) { + $n2s = Notice_to_status::staticGet('notice_id', $notice_id); + + if (!empty($n2s)) { + return $n2s; + } + + $n2s = Notice_to_status::staticGet('status_id', $status_id); + + if (!empty($n2s)) { + return $n2s; + } + $n2s = new Notice_to_status(); $n2s->notice_id = $notice_id; From 73ff960ef6e96d055038e6a1ee4d63e18b65d2bc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:07:02 -0400 Subject: [PATCH 23/94] debug output when saving new mapping --- plugins/TwitterBridge/Notice_to_status.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php index 0d94927e42..2e32ba963c 100644 --- a/plugins/TwitterBridge/Notice_to_status.php +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -165,6 +165,8 @@ class Notice_to_status extends Memcached_DataObject return $n2s; } + common_debug("Mapping notice {$notice_id} to Twitter status {$status_id}"); + $n2s = new Notice_to_status(); $n2s->notice_id = $notice_id; From 9d52d5b4f7dd0fc04f50d7d4afc5b75d009aa25b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:11:31 -0400 Subject: [PATCH 24/94] use bigint for status_ids --- plugins/TwitterBridge/TwitterBridgePlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index a13c15cc78..ed17329434 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -383,7 +383,7 @@ class TwitterBridgePlugin extends Plugin $schema->ensureTable('notice_to_status', array(new ColumnDef('notice_id', 'integer', null, false, 'PRI'), - new ColumnDef('status_id', 'integer', null, + new ColumnDef('status_id', 'bigint', null, // XXX: check for PostgreSQL false, 'UNI'), new ColumnDef('created', 'datetime', null, false))); From 1fbc8adf476b34dfc31081dad1da7fed48666e06 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:22:37 -0400 Subject: [PATCH 25/94] correctly check for local notice to status mappings when notice originated here --- .../daemons/twitterstatusfetcher.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 027e572b02..06c59959a7 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -301,14 +301,18 @@ class TwitterStatusFetcher extends ParallelizingDaemon if (!empty($status->in_reply_to_status_id)) { common_log(LOG_INFO, "Status {$status->id} is a reply to status {$status->in_reply_to_status_id}"); - $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id); - $reply = Notice::staticGet('uri', $replyUri); - if (empty($reply)) { + $n2s = Notice_to_status::staticGet('status_id', $status->in_reply_to_status_id); + if (empty($n2s)) { common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); } else { - common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); - $notice->reply_to = $reply->id; - $notice->conversation = $reply->conversation; + $reply = Notice::staticGet('id', $n2s->notice_id); + if (empty($reply)) { + common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); + } else { + common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); + $notice->reply_to = $reply->id; + $notice->conversation = $reply->conversation; + } } } From fdcaf7022c6ad993b8ca2e9d6a592ecf7c62b0f2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:25:58 -0400 Subject: [PATCH 26/94] correctly mark repeats from Twitter as non-local --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 06c59959a7..6f0bddd041 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -278,7 +278,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon $content, 'twitter', array('repeat_of' => $original->id, - 'uri' => $statusUri)); + 'uri' => $statusUri, + 'is_local' => Notice::GATEWAY)); common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); Notice_to_status::saveNew($repeat->id, $status->id); return $repeat; From 981f6a47492f893f4d039fced0f66bed94a18bbc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:32:56 -0400 Subject: [PATCH 27/94] truncate retweeted stuff if it's too long --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 6f0bddd041..e897cc6ea0 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -274,6 +274,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon $content = sprintf(_('RT @%1$s %2$s'), $author->nickname, $original->content); + + if (Notice::contentTooLong($content)) { + $contentlimit = Notice::maxContent(); + $content = mb_substr($content, 0, $contentlimit - 4) . ' ...'; + } + $repeat = Notice::saveNew($profile->id, $content, 'twitter', From a29356a03051c97ba65544354269ac3acf855734 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:42:58 -0400 Subject: [PATCH 28/94] check status_id before trying to retweet it --- plugins/TwitterBridge/twitter.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 94eaedee51..4084633543 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -143,7 +143,10 @@ function broadcast_twitter($notice) if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) { if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) { - return retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + $retweet = retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + if (!empty($retweet)) { + Notice_to_status::saveNew($notice->id, $retweet->id); + } } else if (is_twitter_bound($notice, $flink)) { return broadcast_oauth($notice, $flink); } @@ -159,11 +162,14 @@ function retweet_notice($flink, $notice) $id = twitter_status_id($notice); + if (empty($id)) { + common_log(LOG_WARNING, "Trying to retweet notice {$notice->id} with no known status id."); + return null; + } + try { $status = $client->statusesRetweet($id); - if (!empty($status)) { - Notice_to_status::saveNew($notice->id, $status->id); - } + return $status; } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } From 26864d14532199501745f5f0a946ee0407262397 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:45:45 -0400 Subject: [PATCH 29/94] using null variable in twitter_status_id() --- plugins/TwitterBridge/twitter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 4084633543..90b0f0f14f 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -177,7 +177,7 @@ function retweet_notice($flink, $notice) function twitter_status_id($notice) { - $n2s = Notice_to_status::staticGet('notice_id', $id); + $n2s = Notice_to_status::staticGet('notice_id', $notice->id); if (empty($n2s)) { return null; } else { From 4deea8e2db5a58de74269f6a7b98d49bdbfc404a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:07:11 -0400 Subject: [PATCH 30/94] Notify Twitter when StatusNet user faves/disfaves a Twitter notice --- plugins/TwitterBridge/TwitterBridgePlugin.php | 73 +++++++++++++++++++ plugins/TwitterBridge/twitteroauthclient.php | 32 ++++++++ 2 files changed, 105 insertions(+) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index ed17329434..f7d3b6659a 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -428,4 +428,77 @@ class TwitterBridgePlugin extends Plugin } return true; } + + /** + * Notify remote users when their notices get favorited. + * + * @param Profile or User $profile of local user doing the faving + * @param Notice $notice being favored + * @return hook return value + */ + + function onEndFavorNotice(Profile $profile, Notice $notice) + { + $flink = Foreign_link::getByUserID($profile->id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + return true; + } + + $status_id = twitter_status_id($notice); + + if (empty($status_id)) { + return true; + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->favoritesCreate($status_id); + + return true; + } + + /** + * Notify remote users when their notices get de-favorited. + * + * @param Profile $profile Profile person doing the de-faving + * @param Notice $notice Notice being favored + * + * @return hook return value + */ + + function onEndDisfavorNotice(Profile $profile, Notice $notice) + { + $flink = Foreign_link::getByUserID($profile->id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + return true; + } + + $status_id = twitter_status_id($notice); + + if (empty($status_id)) { + return true; + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->favoritesDestroy($status_id); + + return true; + } } diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 32844a16f4..22ccaba07e 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -292,4 +292,36 @@ class TwitterOAuthClient extends OAuthClient $status = json_decode($response); return $status; } + + /** + * Calls Twitter's /favorites/create API method + * + * @param int $id ID of the status to favorite + * + * @return object faved status + */ + + function favoritesCreate($id) + { + $url = "http://api.twitter.com/1/favorites/create/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } + + /** + * Calls Twitter's /favorites/destroy API method + * + * @param int $id ID of the status to unfavorite + * + * @return object unfaved status + */ + + function favoritesDestroy($id) + { + $url = "http://api.twitter.com/1/favorites/destroy/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } From 32f33320070a6c518ea470cf1bb1d813d764ca9c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:17:56 -0400 Subject: [PATCH 31/94] delete Twitter notice if it was posted from here --- plugins/TwitterBridge/TwitterBridgePlugin.php | 26 +++++++++++++++++++ plugins/TwitterBridge/twitteroauthclient.php | 16 ++++++++++++ 2 files changed, 42 insertions(+) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index f7d3b6659a..bad6a3941b 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -423,7 +423,33 @@ class TwitterBridgePlugin extends Plugin function onNoticeDeleteRelated($notice) { $n2s = Notice_to_status::staticGet('notice_id', $notice->id); + if (!empty($n2s)) { + + $user = common_current_user(); + + if (empty($user) || $user->id != $notice->profile_id) { + $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since it doesn't seem to be by the author."); + return true; + } + + $flink = Foreign_link::getByUserID($notice->profile_id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since link is not OAuth."); + return true; + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->statusesDestroy($n2s->status_id); + $n2s->delete(); } return true; diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 22ccaba07e..0f5e4dbda7 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -324,4 +324,20 @@ class TwitterOAuthClient extends OAuthClient $status = json_decode($response); return $status; } + + /** + * Calls Twitter's /statuses/destroy API method + * + * @param int $id ID of the status to destroy + * + * @return object destroyed + */ + + function statusesDestroy($id) + { + $url = "http://api.twitter.com/1/statuses/destroy/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } From 865075e6488760426032c236423790ae60f91659 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:25:48 -0400 Subject: [PATCH 32/94] include entities in the results of home_timeline --- plugins/TwitterBridge/twitteroauthclient.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 0f5e4dbda7..0d27e5990d 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -205,7 +205,8 @@ class TwitterOAuthClient extends OAuthClient $params = array('since_id' => $since_id, 'max_id' => $max_id, 'count' => $cnt, - 'page' => $page); + 'page' => $page, + 'include_entities' => 1); $qry = http_build_query($params); if (!empty($qry)) { From 76f42ba83fbfdbd74bef4b800c4b6c89b00c0480 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:40:15 -0400 Subject: [PATCH 33/94] better param handling in hometimeline --- plugins/TwitterBridge/twitteroauthclient.php | 23 +++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 0d27e5990d..5d10d8f712 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -202,12 +202,23 @@ class TwitterOAuthClient extends OAuthClient { $url = 'https://twitter.com/statuses/home_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page, - 'include_entities' => 1); - $qry = http_build_query($params); + + $params = array('include_entities' => 'true'); + + if (!empty($since_id)) { + $params['since_id'] = $since_id; + } + if (!empty($max_id)) { + $params['max_id'] = $max_id; + } + if (!empty($cnt)) { + $params['count'] = $cnt; + } + if (!empty($page)) { + $params['page'] = $page; + } + + $qry = http_build_query($params); if (!empty($qry)) { $url .= "?$qry"; From 5bcfd62eea6d0f6f53d0020aa075a727b7ec294a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:49:49 -0400 Subject: [PATCH 34/94] better handling of params in oauthget --- plugins/TwitterBridge/twitteroauthclient.php | 56 ++++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 5d10d8f712..876e304259 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -218,13 +218,7 @@ class TwitterOAuthClient extends OAuthClient $params['page'] = $page; } - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->oAuthGet($url); + $response = $this->oAuthGet($url, $params); $statuses = json_decode($response); return $statuses; } @@ -244,17 +238,25 @@ class TwitterOAuthClient extends OAuthClient { $url = "https://twitter.com/statuses/friends.json"; - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); + $params = array(); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($id)) { + $params['id'] = $id; } - $response = $this->oAuthGet($url); + if (!empty($user_id)) { + $params['user_id'] = $user_id; + } + + if (!empty($screen_name)) { + $params['screen_name'] = $screen_name; + } + + if (!empty($page)) { + $params['page'] = $page; + } + + $response = $this->oAuthGet($url, $params); $friends = json_decode($response); return $friends; } @@ -274,17 +276,25 @@ class TwitterOAuthClient extends OAuthClient { $url = "https://twitter.com/friends/ids.json"; - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); + $params = array(); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($id)) { + $params['id'] = $id; } - $response = $this->oAuthGet($url); + if (!empty($user_id)) { + $params['user_id'] = $user_id; + } + + if (!empty($screen_name)) { + $params['screen_name'] = $screen_name; + } + + if (!empty($page)) { + $params['page'] = $page; + } + + $response = $this->oAuthGet($url, $params); $ids = json_decode($response); return $ids; } From 3da2b316525a95ef965a07a0fe9acbb4681fc02c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 13:16:04 -0400 Subject: [PATCH 35/94] add Twitter-approved links to Twitter statuses --- .../daemons/twitterstatusfetcher.php | 85 +++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e897cc6ea0..45cb178556 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -331,11 +331,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon $notice->is_local = Notice::GATEWAY; - $notice->content = common_shorten_links($status->text); - $notice->rendered = common_render_content( - $notice->content, - $notice - ); + $notice->content = html_entity_decode($status->text); + $notice->rendered = $this->linkify($status); if (Event::handle('StartNoticeSave', array(&$notice))) { @@ -701,6 +698,84 @@ class TwitterStatusFetcher extends ParallelizingDaemon return true; } + + const URL = 1; + const HASHTAG = 2; + const MENTION = 3; + + function linkify($status) + { + $text = $status->text; + + if (empty($status->entities)) { + return $text; + } + + // Move all the entities into order so we can + // replace them in reverse order and thus + // not mess up their indices + + $toReplace = array(); + + if (!empty($status->entities->urls)) { + foreach ($status->entities->urls as $url) { + $toReplace[$url->indices[0]] = array(self::URL, $url); + } + } + + if (!empty($status->entities->hashtags)) { + foreach ($status->entities->hashtags as $hashtag) { + $toReplace[$hashtag->indices[0]] = array(self::HASHTAG, $hashtag); + } + } + + if (!empty($status->entities->user_mentions)) { + foreach ($status->entities->user_mentions as $mention) { + $toReplace[$mention->indices[0]] = array(self::MENTION, $mention); + } + } + + // sort in reverse order by key + + krsort($toReplace); + + foreach ($toReplace as $part) { + list($type, $object) = $part; + switch($type) { + case self::URL: + $linkText = $this->makeUrlLink($object); + break; + case self::HASHTAG: + $linkText = $this->makeHashtagLink($object); + break; + case self::MENTION: + $linkText = $this->makeMentionLink($object); + break; + default: + continue; + } + $text = substr_replace($text, + $linkText, + $object->indices[0], + $object->indices[1] - $object->indices[0]); + } + return $text; + } + + function makeUrlLink($object) + { + return "{$object->url}"; + } + + function makeHashtagLink($object) + { + return "{$object->text}"; + } + + function makeMentionLink($object) + { + return "{$object->screen_name}"; + } } $id = null; From 033712b1f2afcb6f29b3a1bd10544cc323af9da3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 13:19:49 -0400 Subject: [PATCH 36/94] add back in # and @ for links --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 45cb178556..b310b8f36a 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -769,12 +769,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon function makeHashtagLink($object) { - return "{$object->text}"; + return "#{$object->text}"; } function makeMentionLink($object) { - return "{$object->screen_name}"; + return "@{$object->screen_name}"; } } From 8e131652d675e9855bc26484f4d996944fc62337 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 6 Sep 2010 08:54:04 -0400 Subject: [PATCH 37/94] save Twitter mentions as StatusNet replies --- .../daemons/twitterstatusfetcher.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index b310b8f36a..e092cd1dd7 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -348,6 +348,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon } Notice_to_status::saveNew($notice->id, $status->id); + + $this->saveStatusMentions($notice, $status); + $notice->blowOnInsert(); return $notice; @@ -776,6 +779,29 @@ class TwitterStatusFetcher extends ParallelizingDaemon { return "@{$object->screen_name}"; } + + function saveStatusMentions($notice, $status) + { + $mentions = array(); + + if (empty($status->entities) || empty($status->entities->user_mentions)) { + return; + } + + foreach ($status->entities->user_mentions as $mention) { + $flink = Foreign_link::getByForeignID($mention->id, TWITTER_SERVICE); + if (!empty($flink)) { + $user = User::staticGet('id', $flink->user_id); + if (!empty($user)) { + $reply = new Reply(); + $reply->notice_id = $notice->id; + $reply->profile_id = $user->id; + common_log(LOG_INFO, __METHOD__ . ": saving reply: notice {$notice->id} to profile {$user->id}"); + $id = $reply->insert(); + } + } + } + } } $id = null; From ed99fd51e8cb8bdbd03f41400018760f95318328 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 00:53:39 -0400 Subject: [PATCH 38/94] don't save statuses from protected users --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 7c624fdb3b..964abc0d3e 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -215,6 +215,13 @@ class TwitterStatusFetcher extends ParallelizingDaemon continue; } + // Don't save it if the user is protected + // FIXME: save it but treat it as private + + if ($status->user->protected) { + continue; + } + $this->saveStatus($status, $flink); } From 4d70ba9597e211a7650630d3627ca8b427e2f96c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 01:46:02 -0400 Subject: [PATCH 39/94] save reply status for Twitter notices --- .../daemons/twitterstatusfetcher.php | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 964abc0d3e..cf75e48f68 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -241,10 +241,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon return; } - $statusUri = 'http://twitter.com/' - . $status->user->screen_name - . '/status/' - . $status->id; + $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id); // check to see if we've already imported the status @@ -270,7 +267,23 @@ class TwitterStatusFetcher extends ParallelizingDaemon ); $notice->source = 'twitter'; + $notice->reply_to = null; + + if (!empty($status->in_reply_to_status_id)) { + $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id); + $reply = Notice::staticGet('uri', $replyUri); + if (!empty($reply)) { + $notice->reply_to = $reply->id; + $notice->conversation = $reply->conversation; + } + } + + if (empty($notice->conversation)) { + $conv = Conversation::create(); + $notice->conversation = $conv->id; + } + $notice->is_local = Notice::GATEWAY; $notice->content = common_shorten_links($status->text); @@ -292,23 +305,28 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } - $orig = clone($notice); - $conv = Conversation::create(); - - $notice->conversation = $conv->id; - - if (!$notice->update($orig)) { - common_log_db_error($notice, 'UPDATE', __FILE__); - common_log(LOG_ERR, $this->name() . - ' - Problem saving notice.'); - } - Inbox::insertNotice($flink->user_id, $notice->id); $notice->blowOnInsert(); return $notice; } + /** + * Make an URI for a status. + * + * @param object $status status object + * + * @return string URI + */ + + function makeStatusURI($username, $id) + { + return 'http://twitter.com/' + . $username + . '/status/' + . $id; + } + /** * Look up a Profile by profileurl field. Profile::staticGet() was * not working consistently. From 2b56d3b534389cba1d44c6f5ef4d1a8a514acda6 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 16:37:18 -0400 Subject: [PATCH 40/94] push notices through the bridge if they're in reply to a twitter notice --- plugins/TwitterBridge/twitter.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 306ba2442a..9c2ba502bf 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -115,9 +115,12 @@ function is_twitter_bound($notice, $flink) { // Check to see if notice should go to Twitter if (!empty($flink) && ($flink->noticesync & FOREIGN_NOTICE_SEND)) { - // If it's not a Twitter-style reply, or if the user WANTS to send replies. + // If it's not a Twitter-style reply, or if the user WANTS to send replies, + // or if it's in reply to a twitter notice + if (!preg_match('/^@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || - ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { + ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) || + is_twitter_notice($notice->reply_to)) { return true; } } @@ -125,6 +128,18 @@ function is_twitter_bound($notice, $flink) { return false; } +function is_twitter_notice($id) +{ + $notice = Notice::staticGet('id', $id); + + if (empty($notice)) { + // it's not any kind of notice, so it's definitely not a Twitter notice. + return false; + } + + return ($notice->source == 'twitter'); +} + function broadcast_twitter($notice) { $flink = Foreign_link::getByUserID($notice->profile_id, @@ -159,7 +174,6 @@ function twitter_update_params($notice) return $params; } - function broadcast_oauth($notice, $flink) { $user = $flink->getUser(); $statustxt = format_status($notice); From d6719760d61b204ab7cf5ce013f2933ef4024f1a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 17:34:10 -0400 Subject: [PATCH 41/94] do a real retweet for a local repeat --- plugins/TwitterBridge/twitter.php | 34 +++++++++++++++++--- plugins/TwitterBridge/twitteroauthclient.php | 15 +++++++++ 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 9c2ba502bf..20cdf42b82 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -145,17 +145,43 @@ function broadcast_twitter($notice) $flink = Foreign_link::getByUserID($notice->profile_id, TWITTER_SERVICE); - if (is_twitter_bound($notice, $flink)) { - if (TwitterOAuthClient::isPackedToken($flink->credentials)) { + // Don't bother with basic auth, since it's no longer allowed + + if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) { + if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) { + return retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + } else if (is_twitter_bound($notice, $flink)) { return broadcast_oauth($notice, $flink); - } else { - return broadcast_basicauth($notice, $flink); } } return true; } +function retweet_notice($flink, $notice) +{ + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $id = twitter_status_id($notice); + + try { + $status = $client->statusesRetweet($id); + } catch (OAuthClientException $e) { + return process_error($e, $flink, $notice); + } +} + +function twitter_status_id($notice) +{ + if ($notice->source == 'twitter' && + preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $notice->uri, $match)) { + return $match[1]; + } + + return null; +} + /** * Pull any extra information from a notice that we should transfer over * to Twitter beyond the notice text itself. diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index d895d8c73c..5e5761360c 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -277,4 +277,19 @@ class TwitterOAuthClient extends OAuthClient return $ids; } + /** + * Calls Twitter's /statuses/retweet/id.json API method + * + * @param int $id id of the notice to retweet + * + * @return retweeted status + */ + + function statusesRetweet($id) + { + $url = "http://api.twitter.com/1/statuses/retweet/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } From 5651f79466b48fb895b5ceeea3d0045a26c429bc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 3 Sep 2010 17:51:28 -0400 Subject: [PATCH 42/94] if something's a retweet, save it as a repeat in bridge --- .../daemons/twitterstatusfetcher.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index cf75e48f68..848e866697 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -231,14 +231,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon $flink->update(); } - function saveStatus($status, $flink) + function saveStatus($status, $flink=null) { $profile = $this->ensureProfile($status->user); if (empty($profile)) { common_log(LOG_ERR, $this->name() . ' - Problem saving notice. No associated Profile.'); - return; + return null; } $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id); @@ -253,7 +253,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon $this->name() . " - Ignoring duplicate import: $statusUri" ); - return; + return $dupe; + } + + // If it's a retweet, save it as a repeat! + + if (!empty($status->retweeted_status)) { + $original = $this->saveStatus($status->retweeted_status); + return $original->repeat($profile->id, 'twitter'); } $notice = new Notice(); @@ -305,7 +312,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } - Inbox::insertNotice($flink->user_id, $notice->id); + if (!empty($flink)) { + Inbox::insertNotice($flink->user_id, $notice->id); + } $notice->blowOnInsert(); return $notice; From 20f6ea484088b4f0e83bea0da9d556795035bb75 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 11:37:34 -0400 Subject: [PATCH 43/94] some info notices in twitter status fetch for repeats and replies --- .../TwitterBridge/daemons/twitterstatusfetcher.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 848e866697..9892ffc057 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -259,8 +259,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon // If it's a retweet, save it as a repeat! if (!empty($status->retweeted_status)) { + common_log(LOG_INFO, "Status {$status->id} is a retweet of {$status->retweeted_status->id}."); $original = $this->saveStatus($status->retweeted_status); - return $original->repeat($profile->id, 'twitter'); + $repeat = $original->repeat($profile->id, 'twitter'); + common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + return $repeat; } $notice = new Notice(); @@ -278,9 +281,13 @@ class TwitterStatusFetcher extends ParallelizingDaemon $notice->reply_to = null; if (!empty($status->in_reply_to_status_id)) { + common_log(LOG_INFO, "Status {$status->id} is a reply to status {$status->in_reply_to_status_id}"); $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id); $reply = Notice::staticGet('uri', $replyUri); - if (!empty($reply)) { + if (empty($reply)) { + common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); + } else { + common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); $notice->reply_to = $reply->id; $notice->conversation = $reply->conversation; } @@ -289,6 +296,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon if (empty($notice->conversation)) { $conv = Conversation::create(); $notice->conversation = $conv->id; + common_log(LOG_INFO, "No known conversation for status {$status->id} so making a new one {$conv->id}."); } $notice->is_local = Notice::GATEWAY; From 184ee7fc1f49f2638a03462679c14b92d4937ed0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 11:40:33 -0400 Subject: [PATCH 44/94] move inbox insert code to status saver main loop --- .../TwitterBridge/daemons/twitterstatusfetcher.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 9892ffc057..e3f9553ffe 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -222,7 +222,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon continue; } - $this->saveStatus($status, $flink); + $notice = $this->saveStatus($status); + + if (!empty($notice)) { + Inbox::insertNotice($flink->user_id, $notice->id); + } } // Okay, record the time we synced with Twitter for posterity @@ -231,7 +235,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $flink->update(); } - function saveStatus($status, $flink=null) + function saveStatus($status) { $profile = $this->ensureProfile($status->user); @@ -320,9 +324,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } - if (!empty($flink)) { - Inbox::insertNotice($flink->user_id, $notice->id); - } $notice->blowOnInsert(); return $notice; From 1a54291cc78fb35b45230aee61fe167c50c94f5f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:45:15 -0400 Subject: [PATCH 45/94] debug code to dump new status data --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e3f9553ffe..9f0f91fc99 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -260,6 +260,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon return $dupe; } + common_debug("Saving status {$status->id} with data " . print_r($status, true)); + // If it's a retweet, save it as a repeat! if (!empty($status->retweeted_status)) { From a8c90d02438b23a73b9195e10ebed54c33f1dce0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:54:20 -0400 Subject: [PATCH 46/94] switch twitterstatusfetcher from friends_timeline to home_timeline --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 9f0f91fc99..601b84ebd9 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -186,7 +186,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $timeline = null; try { - $timeline = $client->statusesFriendsTimeline(); + $timeline = $client->statusesHomeTimeline(); } catch (Exception $e) { common_log(LOG_WARNING, $this->name() . ' - Twitter client unable to get friends timeline for user ' . From e45b6df419c4be76ac8e21a59117b340524a6b35 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:54:46 -0400 Subject: [PATCH 47/94] use home_timeline instead of friends_timeline --- plugins/TwitterBridge/twitteroauthclient.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 5e5761360c..32844a16f4 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -188,7 +188,7 @@ class TwitterOAuthClient extends OAuthClient } /** - * Calls Twitter's /statuses/friends_timeline API method + * Calls Twitter's /statuses/home_timeline API method * * @param int $since_id show statuses after this id * @param int $max_id show statuses before this id @@ -197,11 +197,11 @@ class TwitterOAuthClient extends OAuthClient * * @return mixed an array of statuses */ - function statusesFriendsTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) + function statusesHomeTimeline($since_id = null, $max_id = null, + $cnt = null, $page = null) { - $url = 'https://twitter.com/statuses/friends_timeline.json'; + $url = 'https://twitter.com/statuses/home_timeline.json'; $params = array('since_id' => $since_id, 'max_id' => $max_id, 'count' => $cnt, From 23dfadd9a6d6e5e4a7d6525e8f7d45a8f9b1ee08 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 12:58:20 -0400 Subject: [PATCH 48/94] remove basic auth code for Twitter since it's no longer supported --- .../daemons/synctwitterfriends.php | 4 +- .../daemons/twitterstatusfetcher.php | 3 +- plugins/TwitterBridge/twitter.php | 46 ---- .../TwitterBridge/twitterbasicauthclient.php | 229 ------------------ 4 files changed, 3 insertions(+), 279 deletions(-) delete mode 100644 plugins/TwitterBridge/twitterbasicauthclient.php diff --git a/plugins/TwitterBridge/daemons/synctwitterfriends.php b/plugins/TwitterBridge/daemons/synctwitterfriends.php index df7da0943d..5641142d35 100755 --- a/plugins/TwitterBridge/daemons/synctwitterfriends.php +++ b/plugins/TwitterBridge/daemons/synctwitterfriends.php @@ -144,8 +144,8 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon $client = new TwitterOAuthClient($token->key, $token->secret); common_debug($this->name() . '- Grabbing friends IDs with OAuth.'); } else { - $client = new TwitterBasicAuthClient($flink); - common_debug($this->name() . '- Grabbing friends IDs with basic auth.'); + common_debug("Skipping Twitter friends for {$flink->user_id} since not OAuth."); + return $friends; } try { diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 601b84ebd9..dfd2d274c5 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -179,8 +179,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $client = new TwitterOAuthClient($token->key, $token->secret); common_debug($this->name() . ' - Grabbing friends timeline with OAuth.'); } else { - $client = new TwitterBasicAuthClient($flink); - common_debug($this->name() . ' - Grabbing friends timeline with basic auth.'); + common_debug("Skipping friends timeline for $flink->foreign_id since not OAuth."); } $timeline = null; diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 20cdf42b82..99ca2ada61 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -244,52 +244,6 @@ function broadcast_oauth($notice, $flink) { return true; } -function broadcast_basicauth($notice, $flink) -{ - $user = $flink->getUser(); - - $statustxt = format_status($notice); - $params = twitter_update_params($notice); - - $client = new TwitterBasicAuthClient($flink); - $status = null; - - try { - $status = $client->statusesUpdate($statustxt, $params); - } catch (BasicAuthException $e) { - return process_error($e, $flink, $notice); - } - - if (empty($status)) { - - $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' . - 'trying to post notice %d for %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - - common_log(LOG_WARNING, $errmsg); - - $errmsg = sprintf('No data returned by Twitter API when ' . - 'trying to post notice %d for %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - common_log(LOG_WARNING, $errmsg); - return false; - } - - $msg = sprintf('Twitter bridge - posted notice %d to Twitter using ' . - 'HTTP basic auth for User %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - - common_log(LOG_INFO, $msg); - - return true; -} - function process_error($e, $flink, $notice) { $user = $flink->getUser(); diff --git a/plugins/TwitterBridge/twitterbasicauthclient.php b/plugins/TwitterBridge/twitterbasicauthclient.php deleted file mode 100644 index 2c18c94695..0000000000 --- a/plugins/TwitterBridge/twitterbasicauthclient.php +++ /dev/null @@ -1,229 +0,0 @@ -. - * - * @category Integration - * @package StatusNet - * @author Zach Copley - * @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') && !defined('LACONICA')) { - exit(1); -} - -/** - * General Exception wrapper for HTTP basic auth errors - * - * @category Integration - * @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 BasicAuthException extends Exception -{ -} - -/** - * Class for talking to the Twitter API with HTTP Basic Auth. - * - * @category Integration - * @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 TwitterBasicAuthClient -{ - var $screen_name = null; - var $password = null; - - /** - * constructor - * - * @param Foreign_link $flink a Foreign_link storing the - * Twitter user's password, etc. - */ - function __construct($flink) - { - $fuser = $flink->getForeignUser(); - $this->screen_name = $fuser->nickname; - $this->password = $flink->credentials; - } - - /** - * Calls Twitter's /statuses/update API method - * - * @param string $status text of the status - * @param mixed $params optional other parameters to pass to Twitter, - * as defined. For back-compatibility, if an int - * is passed we'll consider it a reply-to ID. - * - * @return mixed the status - */ - function statusesUpdate($status, $in_reply_to_status_id = null) - { - $url = 'https://twitter.com/statuses/update.json'; - if (is_numeric($params)) { - $params = array('in_reply_to_status_id' => intval($params)); - } - $params['status'] = $status; - $params['source'] = common_config('integration', 'source'); - $response = $this->httpRequest($url, $params); - $status = json_decode($response); - return $status; - } - - /** - * Calls Twitter's /statuses/friends_timeline API method - * - * @param int $since_id show statuses after this id - * @param int $max_id show statuses before this id - * @param int $cnt number of statuses to show - * @param int $page page number - * - * @return mixed an array of statuses - */ - function statusesFriendsTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) - { - $url = 'https://twitter.com/statuses/friends_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $statuses = json_decode($response); - return $statuses; - } - - /** - * Calls Twitter's /statuses/friends API method - * - * @param int $id id of the user whom you wish to see friends of - * @param int $user_id numerical user id - * @param int $screen_name screen name - * @param int $page page number - * - * @return mixed an array of twitter users and their latest status - */ - function statusesFriends($id = null, $user_id = null, $screen_name = null, - $page = null) - { - $url = "https://twitter.com/statuses/friends.json"; - - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $friends = json_decode($response); - return $friends; - } - - /** - * Calls Twitter's /statuses/friends/ids API method - * - * @param int $id id of the user whom you wish to see friends of - * @param int $user_id numerical user id - * @param int $screen_name screen name - * @param int $page page number - * - * @return mixed a list of ids, 100 per page - */ - function friendsIds($id = null, $user_id = null, $screen_name = null, - $page = null) - { - $url = "https://twitter.com/friends/ids.json"; - - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $ids = json_decode($response); - return $ids; - } - - /** - * Make an HTTP request - * - * @param string $url Where to make the request - * @param array $params post parameters - * - * @return mixed the request - * @throws BasicAuthException - */ - function httpRequest($url, $params = null, $auth = true) - { - $request = HTTPClient::start(); - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); - - if ($auth) { - $request->setAuth($this->screen_name, $this->password); - } - - if (isset($params)) { - // Twitter is strict about accepting invalid "Expect" headers - $headers = array('Expect:'); - $response = $request->post($url, $headers, $params); - } else { - $response = $request->get($url); - } - - $code = $response->getStatus(); - - if ($code < 200 || $code >= 400) { - throw new BasicAuthException($response->getBody(), $code); - } - - return $response->getBody(); - } - -} From 1bf4972cc055f013c0a96df7d2d44b55b5e0a12d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 13:00:37 -0400 Subject: [PATCH 49/94] remove require_once for disappeared TwitterBasicAuthClient --- plugins/TwitterBridge/daemons/synctwitterfriends.php | 1 - plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 1 - plugins/TwitterBridge/twitter.php | 1 - 3 files changed, 3 deletions(-) diff --git a/plugins/TwitterBridge/daemons/synctwitterfriends.php b/plugins/TwitterBridge/daemons/synctwitterfriends.php index 5641142d35..02546a02ca 100755 --- a/plugins/TwitterBridge/daemons/synctwitterfriends.php +++ b/plugins/TwitterBridge/daemons/synctwitterfriends.php @@ -33,7 +33,6 @@ END_OF_TRIM_HELP; require_once INSTALLDIR . '/scripts/commandline.inc'; require_once INSTALLDIR . '/lib/parallelizingdaemon.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; /** diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index dfd2d274c5..e5fac1fec6 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -40,7 +40,6 @@ require_once INSTALLDIR . '/scripts/commandline.inc'; require_once INSTALLDIR . '/lib/common.php'; require_once INSTALLDIR . '/lib/daemon.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; /** diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 99ca2ada61..b8e5457402 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -23,7 +23,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { define('TWITTER_SERVICE', 1); // Twitter is foreign_service ID 1 -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; function add_twitter_user($twitter_id, $screen_name) From 928239ecf88f1dc761a7a39d77714f5687e20833 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 15:05:38 -0400 Subject: [PATCH 50/94] do our own repeating so we can pass in a uri --- .../daemons/twitterstatusfetcher.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e5fac1fec6..4e4befe06e 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -265,9 +265,23 @@ class TwitterStatusFetcher extends ParallelizingDaemon if (!empty($status->retweeted_status)) { common_log(LOG_INFO, "Status {$status->id} is a retweet of {$status->retweeted_status->id}."); $original = $this->saveStatus($status->retweeted_status); - $repeat = $original->repeat($profile->id, 'twitter'); - common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); - return $repeat; + if (empty($original)) { + return null; + } else { + $author = $original->getProfile(); + // TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. + // TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. + $content = sprintf(_('RT @%1$s %2$s'), + $author->nickname, + $original->content); + $repeat = Notice::saveNew($profile->id, + $content, + 'twitter', + array('repeat_of' => $original->id, + 'uri' => $statusUri)); + common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + return $repeat; + } } $notice = new Notice(); From 17a16026ff9e0bce287b607e587a9ac7a9c3b74c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:00:18 -0400 Subject: [PATCH 51/94] add in_reply_to_status_id if notice is from twitter --- plugins/TwitterBridge/twitter.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index b8e5457402..33d5443c22 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -196,6 +196,10 @@ function twitter_update_params($notice) $params['lat'] = $notice->lat; $params['long'] = $notice->lon; } + if (!empty($notice->reply_to) && is_twitter_notice($notice->reply_to)) { + $reply = Notice::staticGet('id', $notice->reply_to); + $params['in_reply_to_status_id'] = twitter_status_id($reply); + } return $params; } From a1981770ce113d0fa20e5f1b57ddcf3d88177102 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:45:55 -0400 Subject: [PATCH 52/94] Save notice-to-status mapping in its own table Introduce a table mapping notices to Twitter statuses. Initialize this table at checkSchema() time. Save the mapping when we push or pull statuses. Use the table to determine if a notice has a Twitter equivalent. --- plugins/TwitterBridge/Notice_to_status.php | 166 ++++++++++++++++++ plugins/TwitterBridge/TwitterBridgePlugin.php | 60 ++++++- .../daemons/twitterstatusfetcher.php | 2 + plugins/TwitterBridge/twitter.php | 25 +-- 4 files changed, 236 insertions(+), 17 deletions(-) create mode 100644 plugins/TwitterBridge/Notice_to_status.php diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php new file mode 100644 index 0000000000..ecd4905dcc --- /dev/null +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -0,0 +1,166 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for mapping notices to statuses + * + * Notices flow back and forth between Twitter and StatusNet. We use this + * table to remember which StatusNet notice corresponds to which Twitter + * status. + * + * Note that notice_id is unique only within a single database; if you + * want to share this data for some reason, get the notice's URI and use + * that instead, since it's universally unique. + * + * @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 Notice_to_status extends Memcached_DataObject +{ + public $__table = 'notice_to_status'; // table name + public $notice_id; // int(4) primary_key not_null + public $status_id; // int(4) + 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 Notice_to_status object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Notice_to_status', $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('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'status_id' => DB_DATAOBJECT_INT + 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, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('notice_id' => 'K', 'status_id' => 'U'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * If a table has a single integer column as its primary key, DB_DataObject + * assumes that the column is auto-incrementing and makes a sequence table + * to do this incrementation. Since we don't need this for our class, we + * overload this method and return the magic formula that DB_DataObject needs. + * + * @return array magic three-false array that stops auto-incrementing. + */ + + function sequenceKey() + { + return array(false, false, false); + } + + /** + * Save a mapping between a notice and a status + * + * @param integer $notice_id ID of the notice in StatusNet + * @param integer $status_id ID of the status in Twitter + * + * @return Notice_to_status new object for this value + */ + + static function saveNew($notice_id, $status_id) + { + $n2s = new Notice_to_status(); + + $n2s->notice_id = $notice_id; + $n2s->status_id = $status_id; + $n2s->created = common_sql_now(); + + $n2s->insert(); + + return $n2s; + } +} diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 8e3eba3186..5676025c22 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -194,18 +194,21 @@ class TwitterBridgePlugin extends Plugin */ function onAutoload($cls) { + $dir = dirname(__FILE__); + switch ($cls) { case 'TwittersettingsAction': case 'TwitterauthorizationAction': case 'TwitterloginAction': case 'TwitteradminpanelAction': - include_once INSTALLDIR . '/plugins/TwitterBridge/' . - strtolower(mb_substr($cls, 0, -6)) . '.php'; + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; case 'TwitterOAuthClient': case 'TwitterQueueHandler': - include_once INSTALLDIR . '/plugins/TwitterBridge/' . - strtolower($cls) . '.php'; + include_once $dir . '/' . strtolower($cls) . '.php'; + return false; + case 'Notice_to_status': + include_once $dir . '/' . $cls . '.php'; return false; default: return true; @@ -360,5 +363,52 @@ class TwitterBridgePlugin extends Plugin } } -} + /** + * Database schema setup + * + * We maintain a table mapping StatusNet notices to Twitter statuses + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing user-submitted flags on profiles + + $schema->ensureTable('notice_to_status', + array(new ColumnDef('notice_id', 'integer', null, + false, 'PRI'), + new ColumnDef('status_id', 'integer', null, + false, 'UNI'), + new ColumnDef('created', 'datetime', null, + false))); + + // We update any notices that may have come in from + // Twitter that we don't have a status_id for. Note that + // this won't catch notices that originated at this StatusNet site. + + $n = new Notice(); + + $n->query('SELECT notice.id, notice.uri ' . + 'FROM notice LEFT JOIN notice_to_status ' . + 'ON notice.id = notice_to_status.notice_id ' . + 'WHERE notice.source = "twitter"' . + 'AND notice_to_status.status_id = NULL'); + + while ($n->fetch()) { + if (preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $n->uri, $match)) { + + $status_id = $match[1]; + + Notice_to_status::saveNew($n->id, $status_id); + } + } + + return true; + } +} diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 4e4befe06e..ae66c50aed 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -280,6 +280,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon array('repeat_of' => $original->id, 'uri' => $statusUri)); common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + Notice_to_status::saveNew($repeat->id, $status->id); return $repeat; } } @@ -338,6 +339,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon Event::handle('EndNoticeSave', array($notice)); } + Notice_to_status::saveNew($notice->id, $status->id); $notice->blowOnInsert(); return $notice; diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 33d5443c22..94eaedee51 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -129,14 +129,9 @@ function is_twitter_bound($notice, $flink) { function is_twitter_notice($id) { - $notice = Notice::staticGet('id', $id); + $n2s = Notice_to_status::staticGet('notice_id', $id); - if (empty($notice)) { - // it's not any kind of notice, so it's definitely not a Twitter notice. - return false; - } - - return ($notice->source == 'twitter'); + return (!empty($n2s)); } function broadcast_twitter($notice) @@ -166,6 +161,9 @@ function retweet_notice($flink, $notice) try { $status = $client->statusesRetweet($id); + if (!empty($status)) { + Notice_to_status::saveNew($notice->id, $status->id); + } } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } @@ -173,12 +171,12 @@ function retweet_notice($flink, $notice) function twitter_status_id($notice) { - if ($notice->source == 'twitter' && - preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $notice->uri, $match)) { - return $match[1]; + $n2s = Notice_to_status::staticGet('notice_id', $id); + if (empty($n2s)) { + return null; + } else { + return $n2s->status_id; } - - return null; } /** @@ -214,6 +212,9 @@ function broadcast_oauth($notice, $flink) { try { $status = $client->statusesUpdate($statustxt, $params); + if (!empty($status)) { + Notice_to_status::saveNew($notice->id, $status->id); + } } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } From e9e06879bb067fd2049c6b4829e9881966a03968 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:49:52 -0400 Subject: [PATCH 53/94] use Notice_to_status to check for duplicates --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index ae66c50aed..027e572b02 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -247,15 +247,15 @@ class TwitterStatusFetcher extends ParallelizingDaemon // check to see if we've already imported the status - $dupe = $this->checkDupe($profile, $statusUri); + $n2s = Notice_to_status::staticGet('status_id', $status->id); - if (!empty($dupe)) { + if (!empty($n2s)) { common_log( LOG_INFO, $this->name() . - " - Ignoring duplicate import: $statusUri" + " - Ignoring duplicate import: {$status->id}" ); - return $dupe; + return Notice::staticGet('id', $n2s->notice_id); } common_debug("Saving status {$status->id} with data " . print_r($status, true)); From 6c7262c8ca9f0895584ef5b73fddafb3182582a2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:52:26 -0400 Subject: [PATCH 54/94] Delete Notice_to_status when a notice is deleted --- plugins/TwitterBridge/TwitterBridgePlugin.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 5676025c22..b0f99c1798 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -411,4 +411,21 @@ class TwitterBridgePlugin extends Plugin return true; } + + /** + * If a notice gets deleted, remove the Notice_to_status mapping + * + * @param Notice $notice The notice getting deleted + * + * @return boolean hook value + */ + + function onNoticeDeleteRelated($notice) + { + $n2s = Notice_to_status::staticGet('notice_id', $notice->id); + if (!empty($n2s)) { + $n2s->delete(); + } + return true; + } } From 299da9e4624000f5455ffb494cb22714ca57ade7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 4 Sep 2010 23:55:53 -0400 Subject: [PATCH 55/94] SQL syntax error when initializing notice_to_status table --- plugins/TwitterBridge/TwitterBridgePlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index b0f99c1798..a13c15cc78 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -398,7 +398,7 @@ class TwitterBridgePlugin extends Plugin 'FROM notice LEFT JOIN notice_to_status ' . 'ON notice.id = notice_to_status.notice_id ' . 'WHERE notice.source = "twitter"' . - 'AND notice_to_status.status_id = NULL'); + 'AND notice_to_status.status_id IS NULL'); while ($n->fetch()) { if (preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $n->uri, $match)) { From d986537c43ee1500e09f1e6bc49ba00594fe79c3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:05:11 -0400 Subject: [PATCH 56/94] do a uniqueness check before saving new notice-to-status mapping --- plugins/TwitterBridge/Notice_to_status.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php index ecd4905dcc..0d94927e42 100644 --- a/plugins/TwitterBridge/Notice_to_status.php +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -153,6 +153,18 @@ class Notice_to_status extends Memcached_DataObject static function saveNew($notice_id, $status_id) { + $n2s = Notice_to_status::staticGet('notice_id', $notice_id); + + if (!empty($n2s)) { + return $n2s; + } + + $n2s = Notice_to_status::staticGet('status_id', $status_id); + + if (!empty($n2s)) { + return $n2s; + } + $n2s = new Notice_to_status(); $n2s->notice_id = $notice_id; From a9bb1c75282a642d34b88fee2a7ca31ab7c2a0fb Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:07:02 -0400 Subject: [PATCH 57/94] debug output when saving new mapping --- plugins/TwitterBridge/Notice_to_status.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php index 0d94927e42..2e32ba963c 100644 --- a/plugins/TwitterBridge/Notice_to_status.php +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -165,6 +165,8 @@ class Notice_to_status extends Memcached_DataObject return $n2s; } + common_debug("Mapping notice {$notice_id} to Twitter status {$status_id}"); + $n2s = new Notice_to_status(); $n2s->notice_id = $notice_id; From df88624d4980dd4cbd21ca8ae19cfb14f17357f4 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:11:31 -0400 Subject: [PATCH 58/94] use bigint for status_ids --- plugins/TwitterBridge/TwitterBridgePlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index a13c15cc78..ed17329434 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -383,7 +383,7 @@ class TwitterBridgePlugin extends Plugin $schema->ensureTable('notice_to_status', array(new ColumnDef('notice_id', 'integer', null, false, 'PRI'), - new ColumnDef('status_id', 'integer', null, + new ColumnDef('status_id', 'bigint', null, // XXX: check for PostgreSQL false, 'UNI'), new ColumnDef('created', 'datetime', null, false))); From e20dc9fec3e77f17cdfbed1dab2c5382d1a82bd2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:22:37 -0400 Subject: [PATCH 59/94] correctly check for local notice to status mappings when notice originated here --- .../daemons/twitterstatusfetcher.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 027e572b02..06c59959a7 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -301,14 +301,18 @@ class TwitterStatusFetcher extends ParallelizingDaemon if (!empty($status->in_reply_to_status_id)) { common_log(LOG_INFO, "Status {$status->id} is a reply to status {$status->in_reply_to_status_id}"); - $replyUri = $this->makeStatusURI($status->in_reply_to_screen_name, $status->in_reply_to_status_id); - $reply = Notice::staticGet('uri', $replyUri); - if (empty($reply)) { + $n2s = Notice_to_status::staticGet('status_id', $status->in_reply_to_status_id); + if (empty($n2s)) { common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); } else { - common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); - $notice->reply_to = $reply->id; - $notice->conversation = $reply->conversation; + $reply = Notice::staticGet('id', $n2s->notice_id); + if (empty($reply)) { + common_log(LOG_INFO, "Couldn't find local notice for status {$status->in_reply_to_status_id}"); + } else { + common_log(LOG_INFO, "Found local notice {$reply->id} for status {$status->in_reply_to_status_id}"); + $notice->reply_to = $reply->id; + $notice->conversation = $reply->conversation; + } } } From 9847bffe998544ee8aa284849134e86e3c4c598a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:25:58 -0400 Subject: [PATCH 60/94] correctly mark repeats from Twitter as non-local --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 06c59959a7..6f0bddd041 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -278,7 +278,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon $content, 'twitter', array('repeat_of' => $original->id, - 'uri' => $statusUri)); + 'uri' => $statusUri, + 'is_local' => Notice::GATEWAY)); common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); Notice_to_status::saveNew($repeat->id, $status->id); return $repeat; From 702d36257c6edb1e4f87087c60f1a534fc69a918 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:32:56 -0400 Subject: [PATCH 61/94] truncate retweeted stuff if it's too long --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 6f0bddd041..e897cc6ea0 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -274,6 +274,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon $content = sprintf(_('RT @%1$s %2$s'), $author->nickname, $original->content); + + if (Notice::contentTooLong($content)) { + $contentlimit = Notice::maxContent(); + $content = mb_substr($content, 0, $contentlimit - 4) . ' ...'; + } + $repeat = Notice::saveNew($profile->id, $content, 'twitter', From a5554bc11e5565f30a42fa26cf94fe27a3477cd5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:42:58 -0400 Subject: [PATCH 62/94] check status_id before trying to retweet it --- plugins/TwitterBridge/twitter.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 94eaedee51..4084633543 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -143,7 +143,10 @@ function broadcast_twitter($notice) if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) { if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) { - return retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + $retweet = retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + if (!empty($retweet)) { + Notice_to_status::saveNew($notice->id, $retweet->id); + } } else if (is_twitter_bound($notice, $flink)) { return broadcast_oauth($notice, $flink); } @@ -159,11 +162,14 @@ function retweet_notice($flink, $notice) $id = twitter_status_id($notice); + if (empty($id)) { + common_log(LOG_WARNING, "Trying to retweet notice {$notice->id} with no known status id."); + return null; + } + try { $status = $client->statusesRetweet($id); - if (!empty($status)) { - Notice_to_status::saveNew($notice->id, $status->id); - } + return $status; } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } From 5944fe57e6e79f635a5fe20b5086aae105797786 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 00:45:45 -0400 Subject: [PATCH 63/94] using null variable in twitter_status_id() --- plugins/TwitterBridge/twitter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 4084633543..90b0f0f14f 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -177,7 +177,7 @@ function retweet_notice($flink, $notice) function twitter_status_id($notice) { - $n2s = Notice_to_status::staticGet('notice_id', $id); + $n2s = Notice_to_status::staticGet('notice_id', $notice->id); if (empty($n2s)) { return null; } else { From ba8a24073fc3d545fdc86b613d32b4bfc33743c3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:07:11 -0400 Subject: [PATCH 64/94] Notify Twitter when StatusNet user faves/disfaves a Twitter notice --- plugins/TwitterBridge/TwitterBridgePlugin.php | 73 +++++++++++++++++++ plugins/TwitterBridge/twitteroauthclient.php | 32 ++++++++ 2 files changed, 105 insertions(+) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index ed17329434..f7d3b6659a 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -428,4 +428,77 @@ class TwitterBridgePlugin extends Plugin } return true; } + + /** + * Notify remote users when their notices get favorited. + * + * @param Profile or User $profile of local user doing the faving + * @param Notice $notice being favored + * @return hook return value + */ + + function onEndFavorNotice(Profile $profile, Notice $notice) + { + $flink = Foreign_link::getByUserID($profile->id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + return true; + } + + $status_id = twitter_status_id($notice); + + if (empty($status_id)) { + return true; + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->favoritesCreate($status_id); + + return true; + } + + /** + * Notify remote users when their notices get de-favorited. + * + * @param Profile $profile Profile person doing the de-faving + * @param Notice $notice Notice being favored + * + * @return hook return value + */ + + function onEndDisfavorNotice(Profile $profile, Notice $notice) + { + $flink = Foreign_link::getByUserID($profile->id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + return true; + } + + $status_id = twitter_status_id($notice); + + if (empty($status_id)) { + return true; + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->favoritesDestroy($status_id); + + return true; + } } diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 32844a16f4..22ccaba07e 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -292,4 +292,36 @@ class TwitterOAuthClient extends OAuthClient $status = json_decode($response); return $status; } + + /** + * Calls Twitter's /favorites/create API method + * + * @param int $id ID of the status to favorite + * + * @return object faved status + */ + + function favoritesCreate($id) + { + $url = "http://api.twitter.com/1/favorites/create/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } + + /** + * Calls Twitter's /favorites/destroy API method + * + * @param int $id ID of the status to unfavorite + * + * @return object unfaved status + */ + + function favoritesDestroy($id) + { + $url = "http://api.twitter.com/1/favorites/destroy/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } From b059a19e0fb82869ab2ac5dbb4ec94348a58aacb Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:17:56 -0400 Subject: [PATCH 65/94] delete Twitter notice if it was posted from here --- plugins/TwitterBridge/TwitterBridgePlugin.php | 26 +++++++++++++++++++ plugins/TwitterBridge/twitteroauthclient.php | 16 ++++++++++++ 2 files changed, 42 insertions(+) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index f7d3b6659a..bad6a3941b 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -423,7 +423,33 @@ class TwitterBridgePlugin extends Plugin function onNoticeDeleteRelated($notice) { $n2s = Notice_to_status::staticGet('notice_id', $notice->id); + if (!empty($n2s)) { + + $user = common_current_user(); + + if (empty($user) || $user->id != $notice->profile_id) { + $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since it doesn't seem to be by the author."); + return true; + } + + $flink = Foreign_link::getByUserID($notice->profile_id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since link is not OAuth."); + return true; + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->statusesDestroy($n2s->status_id); + $n2s->delete(); } return true; diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 22ccaba07e..0f5e4dbda7 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -324,4 +324,20 @@ class TwitterOAuthClient extends OAuthClient $status = json_decode($response); return $status; } + + /** + * Calls Twitter's /statuses/destroy API method + * + * @param int $id ID of the status to destroy + * + * @return object destroyed + */ + + function statusesDestroy($id) + { + $url = "http://api.twitter.com/1/statuses/destroy/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } From 86d37ba59cd0cbc418d246f79d027ae92e4db157 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:25:48 -0400 Subject: [PATCH 66/94] include entities in the results of home_timeline --- plugins/TwitterBridge/twitteroauthclient.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 0f5e4dbda7..0d27e5990d 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -205,7 +205,8 @@ class TwitterOAuthClient extends OAuthClient $params = array('since_id' => $since_id, 'max_id' => $max_id, 'count' => $cnt, - 'page' => $page); + 'page' => $page, + 'include_entities' => 1); $qry = http_build_query($params); if (!empty($qry)) { From a844aaaea6e9ec603bd4a070cfa62ae610993e58 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:40:15 -0400 Subject: [PATCH 67/94] better param handling in hometimeline --- plugins/TwitterBridge/twitteroauthclient.php | 23 +++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 0d27e5990d..5d10d8f712 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -202,12 +202,23 @@ class TwitterOAuthClient extends OAuthClient { $url = 'https://twitter.com/statuses/home_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page, - 'include_entities' => 1); - $qry = http_build_query($params); + + $params = array('include_entities' => 'true'); + + if (!empty($since_id)) { + $params['since_id'] = $since_id; + } + if (!empty($max_id)) { + $params['max_id'] = $max_id; + } + if (!empty($cnt)) { + $params['count'] = $cnt; + } + if (!empty($page)) { + $params['page'] = $page; + } + + $qry = http_build_query($params); if (!empty($qry)) { $url .= "?$qry"; From 28fecf70b998943606a556d7a98a0406dba67893 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 01:49:49 -0400 Subject: [PATCH 68/94] better handling of params in oauthget --- plugins/TwitterBridge/twitteroauthclient.php | 56 ++++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index 5d10d8f712..876e304259 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -218,13 +218,7 @@ class TwitterOAuthClient extends OAuthClient $params['page'] = $page; } - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->oAuthGet($url); + $response = $this->oAuthGet($url, $params); $statuses = json_decode($response); return $statuses; } @@ -244,17 +238,25 @@ class TwitterOAuthClient extends OAuthClient { $url = "https://twitter.com/statuses/friends.json"; - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); + $params = array(); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($id)) { + $params['id'] = $id; } - $response = $this->oAuthGet($url); + if (!empty($user_id)) { + $params['user_id'] = $user_id; + } + + if (!empty($screen_name)) { + $params['screen_name'] = $screen_name; + } + + if (!empty($page)) { + $params['page'] = $page; + } + + $response = $this->oAuthGet($url, $params); $friends = json_decode($response); return $friends; } @@ -274,17 +276,25 @@ class TwitterOAuthClient extends OAuthClient { $url = "https://twitter.com/friends/ids.json"; - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); + $params = array(); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($id)) { + $params['id'] = $id; } - $response = $this->oAuthGet($url); + if (!empty($user_id)) { + $params['user_id'] = $user_id; + } + + if (!empty($screen_name)) { + $params['screen_name'] = $screen_name; + } + + if (!empty($page)) { + $params['page'] = $page; + } + + $response = $this->oAuthGet($url, $params); $ids = json_decode($response); return $ids; } From 2de6d0b03d0a587db2fac92a23c38a5a4fc93056 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 13:16:04 -0400 Subject: [PATCH 69/94] add Twitter-approved links to Twitter statuses --- .../daemons/twitterstatusfetcher.php | 85 +++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e897cc6ea0..45cb178556 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -331,11 +331,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon $notice->is_local = Notice::GATEWAY; - $notice->content = common_shorten_links($status->text); - $notice->rendered = common_render_content( - $notice->content, - $notice - ); + $notice->content = html_entity_decode($status->text); + $notice->rendered = $this->linkify($status); if (Event::handle('StartNoticeSave', array(&$notice))) { @@ -701,6 +698,84 @@ class TwitterStatusFetcher extends ParallelizingDaemon return true; } + + const URL = 1; + const HASHTAG = 2; + const MENTION = 3; + + function linkify($status) + { + $text = $status->text; + + if (empty($status->entities)) { + return $text; + } + + // Move all the entities into order so we can + // replace them in reverse order and thus + // not mess up their indices + + $toReplace = array(); + + if (!empty($status->entities->urls)) { + foreach ($status->entities->urls as $url) { + $toReplace[$url->indices[0]] = array(self::URL, $url); + } + } + + if (!empty($status->entities->hashtags)) { + foreach ($status->entities->hashtags as $hashtag) { + $toReplace[$hashtag->indices[0]] = array(self::HASHTAG, $hashtag); + } + } + + if (!empty($status->entities->user_mentions)) { + foreach ($status->entities->user_mentions as $mention) { + $toReplace[$mention->indices[0]] = array(self::MENTION, $mention); + } + } + + // sort in reverse order by key + + krsort($toReplace); + + foreach ($toReplace as $part) { + list($type, $object) = $part; + switch($type) { + case self::URL: + $linkText = $this->makeUrlLink($object); + break; + case self::HASHTAG: + $linkText = $this->makeHashtagLink($object); + break; + case self::MENTION: + $linkText = $this->makeMentionLink($object); + break; + default: + continue; + } + $text = substr_replace($text, + $linkText, + $object->indices[0], + $object->indices[1] - $object->indices[0]); + } + return $text; + } + + function makeUrlLink($object) + { + return "{$object->url}"; + } + + function makeHashtagLink($object) + { + return "{$object->text}"; + } + + function makeMentionLink($object) + { + return "{$object->screen_name}"; + } } $id = null; From c2c6acbfd25410f73a6bc83e8167f724c31ef22f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 5 Sep 2010 13:19:49 -0400 Subject: [PATCH 70/94] add back in # and @ for links --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 45cb178556..b310b8f36a 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -769,12 +769,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon function makeHashtagLink($object) { - return "{$object->text}"; + return "#{$object->text}"; } function makeMentionLink($object) { - return "{$object->screen_name}"; + return "@{$object->screen_name}"; } } From a46ba0b54842ae304a642030e006ead5dbe6361f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 6 Sep 2010 08:54:04 -0400 Subject: [PATCH 71/94] save Twitter mentions as StatusNet replies --- .../daemons/twitterstatusfetcher.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index b310b8f36a..e092cd1dd7 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -348,6 +348,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon } Notice_to_status::saveNew($notice->id, $status->id); + + $this->saveStatusMentions($notice, $status); + $notice->blowOnInsert(); return $notice; @@ -776,6 +779,29 @@ class TwitterStatusFetcher extends ParallelizingDaemon { return "@{$object->screen_name}"; } + + function saveStatusMentions($notice, $status) + { + $mentions = array(); + + if (empty($status->entities) || empty($status->entities->user_mentions)) { + return; + } + + foreach ($status->entities->user_mentions as $mention) { + $flink = Foreign_link::getByForeignID($mention->id, TWITTER_SERVICE); + if (!empty($flink)) { + $user = User::staticGet('id', $flink->user_id); + if (!empty($user)) { + $reply = new Reply(); + $reply->notice_id = $notice->id; + $reply->profile_id = $user->id; + common_log(LOG_INFO, __METHOD__ . ": saving reply: notice {$notice->id} to profile {$user->id}"); + $id = $reply->insert(); + } + } + } + } } $id = null; From 86b6d7b722e99c409b966dd7d7ea4807bac070c6 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 04:17:36 -0400 Subject: [PATCH 72/94] save synch status for different timelines --- plugins/TwitterBridge/TwitterBridgePlugin.php | 14 ++ .../TwitterBridge/Twitter_synch_status.php | 183 ++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 plugins/TwitterBridge/Twitter_synch_status.php diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index bad6a3941b..2ac06746de 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -208,6 +208,7 @@ class TwitterBridgePlugin extends Plugin include_once $dir . '/' . strtolower($cls) . '.php'; return false; case 'Notice_to_status': + case 'Twitter_synch_status': include_once $dir . '/' . $cls . '.php'; return false; default: @@ -378,6 +379,19 @@ class TwitterBridgePlugin extends Plugin { $schema = Schema::get(); + // For saving the last-synched status of various timelines + // home_timeline, messages (in), messages (out), ... + + $schema->ensureTable('twitter_synch_status', + array(new ColumnDef('user_id', 'integer', null, + false, 'PRI'), + new ColumnDef('timeline', 'varchar', 255, + false, 'PRI'), + new ColumnDef('last_id', 'bigint', null, // XXX: check for PostgreSQL + false), + new ColumnDef('created', 'datetime', null, + false))); + // For storing user-submitted flags on profiles $schema->ensureTable('notice_to_status', diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php new file mode 100644 index 0000000000..69b8a780ad --- /dev/null +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -0,0 +1,183 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Store various timeline data + * + * We don't want to keep re-fetching the same statuses and direct messages from Twitter. + * So, we store the last ID we see from a timeline, and store it. Next time + * around, we use that ID in the since_id parameter. + * + * @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 Twitter_synch_status extends Memcached_DataObject +{ + public $__table = 'twitter_synch_status'; // table name + public $user_id; // int(4) primary_key not_null + public $timeline; // varchar(255) primary_key not_null + public $last_id; // bigint not_null + public $created; // datetime not_null + + /** + * Get an instance by key + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return User_greeting_count object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Twitter_synch_status', $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('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'timeline' => DB_DATAOBJECT_STRING + DB_DATAOBJECT_NOTNULL, + 'last_id' => DB_DATAOBJECT_INT + 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, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('user_id' => 'K', + 'timeline' => 'K'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * If a table has a single integer column as its primary key, DB_DataObject + * assumes that the column is auto-incrementing and makes a sequence table + * to do this incrementation. Since we don't need this for our class, we + * overload this method and return the magic formula that DB_DataObject needs. + * + * @return array magic three-false array that stops auto-incrementing. + */ + + function sequenceKey() + { + return array(false, false, false); + } + + static function getLastId($user_id, $timeline) + { + $tss = self::staticGet(array('user_id' => $user_id, + 'timeline' => $timeline)); + + if (empty($tss)) { + return null; + } else { + return $tss->last_id; + } + } + + static function setLastId($user_id, $timeline, $last_id) + { + $tss = self::staticGet(array('user_id' => $user_id, + 'timeline' => $timeline)); + + if (empty($tss)) { + + $tss = new Twitter_synch_status(); + + $tss->user_id = $user_id; + $tss->timeline = $timeline; + $tss->last_id = $last_id; + + $tss->insert(); + + return true; + + } else { + + $orig = clone($tss); + + $tss->last_id = $last_id; + + $tss->update(); + + return true; + } + } +} From e53e152d6f2b310d7206b640cb3840ec5531aa86 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 04:22:55 -0400 Subject: [PATCH 73/94] use and save since_id parameter for home_timeline --- .../TwitterBridge/daemons/twitterstatusfetcher.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index e092cd1dd7..7c80d2e5d5 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -103,7 +103,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon function getObjects() { global $_DB_DATAOBJECT; - $flink = new Foreign_link(); $conn = &$flink->getDatabaseConnection(); @@ -183,8 +182,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon $timeline = null; + $lastId = Twitter_synch_status::getLastId($flink->user_id, 'home_timeline'); + try { - $timeline = $client->statusesHomeTimeline(); + $timeline = $client->statusesHomeTimeline($lastId); } catch (Exception $e) { common_log(LOG_WARNING, $this->name() . ' - Twitter client unable to get friends timeline for user ' . @@ -199,10 +200,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon common_debug(LOG_INFO, $this->name() . ' - Retrieved ' . sizeof($timeline) . ' statuses from Twitter.'); + $lastSeenId = null; + // Reverse to preserve order foreach (array_reverse($timeline) as $status) { + $lastSeenId = $status->id; + // Hacktastic: filter out stuff coming from this StatusNet $source = mb_strtolower(common_config('integration', 'source')); @@ -227,6 +232,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon } } + if (!empty($lastSeenId)) { + Twitter_synch_status::setLastId($flink->user_id, 'home_timeline', $lastSeenId); + } + // Okay, record the time we synced with Twitter for posterity $flink->last_noticesync = common_sql_now(); From 49af35b44d7f42897d3a7b73a40a51bc3e933a1b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 04:32:01 -0400 Subject: [PATCH 74/94] add modified column to twitter_synch_status --- plugins/TwitterBridge/TwitterBridgePlugin.php | 2 ++ plugins/TwitterBridge/Twitter_synch_status.php | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 2ac06746de..d3efb074bd 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -390,6 +390,8 @@ class TwitterBridgePlugin extends Plugin new ColumnDef('last_id', 'bigint', null, // XXX: check for PostgreSQL false), new ColumnDef('created', 'datetime', null, + false), + new ColumnDef('modified', 'datetime', null, false))); // For storing user-submitted flags on profiles diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php index 69b8a780ad..bcc00e6484 100644 --- a/plugins/TwitterBridge/Twitter_synch_status.php +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -56,6 +56,7 @@ class Twitter_synch_status extends Memcached_DataObject public $timeline; // varchar(255) primary_key not_null public $last_id; // bigint not_null public $created; // datetime not_null + public $modified; // datetime not_null /** * Get an instance by key @@ -87,6 +88,7 @@ class Twitter_synch_status extends Memcached_DataObject 'timeline' => DB_DATAOBJECT_STRING + DB_DATAOBJECT_NOTNULL, 'last_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL + 'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL ); } @@ -164,6 +166,8 @@ class Twitter_synch_status extends Memcached_DataObject $tss->user_id = $user_id; $tss->timeline = $timeline; $tss->last_id = $last_id; + $tss->created = common_sql_now(); + $tss->modified = $tss->created; $tss->insert(); @@ -173,7 +177,8 @@ class Twitter_synch_status extends Memcached_DataObject $orig = clone($tss); - $tss->last_id = $last_id; + $tss->last_id = $last_id; + $tss->modified = common_sql_now(); $tss->update(); From 98e9fa19c8d7c5dd59463b4b724e9fcd85a65b0b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 04:33:28 -0400 Subject: [PATCH 75/94] Missing comma in column list in Twitter_synch_status --- plugins/TwitterBridge/Twitter_synch_status.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php index bcc00e6484..045a646066 100644 --- a/plugins/TwitterBridge/Twitter_synch_status.php +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -87,7 +87,7 @@ class Twitter_synch_status extends Memcached_DataObject return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, 'timeline' => DB_DATAOBJECT_STRING + DB_DATAOBJECT_NOTNULL, 'last_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, - 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, 'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL ); } From 8facfdcfee4e4ccd00de28c11bfc35f8355e5f20 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 04:35:14 -0400 Subject: [PATCH 76/94] Correct DB_DataObject constant in Twitter_synch_status --- plugins/TwitterBridge/Twitter_synch_status.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php index 045a646066..8ac2bdc571 100644 --- a/plugins/TwitterBridge/Twitter_synch_status.php +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -85,7 +85,7 @@ class Twitter_synch_status extends Memcached_DataObject function table() { return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, - 'timeline' => DB_DATAOBJECT_STRING + DB_DATAOBJECT_NOTNULL, + 'timeline' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, 'last_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, 'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL From 21bea141402370021f72bc42c65b8d6ea870c913 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 04:42:23 -0400 Subject: [PATCH 77/94] remove data dump of retrieved statuses --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 7c80d2e5d5..c5c2752212 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -267,8 +267,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon return Notice::staticGet('id', $n2s->notice_id); } - common_debug("Saving status {$status->id} with data " . print_r($status, true)); - // If it's a retweet, save it as a repeat! if (!empty($status->retweeted_status)) { From 9793e4ceb42f484da7faa06fc822c7973eba6784 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 10:53:11 -0400 Subject: [PATCH 78/94] Store foreign ID for synch info, not user ID --- plugins/TwitterBridge/TwitterBridgePlugin.php | 2 +- .../TwitterBridge/Twitter_synch_status.php | 26 +++++++++---------- .../daemons/twitterstatusfetcher.php | 12 ++++----- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index d3efb074bd..21a10775dd 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -383,7 +383,7 @@ class TwitterBridgePlugin extends Plugin // home_timeline, messages (in), messages (out), ... $schema->ensureTable('twitter_synch_status', - array(new ColumnDef('user_id', 'integer', null, + array(new ColumnDef('foreign_id', 'bigint', null, false, 'PRI'), new ColumnDef('timeline', 'varchar', 255, false, 'PRI'), diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php index 8ac2bdc571..1b3ad48fea 100644 --- a/plugins/TwitterBridge/Twitter_synch_status.php +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -52,7 +52,7 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; class Twitter_synch_status extends Memcached_DataObject { public $__table = 'twitter_synch_status'; // table name - public $user_id; // int(4) primary_key not_null + public $foreign_id; // int(4) primary_key not_null public $timeline; // varchar(255) primary_key not_null public $last_id; // bigint not_null public $created; // datetime not_null @@ -61,7 +61,7 @@ class Twitter_synch_status extends Memcached_DataObject /** * Get an instance by key * - * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param string $k Key to use to lookup (usually 'foreign_id' for this class) * @param mixed $v Value to lookup * * @return User_greeting_count object found, or null for no hits @@ -84,7 +84,7 @@ class Twitter_synch_status extends Memcached_DataObject function table() { - return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + return array('foreign_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, 'timeline' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, 'last_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, @@ -122,7 +122,7 @@ class Twitter_synch_status extends Memcached_DataObject function keyTypes() { - return array('user_id' => 'K', + return array('foreign_id' => 'K', 'timeline' => 'K'); } @@ -142,9 +142,9 @@ class Twitter_synch_status extends Memcached_DataObject return array(false, false, false); } - static function getLastId($user_id, $timeline) + static function getLastId($foreign_id, $timeline) { - $tss = self::staticGet(array('user_id' => $user_id, + $tss = self::staticGet(array('foreign_id' => $foreign_id, 'timeline' => $timeline)); if (empty($tss)) { @@ -154,20 +154,20 @@ class Twitter_synch_status extends Memcached_DataObject } } - static function setLastId($user_id, $timeline, $last_id) + static function setLastId($foreign_id, $timeline, $last_id) { - $tss = self::staticGet(array('user_id' => $user_id, + $tss = self::staticGet(array('foreign_id' => $foreign_id, 'timeline' => $timeline)); if (empty($tss)) { $tss = new Twitter_synch_status(); - $tss->user_id = $user_id; - $tss->timeline = $timeline; - $tss->last_id = $last_id; - $tss->created = common_sql_now(); - $tss->modified = $tss->created; + $tss->foreign_id = $foreign_id; + $tss->timeline = $timeline; + $tss->last_id = $last_id; + $tss->created = common_sql_now(); + $tss->modified = $tss->created; $tss->insert(); diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index c5c2752212..79c9155035 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -182,7 +182,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $timeline = null; - $lastId = Twitter_synch_status::getLastId($flink->user_id, 'home_timeline'); + $lastId = Twitter_synch_status::getLastId($flink->foreign_id, 'home_timeline'); try { $timeline = $client->statusesHomeTimeline($lastId); @@ -200,8 +200,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon common_debug(LOG_INFO, $this->name() . ' - Retrieved ' . sizeof($timeline) . ' statuses from Twitter.'); - $lastSeenId = null; - // Reverse to preserve order foreach (array_reverse($timeline) as $status) { @@ -232,9 +230,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon } } - if (!empty($lastSeenId)) { - Twitter_synch_status::setLastId($flink->user_id, 'home_timeline', $lastSeenId); - } + assert(!empty($timeline)); // checked above + + // First status is last in time + + Twitter_synch_status::setLastId($flink->foreign_id, 'home_timeline', $timeline[0]->id); // Okay, record the time we synced with Twitter for posterity From d37f0da077d3fb4d5ff78d1e8a7ca6d45cfdc425 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 11:53:26 -0400 Subject: [PATCH 79/94] debug statements for setting/getting last id --- .../daemons/twitterstatusfetcher.php | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 79c9155035..96a517732a 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -166,10 +166,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon common_debug($this->name() . ' - Trying to get timeline for Twitter user ' . $flink->foreign_id); - // XXX: Biggest remaining issue - How do we know at which status - // to start importing? How many statuses? Right now I'm going - // with the default last 20. - $client = null; if (TwitterOAuthClient::isPackedToken($flink->credentials)) { @@ -184,6 +180,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon $lastId = Twitter_synch_status::getLastId($flink->foreign_id, 'home_timeline'); + common_debug("Got lastId value '{$lastId}' for foreign id '{$flink->foreign_id}' and timeline 'home_timeline'"); + try { $timeline = $client->statusesHomeTimeline($lastId); } catch (Exception $e) { @@ -204,8 +202,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon foreach (array_reverse($timeline) as $status) { - $lastSeenId = $status->id; - // Hacktastic: filter out stuff coming from this StatusNet $source = mb_strtolower(common_config('integration', 'source')); @@ -230,11 +226,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon } } - assert(!empty($timeline)); // checked above - - // First status is last in time - - Twitter_synch_status::setLastId($flink->foreign_id, 'home_timeline', $timeline[0]->id); + if (!empty($timeline)) { + Twitter_synch_status::setLastId($flink->foreign_id, 'home_timeline', $timeline[0]->id); + common_debug("Set lastId value '{$timeline[0]->id}' for foreign id '{$flink->foreign_id}' and timeline 'home_timeline'"); + } // Okay, record the time we synced with Twitter for posterity From b6440a206d943f063182f6d766ac425b4887faed Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 15:29:36 -0400 Subject: [PATCH 80/94] staticGet -> pkeyGet in Twitter_synch_status --- plugins/TwitterBridge/Twitter_synch_status.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php index 1b3ad48fea..2be3f81400 100644 --- a/plugins/TwitterBridge/Twitter_synch_status.php +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -144,8 +144,8 @@ class Twitter_synch_status extends Memcached_DataObject static function getLastId($foreign_id, $timeline) { - $tss = self::staticGet(array('foreign_id' => $foreign_id, - 'timeline' => $timeline)); + $tss = self::pkeyGet(array('foreign_id' => $foreign_id, + 'timeline' => $timeline)); if (empty($tss)) { return null; @@ -156,8 +156,8 @@ class Twitter_synch_status extends Memcached_DataObject static function setLastId($foreign_id, $timeline, $last_id) { - $tss = self::staticGet(array('foreign_id' => $foreign_id, - 'timeline' => $timeline)); + $tss = self::pkeyGet(array('foreign_id' => $foreign_id, + 'timeline' => $timeline)); if (empty($tss)) { From 2d18963b4c2892ac2adbeb8b98974d63d62bfd1d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 15:34:10 -0400 Subject: [PATCH 81/94] Fix pkeyget call Fix the pkeyget call in Twitter_synch_Status --- plugins/TwitterBridge/Twitter_synch_status.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php index 2be3f81400..2a5f1fd605 100644 --- a/plugins/TwitterBridge/Twitter_synch_status.php +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -64,13 +64,27 @@ class Twitter_synch_status extends Memcached_DataObject * @param string $k Key to use to lookup (usually 'foreign_id' for this class) * @param mixed $v Value to lookup * - * @return User_greeting_count object found, or null for no hits + * @return Twitter_synch_status object found, or null for no hits * */ function staticGet($k, $v=null) { - return Memcached_DataObject::staticGet('Twitter_synch_status', $k, $v); + throw new Exception("Use pkeyGet() for this class."); + } + + /** + * Get an instance by compound primary key + * + * @param array $kv key-value pair array + * + * @return Twitter_synch_status object found, or null for no hits + * + */ + + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Twitter_synch_status', $kv); } /** From 5c98dfd58cabe2aa4b64e912f830cfbcd0fcecc1 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 7 Sep 2010 15:54:06 -0400 Subject: [PATCH 82/94] text substitution is Unicode-aware for twitterstatusfetcher --- plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 96a517732a..f1305696b3 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -759,10 +759,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon default: continue; } - $text = substr_replace($text, - $linkText, - $object->indices[0], - $object->indices[1] - $object->indices[0]); + $text = mb_substr($text, 0, $object->indices[0]) . $linkText . mb_substr($text, $object->indices[1]); } return $text; } From 961aba68fc7a03e784591b4f3df35ee36196e631 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 7 Sep 2010 16:15:32 -0700 Subject: [PATCH 83/94] Quick fix for #2659: unable to login with Livejournal OpenID The Net::OpenID::Server perl module that LJ uses appears to be very picky about input, and rejects most request types unless the data comes in as GET parameters (apparently following OpenID 1.1 rules, rather than OpenID 2.0 rules which permit any request to be POSTed but requires that if so, the data must all be in the POST body). Apparently something got updated on LJ at some point that's either added that behavior or (more likely) added the OpenID 2.0 namespace info to discovery, which tells the Janrain-based OpenID libraries that they should go ahead and do POST requests instead of redirects to GET requests... thus breaking everything. ;) GET should be just fine for both 1.1 and 2.0 though, and also saves having to sit through that lame autosubmit page. Switched the authentication submission from checking whether it should redirect to GET or do a form POST, to simply always doing the redirect to GET. Tested against providers: * LiveJournal * Google * LaunchPad * identi.ca --- plugins/OpenID/openid.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 4ce350f773..1b93163e5f 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -182,7 +182,19 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $trust_root = common_root_url(true); $process_url = common_local_url($returnto); - if ($auth_request->shouldSendRedirect()) { + // Net::OpenID::Server as used on LiveJournal appears to incorrectly + // reject POST requests for data submissions that OpenID 1.1 specs + // as GET, although 2.0 allows them: + // https://rt.cpan.org/Public/Bug/Display.html?id=42202 + // + // Our OpenID libraries would have switched in the redirect automatically + // if it were detecting 1.1 compatibility mode, however the server is + // advertising itself as 2.0-compatible, so we got switched to the POST. + // + // Since the GET should always work anyway, we'll just take out the + // autosubmitter for now. + // + //if ($auth_request->shouldSendRedirect()) { $redirect_url = $auth_request->redirectURL($trust_root, $process_url, $immediate); @@ -194,6 +206,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) } else { common_redirect($redirect_url, 303); } + /* } else { // Generate form markup and render it. $form_id = 'openid_message'; @@ -219,6 +232,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $action->handle(array('action' => 'autosubmit')); } } + */ } # Half-assed attempt at a module-private function From d470c007fc18c9112804155e495ff295cd60ef88 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 7 Sep 2010 16:15:32 -0700 Subject: [PATCH 84/94] Quick fix for #2659: unable to login with Livejournal OpenID The Net::OpenID::Server perl module that LJ uses appears to be very picky about input, and rejects most request types unless the data comes in as GET parameters (apparently following OpenID 1.1 rules, rather than OpenID 2.0 rules which permit any request to be POSTed but requires that if so, the data must all be in the POST body). Apparently something got updated on LJ at some point that's either added that behavior or (more likely) added the OpenID 2.0 namespace info to discovery, which tells the Janrain-based OpenID libraries that they should go ahead and do POST requests instead of redirects to GET requests... thus breaking everything. ;) GET should be just fine for both 1.1 and 2.0 though, and also saves having to sit through that lame autosubmit page. Switched the authentication submission from checking whether it should redirect to GET or do a form POST, to simply always doing the redirect to GET. Tested against providers: * LiveJournal * Google * LaunchPad * identi.ca --- plugins/OpenID/openid.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 4ce350f773..1b93163e5f 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -182,7 +182,19 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $trust_root = common_root_url(true); $process_url = common_local_url($returnto); - if ($auth_request->shouldSendRedirect()) { + // Net::OpenID::Server as used on LiveJournal appears to incorrectly + // reject POST requests for data submissions that OpenID 1.1 specs + // as GET, although 2.0 allows them: + // https://rt.cpan.org/Public/Bug/Display.html?id=42202 + // + // Our OpenID libraries would have switched in the redirect automatically + // if it were detecting 1.1 compatibility mode, however the server is + // advertising itself as 2.0-compatible, so we got switched to the POST. + // + // Since the GET should always work anyway, we'll just take out the + // autosubmitter for now. + // + //if ($auth_request->shouldSendRedirect()) { $redirect_url = $auth_request->redirectURL($trust_root, $process_url, $immediate); @@ -194,6 +206,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) } else { common_redirect($redirect_url, 303); } + /* } else { // Generate form markup and render it. $form_id = 'openid_message'; @@ -219,6 +232,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $action->handle(array('action' => 'autosubmit')); } } + */ } # Half-assed attempt at a module-private function From f2574fdd0122d484724dda7efdfbb8cb1a668939 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 7 Sep 2010 16:49:05 -0700 Subject: [PATCH 85/94] Fix for #2663: fix for original/96px-size avatars getting saved with bad permissions, causing failure to see images if background queues are different user from web server. The original-size file is now forced to 0644 (all-readable), which should help. Not sure this is 100% ideal, but it's better than 0600! (The other sizes were being created in other code and had sane read perms already.) Watch out for similar issues in Twitter bridge etc; avatar import code should get cleaned up and consolidated. --- plugins/OStatus/classes/Ostatus_profile.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 6a0fd1f3bd..19fe5169b4 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -1065,6 +1065,14 @@ class Ostatus_profile extends Memcached_DataObject null, common_timestamp()); rename($temp_filename, Avatar::path($filename)); + // @fixme hardcoded chmod is lame, but seems to be necessary to + // keep from accidentally saving images from command-line (queues) + // that can't be read from web server, which causes hard-to-notice + // problems later on: + // + // http://status.net/open-source/issues/2663 + chmod(Avatar::path($filename), 0644); + $self->setOriginal($filename); $orig = clone($this); From e6c84dec1936a258be6f4d24a4d2e458ac6bbaff Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 8 Sep 2010 15:41:39 -0400 Subject: [PATCH 86/94] Pragma was accidentally triggering some underwear-catapult-connected hardware --- lib/action.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/action.php b/lib/action.php index a2638993f7..e503975147 100644 --- a/lib/action.php +++ b/lib/action.php @@ -1007,7 +1007,7 @@ class Action extends HTMLOutputter // lawsuit if ($this->isCacheable()) { header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', 0 ) . ' GMT' ); header( "Cache-Control: private, must-revalidate, max-age=0" ); - header( "Pragma: underwear-catapult"); + header( "Pragma:"); } } From e40ed1fd56bc02dbae20e0839c507911bc27cf4c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 8 Sep 2010 16:10:07 -0400 Subject: [PATCH 87/94] move notice_to_status initialization code to run-once script --- plugins/TwitterBridge/README | 8 +++ plugins/TwitterBridge/TwitterBridgePlugin.php | 21 -------- .../scripts/initialize_notice_to_status.php | 51 +++++++++++++++++++ 3 files changed, 59 insertions(+), 21 deletions(-) create mode 100644 plugins/TwitterBridge/scripts/initialize_notice_to_status.php diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index d7dfe20de5..10ea35b2b6 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -62,6 +62,14 @@ unless you configure it with a consumer key and secret.) $config['twitter']['global_consumer_key'] = 'YOUR_CONSUMER_KEY'; $config['twitter']['global_consumer_secret'] = 'YOUR_CONSUMER_SECRET'; +Upgrade +------- + +If you've used the Twitter bridge plugin prior to version 0.9.5, +you'll need to run the new scripts/initialize_notice_to_status.php +script to initialize the new notice-to-status mapping file, which +greatly improves the integration between StatusNet and Twitter. + Administration panel -------------------- diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 21a10775dd..e641c10091 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -404,27 +404,6 @@ class TwitterBridgePlugin extends Plugin new ColumnDef('created', 'datetime', null, false))); - // We update any notices that may have come in from - // Twitter that we don't have a status_id for. Note that - // this won't catch notices that originated at this StatusNet site. - - $n = new Notice(); - - $n->query('SELECT notice.id, notice.uri ' . - 'FROM notice LEFT JOIN notice_to_status ' . - 'ON notice.id = notice_to_status.notice_id ' . - 'WHERE notice.source = "twitter"' . - 'AND notice_to_status.status_id IS NULL'); - - while ($n->fetch()) { - if (preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $n->uri, $match)) { - - $status_id = $match[1]; - - Notice_to_status::saveNew($n->id, $status_id); - } - } - return true; } diff --git a/plugins/TwitterBridge/scripts/initialize_notice_to_status.php b/plugins/TwitterBridge/scripts/initialize_notice_to_status.php new file mode 100644 index 0000000000..d1acfd53fa --- /dev/null +++ b/plugins/TwitterBridge/scripts/initialize_notice_to_status.php @@ -0,0 +1,51 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$helptext = <<query('SELECT notice.id, notice.uri ' . + 'FROM notice LEFT JOIN notice_to_status ' . + 'ON notice.id = notice_to_status.notice_id ' . + 'WHERE notice.source = "twitter"' . + 'AND notice_to_status.status_id IS NULL'); + +while ($n->fetch()) { + if (preg_match('#^http://twitter.com/[\w_.]+/status/(\d+)$#', $n->uri, $match)) { + $status_id = $match[1]; + Notice_to_status::saveNew($n->id, $status_id); + } +} From 255e96d3b5cd86a1e7b4f759e4ab3088b195f005 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 8 Sep 2010 16:37:12 -0400 Subject: [PATCH 88/94] add a hook for when someone deletes their own notice --- EVENTS.txt | 10 +++++++++- actions/apistatusesdestroy.php | 8 ++++---- actions/deletenotice.php | 5 ++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 65e2c3ce03..fd2bdb9d56 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1077,4 +1077,12 @@ StartShowPageTitle: when beginning to show the page title

- $action: action being shown EndShowPageTitle: when done showing the page title

-- $action: action being shown \ No newline at end of file +- $action: action being shown + +StartDeleteOwnNotice: when a user starts to delete their own notice +- $user: the user doing the delete +- $notice: the notice being deleted + +EndDeleteOwnNotice: when a user has deleted their own notice +- $user: the user doing the delete +- $notice: the notice being deleted diff --git a/actions/apistatusesdestroy.php b/actions/apistatusesdestroy.php index 0dfeb48122..485eae66ea 100644 --- a/actions/apistatusesdestroy.php +++ b/actions/apistatusesdestroy.php @@ -125,10 +125,10 @@ class ApiStatusesDestroyAction extends ApiAuthAction } if ($this->user->id == $this->notice->profile_id) { - $replies = new Reply; - $replies->get('notice_id', $this->notice_id); - $replies->delete(); - $this->notice->delete(); + if (Event::handle('StartDeleteOwnNotice', array($this->user, $this->notice))) { + $this->notice->delete(); + Event::handle('EndDeleteOwnNotice', array($this->user, $this->notice)); + } $this->showNotice(); } else { $this->clientError( diff --git a/actions/deletenotice.php b/actions/deletenotice.php index f8010a814a..68c43040b0 100644 --- a/actions/deletenotice.php +++ b/actions/deletenotice.php @@ -172,7 +172,10 @@ class DeletenoticeAction extends Action } if ($this->arg('yes')) { - $this->notice->delete(); + if (Event::handle('StartDeleteOwnNotice', array($this->user, $this->notice))) { + $this->notice->delete(); + Event::handle('EndDeleteOwnNotice', array($this->user, $this->notice)); + } } $url = common_get_returnto(); From 42f1ec85eaeaa7d74e823bebef4c8c06e7e159c3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 8 Sep 2010 16:40:37 -0400 Subject: [PATCH 89/94] change the event we use for deleting a linked status on Twitter --- plugins/TwitterBridge/TwitterBridgePlugin.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index e641c10091..34b82ef83a 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -408,26 +408,21 @@ class TwitterBridgePlugin extends Plugin } /** - * If a notice gets deleted, remove the Notice_to_status mapping + * If a notice gets deleted, remove the Notice_to_status mapping and + * delete the status on Twitter. * + * @param User $user The user doing the deleting * @param Notice $notice The notice getting deleted * * @return boolean hook value */ - function onNoticeDeleteRelated($notice) + function onStartDeleteOwnNotice(User $user, Notice $notice) { $n2s = Notice_to_status::staticGet('notice_id', $notice->id); if (!empty($n2s)) { - $user = common_current_user(); - - if (empty($user) || $user->id != $notice->profile_id) { - $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since it doesn't seem to be by the author."); - return true; - } - $flink = Foreign_link::getByUserID($notice->profile_id, TWITTER_SERVICE); // twitter service From 2efe353e6b9bf5ce22e7297f300fb15dbe96e795 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 8 Sep 2010 15:06:03 -0700 Subject: [PATCH 90/94] Fix for mismatched final newline in a message (also fixed upstream on translatewiki.net) --- locale/da/LC_MESSAGES/statusnet.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/locale/da/LC_MESSAGES/statusnet.po b/locale/da/LC_MESSAGES/statusnet.po index 43abd798fe..8061c776e9 100644 --- a/locale/da/LC_MESSAGES/statusnet.po +++ b/locale/da/LC_MESSAGES/statusnet.po @@ -2279,8 +2279,7 @@ msgstr "" "tid. \n" "\n" "Med venlig hilsen,\n" -"%2$s \n" -" " +"%2$s\n" #: actions/login.php:148 msgid "Incorrect username or password." From cb1d5049b83fe7c6576f7fa7ff2801183b0aed12 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 8 Sep 2010 15:35:23 -0700 Subject: [PATCH 91/94] Bump version to 0.9.5 --- README | 4 ++-- lib/common.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index 593a5c0b33..d917cdd80b 100644 --- a/README +++ b/README @@ -2,8 +2,8 @@ README ------ -StatusNet 0.9.4 "Orange Crush" -16 August 2010 +StatusNet 0.9.5 "What's The Frequency, Kenneth?" +10 September 2010 This is the README file for StatusNet, the Open Source microblogging platform. It includes installation instructions, descriptions of diff --git a/lib/common.php b/lib/common.php index 097f19268d..e08d530f0f 100644 --- a/lib/common.php +++ b/lib/common.php @@ -22,10 +22,10 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } //exit with 200 response, if this is checking fancy from the installer if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; } -define('STATUSNET_VERSION', '0.9.4'); +define('STATUSNET_VERSION', '0.9.5'); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility -define('STATUSNET_CODENAME', 'Orange Crush'); +define('STATUSNET_CODENAME', 'What\'s The Frequency, Kenneth?'); define('AVATAR_PROFILE_SIZE', 96); define('AVATAR_STREAM_SIZE', 48); From 452b9aaed5f10a1d0de0e98f0cb0312a824ae784 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Thu, 9 Sep 2010 00:45:41 +0200 Subject: [PATCH 92/94] Localisation updates from http://translatewiki.net --- locale/af/LC_MESSAGES/statusnet.po | 22 +- locale/ar/LC_MESSAGES/statusnet.po | 14 +- locale/arz/LC_MESSAGES/statusnet.po | 14 +- locale/bg/LC_MESSAGES/statusnet.po | 14 +- locale/br/LC_MESSAGES/statusnet.po | 12 +- locale/ca/LC_MESSAGES/statusnet.po | 68 +- locale/cs/LC_MESSAGES/statusnet.po | 3202 +++++++++++++++++++------ locale/da/LC_MESSAGES/statusnet.po | 382 +-- locale/de/LC_MESSAGES/statusnet.po | 18 +- locale/el/LC_MESSAGES/statusnet.po | 16 +- locale/en_GB/LC_MESSAGES/statusnet.po | 16 +- locale/eo/LC_MESSAGES/statusnet.po | 16 +- locale/es/LC_MESSAGES/statusnet.po | 79 +- locale/fa/LC_MESSAGES/statusnet.po | 16 +- locale/fi/LC_MESSAGES/statusnet.po | 14 +- locale/fr/LC_MESSAGES/statusnet.po | 19 +- locale/ga/LC_MESSAGES/statusnet.po | 14 +- locale/gl/LC_MESSAGES/statusnet.po | 18 +- locale/he/LC_MESSAGES/statusnet.po | 10 +- locale/hsb/LC_MESSAGES/statusnet.po | 16 +- locale/ia/LC_MESSAGES/statusnet.po | 17 +- locale/is/LC_MESSAGES/statusnet.po | 14 +- locale/it/LC_MESSAGES/statusnet.po | 16 +- locale/ja/LC_MESSAGES/statusnet.po | 14 +- locale/ka/LC_MESSAGES/statusnet.po | 1538 ++++++++++-- locale/ko/LC_MESSAGES/statusnet.po | 14 +- locale/mk/LC_MESSAGES/statusnet.po | 18 +- locale/nb/LC_MESSAGES/statusnet.po | 16 +- locale/nl/LC_MESSAGES/statusnet.po | 18 +- locale/nn/LC_MESSAGES/statusnet.po | 14 +- locale/pl/LC_MESSAGES/statusnet.po | 18 +- locale/pt/LC_MESSAGES/statusnet.po | 80 +- locale/pt_BR/LC_MESSAGES/statusnet.po | 18 +- locale/ru/LC_MESSAGES/statusnet.po | 18 +- locale/statusnet.pot | 12 +- locale/sv/LC_MESSAGES/statusnet.po | 16 +- locale/te/LC_MESSAGES/statusnet.po | 14 +- locale/tr/LC_MESSAGES/statusnet.po | 10 +- locale/uk/LC_MESSAGES/statusnet.po | 18 +- locale/vi/LC_MESSAGES/statusnet.po | 14 +- locale/zh_CN/LC_MESSAGES/statusnet.po | 22 +- locale/zh_TW/LC_MESSAGES/statusnet.po | 16 +- 42 files changed, 4525 insertions(+), 1390 deletions(-) diff --git a/locale/af/LC_MESSAGES/statusnet.po b/locale/af/LC_MESSAGES/statusnet.po index e7b29b7247..9824826018 100644 --- a/locale/af/LC_MESSAGES/statusnet.po +++ b/locale/af/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:08+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:04+0000\n" "Language-Team: Afrikaans\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: af\n" "X-Message-Group: out-statusnet\n" @@ -3391,6 +3391,10 @@ 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 "Kon nie die etikette stoor nie." + #: actions/tagrss.php:35 msgid "No such tag." msgstr "Onbekende etiket." @@ -3695,18 +3699,18 @@ msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4432,7 +4436,7 @@ msgstr "Vriende van vriende (FOAF)" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Eksporteer data" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -4520,7 +4524,7 @@ msgstr "" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Etikette in groepsaankondigings van %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -4963,7 +4967,7 @@ msgstr "" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Etikette in die aankondigings van %s" #: lib/plugin.php:115 msgid "Unknown" diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 5d7fe77186..36fb17ce4b 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:12+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:10+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -2205,8 +2205,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "ليس نسق بيانات مدعوم." @@ -4199,13 +4199,13 @@ msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 425dcbe481..415c703931 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:18+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:16+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -2000,8 +2000,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr " مش نظام بيانات مدعوم." @@ -3821,13 +3821,13 @@ msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 5860ef4cfc..d4eb9fe7f9 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:23+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33: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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -2272,8 +2272,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Неподдържан формат на данните" @@ -4281,13 +4281,13 @@ msgid "Problem saving notice." msgstr "Проблем при записване на бележката." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index a2f4ce6843..82213ba432 100644 --- a/locale/br/LC_MESSAGES/statusnet.po +++ b/locale/br/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:30+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:29+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: out-statusnet\n" @@ -4326,18 +4326,18 @@ msgid "Problem saving notice." msgstr "Ur gudenn 'zo bet pa veze enrollet an ali." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Ur gudenn 'zo bet pa veze enrollet boest degemer ar strollad." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 81506cf017..3233ac9a3d 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:36+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:34+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -388,7 +388,7 @@ msgstr "No podeu deixar de seguir-vos a un mateix." #: actions/apifriendshipsexists.php:91 msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +msgstr "Cal proporcionar dos identificadors d'usuari o screen_names." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -2532,6 +2532,8 @@ msgstr "" msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" +"Aquest usuari no permet que li cridin l'atenció o no ha confirmat encara " +"l'adreça electrònica." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2607,8 +2609,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Si us plau, només URL %s sobre HTTP pla." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Format de data no suportat." @@ -3759,6 +3761,15 @@ msgstr "" "No heu triat cap avís preferit encara. Feu clic al botó de preferit dels " "avisos que us agraden per arxivar-los per a més endavant i fer-los conèixer." +#: actions/showfavorites.php:208 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" +msgstr "" +"%s no ha afegit cap avís als seus preferits encara. Envieu quelcom " +"interessant que pugui afegir-hi :)" + #: actions/showfavorites.php:212 #, php-format msgid "" @@ -4978,18 +4989,18 @@ msgid "Problem saving notice." msgstr "S'ha produït un problema en desar l'avís." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "S'ha proporcionat un tipus incorrecte per a saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "S'ha produït un problema en desar la safata d'entrada del grup." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -5645,6 +5656,24 @@ msgstr "Comanda completada" msgid "Command failed" msgstr "Comanda fallida" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:84 lib/command.php:108 +msgid "Notice with that id does not exist." +msgstr "No existeix cap avís amb aquest identificador." + +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:101 lib/command.php:630 +msgid "User has no last notice." +msgstr "L'usuari no té un darrer avís." + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:130 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "No es pot trobar un usuari amb el sobrenom %s." + #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. #: lib/command.php:150 @@ -5662,6 +5691,13 @@ msgstr "Perdona, aquesta comanda no està implementada." msgid "It does not make a lot of sense to nudge yourself!" msgstr "No té massa sentit avisar-se a un mateix!" +#. TRANS: Message given having nudged another user. +#. TRANS: %s is the nickname of the user that was nudged. +#: lib/command.php:240 +#, php-format +msgid "Nudge sent to %s." +msgstr "S'ha cridat l'atenció a %s." + #. TRANS: User statistics text. #. TRANS: %1$s is the number of other user the user is subscribed to. #. TRANS: %2$s is the number of users that are subscribed to the user. @@ -5745,6 +5781,13 @@ msgstr "" msgid "Error sending direct message." msgstr "S'ha produït un error en enviar el missatge directe." +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:554 +#, php-format +msgid "Notice from %s repeated." +msgstr "S'ha repetit l'avís de %s." + #. TRANS: Error text shown when repeating a notice fails with an unknown reason. #: lib/command.php:557 msgid "Error repeating notice." @@ -5769,6 +5812,11 @@ msgstr "S'ha enviat la resposta a %s." msgid "Error saving notice." msgstr "S'ha produït un error en desar l'avís." +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:655 +msgid "Specify the name of the user to subscribe to." +msgstr "Especifiqueu el nom de l'usuari al qual voleu subscriure-us." + #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. #: lib/command.php:664 msgid "Can't subscribe to OMB profiles by command." @@ -7018,7 +7066,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "El tema conté uns noms d'extensió de fitxer que no són segurs." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 86cf82012f..218cc0368d 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -1,7 +1,7 @@ # Translation of StatusNet to Czech # +# Author@translatewiki.net: Koo6 # Author@translatewiki.net: Kuvaly -# Author@translatewiki.net: McDutchie # -- # This file is distributed under the same license as the StatusNet package. # @@ -9,52 +9,85 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:38+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:36+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\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 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +msgid "Access" +msgstr "Přístup" + #. TRANS: Page notice #: actions/accessadminpanel.php:67 msgid "Site access settings" -msgstr "Nastavené Profilu" +msgstr "Nastavení přístupu" + +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 +msgid "Registration" +msgstr "Registrace" #. TRANS: Checkbox instructions for admin setting "Private" #: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "Zakázat anonymím (nepřihlášeným) uživatelům prohlížet stránky" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 +msgctxt "LABEL" +msgid "Private" +msgstr "Soukromé" #. TRANS: Checkbox instructions for admin setting "Invite only" #: actions/accessadminpanel.php:174 msgid "Make registration invitation only." -msgstr "" +msgstr "Registrace jen na pozvánku" #. TRANS: Checkbox label for configuring site as invite only. #: actions/accessadminpanel.php:176 msgid "Invite only" -msgstr "" +msgstr "Pouze na pozvánku" #. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) #: actions/accessadminpanel.php:183 msgid "Disable new registrations." -msgstr "" +msgstr "Znemožnit nové registrace" #. TRANS: Checkbox label for disabling new user registrations. #: actions/accessadminpanel.php:185 msgid "Closed" -msgstr "" +msgstr "Uzavřené" + +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 +msgid "Save access settings" +msgstr "uložit nastavení přístupu" + +#. TRANS: Button label to save e-mail preferences. +#. TRANS: Button label to save IM preferences. +#. TRANS: Button label to save SMS preferences. +#. TRANS: Button label +#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 +#: actions/imsettings.php:184 actions/smssettings.php:209 +#: lib/applicationeditform.php:361 +msgctxt "BUTTON" +msgid "Save" +msgstr "Uložit" #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." -msgstr "Žádný takový uživatel." +msgstr "Tady žádná taková stránka není." #. TRANS: Error text shown when trying to send a direct message to a user that does not exist. #: actions/all.php:79 actions/allrss.php:68 @@ -79,7 +112,13 @@ msgstr "Žádný takový uživatel." #: actions/xrds.php:71 lib/command.php:498 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." -msgstr "Žádný takový uživatel." +msgstr "Uživatel neexistuje." + +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:90 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s a přátelé, strana %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname @@ -95,13 +134,19 @@ msgstr "%s a přátelé" #: actions/all.php:107 #, php-format msgid "Feed for friends of %s (RSS 1.0)" -msgstr "" +msgstr "Feed pro přátele uživatele: %s (RSS 1.0)" #. TRANS: %1$s is user nickname #: actions/all.php:116 #, php-format msgid "Feed for friends of %s (RSS 2.0)" -msgstr "" +msgstr "Feed pro přátele uživatele: %s (RSS 2.0)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:125 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "Feed pro přátele uživatele: %s (Atom)" #. TRANS: %1$s is user nickname #: actions/all.php:138 @@ -109,6 +154,8 @@ msgstr "" msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" +"Tohle je časová osa pro uživatele %s a jeho(její) přátele ale nikdo zatím " +"nic nenapsal." #: actions/all.php:143 #, php-format @@ -116,6 +163,8 @@ msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" +"Zkuste začít sledovat víc lidí, [připojte se ke skupině](%%action.groups%%) " +"nebo napište něco o sobě." #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 @@ -124,6 +173,8 @@ msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" +"Můžete se pokusit uživatele [%1$s postrčit](../%2$s) z jejich profilu nebo " +"[jim něco poslat](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format @@ -131,6 +182,13 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" +"Proč si [nezaregistrovat účet](%%%%action.register%%%%) a pak pošťouchnout " +"uživatele %s nebo jim poslat hlášku." + +#. TRANS: H1 text +#: actions/all.php:182 +msgid "You and friends" +msgstr "%s a přátelé" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. @@ -138,7 +196,32 @@ msgstr "" #: actions/apitimelinehome.php:122 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "Novinky od uživatele %1$s a přátel na %2$s!" + +#: actions/apiaccountratelimitstatus.php:72 +#: actions/apiaccountupdatedeliverydevice.php:94 +#: actions/apiaccountupdateprofile.php:97 +#: actions/apiaccountupdateprofilebackgroundimage.php:94 +#: actions/apiaccountupdateprofilecolors.php:118 +#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 +#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 +#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 +#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 +#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 +#: actions/apigroupshow.php:116 actions/apihelptest.php:88 +#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 +#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 +#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 +#: actions/apitimelineretweetedtome.php:121 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 +#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +msgid "API method not found." +msgstr " API metoda nebyla nalezena." #: actions/apiaccountupdatedeliverydevice.php:86 #: actions/apiaccountupdateprofile.php:89 @@ -152,13 +235,18 @@ msgstr "" #: actions/apigroupleave.php:92 actions/apimediaupload.php:67 #: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 msgid "This method requires a POST." -msgstr "" +msgstr "Tato metoda vyžaduje POST." #: actions/apiaccountupdatedeliverydevice.php:106 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" +"Je nutné zadat parametr s názvem 'device' s jednou z hodnot: sms, im, none." + +#: actions/apiaccountupdatedeliverydevice.php:133 +msgid "Could not update user." +msgstr "Nepodařilo se aktualizovat nastavení uživatele" #: actions/apiaccountupdateprofile.php:112 #: actions/apiaccountupdateprofilebackgroundimage.php:194 @@ -170,6 +258,10 @@ msgstr "" msgid "User has no profile." msgstr "Uživatel nemá profil." +#: actions/apiaccountupdateprofile.php:147 +msgid "Could not save profile." +msgstr "Nepodařilo se uložit profil." + #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 #: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 @@ -181,6 +273,8 @@ msgid "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." msgstr "" +"Server nebyl schopen zpracovat tolik POST dat (%s bytů) vzhledem k jeho " +"aktuální konfiguraci." #: actions/apiaccountupdateprofilebackgroundimage.php:136 #: actions/apiaccountupdateprofilebackgroundimage.php:146 @@ -190,44 +284,79 @@ 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 "Nelze uložit vaše nastavení designu." + +#: actions/apiaccountupdateprofilebackgroundimage.php:187 +#: actions/apiaccountupdateprofilecolors.php:142 +msgid "Could not update your design." +msgstr "Nelze uložit design." + +#: actions/apiblockcreate.php:105 +msgid "You cannot block yourself!" +msgstr "Nemůžete zablokovat sami sebe!" + +#: actions/apiblockcreate.php:126 +msgid "Block user failed." +msgstr "Zablokovat uživatele se nezdařilo." + +#: actions/apiblockdestroy.php:114 +msgid "Unblock user failed." +msgstr "Odblokovat uživatele se nezdařilo." #: actions/apidirectmessage.php:89 #, php-format msgid "Direct messages from %s" -msgstr "" +msgstr "Přímá zpráva od %s" #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Všechny přímé zprávy od uživatele %s" #: actions/apidirectmessage.php:101 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "Přímé zprávy uživateli %s" #: actions/apidirectmessage.php:105 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Všechny přímé zprávy odeslané uživateli %s" #: actions/apidirectmessagenew.php:118 msgid "No message text!" -msgstr "" +msgstr "zpráva bez textu!" + +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#, php-format +msgid "That's too long. Max message size is %d chars." +msgstr "Je to příliš dlouhé. Maximální délka sdělení je %d znaků." + +#: actions/apidirectmessagenew.php:138 +msgid "Recipient user not found." +msgstr "Příjemce nebyl nalezen." #: actions/apidirectmessagenew.php:142 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "Nelze odesílat zprávy uživatelům, kteří nejsou vašimi přáteli." #: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." -msgstr "" +msgstr "Hláška s tímto ID nenalezena." + +#: actions/apifavoritecreate.php:120 +msgid "This status is already a favorite." +msgstr "Tuto hlášku již máte v oblíbených." + +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296 +msgid "Could not create favorite." +msgstr "Nelze vytvořit oblíbenou položku." #: actions/apifavoritedestroy.php:123 msgid "That status is not a favorite." -msgstr "" +msgstr "Tato hláška není oblíbená." #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." @@ -235,27 +364,44 @@ msgstr "Nelze smazat oblíbenou položku." #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." -msgstr "Nelze uložit profil" +msgstr "Nemůžu začít sledovat uživatele, profil nenalezen." + +#: actions/apifriendshipscreate.php:118 +#, php-format +msgid "Could not follow user: %s is already on your list." +msgstr "Nemohu začít sledovat uživatele: %s je již na vašem seznamu." + +#: actions/apifriendshipsdestroy.php:109 +msgid "Could not unfollow user: User not found." +msgstr "Nemohu přestat sledovat uživatele, uživatel nebyl nalezen." #: actions/apifriendshipsdestroy.php:120 msgid "You cannot unfollow yourself." -msgstr "" +msgstr "Nemůžete přestat sledovat sami sebe." #: actions/apifriendshipsexists.php:91 msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +msgstr "Dva platné ID nebo screen_names musí být dodány." + +#: actions/apifriendshipsshow.php:134 +msgid "Could not determine source user." +msgstr "Nelze určit zdrojového uživatele." + +#: actions/apifriendshipsshow.php:142 +msgid "Could not find target user." +msgstr "Nepodařilo se najít cílového uživatele." #: actions/apigroupcreate.php:167 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:212 msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "Přezdívka může obsahovat pouze malá písmena a čísla bez mezer" +msgstr "Přezdívka může obsahovat pouze malá písmena a čísla a žádné mezery." #: actions/apigroupcreate.php:176 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:215 msgid "Nickname already in use. Try another one." -msgstr "Přezdívku již někdo používá. Zkuste jinou" +msgstr "Přezdívku již někdo používá. Zkuste jinou." #: actions/apigroupcreate.php:183 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 @@ -268,78 +414,118 @@ msgstr "Není platnou přezdívkou." #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:224 msgid "Homepage is not a valid URL." -msgstr "Stránka není platnou URL." +msgstr "Domovská stránka není platná URL." #: actions/apigroupcreate.php:208 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:227 msgid "Full name is too long (max 255 chars)." -msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" +msgstr "Celé jméno je moc dlouhé (maximální délka je 255 znaků)." #: actions/apigroupcreate.php:216 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." -msgstr "Umístění příliš dlouhé (maximálně %d znaků)" +msgstr "Popis je příliš dlouhý (maximálně %d znaků)." #: actions/apigroupcreate.php:227 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:234 msgid "Location is too long (max 255 chars)." -msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" +msgstr "Umístění je příliš dlouhé (maximálně 255 znaků)." #: actions/apigroupcreate.php:246 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." -msgstr "" +msgstr "Příliš mnoho aliasů! Maximálně %d." #: actions/apigroupcreate.php:267 #, php-format msgid "Invalid alias: \"%s\"." -msgstr "Neplatná velikost" +msgstr "Neplatný alias: \"%s\"." + +#: actions/apigroupcreate.php:276 actions/editgroup.php:232 +#: actions/newgroup.php:172 +#, php-format +msgid "Alias \"%s\" already in use. Try another one." +msgstr "Alias \"%s\" se již používá. Zkuste jiný." #: actions/apigroupcreate.php:289 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "Alias nemůže být stejný jako přezdívka." #: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 #: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 msgid "Group not found." -msgstr "Potvrzující kód nebyl nalezen" +msgstr "Skupina nebyla nalezena." #. TRANS: Error text shown a user tries to join a group they already are a member of. #: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336 msgid "You are already a member of that group." -msgstr "Neodeslal jste nám profil" +msgstr "Jste již členem této skupiny." #. TRANS: Error text shown when a user tries to join a group they are blocked from joining. #: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341 msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "Z této skupiny jste byl zablokován adminem." + +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Nemohu připojit uživatele %1$s do skupiny %2$s." + +#: actions/apigroupleave.php:115 +msgid "You are not a member of this group." +msgstr "Nejste členem této skupiny." + +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#: lib/command.php:401 +#, php-format +msgid "Could not remove user %1$s from group %2$s." +msgstr "Nelze odebrat uživatele %1$S ze skupiny %2$s." #. TRANS: %s is a user name #: actions/apigrouplist.php:98 #, php-format msgid "%s's groups" -msgstr "Upravit %s skupinu" +msgstr "skupiny uživatele %s" #. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s #: actions/apigrouplist.php:108 #, php-format msgid "%1$s groups %2$s is a member of." -msgstr "" +msgstr "skupiny na %1$s, kterych je %2$s členem." + +#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a page title. %s is a nick name. +#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#, php-format +msgid "%s groups" +msgstr "skupiny uživatele %s" #: actions/apigrouplistall.php:96 #, php-format msgid "groups on %s" -msgstr "" +msgstr "skupiny na %s" + +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Nahrání se nezdařilo." #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." -msgstr "" +msgstr "nebyl dodán parametr oauth_token" + +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Neplatný token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:169 actions/disfavor.php:74 @@ -357,7 +543,19 @@ msgstr "" #: 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 "Nastal problém s vaším session tokenem. Zkuste to znovu, prosím." + +#: actions/apioauthauthorize.php:135 +msgid "Invalid nickname / password!" +msgstr "Neplatné jméno nebo heslo!" + +#: actions/apioauthauthorize.php:159 +msgid "Database error deleting OAuth application user." +msgstr "Chyba databáze při mazání uživatele aplikace OAuth." + +#: actions/apioauthauthorize.php:185 +msgid "Database error inserting OAuth application user." +msgstr "Chyba databáze při vkládání uživatele aplikace OAuth." #: actions/apioauthauthorize.php:214 #, php-format @@ -365,11 +563,12 @@ msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" +"Token požadavku %s byl autorizován. Prosím vyměňte jej za přístupový token." #: actions/apioauthauthorize.php:227 #, php-format msgid "The request token %s has been denied and revoked." -msgstr "" +msgstr "Token žádosti %s byl odepřen a zrušen." #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. @@ -381,15 +580,15 @@ msgstr "" #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:277 lib/designsettings.php:304 msgid "Unexpected form submission." -msgstr "Nečekaná forma submission." +msgstr "Nečekaný požadavek." #: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" -msgstr "" +msgstr "Aplikace se chce připojit k vašemu účtu" #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" -msgstr "" +msgstr "Povolit nebo zamítnout přístup" #: actions/apioauthauthorize.php:292 #, php-format @@ -398,6 +597,14 @@ 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 "" +"Aplikace %1$s od %2$s by chtěla \"%" +"3$s\" data vašeho účtu na %4$s. Měli byste povolit přístup k datům " +"vašeho účtu na %4$s jen třetím stranám kterým věříte.." + +#. TRANS: Main menu option when logged in for access to user settings +#: actions/apioauthauthorize.php:310 lib/action.php:463 +msgid "Account" +msgstr "Účet" #: actions/apioauthauthorize.php:313 actions/login.php:252 #: actions/profilesettings.php:106 actions/register.php:431 @@ -413,21 +620,25 @@ msgstr "Přezdívka" msgid "Password" msgstr "Heslo" +#: actions/apioauthauthorize.php:328 +msgid "Deny" +msgstr "Odepřít" + #: actions/apioauthauthorize.php:334 msgid "Allow" -msgstr "" +msgstr "Povolit" #: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "" +msgstr "Povolit nebo zakázat přístup k vašemu účtu." #: actions/apistatusesdestroy.php:112 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Tato metoda vyžaduje POST nebo DELETE." #: actions/apistatusesdestroy.php:135 msgid "You may not delete another user's status." -msgstr "" +msgstr "Nesmíte odstraňovat status jiného uživatele." #: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 @@ -437,58 +648,101 @@ msgstr "Žádné takové oznámení." #. TRANS: Error text shown when trying to repeat an own notice. #: actions/apistatusesretweet.php:83 lib/command.php:538 msgid "Cannot repeat your own notice." -msgstr "Toto oznámení nelze odstranit." +msgstr "Nelze opakovat své vlastní oznámení." #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. #: actions/apistatusesretweet.php:91 lib/command.php:544 msgid "Already repeated that notice." -msgstr "Toto oznámení nelze odstranit." +msgstr "Již jste zopakoval toto oznámení." #: actions/apistatusesshow.php:139 msgid "Status deleted." -msgstr "Avatar smazán." +msgstr "Status smazán." #: actions/apistatusesshow.php:145 msgid "No status with that ID found." -msgstr "" +msgstr "Nenalezen status s tímto ID." #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "Klient musí poskytnout 'status' parametr s hodnotou." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:157 +#: lib/mailhandler.php:60 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "Je to příliš dlouhé. Maximální délka sdělení je %d znaků" + +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 +msgid "Not found." +msgstr "Nebyl nalezen." #: actions/apistatusesupdate.php:306 actions/newnotice.php:181 #, php-format msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgstr "Maximální délka notice je %d znaků včetně přiložené URL." + +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +msgid "Unsupported format." +msgstr "Nepodporovaný formát." + +#: actions/apitimelinefavorites.php:110 +#, php-format +msgid "%1$s / Favorites from %2$s" +msgstr "%1$s / Oblíbené z %2$s" #: actions/apitimelinefavorites.php:119 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "" +msgstr "Updaty na %1$s od %2$s / %2$s." + +#: actions/apitimelinementions.php:118 +#, php-format +msgid "%1$s / Updates mentioning %2$s" +msgstr "%1$s / Updaty zmiňující %2$s" #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "" +msgstr "updaty na %1$s odpovídající na updaty od %2$s / %3$s." + +#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#, php-format +msgid "%s public timeline" +msgstr "Veřejná časová osa %s" #: actions/apitimelinepublic.php:202 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "Všechny updaty na %s!" + +#: actions/apitimelineretweetedtome.php:111 +#, php-format +msgid "Repeated to %s" +msgstr "Opakováno uživatelem %s" + +#: actions/apitimelineretweetsofme.php:114 +#, php-format +msgid "Repeats of %s" +msgstr "Opakování %s" #: actions/apitimelinetag.php:105 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "Noticy taglé %s" #: actions/apitimelinetag.php:107 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "" +msgstr "Aktualizace označené %1$s na %2$s!" + +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API metoda ve výstavbě." #: actions/attachment.php:73 msgid "No such attachment." -msgstr "Žádné takové oznámení." +msgstr "Žádná taková příloha." #: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 #: actions/editgroup.php:84 actions/groupdesignsettings.php:84 @@ -509,7 +763,18 @@ msgstr "Neplatná velikost" #: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:118 msgid "Avatar" -msgstr "Obrázek" +msgstr "Avatar" + +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "Můžete nahrát váš osobní avatar. Maximální velikost souboru je %s." + +#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#: actions/grouplogo.php:181 actions/remotesubscribe.php:191 +#: actions/userauthorization.php:72 actions/userrss.php:108 +msgid "User without matching profile." +msgstr "Uživatel bez odpovídajícího profilu." #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 #: actions/grouplogo.php:254 @@ -519,7 +784,12 @@ msgstr "Nastavené Profilu" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" -msgstr "" +msgstr "Originál" + +#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 +msgid "Preview" +msgstr "Náhled" #: actions/avatarsettings.php:149 actions/showapplication.php:252 #: lib/deleteuserform.php:66 lib/noticelist.php:657 @@ -530,13 +800,21 @@ msgstr "Odstranit" msgid "Upload" msgstr "Upload" +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +msgid "Crop" +msgstr "Oříznout" + +#: actions/avatarsettings.php:305 +msgid "No file uploaded." +msgstr "žádný soubor nebyl nahrán." + #: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Vyberte čtvercovou plochu obrázku, která bude váš avatar" #: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." -msgstr "" +msgstr "Ztratili jsme údaje souboru." #: actions/avatarsettings.php:370 msgid "Avatar updated." @@ -564,6 +842,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 "" +"Jste si jisti, že chcete zablokovat tohoto uživatele? Poté bude odhlášen od " +"vás, nebude se k vám moci v budoucnu přihlásit, a nebudete upozorňováni na " +"jakékoli @-odpovědi od nich." #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. @@ -583,6 +864,18 @@ msgstr "Poznámka" msgid "Do not block this user" msgstr "Zablokovat tohoto uživatele" +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:160 actions/deleteapplication.php:161 +#: actions/deletenotice.php:154 actions/deleteuser.php:159 +#: actions/groupblock.php:185 +msgctxt "BUTTON" +msgid "Yes" +msgstr "Ano" + #. TRANS: Submit button title for 'Yes' when blocking a user. #: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 msgid "Block this user" @@ -590,7 +883,7 @@ msgstr "Zablokovat tohoto uživatele" #: actions/block.php:187 msgid "Failed to save block information." -msgstr "" +msgstr "Nepodařilo se uložit blokování." #. TRANS: Command exception text shown when a group is requested that does not exist. #. TRANS: Error text shown when trying to leave a group that does not exist. @@ -611,20 +904,34 @@ msgstr "Žádný takový uživatel." #: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" -msgstr "" +msgstr "profily blokovány skupinou %s" #: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "" +msgstr "blokované profily %1$s, strana %2$d" + +#: actions/blockedfromgroup.php:115 +msgid "A list of the users blocked from joining this group." +msgstr "Seznam uživatelů blokovaných od připojení k této skupině." + +#: actions/blockedfromgroup.php:288 +msgid "Unblock user from group" +msgstr "Odblokovat uživatele ze skupiny" #: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" -msgstr "" +msgstr "Odblokovat" #: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" -msgstr "Zablokovat tohoto uživatele" +msgstr "Odblokovat tohoto uživatele" + +#. TRANS: Title for mini-posting window loaded from bookmarklet. +#: actions/bookmarklet.php:51 +#, php-format +msgid "Post to %s" +msgstr "Poslat na %s" #: actions/confirmaddress.php:75 msgid "No confirmation code." @@ -642,7 +949,7 @@ msgstr "Tento potvrzující kód vám nepatří!" #: actions/confirmaddress.php:91 #, php-format msgid "Unrecognized address type %s." -msgstr "" +msgstr "Neznámý typ adresy %s." #. TRANS: Client error for an already confirmed email/jabbel/sms address. #: actions/confirmaddress.php:96 @@ -679,20 +986,37 @@ msgstr "Heslo znovu" msgid "The address \"%s\" has been confirmed for your account." msgstr "Adresa \"%s\" byla potvrzena pro váš účet" +#: actions/conversation.php:99 +msgid "Conversation" +msgstr "Konverzace" + #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Sdělení" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Pro vymazání aplikace musíte být přihlášen." + #: actions/deleteapplication.php:71 msgid "Application not found." -msgstr "Potvrzující kód nebyl nalezen" +msgstr "Aplikace nebyla nalezena." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Nejste vlastníkem této aplikace." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 #: lib/action.php:1307 msgid "There was a problem with your session token." -msgstr "" +msgstr "Nastal problém s vaším session tokenem." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Odstranit aplikaci" #: actions/deleteapplication.php:149 msgid "" @@ -700,11 +1024,18 @@ msgid "" "about the application from the database, including all existing user " "connections." msgstr "" +"Jste si jisti, že chcete smazat tuto aplikaci? To vymaže všechny data o " +"aplikace z databáze, včetně všech existujících uživatelských spojení." #. TRANS: Submit button title for 'No' when deleting an application. #: actions/deleteapplication.php:158 msgid "Do not delete this application" -msgstr "Toto oznámení nelze odstranit." +msgstr "Neodstraňujte tuto aplikaci" + +#. TRANS: Submit button title for 'Yes' when deleting an application. +#: actions/deleteapplication.php:164 +msgid "Delete this application" +msgstr "Odstranit tuto aplikaci" #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 @@ -715,7 +1046,7 @@ msgstr "Toto oznámení nelze odstranit." #: lib/adminpanelaction.php:73 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Nepřihlášen" +msgstr "Nejste přihlášen(a)." #: actions/deletenotice.php:71 msgid "Can't delete this notice." @@ -726,22 +1057,46 @@ msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Chystáte se trvale odstranit oznámení. Jakmile se tak stane, nemůže se " +"odestát." + +#: actions/deletenotice.php:109 actions/deletenotice.php:141 +msgid "Delete notice" +msgstr "Odstranit oznámení" + +#: actions/deletenotice.php:144 +msgid "Are you sure you want to delete this notice?" +msgstr "Jste si jisti, že chcete smazat tohoto oznámení?" #. TRANS: Submit button title for 'No' when deleting a notice. #: actions/deletenotice.php:151 msgid "Do not delete this notice" -msgstr "Toto oznámení nelze odstranit." +msgstr "Neodstraňujte toto oznámení" #. TRANS: Submit button title for 'Yes' when deleting a notice. #: actions/deletenotice.php:158 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Odstranit toto oznámení" +#: actions/deleteuser.php:67 +msgid "You cannot delete users." +msgstr "Nemůžete odstranit uživatele." + +#: actions/deleteuser.php:74 +msgid "You can only delete local users." +msgstr "Můžete smazat pouze místní uživatele." + +#: actions/deleteuser.php:110 actions/deleteuser.php:133 +msgid "Delete user" +msgstr "Smazat uživatele" + #: 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 "" +"Jste si jisti, že chcete smazat tohoto uživatele? To odstraní všechny údaje " +"o uživateli z databáze, bez zálohy." #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 @@ -757,55 +1112,79 @@ msgstr "Vzhled" #: actions/designadminpanel.php:74 msgid "Design settings for this StatusNet site." -msgstr "" +msgstr "Nastavení vzhledu pro tuto stránku StatusNet." + +#: actions/designadminpanel.php:318 +msgid "Invalid logo URL." +msgstr "Neplatná URL loga." #: actions/designadminpanel.php:322 #, php-format msgid "Theme not available: %s." -msgstr "" +msgstr "Téma není k dispozici: %s." #: actions/designadminpanel.php:426 msgid "Change logo" -msgstr "Změnit barvy" +msgstr "Změňte logo" + +#: actions/designadminpanel.php:431 +msgid "Site logo" +msgstr "Logo stránek" + +#: actions/designadminpanel.php:443 +msgid "Change theme" +msgstr "Změnit téma" + +#: actions/designadminpanel.php:460 +msgid "Site theme" +msgstr "Téma stránek" #: actions/designadminpanel.php:461 msgid "Theme for the site." -msgstr "" +msgstr "Téma stránek" #: actions/designadminpanel.php:467 msgid "Custom theme" -msgstr "" +msgstr "Vlastní téma" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Můžete nahrát vlastní StatusNet téma jako .ZIP archiv." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" -msgstr "" +msgstr "Změnit obrázek na pozadí" #: actions/designadminpanel.php:491 actions/designadminpanel.php:574 #: lib/designsettings.php:178 msgid "Background" msgstr "Pozadí" +#: actions/designadminpanel.php:496 +#, php-format +msgid "" +"You can upload a background image for the site. The maximum file size is %1" +"$s." +msgstr "" +"Můžete nahrát obrázek na pozadí stránek. Maximální velikost souboru je %1$s." + #. TRANS: Used as radio button label to add a background image. #: actions/designadminpanel.php:527 lib/designsettings.php:139 msgid "On" -msgstr "" +msgstr "zap." #. TRANS: Used as radio button label to not add a background image. #: actions/designadminpanel.php:544 lib/designsettings.php:155 msgid "Off" -msgstr "" +msgstr "vyp." #: actions/designadminpanel.php:545 lib/designsettings.php:156 msgid "Turn background image on or off." -msgstr "" +msgstr "Zapněte nebů vypněte obrázek na pozadí." #: actions/designadminpanel.php:550 lib/designsettings.php:161 msgid "Tile background image" -msgstr "" +msgstr "Dlaždicovat obrázek na pozadí" #: actions/designadminpanel.php:564 lib/designsettings.php:170 msgid "Change colours" @@ -815,9 +1194,13 @@ msgstr "Změnit barvy" msgid "Content" msgstr "Obsah" +#: actions/designadminpanel.php:600 lib/designsettings.php:204 +msgid "Sidebar" +msgstr "Boční panel" + #: actions/designadminpanel.php:613 lib/designsettings.php:217 msgid "Text" -msgstr "" +msgstr "Text" #: actions/designadminpanel.php:626 lib/designsettings.php:230 msgid "Links" @@ -825,23 +1208,23 @@ msgstr "Odkazy" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "Rozšířené" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "Vlastní CSS" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" -msgstr "" +msgstr "Použít výchozí" #: actions/designadminpanel.php:677 lib/designsettings.php:248 msgid "Restore default designs" -msgstr "" +msgstr "Obnovit výchozí vzhledy" #: actions/designadminpanel.php:683 lib/designsettings.php:254 msgid "Reset back to default" -msgstr "" +msgstr "Reset zpět do výchozího" #. TRANS: Submit button title #: actions/designadminpanel.php:685 actions/othersettings.php:126 @@ -854,9 +1237,13 @@ msgstr "" msgid "Save" msgstr "Uložit" +#: actions/designadminpanel.php:686 lib/designsettings.php:257 +msgid "Save design" +msgstr "Uložit vzhled" + #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Toto oznámení není oblíbeno!" #: actions/disfavor.php:94 msgid "Add to favorites" @@ -865,55 +1252,109 @@ msgstr "Přidat do oblíbených" #: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" -msgstr "Žádné takové oznámení." +msgstr "Žádný dokument \"%s\" neexistuje" #: actions/editapplication.php:54 msgid "Edit Application" -msgstr "" +msgstr "Upravit aplikaci" + +#: actions/editapplication.php:66 +msgid "You must be logged in to edit an application." +msgstr "Pro úpravy aplikace musíte být přihlášen." + +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 +#: actions/showapplication.php:87 +msgid "No such application." +msgstr "Aplikace neexistuje." #: actions/editapplication.php:161 msgid "Use this form to edit your application." -msgstr "" +msgstr "Pomocí tohoto formuláře můžete upravovat svou aplikaci." + +#: actions/editapplication.php:177 actions/newapplication.php:159 +msgid "Name is required." +msgstr "Název je povinný." + +#: actions/editapplication.php:180 actions/newapplication.php:165 +msgid "Name is too long (max 255 chars)." +msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)." + +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Název již někdo používá. Zkuste jinou" #: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." -msgstr "Odběr odmítnut" +msgstr "Popis je třeba." #: actions/editapplication.php:194 msgid "Source URL is too long." -msgstr "" +msgstr "URL zdroje je příliš dlouhý." + +#: actions/editapplication.php:200 actions/newapplication.php:185 +msgid "Source URL is not valid." +msgstr "URL zdroje není platný." + +#: actions/editapplication.php:203 actions/newapplication.php:188 +msgid "Organization is required." +msgstr "Organizace je nutná." + +#: actions/editapplication.php:206 actions/newapplication.php:191 +msgid "Organization is too long (max 255 chars)." +msgstr "Organizace je příliš dlouhá (max 255 znaků)." + +#: actions/editapplication.php:209 actions/newapplication.php:194 +msgid "Organization homepage is required." +msgstr "Homepage organizace je nutná." #: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." -msgstr "" +msgstr "Callback je příliš dlouhý." #: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." -msgstr "" +msgstr "Callback URL není platný." + +#: actions/editapplication.php:258 +msgid "Could not update application." +msgstr "Nelze aktualizovat aplikaci." #: actions/editgroup.php:56 #, php-format msgid "Edit %s group" -msgstr "Upravit %s skupinu" +msgstr "Upravit skupinu %s" + +#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 +msgid "You must be logged in to create a group." +msgstr "K vytvoření skupiny musíte být přihlášen." #: 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 "" +msgstr "K úpravě skupiny musíte být admin." #: actions/editgroup.php:158 msgid "Use this form to edit the group." -msgstr "" +msgstr "Použijte tento formulář k úpravám skupiny." #: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." -msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" +msgstr "Popis je příliš dlouhý (maximálně %d znaků)." + +#: actions/editgroup.php:228 actions/newgroup.php:168 +#, php-format +msgid "Invalid alias: \"%s\"" +msgstr "Neplatný alias: \"%s\"" + +#: actions/editgroup.php:258 +msgid "Could not update group." +msgstr "Nelze aktualizovat skupinu." #. TRANS: Server exception thrown when creating group aliases failed. #: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze vytvořit aliasy." #: actions/editgroup.php:280 msgid "Options saved." @@ -922,14 +1363,25 @@ msgstr "Nastavení uloženo." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 msgid "Email settings" -msgstr "Nastavené Profilu" +msgstr "Nastavení e-mailu" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/emailsettings.php:76 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "Spravovat posílání e-mailů z %%site.name%%." + +#. TRANS: Form legend for e-mail settings form. +#. TRANS: Field label for e-mail address input in e-mail settings form. +#: actions/emailsettings.php:106 actions/emailsettings.php:132 +msgid "Email address" +msgstr "E-mailová adresa" + +#. TRANS: Form note in e-mail settings form. +#: actions/emailsettings.php:112 +msgid "Current confirmed email address." +msgstr "Aktuální potvrzená e-mailová adresa." #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. @@ -941,12 +1393,30 @@ msgstr "" #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" -msgstr "Obnovit" +msgstr "Odstranit" + +#: actions/emailsettings.php:122 +msgid "" +"Awaiting confirmation on this address. Check your inbox (and spam box!) for " +"a message with further instructions." +msgstr "" +"Čakám na potvrzení této adresy. Podívejte se v příchozí poště (a spamu!) po " +"e-mailu s dalšími instrukcemi." + +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label +#: actions/emailsettings.php:127 actions/imsettings.php:131 +#: actions/smssettings.php:137 lib/applicationeditform.php:357 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Zrušit" #. TRANS: Instructions for e-mail address input form. #: actions/emailsettings.php:135 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "E-mailová adresa, ve stylu \"UzivatelskeJmeno@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. @@ -955,57 +1425,87 @@ msgstr "" #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" -msgstr "" +msgstr "Přidat" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. #: actions/emailsettings.php:147 actions/smssettings.php:171 msgid "Incoming email" -msgstr "" +msgstr "Příchozí e-mail" #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. #: actions/emailsettings.php:155 actions/smssettings.php:178 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "Pošlete e-mail na tuto adresu pro poslání nového oznámení." #. TRANS: Instructions for incoming e-mail address input form. #. TRANS: Instructions for incoming SMS e-mail address input form. #: actions/emailsettings.php:164 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." -msgstr "" +msgstr "Vytvoření nové e-mailové adresy pro zasílání, ruší starou." #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. #: actions/emailsettings.php:168 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" -msgstr "" +msgstr "Nová" + +#. TRANS: Form legend for e-mail preferences form. +#: actions/emailsettings.php:174 +msgid "Email preferences" +msgstr "Nastavení e-mailu" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:180 +msgid "Send me notices of new subscriptions through email." +msgstr "Pošlete mi oznámení o nových přihlášeních e-mailem." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:186 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Pošlete mi e-mail, když někdo přidá moje oznámení mezi oblíbené." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:193 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Pošlete mi e-mail, když mi někdo pošle soukromou zprávu." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:199 msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "" +msgstr "Pošlete mi e-mail, když mi někdo pošle \"@-odpověď\"." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:205 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Povolit přátelům mě pošťouchnout a poslat mi email." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:212 msgid "I want to post notices by email." -msgstr "" +msgstr "Chci posílat oznámení e-mailem." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:219 +msgid "Publish a MicroID for my email address." +msgstr "Publikovat MicroID pro mou e-mailovou adresu." + +#. TRANS: Confirmation message for successful e-mail preferences save. +#: actions/emailsettings.php:334 +msgid "Email preferences saved." +msgstr "Email nastavení uloženo." + +#. TRANS: Message given saving e-mail address without having provided one. +#: actions/emailsettings.php:353 +msgid "No email address." +msgstr "Chybí e-mailová adresa." + +#. TRANS: Message given saving e-mail address that cannot be normalised. +#: actions/emailsettings.php:361 +msgid "Cannot normalize that email address" +msgstr "Nepodařilo se normalizovat (kanonizovat) e-mailovou adresu." #. TRANS: Message given saving e-mail address that not valid. #: actions/emailsettings.php:366 actions/register.php:208 @@ -1013,13 +1513,33 @@ msgstr "" msgid "Not a valid email address." msgstr "Není platnou mailovou adresou." +#. TRANS: Message given saving e-mail address that is already set. +#: actions/emailsettings.php:370 +msgid "That is already your email address." +msgstr "To je již vaší e-mailovou adresou." + +#. TRANS: Message given saving e-mail address that is already set for another user. +#: actions/emailsettings.php:374 +msgid "That email address already belongs to another user." +msgstr "Tato e-mailová adresa již patří jinému uživateli." + #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. #: actions/emailsettings.php:391 actions/imsettings.php:348 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." -msgstr "Nelze vložit potvrzující kód" +msgstr "Nelze vložit potvrzující kód." + +#. TRANS: Message given saving valid e-mail address that is to be confirmed. +#: actions/emailsettings.php:398 +msgid "" +"A confirmation code was sent to the email address you added. Check your " +"inbox (and spam box!) for the code and instructions on how to use it." +msgstr "" +"Potvrzovací kód byl zaslán na e-mailovou adresu, kterou jste přidali. " +"Zkontrolujte vaše e-mailové schránky (a spam box!) pro kód a instrukce, jak " +"jej použít." #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. @@ -1027,40 +1547,85 @@ msgstr "Nelze vložit potvrzující kód" #: actions/emailsettings.php:419 actions/imsettings.php:383 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." -msgstr "Nečeká žádné potvrzení na zrušení." +msgstr "Žádné potvrzení ke zrušení." + +#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. +#: actions/emailsettings.php:424 +msgid "That is the wrong email address." +msgstr "Toto je špatná e-mailová adresa." #. TRANS: Message given after successfully canceling e-mail address confirmation. #: actions/emailsettings.php:438 msgid "Email confirmation cancelled." -msgstr "Nečeká žádné potvrzení na zrušení." +msgstr "Potvrzení e-mailu zrušeno." + +#. TRANS: Message given trying to remove an e-mail address that is not +#. TRANS: registered for the active user. +#: actions/emailsettings.php:458 +msgid "That is not your email address." +msgstr "To není vaše e-mailová adresa." #. TRANS: Message given after successfully removing a registered e-mail address. #: actions/emailsettings.php:479 msgid "The email address was removed." -msgstr "Emailová adresa již existuje" +msgstr "E-mailová adresa byla odstraněna." + +#: actions/emailsettings.php:493 actions/smssettings.php:568 +msgid "No incoming email address." +msgstr "Nemáte příchozí e-mailovou adresu." + +#. TRANS: Server error thrown on database error removing incoming e-mail address. +#. TRANS: Server error thrown on database error adding incoming e-mail address. +#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/smssettings.php:578 actions/smssettings.php:602 +msgid "Couldn't update user record." +msgstr "Nelze aktualizovat záznam uživatele." + +#. TRANS: Message given after successfully removing an incoming e-mail address. +#: actions/emailsettings.php:508 actions/smssettings.php:581 +msgid "Incoming email address removed." +msgstr "Příchozí e-mailová adresa odstraněna." + +#. TRANS: Message given after successfully adding an incoming e-mail address. +#: actions/emailsettings.php:532 actions/smssettings.php:605 +msgid "New incoming email address added." +msgstr "Přidána nová příchozí e-mailová adresa." #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Tuto hlášku již máte v oblíbených." + +#: actions/favor.php:92 lib/disfavorform.php:140 +msgid "Disfavor favorite" +msgstr "Znemilostnit oblíbenou" + +#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: lib/publicgroupnav.php:93 +msgid "Popular notices" +msgstr "Populární oznámení" #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" -msgstr "" +msgstr "Populární oznámení, strana %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "Právě teď nejpopulárnější oznámení na stránkách." #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." msgstr "" +"Oblíbená oznámení se objeví na této stránce, ale nikdo zatím oblíbené ještě " +"nemá." #: 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 "" +"Buďte první, kdo přidá oznámení k oblíbeným kliknutím na tlačítko Oblíbené " +"vedle kteréhokoli oznámení které se vám líbí." #: actions/favorited.php:156 #, php-format @@ -1068,42 +1633,58 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" +"Proč ne [zaregistrovat účet](%%action.register%%) a být první, kdo přidá " +"oznámení k oblíbeným!" + +#: actions/favoritesrss.php:111 actions/showfavorites.php:77 +#: lib/personalgroupnav.php:115 +#, php-format +msgid "%s's favorite notices" +msgstr "oblíbená oznámení uživatele %s" #: actions/favoritesrss.php:115 #, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "" +msgstr "Aktualizace oblíbené uživatelem %1$s na %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "" +msgstr "Nejlepší uživatelé" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Nejlepší uživatelé, strana %d" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "Výběr některých skvělých uživatelů na %s" #: actions/file.php:34 msgid "No notice ID." -msgstr "Žádné takové oznámení." +msgstr "Chybí ID oznámení." #: actions/file.php:38 msgid "No notice." msgstr "Žádné takové oznámení." +#: actions/file.php:42 +msgid "No attachments." +msgstr "Bez příloh." + +#: actions/file.php:51 +msgid "No uploaded attachments." +msgstr "Žádné nahrané přílohy." + #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" -msgstr "Nečekaná odpověď." +msgstr "Nečekaná odpověď!" #: actions/finishremotesubscribe.php:80 msgid "User being listened to does not exist." -msgstr "" +msgstr "Úživatel, kterému nasloucháte neexistuje." #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 msgid "You can use the local subscription!" @@ -1111,40 +1692,80 @@ msgstr "Můžete použít místní odebírání." #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Uživatel vaše odebírání zablokoval." #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." -msgstr "Odběr autorizován" +msgstr "Nejste autorizován." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." -msgstr "" +msgstr "Nemohu převést žádost token na přístup token." #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." -msgstr "" +msgstr "Vzdálená služba používá neznámou verzi protokolu OMB." + +#: actions/finishremotesubscribe.php:138 +msgid "Error updating remote profile." +msgstr "Chyba při aktualizaci vzdáleného profilu." + +#: actions/getfile.php:79 +msgid "No such file." +msgstr "Žádný takový soubor." #: actions/getfile.php:83 msgid "Cannot read file." -msgstr "Nelze uložit profil" +msgstr "Nelze přečíst soubor." + +#: actions/grantrole.php:62 actions/revokerole.php:62 +msgid "Invalid role." +msgstr "Neplatná role." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Tato role je vyhrazena a nelze jí nastavit." #: actions/grantrole.php:75 msgid "You cannot grant user roles on this site." -msgstr "" +msgstr "Nemůžete dávat uživatelské role na této stránce." + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "Uživatel již tuto roli má." + +#: actions/groupblock.php:71 actions/groupunblock.php:71 +#: actions/makeadmin.php:71 actions/subedit.php:46 +#: lib/profileformaction.php:79 +msgid "No profile specified." +msgstr "Nebyl vybrán profil." + +#: actions/groupblock.php:76 actions/groupunblock.php:76 +#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#: actions/unsubscribe.php:84 lib/profileformaction.php:86 +msgid "No profile with that ID." +msgstr "Neexistuje profil s tímto ID." #: actions/groupblock.php:81 actions/groupunblock.php:81 #: actions/makeadmin.php:81 msgid "No group specified." -msgstr "" +msgstr "Nebyla vybrána skupina." #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "" +msgstr "Pouze admin může blokovat členy skupiny." + +#: actions/groupblock.php:95 +msgid "User is already blocked from group." +msgstr "Uživatel již je zablokován ze skupiny." + +#: actions/groupblock.php:100 +msgid "User is not a member of group." +msgstr "Uživatel není členem skupiny." + +#: actions/groupblock.php:134 actions/groupmembers.php:360 +msgid "Block user from group" +msgstr "Zablokovat uživatele ze skupiny" #: actions/groupblock.php:160 #, php-format @@ -1153,64 +1774,124 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" +"Jste si jisti, že chcete blokovat uživatele \"%1$s\" ze skupiny \"%2$S\"? " +"Bude odstraněn ze skupiny a nebude moci přispívat nebo se přihlásit k odběru." + +#. TRANS: Submit button title for 'No' when blocking a user from a group. +#: actions/groupblock.php:182 +msgid "Do not block this user from this group" +msgstr "Neblokujte tohoto uživatele z této skupiny" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 msgid "Block this user from this group" -msgstr "Zablokovat tohoto uživatele" +msgstr "Blokovat tohoto uživatele z této skupiny" #: actions/groupblock.php:206 msgid "Database error blocking user from group." -msgstr "" +msgstr "Chyba databáze při blokování uživatele ze skupiny." #: actions/groupbyid.php:74 actions/userbyid.php:70 msgid "No ID." -msgstr "Žádné Jabber ID." +msgstr "Chybí ID." #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "" +msgstr "K úpravě skupiny musíte být přihlášen." + +#: actions/groupdesignsettings.php:144 +msgid "Group design" +msgstr "Vzhled skupiny" #: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" +"Přizpůsobit vzhled skupiny obrázkem na pozadí a barevnou paletou vašeho " +"výběru." + +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 +#: lib/designsettings.php:391 lib/designsettings.php:413 +msgid "Couldn't update your design." +msgstr "Nelze uložit vzhled." + +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +msgid "Design preferences saved." +msgstr "Nastavení vzhledu uloženo." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo skupiny" +#: actions/grouplogo.php:153 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "" +"Můžete nahrát obrázek loga pro vaši skupinu. Maximální velikost souboru je %" +"s." + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "" +msgstr "Vyberte čtvercovou oblast obrázku, která bude vaše logo." + +#: actions/grouplogo.php:399 +msgid "Logo updated." +msgstr "Logo aktualizováno." + +#: actions/grouplogo.php:401 +msgid "Failed updating logo." +msgstr "Nepodařilo se aktualizovat logo." + +#: actions/groupmembers.php:100 lib/groupnav.php:92 +#, php-format +msgid "%s group members" +msgstr "členové skupiny %s" #: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" -msgstr "" +msgstr "členové skupiny %1$s, strana %2$d" + +#: actions/groupmembers.php:118 +msgid "A list of the users in this group." +msgstr "Seznam uživatelů v této skupině." #: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" -msgstr "" +msgstr "Admin" + +#: actions/groupmembers.php:392 lib/blockform.php:69 +msgid "Block" +msgstr "Blokovat" #: actions/groupmembers.php:487 msgid "Make user an admin of the group" -msgstr "" +msgstr "Uďelat uživatele adminem skupiny" #: actions/groupmembers.php:519 msgid "Make Admin" -msgstr "" +msgstr "Udělat adminem" #: actions/groupmembers.php:519 msgid "Make this user an admin" -msgstr "" +msgstr "Udělat tohoto uživatele adminem" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/grouprss.php:139 actions/userrss.php:94 +#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 +#, php-format +msgid "%s timeline" +msgstr "časová osa %s" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "" +msgstr "Novinky od členů %1$s na %2$s!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1220,7 +1901,7 @@ msgstr "Skupiny" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Skupiny, strana %d" #: actions/groups.php:90 #, php-format @@ -1231,15 +1912,33 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"skupiny na %%%%Site.name%%%% vám umožní najít a mluvit s lidmi podobných " +"zájmů. Po připojení skupiny můžete posílat zprávy všem ostatním členům " +"pomocí syntaxe \"!NazevSkupiny\". Nevidíte skupinu která by se vám líbila? " +"Zkuste ji [vyhledat](%%%%action.groupsearch%%%%) nebo [založit!](%%%%action." +"newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 msgid "Create a new group" +msgstr "Vytvořit novou skupinu" + +#: 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 "" +"Hledejte skupiny na %%site.name%% podle jejich názvu, místa, nebo popisu. " +"Oddělte slova mezerami; musí být nejméně 3 znaky dlouhá." + +#: actions/groupsearch.php:58 +msgid "Group search" +msgstr "Hledání skupin" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 msgid "No results." -msgstr "" +msgstr "Žádné výsledky." #: actions/groupsearch.php:82 #, php-format @@ -1247,6 +1946,8 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" +"Pokud nemůžete najít skupinu, kterou hledáte, můžete ji [vytvořit](%%action." +"newgroup%%) sami." #: actions/groupsearch.php:85 #, php-format @@ -1254,19 +1955,25 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" +"Proč si ne[zaregistrovat účet](%% action.register%%) a ne[vytvořit skupinu](%" +"%action.newgroup%%) sami!" #: actions/groupunblock.php:91 msgid "Only an admin can unblock group members." -msgstr "" +msgstr "Pouze admin může odblokovat členy skupiny." #: actions/groupunblock.php:95 msgid "User is not blocked from group." -msgstr "" +msgstr "Uživatel není blokován ze skupiny." + +#: actions/groupunblock.php:128 actions/unblock.php:86 +msgid "Error removing the block." +msgstr "Chyba při odstraňování bloku." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 msgid "IM settings" -msgstr "Nastavené Profilu" +msgstr "Nastavení IM" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -1277,17 +1984,23 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"Můžete odesílat nebo přijámat sdělení pomocí Jabber/GTalk [zpráv](%%doc.im%" -"%).Zadejte svou adresu níže." +"Můžete odesílat nebo přijámat oznámení pomocí Jabber/GTalk [zpráv](%%doc.im%" +"%) .Zadejte svou adresu a nastavení níže." #. TRANS: Message given in the IM settings if XMPP is not enabled on the site. #: actions/imsettings.php:94 msgid "IM is not available." -msgstr "" +msgstr "IM není k dispozici." + +#. TRANS: Form legend for IM settings form. +#. TRANS: Field label for IM address input in IM settings form. +#: actions/imsettings.php:106 actions/imsettings.php:136 +msgid "IM address" +msgstr "IM adresa" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." -msgstr "Potvrzené Jabber/GTalk adresy" +msgstr "Aktuální potvrzená Jabber / GTalk adresa." #. TRANS: Form note in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -1297,8 +2010,8 @@ 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 "" -"Čakám na potvrzení této adresy. Zkontrolujte zprávy na vašem Jabber/GTalk " -"účtu. (Přidal jste si %s do vašich kontaktů?)" +"Čakám na potvrzení této adresy. Hledejte zprávu s dalšími instrukcemi na " +"vašem Jabber/GTalk účtu. (Přidal jste si %s do vašich kontaktů?)" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -1308,13 +2021,14 @@ msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " "add %s to your buddy list in your IM client or on GTalk." msgstr "" -"Jabber nebo GTalk adresy, například \"jmeno@example.org\". Neprve se " -"ujistěte že jste přidal %s do vašeho seznamu kontaktů." +"Jabber nebo GTalk adresa, například \"jmeno@example.org\". Neprve se " +"ujistěte že jste přidal %s do vašeho seznamu kontaktů ve vašem IM klientu " +"nebo na GTalku." #. TRANS: Form legend for IM preferences form. #: actions/imsettings.php:155 msgid "IM preferences" -msgstr "Nastavení uloženo" +msgstr "Nastavení IM" #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:160 @@ -1326,6 +2040,17 @@ msgstr "Zasílat oznámení pomocí Jabber/GTalk" msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Poslat oznámení, když se změní můj Jabber/Gtalk status." +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:172 +msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." +msgstr "" +"Pošlete mi odpovědi přes Jabber / GTalk od lidí, ke kterým nejsem přihlášen." + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:179 +msgid "Publish a MicroID for my Jabber/GTalk address." +msgstr "Publikovat MicroID pro mou Jabber / GTalk adresu." + #. TRANS: Confirmation message for successful IM preferences save. #: actions/imsettings.php:287 actions/othersettings.php:180 msgid "Preferences saved." @@ -1334,12 +2059,12 @@ msgstr "Nastavení uloženo" #. TRANS: Message given saving IM address without having provided one. #: actions/imsettings.php:309 msgid "No Jabber ID." -msgstr "Žádné Jabber ID." +msgstr "Chybí Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. #: actions/imsettings.php:317 msgid "Cannot normalize that Jabber ID" -msgstr "Nelze normalizovat JabberID" +msgstr "Nelze normalizovat tento JabberID" #. TRANS: Message given saving IM address that not valid. #: actions/imsettings.php:322 @@ -1349,7 +2074,7 @@ msgstr "Není platným Jabber ID" #. TRANS: Message given saving IM address that is already set. #: actions/imsettings.php:326 msgid "That is already your Jabber ID." -msgstr "Toto je již vaše Jabber" +msgstr "Toto je již vaše Jabber ID" #. TRANS: Message given saving IM address that is already set for another user. #: actions/imsettings.php:330 @@ -1364,96 +2089,133 @@ msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"Ověřující kód byl poslán na vloženou IM adresu. Musíte prokázat %s pro " -"posílání zpráv." +"Ověřující kód byl poslán na vloženou IM adresu. Musíte povolit aby vám %s " +"posílal zprávy." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. #: actions/imsettings.php:388 msgid "That is the wrong IM address." msgstr "Toto je špatná IM adresa" +#. TRANS: Server error thrown on database error canceling IM address confirmation. +#: actions/imsettings.php:397 +msgid "Couldn't delete IM confirmation." +msgstr "Nelze smazat potvrzení IM" + #. TRANS: Message given after successfully canceling IM address confirmation. #: actions/imsettings.php:402 msgid "IM confirmation cancelled." -msgstr "Žádný potvrzující kód." +msgstr "IM potvrzení zrušeno." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. #: actions/imsettings.php:424 msgid "That is not your Jabber ID." -msgstr "Toto není váš Jabber" +msgstr "Toto není váš Jabber ID" + +#. TRANS: Message given after successfully removing a registered IM address. +#: actions/imsettings.php:447 +msgid "The IM address was removed." +msgstr "IM adresa byla odstraněna." #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "" +msgstr "Pošta doručená pro %1$s - strana %2$d" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Doručená pošta pro %s" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "To je váš inbox, obsahuje seznam příchozích soukromých zpráv." #: actions/invite.php:39 msgid "Invites have been disabled." -msgstr "" +msgstr "Pozvánky byly zakázány." #: actions/invite.php:41 #, php-format msgid "You must be logged in to invite other users to use %s." -msgstr "" +msgstr "Musíte být přihlášen aby jste mohl zvát další uživatele k použití %s." + +#: actions/invite.php:72 +#, php-format +msgid "Invalid email address: %s" +msgstr "Neplatný e-mail: %s" #: actions/invite.php:110 msgid "Invitation(s) sent" -msgstr "" +msgstr "Pozvánka(y) zaslána(y)" #: actions/invite.php:112 msgid "Invite new users" -msgstr "" +msgstr "Pozvat nové uživatele" + +#: actions/invite.php:128 +msgid "You are already subscribed to these users:" +msgstr "Jste již přihlášeni k těmto uživatelům:" #. TRANS: Whois output. #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. #: actions/invite.php:131 actions/invite.php:139 lib/command.php:430 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" #: actions/invite.php:136 msgid "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr "Tito lidé jsou již uživatelé a jste k nim automaticky přihlášen:" #: actions/invite.php:144 msgid "Invitation(s) sent to the following people:" -msgstr "" +msgstr "Pozvánka (y) zaslány následujícím osobám:" #: 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 "" +"Budete upozorněni, když vaši pozvaní lidé pozvání přijmout a zaregistrují se " +"na tomto webu. Díky za zvetšení komunity!" #: actions/invite.php:162 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"Použijte tento formulář k pozvání svých přátel a kolegů k používání této " +"služby." + +#: actions/invite.php:187 +msgid "Email addresses" +msgstr "E-mailové adresy" #: actions/invite.php:189 msgid "Addresses of friends to invite (one per line)" -msgstr "" +msgstr "Adresy přátel k pozvání (jedna na řádek)" + +#: actions/invite.php:192 +msgid "Personal message" +msgstr "Osobní zpráva" #: actions/invite.php:194 msgid "Optionally add a personal message to the invitation." -msgstr "" +msgstr "Volitelně přidat osobní zprávu." #. TRANS: Send button for inviting friends #: actions/invite.php:198 msgctxt "BUTTON" msgid "Send" -msgstr "" +msgstr "Odeslat" + +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. +#: actions/invite.php:228 +#, php-format +msgid "%1$s has invited you to join them on %2$s" +msgstr "%1$s vás pozval, abyste se k nim připojil(a) na %2$s" #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. #: actions/invite.php:231 @@ -1486,19 +2248,58 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" +" %1$s vás pozval, abyste se k nim připojil(a) na %2$s (%3$s). \n" +"\n" +"%2$s je mikro-blogovací služba, která vám umožní být v kontaktu s lidmi, " +"které znáte, a s lidmi, kteří vás zajímají. \n" +"\n" +"Můžete také sdílet novinky o sobě, své myšlenky, nebo svůj online život s " +"lidmi, kteří o vás vědí. Je to také skvělé pro setkávání s novými lidmi, " +"kteří sdílejí vaše zájmy. \n" +"\n" +"%1$s řekl: \n" +"\n" +"%4$s \n" +"\n" +"Můžete vidět profil uživatele %1$s na %2$s zde: \n" +"\n" +"%5$s \n" +"\n" +"Pokud si chcete službu vyzkoušet, klikněte na odkaz níže k přijmutí " +"pozvání. \n" +"\n" +"%6$s \n" +"\n" +"Pokud ne, můžete tuto zprávu ignorovat. Děkujeme za vaši trpělivost a čas. \n" +"\n" +"S pozdravem, %2$s \n" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Musíte být přihlášen pro vstup do skupiny." + +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Žádná přezdívka nebo ID." #: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "" +msgstr "%1$s se připojil(a) ke skupině %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Musíte být přihlášen abyste mohl opustit skupinu." + +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:389 +msgid "You are not a member of that group." +msgstr "Nejste členem této skupiny." + +#: actions/leavegroup.php:137 +#, php-format +msgid "%1$s left group %2$s" +msgstr "%1$s opustil(a) skupinu %2$s" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -1508,13 +2309,17 @@ msgstr "Již přihlášen" msgid "Incorrect username or password." msgstr "Neplatné jméno nebo heslo" +#: actions/login.php:154 actions/otp.php:120 +msgid "Error setting user. You are probably not authorized." +msgstr "Chyba při nastavení uživatele. Pravděpodobně nejste autorizován." + #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" msgstr "Přihlásit" #: actions/login.php:249 msgid "Login to site" -msgstr "" +msgstr "Přihlásit se na stránky" #: actions/login.php:258 actions/register.php:485 msgid "Remember me" @@ -1522,7 +2327,8 @@ msgstr "Zapamatuj si mě" #: actions/login.php:259 actions/register.php:487 msgid "Automatically login in the future; not for shared computers!" -msgstr "Příště automaticky přihlásit; ne pro počítače, které používá " +msgstr "" +"Příště automaticky přihlásit; ne pro počítače, které používá více lidí! " #: actions/login.php:269 msgid "Lost or forgotten password?" @@ -1532,52 +2338,63 @@ msgstr "Ztracené nebo zapomenuté heslo?" msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." -msgstr "Z bezpečnostních důvodů, prosím zadejte znovu své jméno a heslo." +msgstr "" +"Z bezpečnostních důvodů, prosím zadejte znovu své jméno a heslo než budete " +"měnit svá nastavení." + +#: actions/login.php:292 +msgid "Login with your username and password." +msgstr "Přihlásit se pomocí svého uživatelského jména a hesla." #: actions/login.php:295 #, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" +"Zatím nemáte uživatelské jméno? [Registrovat](%%action.register%%) nový účet." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "Pouze admin může udělat adminem dalšího uživatele." #: actions/makeadmin.php:96 #, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "" +msgstr "%1$s je již admin pro skupinu \"%2$S\"." #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "" +msgstr "Nelze získat záznam o členství %1$s ve skupině %2$s." #: actions/makeadmin.php:146 #, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "" +msgstr "Nelze učinit %1$s adminem skupiny %2$s." #: actions/microsummary.php:69 msgid "No current status." -msgstr "" +msgstr "V současné době žádný stav." #: actions/newapplication.php:52 msgid "New Application" -msgstr "" +msgstr "Nová aplikace" + +#: actions/newapplication.php:64 +msgid "You must be logged in to register an application." +msgstr "Musíte být přihlášen k registraci aplikace." #: actions/newapplication.php:143 msgid "Use this form to register a new application." -msgstr "" +msgstr "Použijte tento formulář pro registraci nové aplikace." #: actions/newapplication.php:176 msgid "Source URL is required." -msgstr "" +msgstr "Zdrojové URL je nutné." #: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." -msgstr "Nelze smazat potvrzení emailu" +msgstr "Nelze vytvořit aplikaci." #: actions/newgroup.php:53 msgid "New group" @@ -1585,57 +2402,75 @@ msgstr "Nová skupina" #: actions/newgroup.php:110 msgid "Use this form to create a new group." +msgstr "Použijte tento formulář k vytvoření nové skupiny." + +#: actions/newmessage.php:71 actions/newmessage.php:231 +msgid "New message" +msgstr "Nová zpráva" + +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:502 +msgid "You can't send a message to this user." msgstr "" +"Nemůžete odesílat zprávy tomuto uživateli. (musíte být vzájemně prihlášení)" #. TRANS: Command exception text shown when trying to send a direct message to another user without content. #. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. #: actions/newmessage.php:144 actions/newnotice.php:138 lib/command.php:481 #: lib/command.php:582 msgid "No content!" -msgstr "Žádný obsah!" +msgstr "Chybí obsah!" #: actions/newmessage.php:158 msgid "No recipient specified." -msgstr "" +msgstr "Neuveden příjemce." #. TRANS: Error text shown when trying to send a direct message to self. #: actions/newmessage.php:164 lib/command.php:506 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgstr "Neposílejte si zprávu, potichu si ji pro sebe řekněte." + +#: actions/newmessage.php:181 +msgid "Message sent" +msgstr "Zpráva odeslána" #. TRANS: Message given have sent a direct message to another user. #. TRANS: %s is the name of the other user. #: actions/newmessage.php:185 lib/command.php:514 #, php-format msgid "Direct message to %s sent." -msgstr "" +msgstr "Přímá zpráva pro %s odeslána." #: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189 msgid "Ajax Error" -msgstr "" +msgstr "Ajax Chyba" #: actions/newnotice.php:69 msgid "New notice" msgstr "Nové sdělení" +#: actions/newnotice.php:227 +msgid "Notice posted" +msgstr "Sdělení posláno" + #: 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 "" -"Hledej sdělení na %%site.name%% podle obsahu. Minimální délka musí být " -"alespoň 3 znaky" +"Hledej sdělení na %%site.name%% podle obsahu. Oddělte výrazy mezerami; musí " +"mít alespoň 3 znaky" #: actions/noticesearch.php:78 msgid "Text search" -msgstr "Vyhledávání textu" +msgstr "Text vyhledávání" #: actions/noticesearch.php:91 #, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "" +msgstr "Výsledky hledání \"%1$s\" na %2$s" #: actions/noticesearch.php:121 #, php-format @@ -1643,6 +2478,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"Buďte první kdo [příspěje](%%%%action.newnotice%%%%?status_textarea=%s) na " +"toto téma!" #: actions/noticesearch.php:124 #, php-format @@ -1650,58 +2487,75 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"Proč si ne [zaregistrovat účet](%%%%action.register%%%%) a být první, kdo " +"[příspěje](%%%%action.newnotice %%%%?status_textarea =%s) na toto téma!" #: actions/noticesearchrss.php:96 #, php-format msgid "Updates with \"%s\"" -msgstr "" +msgstr "Hlášky s \"%s\"" #: actions/noticesearchrss.php:98 #, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "" +msgstr "Aktualizace odpovídající hledanému výrazu \"%1$s\" na %2$s!" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" +"Tento uživatel neumožňuje pošťouchnutí nebo nepotvrdil(a) nebo nenestavil(a) " +"svůj e-mail." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Pošťouchnutí posláno" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Pošťouchnutí posláno!" #: actions/oauthappssettings.php:59 msgid "You must be logged in to list your applications." -msgstr "" +msgstr "Musíte být přihlášen k vypsání seznamu aplikací." #: actions/oauthappssettings.php:74 msgid "OAuth applications" -msgstr "" +msgstr "OAuth aplikace" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" -msgstr "" +msgstr "Aplikace které jste se zaregistrovali" + +#: actions/oauthappssettings.php:135 +#, php-format +msgid "You have not registered any applications yet." +msgstr "Ještě jste nezaregistrovali žádné aplikace." + +#: actions/oauthconnectionssettings.php:72 +msgid "Connected applications" +msgstr "Propojené aplikace" #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." -msgstr "" +msgstr "Těmto aplikacím jste povolili přístup ke svému ůčtu." + +#: actions/oauthconnectionssettings.php:175 +msgid "You are not a user of that application." +msgstr "Nejste uživatel této aplikace." #: actions/oauthconnectionssettings.php:186 #, php-format msgid "Unable to revoke access for app: %s." -msgstr "" +msgstr "Nelze zrušit přístup aplikace %s." #: actions/oauthconnectionssettings.php:198 msgid "You have not authorized any applications to use your account." -msgstr "" +msgstr "Žádným aplikacím jste nepovolili používat váš účet." #: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " -msgstr "" +msgstr "Vývojáři mohou upravovat nastavení registrace jejich aplikací " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." @@ -1710,70 +2564,114 @@ msgstr "Uživatel nemá profil." #: actions/oembed.php:87 actions/shownotice.php:175 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1 statusů na %2" +msgstr "status %1 na %2" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') #: actions/oembed.php:159 #, php-format msgid "Content type %s not supported." -msgstr "" +msgstr "Typ obsahu %s není podporován." #. TRANS: Error message displaying attachments. %s is the site's base URL. #: actions/oembed.php:163 #, php-format msgid "Only %s URLs over plain HTTP please." -msgstr "" +msgstr "Only %s URLs over plain HTTP please." + +#. TRANS: Client error on an API request with an unsupported data format. +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 +msgid "Not a supported data format." +msgstr "Nepodporovaný formát dat." + +#: actions/opensearch.php:64 +msgid "People Search" +msgstr "Hledání lidí" + +#: actions/opensearch.php:67 +msgid "Notice Search" +msgstr "Hledání oznámení" #: actions/othersettings.php:60 msgid "Other settings" -msgstr "Nastavené Profilu" +msgstr "Další nastavení" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "Správa různých dalších možností." #: actions/othersettings.php:108 msgid " (free service)" -msgstr "" +msgstr " (Služba zdarma)" #: actions/othersettings.php:116 msgid "Shorten URLs with" -msgstr "" +msgstr "Zkrácovat URL s" #: actions/othersettings.php:117 msgid "Automatic shortening service to use." -msgstr "" +msgstr "Služba automatického zkracování, kterou použít." + +#: actions/othersettings.php:122 +msgid "View profile designs" +msgstr "Zobrazit vzhledy profilu" #: actions/othersettings.php:123 msgid "Show or hide profile designs." -msgstr "" +msgstr "Zobrazit nebo skrýt vzhledy profilu." + +#: actions/othersettings.php:153 +msgid "URL shortening service is too long (max 50 chars)." +msgstr "adresa služby zkracování URL je příliš dlouhá (max. 50 znaků)." #: actions/otp.php:69 msgid "No user ID specified." -msgstr "" +msgstr "Nebylo zadáno uživatelské ID." + +#: actions/otp.php:83 +msgid "No login token specified." +msgstr "Přihlašovací token nezadán." #: actions/otp.php:90 msgid "No login token requested." -msgstr "Žádné potvrení!" +msgstr "Nepožadován přihlašovací token." + +#: actions/otp.php:95 +msgid "Invalid login token specified." +msgstr "Neplatný přihlašovací token." + +#: actions/otp.php:104 +msgid "Login token expired." +msgstr "Přihlašovací token vypršel." #: actions/outbox.php:58 #, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "" +msgstr "Odeslaná pošta uživatele %1$s - strana %2$d" #: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Odeslané uživatele %s" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" +"Toto je váš outbox, který obsahuje seznam soukromých zpráv které jste " +"odeslali." #: actions/passwordsettings.php:58 msgid "Change password" msgstr "Změnit heslo" +#: actions/passwordsettings.php:69 +msgid "Change your password." +msgstr "Změňte své heslo." + +#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 +msgid "Password change" +msgstr "Změna hesla" + #: actions/passwordsettings.php:104 msgid "Old password" msgstr "Staré heslo" @@ -1789,7 +2687,7 @@ msgstr "6 a více znaků" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 #: actions/register.php:440 msgid "Confirm" -msgstr "Heslo znovu" +msgstr "Potvrdit" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" @@ -1799,17 +2697,21 @@ msgstr "Stejné jako heslo výše" msgid "Change" msgstr "Změnit" +#: actions/passwordsettings.php:154 actions/register.php:237 +msgid "Password must be 6 or more characters." +msgstr "Heslo musí být alespoň 6 znaků dlouhé" + #: actions/passwordsettings.php:157 actions/register.php:240 msgid "Passwords don't match." msgstr "Hesla nesouhlasí" #: actions/passwordsettings.php:165 msgid "Incorrect old password" -msgstr "Neplatné heslo" +msgstr "Nesprávné staré heslo" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." -msgstr "Chyba při ukládaní uživatele; neplatný" +msgstr "Chyba při ukládaní uživatele; neplatný." #: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." @@ -1822,102 +2724,155 @@ msgstr "Heslo uloženo" #. TRANS: Menu item for site administration #: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 msgid "Paths" -msgstr "" +msgstr "Cesty" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." -msgstr "" +msgstr "Nastavení cest a serveru pro tuto stránku StatusNet." #: actions/pathsadminpanel.php:157 #, php-format msgid "Theme directory not readable: %s." -msgstr "" +msgstr "Adresář témat není čitelný: %s." + +#: actions/pathsadminpanel.php:163 +#, php-format +msgid "Avatar directory not writable: %s." +msgstr "Nelze zapisovat do adresáře avatarů: %s." #: actions/pathsadminpanel.php:169 #, php-format msgid "Background directory not writable: %s." -msgstr "" +msgstr "Nelze zapisovat do adresáře pozadí: %s." #: actions/pathsadminpanel.php:177 #, php-format msgid "Locales directory not readable: %s." -msgstr "" +msgstr "Locales adresář není čitelný: %s." #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "Neplatný SSL server. Maximální délka je 255 znaků." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 msgid "Site" -msgstr "" +msgstr "Stránky" + +#: actions/pathsadminpanel.php:238 +msgid "Server" +msgstr "Server" #: actions/pathsadminpanel.php:238 msgid "Site's server hostname." -msgstr "" +msgstr "Hostname (jméno) serveru stránek." #: actions/pathsadminpanel.php:242 msgid "Path" -msgstr "" +msgstr "Cesta" + +#: actions/pathsadminpanel.php:242 +msgid "Site path" +msgstr "Cesta ke stránkám (za jménem serveru)" #: actions/pathsadminpanel.php:246 msgid "Path to locales" -msgstr "" +msgstr "Cesta k locales" #: actions/pathsadminpanel.php:246 msgid "Directory path to locales" -msgstr "" +msgstr "Cesta k adresáři locales" #: actions/pathsadminpanel.php:250 msgid "Fancy URLs" -msgstr "" +msgstr "Hezké URL" #: actions/pathsadminpanel.php:252 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" +msgstr "Použijte Fancy (více čitelné a zapamatovatelné) URL?" #: actions/pathsadminpanel.php:259 msgid "Theme" -msgstr "" +msgstr "Téma" #: actions/pathsadminpanel.php:264 msgid "Theme server" -msgstr "" +msgstr "server s tématy" #: actions/pathsadminpanel.php:268 msgid "Theme path" -msgstr "" +msgstr "cesta k tématu" + +#: actions/pathsadminpanel.php:272 +msgid "Theme directory" +msgstr "adresář tématu" + +#: actions/pathsadminpanel.php:279 +msgid "Avatars" +msgstr "Avatary" #: actions/pathsadminpanel.php:284 msgid "Avatar server" -msgstr "Avatar smazán." +msgstr "Server s avatary" + +#: actions/pathsadminpanel.php:288 +msgid "Avatar path" +msgstr "Cesta k avatarům" #: actions/pathsadminpanel.php:292 msgid "Avatar directory" -msgstr "Avatar smazán." +msgstr "Adresář avatarů" + +#: actions/pathsadminpanel.php:301 +msgid "Backgrounds" +msgstr "Pozadí" + +#: actions/pathsadminpanel.php:305 +msgid "Background server" +msgstr "Server s pozadím" + +#: actions/pathsadminpanel.php:309 +msgid "Background path" +msgstr "Cesta k pozadí" + +#: actions/pathsadminpanel.php:313 +msgid "Background directory" +msgstr "Adresář pozadí" #: actions/pathsadminpanel.php:320 msgid "SSL" -msgstr "" +msgstr "SSL" + +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nikdy" + +#: actions/pathsadminpanel.php:324 +msgid "Sometimes" +msgstr "Někdy" #: actions/pathsadminpanel.php:325 msgid "Always" -msgstr "" +msgstr "Vždy" #: actions/pathsadminpanel.php:329 msgid "Use SSL" -msgstr "" +msgstr "Použít SSL" #: actions/pathsadminpanel.php:330 msgid "When to use SSL" -msgstr "" +msgstr "Kdy použít SSL" + +#: actions/pathsadminpanel.php:335 +msgid "SSL server" +msgstr "SSL server" #: actions/pathsadminpanel.php:336 msgid "Server to direct SSL requests to" -msgstr "" +msgstr "Server kam směrovat SSL žádosti" #: actions/pathsadminpanel.php:352 msgid "Save paths" -msgstr "" +msgstr "Uložit cesty" #: actions/peoplesearch.php:52 #, php-format @@ -1932,10 +2887,15 @@ msgstr "" msgid "People search" msgstr "Hledání lidí" +#: actions/peopletag.php:68 +#, php-format +msgid "Not a valid people tag: %s." +msgstr "Není platný člověkotag: %s." + #: actions/peopletag.php:142 #, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "" +msgstr "Uživatelé kteří se sami otagovali %1$s - strana %2$d" #: actions/postnotice.php:95 msgid "Invalid notice content." @@ -1944,7 +2904,7 @@ msgstr "Neplatná velikost" #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "" +msgstr "Licence hlášky ‘%1$s’ není kompatibilní s licencí webu ‘%2$s’." #: actions/profilesettings.php:60 msgid "Profile settings" @@ -2007,18 +2967,18 @@ msgstr "Místo. Město, stát." #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Sdělit mou aktuální polohu při posílání hlášek" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" -msgstr "" +msgstr "Tagy" #: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "" +msgstr "Otagujte se (písmena, čísla, -, . a _), oddělené čárkami nebo mezerami" #: actions/profilesettings.php:151 msgid "Language" @@ -2026,20 +2986,22 @@ msgstr "Jazyk" #: actions/profilesettings.php:152 msgid "Preferred language" -msgstr "" +msgstr "Preferovaný jazyk" #: actions/profilesettings.php:161 msgid "Timezone" -msgstr "" +msgstr "Časové pásmo" #: actions/profilesettings.php:162 msgid "What timezone are you normally in?" -msgstr "" +msgstr "V jaké časové zóně se obyčejně nacházíte?" #: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" +"Automaticky se přihlásit k odběru toho kdo se přihlásil ke mně (nejlepší pro " +"ne-lidi)" #: actions/profilesettings.php:228 actions/register.php:230 #, php-format @@ -2048,17 +3010,33 @@ msgstr "Umístění příliš dlouhé (maximálně %d znaků)" #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." -msgstr "" +msgstr "Časové pásmo není vybráno." + +#: actions/profilesettings.php:241 +msgid "Language is too long (max 50 chars)." +msgstr "Jazyk je příliš dlouhý (max. 50 znaků)." #: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Neplatná velikost" +#: actions/profilesettings.php:306 +msgid "Couldn't update user for autosubscribe." +msgstr "Nelze aktualizovat nastavení automatického přihlašování." + +#: actions/profilesettings.php:363 +msgid "Couldn't save location prefs." +msgstr "Nelze uložit nastavení umístění." + #: actions/profilesettings.php:375 msgid "Couldn't save profile." msgstr "Nelze uložit profil" +#: actions/profilesettings.php:383 +msgid "Couldn't save tags." +msgstr "Nelze uložit tagy." + #. TRANS: Message after successful saving of administrative settings. #: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." @@ -2067,7 +3045,16 @@ msgstr "Nastavení uloženo" #: actions/public.php:83 #, php-format msgid "Beyond the page limit (%s)." -msgstr "" +msgstr "Přes limit stránky (%s)." + +#: actions/public.php:92 +msgid "Could not retrieve public stream." +msgstr "Nepodařilo se získat veřejný proud." + +#: actions/public.php:130 +#, php-format +msgid "Public timeline, page %d" +msgstr "Veřejná časová osa, strana %d" #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" @@ -2075,15 +3062,15 @@ msgstr "Veřejné zprávy" #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" -msgstr "" +msgstr "Veřejný Stream Feed (RSS 1.0)" #: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" -msgstr "" +msgstr "Veřejný Stream Feed (RSS 2.0)" #: actions/public.php:168 msgid "Public Stream Feed (Atom)" -msgstr "" +msgstr "Veřejný Stream Feed (Atom)" #: actions/public.php:188 #, php-format @@ -2091,16 +3078,18 @@ msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" +"Tohle je veřejná časová osa %%site.name%%, ale nikdo zatím nic nenapsal." #: actions/public.php:191 msgid "Be the first to post!" -msgstr "" +msgstr "Pošlete něco jako první!" #: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" +"Proč ne [zaregistrovat účet](%%action.register%%) a poslat něco jako první!" #: actions/public.php:242 #, php-format @@ -2110,6 +3099,10 @@ msgid "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" +"Toto je %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-" +"faq#mikroblog) služba založená na Free Software nástroji [StatusNet](http://" +"status.net/). [Zaregistrujte se](%%action.register%%) a sdílejte hlášky o " +"sobě s přáteli, rodinou a kolegy! ([Čtěte více](%%doc.help%%))" #: actions/public.php:247 #, php-format @@ -2118,24 +3111,27 @@ msgid "" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." msgstr "" +"Toto je %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-" +"faq#mikroblog) služba založená na Free Software nástroji [StatusNet](http://" +"status.net/)." #: actions/publictagcloud.php:57 msgid "Public tag cloud" -msgstr "" +msgstr "Veřejný tag cloud" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Poslední nejpopulárnější značky na %s " #: actions/publictagcloud.php:69 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." -msgstr "" +msgstr "Nikdo ještě neposlal oznámení s [tagem](%%doc.tags%%)." #: actions/publictagcloud.php:72 msgid "Be the first to post one!" -msgstr "" +msgstr "Pošlete něco jako první!" #: actions/publictagcloud.php:75 #, php-format @@ -2143,6 +3139,11 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" +"Proč ne [zaregistrovat účet](%%action.register%%) a poslat něco jako první!" + +#: actions/publictagcloud.php:134 +msgid "Tag cloud" +msgstr "Tag cloud" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -2158,7 +3159,7 @@ msgstr "Není obnovujícím kódem" #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "Obnovyt kód pro neznámého uživatele" +msgstr "Obnovovací kód pro neznámého uživatele." #: actions/recoverpassword.php:86 msgid "Error with confirmation code." @@ -2168,9 +3169,29 @@ msgstr "Chyba v ověřovacím kódu" msgid "This confirmation code is too old. Please start again." msgstr "Tento potvrzující kód je příliš starý Prosím zkuste znovu" +#: actions/recoverpassword.php:111 +msgid "Could not update user with confirmed email address." +msgstr "Nemohu aktualizovat uživatele s potvrzenou e-mailovou adresu." + +#: 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 "" +"Pokud jste zapomněli nebo ztratili své heslo, můžeme zaslat nové na e-" +"mailovou adresu, kterou jste uložili ve vašem účtu." + #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "" +msgstr "Byl jste identifikován. Vložte níže nové heslo. " + +#: actions/recoverpassword.php:188 +msgid "Password recovery" +msgstr "Obnovení hesla" + +#: actions/recoverpassword.php:191 +msgid "Nickname or email address" +msgstr "Zadej přezdívku nebo emailovou adresu" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -2186,15 +3207,19 @@ msgstr "Resetovat heslo" #: actions/recoverpassword.php:209 msgid "Recover password" -msgstr "Obnovit" +msgstr "Obnovit heslo" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" -msgstr "Žádost o obnovu hesla" +msgstr "Zažádáno o obnovu hesla" + +#: actions/recoverpassword.php:213 +msgid "Unknown action" +msgstr "Neznámá akce" #: actions/recoverpassword.php:236 msgid "6 or more characters, and don't forget it!" -msgstr "6 a více znaků, a nezapomeňte" +msgstr "6 a více znaků, a nezapomeňte ho!" #: actions/recoverpassword.php:243 msgid "Reset" @@ -2204,6 +3229,10 @@ msgstr "Reset" msgid "Enter a nickname or email address." msgstr "Zadej přezdívku nebo emailovou adresu" +#: actions/recoverpassword.php:282 +msgid "No user with that email address or username." +msgstr "Žádný uživatel s touto e-mailovou adresu nebo uživatelským jménem." + #: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Žádný registrovaný email pro tohoto uživatele." @@ -2217,7 +3246,7 @@ msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." msgstr "" -"Návod jak obnovit heslo byl odeslát na vaší emailovou adresu zaregistrovanou " +"Návod jak obnovit heslo byl odeslán na vaší emailovou adresu zaregistrovanou " "u vašeho účtu." #: actions/recoverpassword.php:357 @@ -2242,7 +3271,11 @@ msgstr "Nové heslo bylo uloženo. Nyní jste přihlášen." #: actions/register.php:92 actions/register.php:196 actions/register.php:412 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Litujeme, jen pozvaní se mohou registrovat." + +#: actions/register.php:99 +msgid "Sorry, invalid invitation code." +msgstr "Litujeme, neplatný kód pozvánky." #: actions/register.php:119 msgid "Registration successful" @@ -2254,7 +3287,7 @@ msgstr "Registrovat" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "" +msgstr "Registrace není povolena." #: actions/register.php:205 msgid "You can't register if you don't agree to the license." @@ -2273,6 +3306,20 @@ msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" +"Pomocí tohoto formuláře můžete vytvořit nový účet. Můžete pak posílat " +"oznámení a propojit se s přáteli a kolegy. " + +#: actions/register.php:432 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." +msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer. Nutné." + +#: actions/register.php:437 +msgid "6 or more characters. Required." +msgstr "6 a více znaků. Nutné." + +#: actions/register.php:441 +msgid "Same as password above. Required." +msgstr "Stejné jako heslo uvedeno výše. Povinné." #. TRANS: Link description in user account settings menu. #: actions/register.php:445 actions/register.php:449 @@ -2286,28 +3333,28 @@ msgstr "Použije se pouze pro aktualizace, oznámení a obnovu hesla." #: actions/register.php:457 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "Delší jméno, nejlépe vaše \"skutečné\" jméno" #: actions/register.php:518 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." -msgstr "" +msgstr "Chápu, že obsah a data %1$S jsou soukromé a důvěrné." #: actions/register.php:528 #, php-format msgid "My text and files are copyright by %1$s." -msgstr "" +msgstr "Můj text a soubory jsou copyrightovány %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. #: actions/register.php:532 msgid "My text and files remain under my own copyright." -msgstr "" +msgstr "Můj text a soubory zůstanou pod mým vlastním copyrightem." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. #: actions/register.php:535 msgid "All rights reserved." -msgstr "" +msgstr "Všechna práva vyhrazena." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. #: actions/register.php:540 @@ -2316,6 +3363,8 @@ msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" +"Můj text a soubory jsou k dispozici pod %s výjimkou těchto soukromých dat: " +"heslo, e-mailová adresa, IM adresa a telefonní číslo." #: actions/register.php:583 #, php-format @@ -2335,12 +3384,28 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" +"Gratulujeme, %1$s! A Vítejte v %%%%site.name%%%%. Odtud možná budete " +"chtít ... \n" +"\n" +" * Jít na [profil](%2$s) a poslat první zprávu. \n" +" * Přidat [Jabber / GTalk adresu](%%%%action.imsetting %%%%) abyste mohli " +"zasílat oznámení prostřednictvím okamžitých zpráv (IM). \n" +" * [Hledat lidi](%%%%action.peoplesearch%%%%), které znáte, nebo kteří " +"sdílejí vaše zájmy. \n" +" * Aktualizací [nastavení profilu](%%%%action.profilesettings%%%%) o vás " +"více říci ostatním. \n" +" * Pročíst si [online nápovědu](%%%%doc.help%%%%) pro objevení funkcí které " +"jste možná přehlédli. \n" +"\n" +" Díky za registraci a doufáme, že se vám používání této služby bude líbít." #: actions/register.php:607 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" +"(Měli byste za okamžik obdržet e-mailem zprávu s instrukcemi, jak potvrdit " +"svou e-mailovou adresu.)" #: actions/remotesubscribe.php:98 #, php-format @@ -2351,15 +3416,19 @@ msgid "" msgstr "" "Pro odebírání, se musíte [přihlásit](%%action.login%%), nebo [registrovat](%%" "action.register%%) nový účet. Pokud již máte účet na [kompatibilních " -"mikroblozích](%%doc.openmublog%%), vložte níže asdresu " +"mikroblozích](%%doc.openmublog%%), vložte níže adresu." #: actions/remotesubscribe.php:112 msgid "Remote subscribe" msgstr "Vzdálený odběr" +#: actions/remotesubscribe.php:124 +msgid "Subscribe to a remote user" +msgstr "Přihlásit se ke vzdálenému uživateli" + #: actions/remotesubscribe.php:129 msgid "User nickname" -msgstr "Přezdívka" +msgstr "Přezdívka uživatele" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" @@ -2385,22 +3454,40 @@ msgstr "Neplatná adresa profilu (špatný formát)" #: actions/remotesubscribe.php:168 msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." msgstr "" +"Není platnou adresou profilu (není YADIS dokumentem nebo definováno neplatné " +"XRDS)." #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." -msgstr "" +msgstr "To je místní profil! Pro přihlášení k odběru se přihlášte." #: actions/remotesubscribe.php:183 msgid "Couldn’t get a request token." -msgstr "" +msgstr "Nelze získat řetězec požadavku." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "" +msgstr "Pouze přihlášení uživatelé mohou opakovat oznámení." + +#: actions/repeat.php:64 actions/repeat.php:71 +msgid "No notice specified." +msgstr "Oznámení neuvedeno." + +#: actions/repeat.php:76 +msgid "You can't repeat your own notice." +msgstr "Nemůžete opakovat své vlastní oznámení." + +#: actions/repeat.php:90 +msgid "You already repeated that notice." +msgstr "Již jste zopakoval toto oznámení." #: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" -msgstr "Reset" +msgstr "Opakované" + +#: actions/repeat.php:119 +msgid "Repeated!" +msgstr "Opakované!" #: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -2408,10 +3495,25 @@ msgstr "Reset" msgid "Replies to %s" msgstr "Odpovědi na %s" +#: actions/replies.php:128 +#, php-format +msgid "Replies to %1$s, page %2$d" +msgstr "Odpovědi na %1$s, strana %2$d" + +#: actions/replies.php:145 +#, php-format +msgid "Replies feed for %s (RSS 1.0)" +msgstr "Feed odpovědí pro %s (RSS 1.0)" + +#: actions/replies.php:152 +#, php-format +msgid "Replies feed for %s (RSS 2.0)" +msgstr "Feed odpovědí pro %s (RSS 2.0)" + #: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" -msgstr "Odpovědi na %s" +msgstr "Feed odpovědí pro %s (Atom)" #: actions/replies.php:199 #, php-format @@ -2419,6 +3521,8 @@ msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" +"Toto je časová osa ukazující odpovědi na %1$s, ale %2$s, ještě neobdržel " +"žádná oznámení." #: actions/replies.php:204 #, php-format @@ -2426,6 +3530,8 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"Můžete zapojit ostatní uživatele v rozhovoru, přihlaste se k více lidem nebo " +"se [připojit do skupin](%%action.groups%%)." #: actions/replies.php:206 #, php-format @@ -2433,67 +3539,94 @@ msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" +"Můžete se pokusit uživatele [%1$s postrčit](../%2$s) nebo [jim něco poslat]" +"(%%%%action.newnotice%%%%?status_textarea=%3$s)." + +#: actions/repliesrss.php:72 +#, php-format +msgid "Replies to %1$s on %2$s!" +msgstr "Odpovědi na %1$s na %2$s!" #: actions/revokerole.php:75 msgid "You cannot revoke user roles on this site." -msgstr "" +msgstr "Nemůžete rušit uživatelské role na této stránce." #: actions/revokerole.php:82 msgid "User doesn't have this role." -msgstr "" +msgstr "Uživatel nemá tuto roli." #: actions/rsd.php:146 actions/version.php:159 msgid "StatusNet" -msgstr "Statistiky" +msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." -msgstr "" +msgstr "Nemůžete sandboxovat uživatele na této stránce." #: actions/sandbox.php:72 msgid "User is already sandboxed." -msgstr "" +msgstr "Uživatel je již sandboxován." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 #: lib/adminpanelaction.php:392 msgid "Sessions" -msgstr "" +msgstr "Sessions" #: actions/sessionsadminpanel.php:65 msgid "Session settings for this StatusNet site." -msgstr "" +msgstr "Nastavení sessions pro tuto stránku StatusNet." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" -msgstr "" +msgstr "Zpracovávat sessions" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "Máme sami zpracovávat sessions?" #: actions/sessionsadminpanel.php:181 msgid "Session debugging" -msgstr "" +msgstr "Debugování sessions" #: actions/sessionsadminpanel.php:183 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "Zapnout výstup pro debugování sessions" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" -msgstr "Nastavené Profilu" +msgstr "Uložit Nastavení webu" + +#: actions/showapplication.php:82 +msgid "You must be logged in to view an application." +msgstr "Musíte být přihlášeni pro zobrazení aplikace." + +#: actions/showapplication.php:157 +msgid "Application profile" +msgstr "Profil aplikace" #. TRANS: Form input field label for application icon. #: actions/showapplication.php:159 lib/applicationeditform.php:182 msgid "Icon" -msgstr "" +msgstr "Ikona" + +#. TRANS: Form input field label for application name. +#: actions/showapplication.php:169 actions/version.php:197 +#: lib/applicationeditform.php:199 +msgid "Name" +msgstr "Název" #. TRANS: Form input field label. #: actions/showapplication.php:178 lib/applicationeditform.php:235 msgid "Organization" -msgstr "" +msgstr "Organizace" + +#. TRANS: Form input field label. +#: actions/showapplication.php:187 actions/version.php:200 +#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +msgid "Description" +msgstr "Popis" #: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 @@ -2504,61 +3637,83 @@ msgstr "Statistiky" #, php-format msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" +"Vytvořil %1$s - s \"%2$s\" přístupem ve výchozím nastavení - %3$d uživatelů" + +#: actions/showapplication.php:213 +msgid "Application actions" +msgstr "Akce aplikace" #: actions/showapplication.php:236 msgid "Reset key & secret" -msgstr "" +msgstr "Resetovat klíč a tajemství" + +#: actions/showapplication.php:261 +msgid "Application info" +msgstr "Info o aplikaci" #: actions/showapplication.php:263 msgid "Consumer key" -msgstr "" +msgstr "Spotřebitelský klíč" #: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "" +msgstr "Spotřebitelské tajemství" #: actions/showapplication.php:273 msgid "Request token URL" -msgstr "" +msgstr "Adresa řetězce požadavku" #: actions/showapplication.php:278 msgid "Access token URL" -msgstr "" +msgstr "URL Access tokenu" #: actions/showapplication.php:283 msgid "Authorize URL" -msgstr "" +msgstr "Authorizační URL" #: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." -msgstr "" +msgstr "Poznámka: podpora HMAC-SHA1 podpisů. Nepodporujeme plaintext." #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" msgstr "" +"Jste si jisti, že chcete resetovat svůj spotřebitelský klíč a tajemství?" #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "" +msgstr "Oblíbená oznámení uživatele %1$s, strana %2$d" + +#: actions/showfavorites.php:132 +msgid "Could not retrieve favorite notices." +msgstr "Nepodařilo se získat oblíbená oznámení." #: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "" +msgstr "Feed oblíbených oznámení uživatele %s (RSS 1.0)" #: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "" +msgstr "Feed oblíbených oznámení uživatele %s (RSS 2.0)" + +#: actions/showfavorites.php:185 +#, php-format +msgid "Feed for favorites of %s (Atom)" +msgstr "Feed oblíbených oznámení uživatele %s (Atom)" #: 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 "" +"Nemáte dosud vybraná žádná oblíbená oznámení. Abyste si je založili na " +"později nebo na ně upoutali pozornost, klikněte na tlačítko Oblíbené na " +"oznámeních" #: actions/showfavorites.php:208 #, php-format @@ -2566,6 +3721,8 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" +"%s ještě nemá žádná oblíbená oznámení. Napište neco zajímavého co by si " +"přidali do oblíbených :)" #: actions/showfavorites.php:212 #, php-format @@ -2574,24 +3731,31 @@ msgid "" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" +"%s ještě nemá žádná oblíbená oznámení. Proč se ne [zaregistrovat](%%%%action." +"register%%%%) a neposlat neco zajímavého co by si přidali do oblíbených :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." -msgstr "" +msgstr "Toto je způsob, jak sdílet to, co se vám líbí." + +#: actions/showgroup.php:82 lib/groupnav.php:86 +#, php-format +msgid "%s group" +msgstr "skupina %s" #: actions/showgroup.php:84 #, php-format msgid "%1$s group, page %2$d" -msgstr "" +msgstr "skupina %1$s, str. %2$d" #: actions/showgroup.php:227 msgid "Group profile" -msgstr "Logo skupiny" +msgstr "Profil skupiny" #: actions/showgroup.php:272 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" -msgstr "" +msgstr "URL" #: actions/showgroup.php:283 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:195 @@ -2600,22 +3764,49 @@ msgstr "Poznámka" #: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" -msgstr "" +msgstr "Aliasy" + +#: actions/showgroup.php:302 +msgid "Group actions" +msgstr "Akce skupiny" #: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "" +msgstr "Feed sdělení skupiny %s (RSS 1.0" #: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "" +msgstr "Feed sdělení skupiny %s (RSS 2.0)" + +#: actions/showgroup.php:350 +#, php-format +msgid "Notice feed for %s group (Atom)" +msgstr "Feed sdělení skupiny %s (Atom)" #: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" -msgstr "Upravit %s skupinu" +msgstr "FOAF pro skupinu %s" + +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +msgid "Members" +msgstr "Členové" + +#: actions/showgroup.php:398 lib/profileaction.php:117 +#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 +#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 +msgid "(None)" +msgstr "(nic)" + +#: actions/showgroup.php:404 +msgid "All members" +msgstr "Všichni členové" + +#: actions/showgroup.php:439 +msgid "Created" +msgstr "Vytvořeno" #: actions/showgroup.php:455 #, php-format @@ -2626,6 +3817,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** je skupina uživatelů na %%site.name%%, [mikro-blogovací](http://drbz." +"cz/i/napoveda-faq#mikroblog) službě založené na Free Software nástroji " +"[StatusNet](http://status.net/). Její členové sdílejí krátké zprávy o svém " +"životě a zájmech. [Zaregistrujte se](%%action.register%%) a staňte se členem " +"této skupiny a mnoha dalších! ([Čtěte více](%%doc.help%%))" #: actions/showgroup.php:461 #, php-format @@ -2635,54 +3831,84 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" +"**%s** je skupina uživatelů na %%site.name%%, [mikro-blogovací](http://drbz." +"cz/i/napoveda-faq#mikroblog) službě založené na Free Software nástroji " +"[StatusNet](http://status.net/). Její členové sdílejí krátké zprávy o svém " +"životě a zájmech. " #: actions/showgroup.php:489 msgid "Admins" -msgstr "" +msgstr "Adminové" + +#: actions/showmessage.php:81 +msgid "No such message." +msgstr "Žádné takové zprávy." #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Pouze odesílatel a příjemce může přečíst tuto zprávu." #: actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Zpráva pro %1$s na %2$s" #: actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Zpráva od %1$s na %2$s" #: actions/shownotice.php:90 msgid "Notice deleted." -msgstr "Avatar smazán." +msgstr "Oznámení smazáno." #: actions/showstream.php:73 #, php-format msgid " tagged %s" -msgstr "" +msgstr "označen %s" #: actions/showstream.php:79 #, php-format msgid "%1$s, page %2$d" -msgstr "" +msgstr "%1$s, strana %2$d" #: actions/showstream.php:122 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "" +msgstr "Feed oznámení pro %1$s otagovaných %2$s (RSS 1.0)" + +#: actions/showstream.php:129 +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Feed oznámení pro %1$s (RSS 1.0)" + +#: actions/showstream.php:136 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "Feed oznámení pro %1$s (RSS 2.0)" + +#: actions/showstream.php:143 +#, php-format +msgid "Notice feed for %s (Atom)" +msgstr "Feed oznámení pro %1$s (Atom)" + +#: actions/showstream.php:148 +#, php-format +msgid "FOAF for %s" +msgstr "FOAF pro %s" #: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "" +msgstr "Toto je časová osa pro %1$s, ale %2$s zatím ničím nepřispěli." #: 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 "" +"Viděli jste v poslední době zajímavého? Nemáte zatím žádné oznámení, teď by " +"byl dobrý čas začít:)" #: actions/showstream.php:207 #, php-format @@ -2690,6 +3916,8 @@ msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" +"Můžete se pokusit uživatele %1$s postrčit nebo [jim něco poslat](%%%%action." +"newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -2699,6 +3927,10 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** má účet na %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-" +"faq#mikroblog) službě založené na Free Software nástroji [StatusNet](http://" +"status.net/). [Zaregistrujte se](%%action.register%%) a sledujte oznámení od " +"**%s**a mnoha dalších! ([Čtěte více](%%doc.help%%))" #: actions/showstream.php:248 #, php-format @@ -2707,148 +3939,211 @@ msgid "" "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " msgstr "" +"**%s** má účet na %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-" +"faq#mikroblog) službě založené na Free Software nástroji [StatusNet](http://" +"status.net/). " + +#: actions/showstream.php:305 +#, php-format +msgid "Repeat of %s" +msgstr "Opakování %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "" +msgstr "Na tomto webu nemůžete ztišovat uživatele." #: actions/silence.php:72 msgid "User is already silenced." -msgstr "" +msgstr "Uživatel je už umlčen." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" -msgstr "" +msgstr "Základní nastavení pro tuto stránku StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." -msgstr "" +msgstr "Název webu musí mít nenulovou délku." + +#: actions/siteadminpanel.php:141 +msgid "You must have a valid contact email address." +msgstr "Musíte mít platnou kontaktní emailovou adresu." #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." -msgstr "" +msgstr "Neznámý jazyk \"%s\"." #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." -msgstr "" +msgstr "Minimální limit textu je 0 (bez omezení)." #: actions/siteadminpanel.php:171 msgid "Dupe limit must be one or more seconds." -msgstr "" +msgstr "Duplikační limit musí být jedna nebo více sekund." #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "Obecné" + +#: actions/siteadminpanel.php:224 +msgid "Site name" +msgstr "Název stránky" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "" +msgstr "Název vaší stránky, jako \"Mikroblog VašíSpolečnosti\"" #: actions/siteadminpanel.php:229 msgid "Brought by" -msgstr "" +msgstr "Přineseno" #: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" -msgstr "" +msgstr "Text pro děkovný odkaz (credits) v zápatí každé stránky." #: actions/siteadminpanel.php:234 msgid "Brought by URL" -msgstr "" +msgstr "Přineseno URL" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" -msgstr "" +msgstr "Text pro děkovný odkaz (credits) v zápatí každé stránky." + +#: actions/siteadminpanel.php:239 +msgid "Contact email address for your site" +msgstr "Kontaktní e-mailová adresa pro vaše stránky" + +#: actions/siteadminpanel.php:245 +msgid "Local" +msgstr "Místní" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "Výchozí časové pásmo" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "Výchozí časové pásmo pro web, obvykle UTC." #: actions/siteadminpanel.php:262 msgid "Default language" -msgstr "" +msgstr "Výchozí jazyk" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" -msgstr "" +msgstr "Jazyk stránky když není k dispozici autodetekce z nastavení prohlížeče" #: actions/siteadminpanel.php:271 msgid "Limits" -msgstr "" +msgstr "Omezení" #: actions/siteadminpanel.php:274 msgid "Text limit" -msgstr "" +msgstr "Omezení textu" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "Maximální počet znaků v oznámení." #: actions/siteadminpanel.php:278 msgid "Dupe limit" -msgstr "" +msgstr "Limit duplikace" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"Jak dlouho uživatel musí čekat (v sekundách) než může poslat totéž znovu." #: actions/sitenoticeadminpanel.php:56 msgid "Site Notice" -msgstr "Sdělení" +msgstr "Oznámení stránky" #: actions/sitenoticeadminpanel.php:67 msgid "Edit site-wide message" -msgstr "" +msgstr "Upravit celo-webovou zprávu" + +#: actions/sitenoticeadminpanel.php:103 +msgid "Unable to save site notice." +msgstr "Problém při ukládání sdělení stránky" #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +msgstr "Max délka pro celo-webové oznámení je 255 znaků." + +#: actions/sitenoticeadminpanel.php:176 +msgid "Site notice text" +msgstr "Text sdělení stránky" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "Celo-webové sdělení (255 znaků max., s HTML)" + +#: actions/sitenoticeadminpanel.php:198 +msgid "Save site notice" +msgstr "Uložit oznámení stránky" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 msgid "SMS settings" -msgstr "Nastavené Profilu" +msgstr "nastavení SMS" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/smssettings.php:74 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Z %%site.name%% můžete přijímat SMS e-mailem." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 msgid "SMS is not available." -msgstr "" +msgstr "SMS není k dispozici." + +#. TRANS: Form legend for SMS settings form. +#: actions/smssettings.php:111 +msgid "SMS address" +msgstr "SMS adresa" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Aktuální potvrzené SMS-schopné telefonní číslo." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "Čeká na potvrzení na tomto telefonním čísle." + +#. TRANS: Field label for SMS address input in SMS settings form. +#: actions/smssettings.php:142 +msgid "Confirmation code" +msgstr "Potvrzovací kód" #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "Zadejte kód, který jste obdrželi na telefonu." + +#. TRANS: Button label to confirm SMS confirmation code in SMS settings. +#: actions/smssettings.php:148 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Potvrdit" + +#. TRANS: Field label for SMS phone number input in SMS settings form. +#: actions/smssettings.php:153 +msgid "SMS phone number" +msgstr "SMS telefonní číslo" + +#. TRANS: SMS phone number input field instructions in SMS settings form. +#: actions/smssettings.php:156 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "Telefonní číslo, Nepoužívej interpunkci nebo mezery, s předčíslím" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 msgid "SMS preferences" -msgstr "Nastavení uloženo" +msgstr "Nastavení SMS" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -2856,35 +4151,73 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"Posílejte mi oznámení prostřednictvím SMS. Chápu že mi můj telefonní " +"provider může naůčtovat nesmyslně vysoké částky." + +#. TRANS: Confirmation message for successful SMS preferences save. +#: actions/smssettings.php:315 +msgid "SMS preferences saved." +msgstr "Nastavení SMS uloženo." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 msgid "No phone number." msgstr "Žádné telefonní číslo." +#. TRANS: Message given saving SMS phone number without having selected a carrier. +#: actions/smssettings.php:344 +msgid "No carrier selected." +msgstr "Nevybrán poskytovatel." + +#. TRANS: Message given saving SMS phone number that is already set. +#: actions/smssettings.php:352 +msgid "That is already your phone number." +msgstr "Toto je již vaše telefonní číslo." + +#. TRANS: Message given saving SMS phone number that is already set for another user. +#: actions/smssettings.php:356 +msgid "That phone number already belongs to another user." +msgstr "Toto telefonní číslo již patří jinému uživateli" + #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 msgid "" "A confirmation code was sent to the phone number you added. Check your phone " "for the code and instructions on how to use it." msgstr "" -"Ověřující kód byl poslán na vloženou IM adresu. Musíte prokázat %s pro " -"posílání zpráv." +"Ověřující kód byl poslán na vložené telefonní číslo, s instrukcemi jak ho " +"použít." + +#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. +#: actions/smssettings.php:413 +msgid "That is the wrong confirmation number." +msgstr "Toto je špatné ověřovací číslo." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 msgid "SMS confirmation cancelled." -msgstr "Žádný potvrzující kód." +msgstr "SMS potvrzení zrušeno." + +#. TRANS: Message given trying to remove an SMS phone number that is not +#. TRANS: registered for the active user. +#: actions/smssettings.php:448 +msgid "That is not your phone number." +msgstr "To není vaše telefonní číslo." + +#. TRANS: Message given after successfully removing a registered SMS phone number. +#: actions/smssettings.php:470 +msgid "The SMS phone number was removed." +msgstr "SMS Telefonní číslo bylo odstraněno." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 msgid "Mobile carrier" -msgstr "" +msgstr "Mobilní operátor" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 msgid "Select a carrier" -msgstr "" +msgstr "Vyberte operátora" #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. #. TRANS: %s is an administrative contact's e-mail address. @@ -2894,94 +4227,129 @@ 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 "" +"Mobilní operátor vášeho telefonu. Pokud znáte operátora, který přijímá SMS " +"přes e-mail, ale zde není uveden, pošlete e-mail a dejte nám vědět na% s." + +#. TRANS: Message given saving SMS phone number confirmation code without having provided one. +#: actions/smssettings.php:548 +msgid "No code entered" +msgstr "Nezadán kód" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 #: lib/adminpanelaction.php:408 msgid "Snapshots" -msgstr "" +msgstr "Snímky (snapshoty)" #: actions/snapshotadminpanel.php:65 msgid "Manage snapshot configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Konfigurace snímků" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Neplatná hodnota run. (kdy provádět snapshoty)" #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." -msgstr "" +msgstr "Frekvence snímků musí být číslo." #: actions/snapshotadminpanel.php:144 msgid "Invalid snapshot report URL." -msgstr "" +msgstr "Neplatná URL na reportování snímků" #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" -msgstr "" +msgstr "Náhodně při dodávání stránek" #: actions/snapshotadminpanel.php:201 msgid "In a scheduled job" -msgstr "" +msgstr "V naplánovaném úkolu" #: actions/snapshotadminpanel.php:206 msgid "Data snapshots" -msgstr "" +msgstr "Snímky dat" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "Kdy posílat statistická data na status.net servery" #: actions/snapshotadminpanel.php:217 msgid "Frequency" -msgstr "" +msgstr "Frekvence" #: actions/snapshotadminpanel.php:218 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "Snímky budou odeslány jednou za N web hitů" #: actions/snapshotadminpanel.php:226 msgid "Report URL" -msgstr "" +msgstr "Reportovací URL" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "Na tuto adresu budou poslány snímky" + +#: actions/snapshotadminpanel.php:248 +msgid "Save snapshot settings" +msgstr "Uložit nastavení snímkování" + +#: actions/subedit.php:70 +msgid "You are not subscribed to that profile." +msgstr "Nejste přihlášen k tomuto profilu." #. TRANS: Exception thrown when a subscription could not be stored on the server. #: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." -msgstr "Nelze vložit odebírání" +msgstr "Nelze uložit odebírání" #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Tato akce přijímá pouze POST požadavky." + +#: actions/subscribe.php:107 +msgid "No such profile." +msgstr "Žádný takový profil." #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" +"Touto akcí se nemůžete se přihlásit k odběru vzdáleného OMB 0.1 profilu." + +#: actions/subscribe.php:145 +msgid "Subscribed" +msgstr "Prihlášen" #: actions/subscribers.php:50 #, php-format msgid "%s subscribers" -msgstr "Všichni odběratelé" +msgstr "Odběratelé %s" + +#: actions/subscribers.php:52 +#, php-format +msgid "%1$s subscribers, page %2$d" +msgstr "odběratelé %1$s, strana %2$d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "Toto jsou lidé, kteří naslouchají vašim sdělením " +msgstr "Toto jsou lidé, kteří naslouchají vašim sdělením." #: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "Toto jsou lidé, kteří naslouchají %s sdělením" +msgstr "Toto jsou lidé, kteří naslouchají sdělením od %s." #: actions/subscribers.php:108 msgid "" "You have no subscribers. Try subscribing to people you know and they might " "return the favor" msgstr "" +"Nemáte žádné sledovatele. Zkuste začít sledovat lidi, které znáte, a oni by " +"vám tu laskavost mohli vrátit" #: actions/subscribers.php:110 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "" +msgstr "Uživatele %s nikdo nesleduje. Chcete být první?" #: actions/subscribers.php:114 #, php-format @@ -2989,6 +4357,18 @@ msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"Uživatele %s nikdo nesleduje. Proč ne [zaregistrovat účet](%%action.register%" +"%) a nebýt první?" + +#: actions/subscriptions.php:52 +#, php-format +msgid "%s subscriptions" +msgstr "Odběry uživatele %s" + +#: actions/subscriptions.php:54 +#, php-format +msgid "%1$s subscriptions, page %2$d" +msgstr "Odběry uživatele %1$s, strana %2$d" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." @@ -2997,7 +4377,7 @@ msgstr "Toto jsou lidé, jejiž sdělením nasloucháte" #: actions/subscriptions.php:69 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "Toto jsou lidé, jejiž sdělením %s naslouchá" +msgstr "Toto jsou lidé, jejímž sdělením %s naslouchá" #: actions/subscriptions.php:126 #, php-format @@ -3008,95 +4388,145 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" +"Momentálně nenasloucháte níčím oznámením, zkuste se přihlásit k lidem které " +"znáte. Zkuste [Vyhledávání lidí](%%action.peoplesearch%%), podívejte se po " +"členech skupin které vás zajímají a do [nejlepších uživatelú](%%action." +"featured%%). Pokud jste uživatelem [Twitteru](%%action.twittersettings%%), " +"můžete se automaticky přihlásit k lidem které už tam sledujete." + +#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#, php-format +msgid "%s is not listening to anyone." +msgstr "%s nikoho nesleduje." + +#: actions/subscriptions.php:208 +msgid "Jabber" +msgstr "Jabber" #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 msgid "SMS" -msgstr "" +msgstr "SMS" #: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "" +msgstr "Oznámení označená %1$s, strana %2$d" #: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "" +msgstr "Feed oznámení označených %s (RSS 1.0)" #: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "" +msgstr "Feed oznámení označených %s (RSS 2.0)" + +#: actions/tag.php:99 +#, php-format +msgid "Notice feed for tag %s (Atom)" +msgstr "Feed oznámení označených %s (Atom)" #: actions/tagother.php:39 msgid "No ID argument." -msgstr "" +msgstr "Žádný argument ID." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "Otagujte %s" + +#: actions/tagother.php:77 lib/userprofile.php:76 +msgid "User profile" +msgstr "Uživatelský profil" #: actions/tagother.php:81 actions/userauthorization.php:132 #: lib/userprofile.php:103 msgid "Photo" -msgstr "" +msgstr "Fotka" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Otagujte uživatele" #: actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Tagy pro tohoto uživatele (písmena, číslice, -,., a _), oddělené čárkou nebo " +"mezerou" #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Můžete označovat pouze lidi, ke kterým jste přihlášen nebo kteří jsou " +"přihlášeni k vám." #: actions/tagother.php:200 msgid "Could not save tags." -msgstr "Nelze uložit profil" +msgstr "Nelze uložit nálepky" #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"Použijte tento formulář k přidání nálepek na vaše posluchače nebo ty které " +"posloucháte." + +#: actions/tagrss.php:35 +msgid "No such tag." +msgstr "Žádná taková nálepka." + +#: actions/unblock.php:59 +msgid "You haven't blocked that user." +msgstr "Nemáte zablokováno tohoto uživatele." + +#: actions/unsandbox.php:72 +msgid "User is not sandboxed." +msgstr "Uživatel není sandboxován." + +#: actions/unsilence.php:72 +msgid "User is not silenced." +msgstr "Uživatel není umlčen." #: actions/unsubscribe.php:77 msgid "No profile ID in request." -msgstr "Žádné potvrení!" +msgstr "CHybí ID profilu v žádosti." + +#: actions/unsubscribe.php:98 +msgid "Unsubscribed" +msgstr "Odhlášeno" #: 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 "" +"Licence naslouchaného '%1$s' není kompatibilní s licencí stránky '%2$s'." #. TRANS: User admin panel title #: actions/useradminpanel.php:59 msgctxt "TITLE" msgid "User" -msgstr "" +msgstr "Uživatel" #: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." -msgstr "" +msgstr "Nastavení uživatelů pro tuto stránku StatusNet." #: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "Neplatný bio limit. Musí být číslo." #: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +msgstr "Neplatné uvítací text. Max délka je 255 znaků." #: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +msgstr "Neplatné výchozí přihlášení: '%1$s' není uživatel." #. TRANS: Link description in user account settings menu. #: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 @@ -3106,39 +4536,47 @@ msgstr "Profil" #: actions/useradminpanel.php:222 msgid "Bio Limit" -msgstr "" +msgstr "Limit Bia" #: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "Maximální počet znaků bia profilu." #: actions/useradminpanel.php:231 msgid "New users" -msgstr "" +msgstr "Noví uživatelé" #: actions/useradminpanel.php:235 msgid "New user welcome" -msgstr "" +msgstr "Uvítání nového uživatele" #: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgstr "Uvítání nových uživatel (Max 255 znaků)." + +#: actions/useradminpanel.php:241 +msgid "Default subscription" +msgstr "Výchozí odběr" + +#: actions/useradminpanel.php:242 +msgid "Automatically subscribe new users to this user." +msgstr "Automaticky přihlásit nové uživatele k tomuto uživateli." #: actions/useradminpanel.php:251 msgid "Invitations" -msgstr "" +msgstr "Pozvánky" #: actions/useradminpanel.php:256 msgid "Invitations enabled" -msgstr "" +msgstr "Pozvánky povoleny" #: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." -msgstr "" +msgstr "Zda chcete uživatelům umožnit pozvat nové uživatele." #: actions/userauthorization.php:105 msgid "Authorize subscription" -msgstr "Autorizovaný odběr" +msgstr "Autorizujte přihlášení" #: actions/userauthorization.php:110 msgid "" @@ -3146,6 +4584,9 @@ msgid "" "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" +"Prosím zkontrolujte tyto detailu, a ujistěte se že opravdu chcete odebírat " +"sdělení tohoto uživatele. Pokud jste právě nepožádali o přihlášení k tomuto " +"uživteli, klikněte na \"Zrušit\"" #: actions/userauthorization.php:196 actions/version.php:167 msgid "License" @@ -3158,7 +4599,7 @@ msgstr "Přijmout" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "Neodeslal jste nám profil" +msgstr "Přihlásit se k tomuto uživateli" #: actions/userauthorization.php:219 msgid "Reject" @@ -3166,11 +4607,11 @@ msgstr "Odmítnout" #: actions/userauthorization.php:220 msgid "Reject this subscription" -msgstr "Autorizovaný odběr" +msgstr "Odmítnout toto přihlášení" #: actions/userauthorization.php:232 msgid "No authorization request!" -msgstr "Žádné potvrení!" +msgstr "Žádná žádost o autorizaci!" #: actions/userauthorization.php:254 msgid "Subscription authorized" @@ -3182,6 +4623,9 @@ msgid "" "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" +"Odběr byl autorizován, ale nepřišla žádná callback adresa. Zkontrolujte v " +"nápovědě jak správně postupovat při autorizování odběru. Váš řetězec odběru " +"je:" #: actions/userauthorization.php:266 msgid "Subscription rejected" @@ -3193,66 +4637,80 @@ msgid "" "with the site’s instructions for details on how to fully reject the " "subscription." msgstr "" +"Odebírání bylo zamítnuto, ale nepřišla žádná callback adresa. Zkontrolujte v " +"nápovědě jak správně postupovat pro plné zamítnutí odběru." #: actions/userauthorization.php:303 #, php-format msgid "Listener URI ‘%s’ not found here." -msgstr "" +msgstr "Naslouchací URI ‘%s’ zde nebyl nalezen." #: actions/userauthorization.php:308 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "Naslouchací URI ‘%s’ je příliš dlouhý." #: actions/userauthorization.php:314 #, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "Naslouchací URI ‘%s’ je místní uživatel." #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "URL profilu '%s' je pro místního uživatele." #: actions/userauthorization.php:345 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "URL avataru ‘%s’ není platný." #: actions/userauthorization.php:350 #, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "" +msgstr "Nelze načíst avatara z URL '%s'" #: actions/userauthorization.php:355 #, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "" +msgstr "Špatný typ obrázku na URL '%s'" + +#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +msgid "Profile design" +msgstr "Vzhled profilu" #: 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 "" +"Přizpůsobit vzhled vašeho profilu obrázkem na pozadí a barevnou paletou " +"vašeho výběru." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "Užijte si svůj párek v rohlíku!" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 #, php-format msgid "%1$s groups, page %2$d" -msgstr "" +msgstr "skupiny uživatele %1$s, strana %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" -msgstr "" +msgstr "Vyhledat další skupiny" + +#: actions/usergroups.php:159 +#, php-format +msgid "%s is not a member of any group." +msgstr "%s není členem žádné skupiny." #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +"Zkuste [vyhledávat skupiny](%%action.groupsearch%%) a připojit se k nim." #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle in atom group notice feed. @@ -3263,7 +4721,12 @@ msgstr "" #: lib/atomusernoticefeed.php:76 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Oznámení od %1$s na %2$s!" + +#: actions/version.php:75 +#, php-format +msgid "StatusNet %s" +msgstr "StatusNet %s" #: actions/version.php:155 #, php-format @@ -3271,10 +4734,12 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"Tato webová stránka je poháněna a běží na programu %1$S verze %2$s, " +"Copyright 2008-2010 StatusNet, Inc a přispěvatelé." #: actions/version.php:163 msgid "Contributors" -msgstr "" +msgstr "Přispěvatelé" #: actions/version.php:170 msgid "" @@ -3283,6 +4748,10 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"StatusNet je svobodný software: můžete jej šířit a / nebo modifikovat podle " +"podmínek GNU Affero General Public License, vydávané Free Software " +"Foundation, a to buď ve verzi 3 této licence anebo (podle vašeho uvážení) " +"kterékoli pozdější verze. " #: actions/version.php:176 msgid "" @@ -3291,6 +4760,10 @@ msgid "" "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details. " msgstr "" +"Tento program je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLI " +"ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO " +"URČITÝ ÚČEL. Podívejte se na GNU Affero General Public License pro bližší " +"informace. " #: actions/version.php:182 #, php-format @@ -3298,25 +4771,32 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" +"Měli byste obdržet kopii GNU Affero General Public License spolu s tímto " +"programem. Pokud ne, jděte na %s." #: actions/version.php:191 msgid "Plugins" -msgstr "" +msgstr "Pluginy" + +#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. +#: actions/version.php:198 lib/action.php:805 +msgid "Version" +msgstr "Verze" #: actions/version.php:199 msgid "Author(s)" -msgstr "" +msgstr "Autoři" #. TRANS: Server exception thrown when a URL cannot be processed. #: classes/File.php:143 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "Nemůžu zpracovat URL '%s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! #: classes/File.php:175 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "Robin si myslí, že je něco nemožné." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. @@ -3326,49 +4806,105 @@ msgid "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." msgstr "" +"Žádný soubor nesmí být větší než %1$d bajtů a soubor, který jste poslal měl %" +"2$d bajtů. Zkuste nahrát menší verzi." #. TRANS: Message given if an upload would exceed user quota. #. TRANS: %d (number) is the user quota in bytes. #: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgstr "Takto velký soubor by překročil vaši uživatelskou kvótu %d bajtů." #. TRANS: Message given id an upload would exceed a user's monthly quota. #. TRANS: $d (number) is the monthly user quota in bytes. #: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgstr "Takto velký soubor by překročil vaši měsíční kvótu %d bajtů." + +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Neplatné jméno souboru." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 +msgid "Group join failed." +msgstr "Nepodařilo se připojit ke skupině." + +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 +msgid "Not part of group." +msgstr "Není součástí skupiny." + +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 +msgid "Group leave failed." +msgstr "Nepodařilo se opustit skupinu." + +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 +msgid "Could not update local group." +msgstr "Nelze aktualizovat místní skupinu." + +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 +#, php-format +msgid "Could not create login token for %s" +msgstr "Nelze vytvořit přihlašovací token pro %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "Nenalezeno jméno databáze ani DSN." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. #: classes/Message.php:46 msgid "You are banned from sending direct messages." -msgstr "" +msgstr "Nemůžete posílat přímé zprávy (banned)" + +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 +msgid "Could not insert message." +msgstr "Nemohu vložit zprávu." + +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 +msgid "Could not update message with new URI." +msgstr "Nelze aktualizovat zprávu novým URI." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Nenalezen profil (%1$d) pro oznámení (%2$d)." #. TRANS: Server exception. %s are the error details. #: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" -msgstr "Chyba při kládání obrázku" +msgstr "Chyba databáze při vkládání nálepky: %s" + +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:265 +msgid "Problem saving notice. Too long." +msgstr "Problém ukládání sdělení. Příliš dlouhé." + +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:270 +msgid "Problem saving notice. Unknown user." +msgstr "Problém při ukládání sdělení. Neznámý uživatel." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. #: classes/Notice.php:276 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Příliš mnoho oznámení příliš rychle, odpočiňte si a zkuste to znovu za " +"několik minut." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. #: classes/Notice.php:283 @@ -3376,11 +4912,13 @@ msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" +"Příliš mnoho stejných zpráv příliš rychle, odpočiňte si a zkuste to znovu za " +"několik minut." #. TRANS: Client exception thrown when a user tries to post while being banned. #: classes/Notice.php:291 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Máte zakázáno (banned) posílat upozornění na tomto webu." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. @@ -3389,163 +4927,247 @@ msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" -msgstr "" +msgstr "saveKnownGroups obdrželo špatný typ." + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:998 +msgid "Problem saving group inbox." +msgstr "Problém při ukládání skupinového inboxu" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" -msgstr "" +msgstr "RT @%1$s %2$s" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). #: classes/Profile.php:737 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "Nelze zrušit roli \"%1$s\" pro uživatele #%2$d, neexistuje." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). #: classes/Profile.php:746 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." -msgstr "" +msgstr "Nelze zrušit roli \"%1$s\" pro uživatele #%2$d, chyba databáze." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Chybějící profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:339 +msgid "Unable to save tag." +msgstr "Nelze uložit tag." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. #: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." -msgstr "" +msgstr "Byl jste vykázán (banned) z přihlašování se." + +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 +msgid "Already subscribed!" +msgstr "Již přihlášen!" + +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 +msgid "User has blocked you." +msgstr "Uživatel vás zablokoval." + +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 +msgid "Not subscribed!" +msgstr "Nepřihlášen!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. #: classes/Subscription.php:178 msgid "Could not delete self-subscription." -msgstr "Nelze vložit odebírání" +msgstr "Nelze smazat odebírání sebe sama" #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. #: classes/Subscription.php:206 msgid "Could not delete subscription OMB token." -msgstr "Nelze vložit odebírání" +msgstr "Nelze smazat OMB token přihlášení." #. TRANS: Exception thrown when a subscription could not be deleted on the server. #: classes/Subscription.php:218 msgid "Could not delete subscription." -msgstr "Nelze vložit odebírání" +msgstr "Nelze smazat odebírání" #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. #: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" -msgstr "" +msgstr "Vítejte na %1$s, @%2$s!" #. TRANS: Server exception thrown when creating a group failed. #: classes/User_group.php:496 msgid "Could not create group." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze vytvořit skupinu." #. TRANS: Server exception thrown when updating a group URI failed. #: classes/User_group.php:506 msgid "Could not set group URI." -msgstr "Nelze uložit profil" +msgstr "Nelze nastavit URI skupiny." #. TRANS: Server exception thrown when setting group membership failed. #: classes/User_group.php:529 msgid "Could not set group membership." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze nastavit členství ve skupině." #. TRANS: Server exception thrown when saving local group information failed. #: classes/User_group.php:544 msgid "Could not save local group info." -msgstr "Nelze uložit profil" +msgstr "Nelze uložit místní info skupiny." + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:109 +msgid "Change your profile settings" +msgstr "Změňte nastavení profilu" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:116 +msgid "Upload an avatar" +msgstr "Nahrát avatar" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:123 +msgid "Change your password" +msgstr "Změňte své heslo" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:130 msgid "Change email handling" -msgstr "" +msgstr "Změnit manipulaci emailu" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:137 +msgid "Design your profile" +msgstr "Změňte vzhled svého profilu" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:144 +msgid "Other options" +msgstr "Další možnosti" #. TRANS: Link description in user account settings menu. #: lib/accountsettingsaction.php:146 msgid "Other" -msgstr "" +msgstr "Jiné" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: lib/action.php:148 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. #: lib/action.php:164 msgid "Untitled page" -msgstr "" +msgstr "stránka bez názvu" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. #: lib/action.php:449 msgid "Primary site navigation" -msgstr "" +msgstr "Primární navigace na webu" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:455 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Osobní profil a časová osa přátel" + +#. TRANS: Main menu option when logged in for access to personal profile and friends timeline +#: lib/action.php:458 +msgctxt "MENU" +msgid "Personal" +msgstr "Osobní" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:460 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "" +msgstr "Změňte svůj e-mail, avatar, heslo, profil" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:465 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "Připojení ke službám" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services #: lib/action.php:468 msgid "Connect" msgstr "Připojit" +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:471 +msgctxt "TOOLTIP" +msgid "Change site configuration" +msgstr "Změna konfigurace webu" + #. TRANS: Main menu option when logged in and site admin for access to site configuration #: lib/action.php:474 msgctxt "MENU" msgid "Admin" -msgstr "" +msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:478 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Pozvěte přátele a kolegy, aby se k vám připojili na %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users #: lib/action.php:481 msgctxt "MENU" msgid "Invite" -msgstr "" +msgstr "Pozvat" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:487 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "" +msgstr "Odhlášení z webu" #. TRANS: Main menu option when logged in to log out the current user #: lib/action.php:490 msgctxt "MENU" msgid "Logout" -msgstr "Logo" +msgstr "Odhlásit se" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:495 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "" +msgstr "Zaregistrujte se" + +#. TRANS: Main menu option when not logged in to register a new account +#: lib/action.php:498 +msgctxt "MENU" +msgid "Register" +msgstr "Registrovat" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:501 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "" +msgstr "Přihlásit se na stránky" + +#: lib/action.php:504 +msgctxt "MENU" +msgid "Login" +msgstr "Přihlásit" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:507 @@ -3553,21 +5175,42 @@ msgctxt "TOOLTIP" msgid "Help me!" msgstr "Nápověda" +#: lib/action.php:510 +msgctxt "MENU" +msgid "Help" +msgstr "Nápověda" + #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:513 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "Vyhledávání osob nebo textu" + +#: lib/action.php:516 +msgctxt "MENU" +msgid "Search" +msgstr "Hledat" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#. TRANS: Menu item for site administration +#: lib/action.php:538 lib/adminpanelaction.php:400 +msgid "Site notice" +msgstr "Sdělení" #. TRANS: DT element for local views block. String is hidden in default CSS. #: lib/action.php:605 msgid "Local views" -msgstr "" +msgstr "Místní zobrazení" + +#. TRANS: DT element for page notice. String is hidden in default CSS. +#: lib/action.php:675 +msgid "Page notice" +msgstr "Sdělení stránky" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. #: lib/action.php:778 msgid "Secondary site navigation" -msgstr "" +msgstr "Sekundární navigace na webu" #. TRANS: Secondary navigation menu option leading to help on StatusNet. #: lib/action.php:784 @@ -3587,7 +5230,7 @@ msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. #: lib/action.php:795 msgid "TOS" -msgstr "" +msgstr "TOS (pravidla použití služby)" #. TRANS: Secondary navigation menu option leading to privacy policy. #: lib/action.php:799 @@ -3606,12 +5249,12 @@ msgstr "Kontakt" #: lib/action.php:810 msgid "Badge" -msgstr "" +msgstr "Odznak" #. TRANS: DT element for StatusNet software license. #: lib/action.php:839 msgid "StatusNet software license" -msgstr "" +msgstr "Licence softwaru StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. #: lib/action.php:843 @@ -3620,6 +5263,8 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" +"**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site." +"broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. #: lib/action.php:846 @@ -3635,100 +5280,121 @@ msgid "" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"Běží na [StatusNet](http://status.net/) mikroblogovací program, verze %s, " -"dostupná pod [GNU Affero General Public License](http://www.fsf.org/" +"Běží na mikroblogovacím programu [StatusNet](http://status.net/), verze %s, " +"dostupném pod [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." +#. TRANS: DT element for StatusNet site content license. +#: lib/action.php:866 +msgid "Site content license" +msgstr "Licence k obsahu stránek" + #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. #: lib/action.php:873 #, php-format msgid "Content and data of %1$s are private and confidential." -msgstr "" +msgstr "Obsah a data z %1$S jsou soukromé a důvěrné." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. #: lib/action.php:880 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." -msgstr "" +msgstr "Obsah a data copyright %1$s. Všechna práva vyhrazena." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. #: lib/action.php:884 msgid "Content and data copyright by contributors. All rights reserved." -msgstr "" +msgstr "Obsah a data copyright přispěvatelů. Všechna práva vyhrazena." #. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. #: lib/action.php:897 #, php-format msgid "All %1$s content and data are available under the %2$s license." -msgstr "" +msgstr "Všechen obsah a data %1$s jsou k dispozici v rámci licence %2$s." #. TRANS: DT element for pagination (previous/next, etc.). #: lib/action.php:1236 msgid "Pagination" -msgstr "" +msgstr "Stránkování" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. #: lib/action.php:1247 msgid "After" -msgstr "" +msgstr "Po" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. #: lib/action.php:1257 msgid "Before" -msgstr "" +msgstr "Před" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. #: lib/activity.php:122 msgid "Expecting a root feed element but got a whole XML document." -msgstr "" +msgstr "Očekávám kořenový element feedu, ale dostal jsem celý XML dokument." #: lib/activityutils.php:208 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Ještě neumí zpracovat vzdálený obsah." #: lib/activityutils.php:244 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Neumí zacházet s vloženým XML obsahem." #: lib/activityutils.php:248 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Neumí zacházet s vloženým Base64 obsahem." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." -msgstr "" +msgstr "Nemůžete provádět změny na této stránce." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. #: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." -msgstr "" +msgstr "Změny, tohoto panelu nejsou povoleny." #. TRANS: Client error message. #: lib/adminpanelaction.php:229 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm () není implementována." #. TRANS: Client error message #: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings () není implementována." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. #: lib/adminpanelaction.php:284 msgid "Unable to delete design setting." -msgstr "" +msgstr "Nelze smazat nastavení vzhledu." + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:350 +msgid "Basic site configuration" +msgstr "Základní konfigurace webu" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:352 msgctxt "MENU" msgid "Site" -msgstr "" +msgstr "Stránky" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:358 +msgid "Design configuration" +msgstr "Nastavení vzhledu" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:360 +msgctxt "MENU" +msgid "Design" +msgstr "Vzhled" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:366 @@ -3738,57 +5404,115 @@ msgstr "Akce uživatele" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 msgid "User" -msgstr "" +msgstr "Uživatel" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:374 +msgid "Access configuration" +msgstr "Nastavení přístupu" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:382 +msgid "Paths configuration" +msgstr "Naastavení cest" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:390 +msgid "Sessions configuration" +msgstr "Nastavení sessions" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:398 +msgid "Edit site notice" +msgstr "Upravit oznámení stránky" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:406 +msgid "Snapshots configuration" +msgstr "Konfigurace snímků" #. TRANS: Client error 401. #: lib/apiauth.php:113 msgid "API resource requires read-write access, but you only have read access." msgstr "" +"API droj vyžaduje přístup pro čtení a zápis, ale vy máte přístup pouze pro " +"čtení." + +#. TRANS: Form legend. +#: lib/applicationeditform.php:137 +msgid "Edit application" +msgstr "Upravit aplikaci" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:187 +msgid "Icon for this application" +msgstr "Ikona pro tuto aplikaci" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:209 +#, php-format +msgid "Describe your application in %d characters" +msgstr "Popište vaši aplikaci v %d znacích" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:213 msgid "Describe your application" -msgstr "" +msgstr "Popište vaši aplikaci" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:224 +msgid "URL of the homepage of this application" +msgstr "URL domovské stránky této aplikace" + +#. TRANS: Form input field label. +#: lib/applicationeditform.php:226 +msgid "Source URL" +msgstr "Zdrojové URL" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:233 +msgid "Organization responsible for this application" +msgstr "Organizace odpovědná za tuto aplikaci" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:242 msgid "URL for the homepage of the organization" -msgstr "" +msgstr "URL homepage organizace" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:251 msgid "URL to redirect to after authentication" -msgstr "" +msgstr "URL pro přesměrování po autentikaci" #. TRANS: Radio button label for application type #: lib/applicationeditform.php:278 msgid "Browser" -msgstr "" +msgstr "Prohlížeč" #. TRANS: Radio button label for application type #: lib/applicationeditform.php:295 msgid "Desktop" -msgstr "" +msgstr "Desktop" #. TRANS: Form guide. #: lib/applicationeditform.php:297 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "Typ aplikace, prohlížeč nebo desktop" #. TRANS: Radio button label for access type. #: lib/applicationeditform.php:320 msgid "Read-only" -msgstr "" +msgstr "pouze pro čtení" #. TRANS: Radio button label for access type. #: lib/applicationeditform.php:339 msgid "Read-write" -msgstr "" +msgstr "čtení a zápis" #. TRANS: Form guide. #: lib/applicationeditform.php:341 msgid "Default access for this application: read-only, or read-write" -msgstr "" +msgstr "Výchozí přístup pro tuto aplikaci: pouze pro čtení, nebo číst-psát" #. TRANS: Submit button title #: lib/applicationeditform.php:359 @@ -3798,18 +5522,18 @@ msgstr "Zrušit" #. TRANS: Application access type #: lib/applicationlist.php:136 msgid "read-write" -msgstr "" +msgstr "číst-psát" #. TRANS: Application access type #: lib/applicationlist.php:138 msgid "read-only" -msgstr "" +msgstr "pouze pro čtení" #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) #: lib/applicationlist.php:144 #, php-format msgid "Approved %1$s - \"%2$s\" access." -msgstr "" +msgstr "Schváleno %1$s - přístup \"%2$s\"" #. TRANS: Button label #: lib/applicationlist.php:159 @@ -3817,10 +5541,15 @@ msgctxt "BUTTON" msgid "Revoke" msgstr "Obnovit" +#. TRANS: DT element label in attachment list. +#: lib/attachmentlist.php:88 +msgid "Attachments" +msgstr "Přílohy" + #. TRANS: DT element label in attachment list item. #: lib/attachmentlist.php:265 msgid "Author" -msgstr "" +msgstr "Autor" #. TRANS: DT element label in attachment list item. #: lib/attachmentlist.php:279 @@ -3829,55 +5558,73 @@ msgstr "Poskytovatel" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "Notices where this attachment appears" + +#: lib/attachmenttagcloudsection.php:48 +msgid "Tags for this attachment" +msgstr "Označení této přílohy" + +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +msgid "Password changing failed" +msgstr "Změna hesla se nezdařila" #: lib/authenticationplugin.php:236 msgid "Password changing is not allowed" -msgstr "" +msgstr "Změna hesla není povolena" + +#: lib/channel.php:157 lib/channel.php:177 +msgid "Command results" +msgstr "Výsledky příkazu" #: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" -msgstr "" +msgstr "Příkaz dokončen" #: lib/channel.php:240 msgid "Command failed" -msgstr "" +msgstr "Příkaz selhal" #. TRANS: Command exception text shown when a notice ID is requested that does not exist. #: lib/command.php:84 lib/command.php:108 msgid "Notice with that id does not exist." -msgstr "" +msgstr "Oznámení s tímto id neexistuje." + +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:101 lib/command.php:630 +msgid "User has no last notice." +msgstr "Uživatel nemá žádné poslední oznámení" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. #: lib/command.php:130 #, php-format msgid "Could not find a user with nickname %s." -msgstr "" +msgstr "Nelze nalézt uživatele s přezdívkou %s" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. #: lib/command.php:150 #, php-format msgid "Could not find a local user with nickname %s." -msgstr "" +msgstr "Nelze nalézt místního uživatele s přezdívkou %s" #. TRANS: Error text shown when an unimplemented command is given. #: lib/command.php:185 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Je nám líto, ale tento příkaz dosud nebyl implementován." #. TRANS: Command exception text shown when a user tries to nudge themselves. #: lib/command.php:231 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "To nemá moc smyslu postrkovat sám sebe!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. #: lib/command.php:240 #, php-format msgid "Nudge sent to %s." -msgstr "" +msgstr "Šťouchnutí posláno %s." #. TRANS: User statistics text. #. TRANS: %1$s is the number of other user the user is subscribed to. @@ -3890,18 +5637,54 @@ msgid "" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Odbírám: %1$s \n" +"Odběratelé: %2$s \n" +"Hlášky: %3$s" #. TRANS: Text shown when a notice has been marked as favourite successfully. #: lib/command.php:314 msgid "Notice marked as fave." -msgstr "" +msgstr "Oznámení označené jako oblíbené." #. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. #: lib/command.php:360 #, php-format msgid "%1$s joined group %2$s." -msgstr "" +msgstr "%1$s se připojil(a) ke skupině %2$s." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s opustil(a) skupinu %2$s." + +#. TRANS: Whois output. %s is the full name of the queried user. +#: lib/command.php:434 +#, php-format +msgid "Fullname: %s" +msgstr "Celé jméno %s" + +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/command.php:438 lib/mail.php:268 +#, php-format +msgid "Location: %s" +msgstr "Poloha: %s" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/command.php:442 lib/mail.php:271 +#, php-format +msgid "Homepage: %s" +msgstr "Domovská stránka: %s" + +#. TRANS: Whois output. %s is the bio information of the queried user. +#: lib/command.php:446 +#, php-format +msgid "About: %s" +msgstr "O uživateli: %s" #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). #: lib/command.php:474 @@ -3910,13 +5693,27 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s je vzdálený profil, přímé zprávy můžete odesílat pouze pro uživatele na " +"stejném serveru." #. TRANS: Message given if content is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. #: lib/command.php:491 lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" +msgstr "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." + +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:517 +msgid "Error sending direct message." +msgstr "Chyba při odesílání přímé zprávy." + +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:554 +#, php-format +msgid "Notice from %s repeated." +msgstr "Oznámení od %s opakováno." #. TRANS: Error text shown when repeating a notice fails with an unknown reason. #: lib/command.php:557 @@ -3928,46 +5725,99 @@ msgstr "Chyba nastavení uživatele" #: lib/command.php:592 #, php-format msgid "Notice too long - maximum is %1$d characters, you sent %2$d." -msgstr "" +msgstr "Oznámení je příliš dlouhé - maximum je %1$d znaků, poslal jsi %2$d." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:603 +#, php-format +msgid "Reply to %s sent." +msgstr "Odpověď %s odeslána." + +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:606 +msgid "Error saving notice." +msgstr "Problém při ukládání sdělení." #. TRANS: Error text shown when no username was provided when issuing a subscribe command. #: lib/command.php:655 msgid "Specify the name of the user to subscribe to." -msgstr "" +msgstr "Uveďte jméno uživatele ke kterému se přihlásit." #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. #: lib/command.php:664 msgid "Can't subscribe to OMB profiles by command." -msgstr "" +msgstr "Nelze se přihlásit k odběru OMB profilů příkazem." + +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 +#, php-format +msgid "Subscribed to %s." +msgstr "Přihlášeno k %s." #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. #. TRANS: Error text shown when no username was provided when issuing the command. #: lib/command.php:694 lib/command.php:804 msgid "Specify the name of the user to unsubscribe from." -msgstr "" +msgstr "Uveďte jméno uživatele od kterého se odhlásit." + +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 +#, php-format +msgid "Unsubscribed from %s." +msgstr "Odhlášeno od %s." #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. #: lib/command.php:724 lib/command.php:750 msgid "Command not yet implemented." -msgstr "" +msgstr "Příkaz ještě nebyl implementován." + +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:728 +msgid "Notification off." +msgstr "Oznámení vypnuta." #. TRANS: Error text shown when the command "off" fails for an unknown reason. #: lib/command.php:731 msgid "Can't turn off notification." -msgstr "" +msgstr "Nelze vypnout oznámení." + +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:754 +msgid "Notification on." +msgstr "Oznámení zapnuta." + +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:757 +msgid "Can't turn on notification." +msgstr "Nelze zapnout oznámení." #. TRANS: Error text shown when issuing the login command while login is disabled. #: lib/command.php:771 msgid "Login command is disabled." -msgstr "" +msgstr "Příkaz login je vypnut." #. TRANS: Text shown after issuing the login command successfully. #. TRANS: %s is a logon link.. #: lib/command.php:784 #, php-format msgid "This link is useable only once and is valid for only 2 minutes: %s." -msgstr "" +msgstr "Tento odkaz je použitelný pouze jednou a je platný pouze 2 minuty: %s." + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "%s odhlášen." + +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:831 +msgid "You are not subscribed to anyone." +msgstr "Nejste přihlášen k nikomu." #. TRANS: Text shown after requesting other users a user is subscribed to. #. TRANS: This message support plural forms. This message is followed by a @@ -3975,9 +5825,15 @@ msgstr "" #: lib/command.php:836 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] "" +msgstr[0] "Jste přihlášeni k této osobě:" +msgstr[1] "Jste přihlášeni k těmto lidem:" +msgstr[2] "Jste přihlášeni k těmto lidem:" + +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:858 +msgid "No one is subscribed to you." +msgstr "Nikdo k vám není přihlášen." #. TRANS: Text shown after requesting other users that are subscribed to a user (followers). #. TRANS: This message support plural forms. This message is followed by a @@ -3985,9 +5841,15 @@ msgstr[2] "" #: lib/command.php:863 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] "" +msgstr[0] "Tato osoba je k vám přihlášena:" +msgstr[1] "Tito lidé jsou k vám přihlášeni:" +msgstr[2] "Tito lidé jsou k vám přihlášeni:" + +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:885 +msgid "You are not a member of any groups." +msgstr "Nejste členem žádné skupiny." #. TRANS: Text shown after requesting groups a user is subscribed to. #. TRANS: This message support plural forms. This message is followed by a @@ -3995,8 +5857,8 @@ msgstr[2] "" #: lib/command.php:890 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[0] "Jste členem této skupiny:" +msgstr[1] "Jste členem těchto skupin:" msgstr[2] "" #: lib/command.php:905 @@ -4040,62 +5902,132 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"Příkazy: \n" +" on - zapnout oznámení \n" +" off - vypnout oznámení \n" +" help - zobrazí tuto nápovědu \n" +" follow - Přihlásit se k uživatel \n" +" groups - seznam skupin, ke kterým jste připojen\n" +" subscriptions - seznam lidí, které sledujete \n" +" subscribers - seznam osob, které vás sledují \n" +" leave - Odhlásit se od uživatele \n" +" d - Přímá zpráva uživateli \n" +" get - Dostanete poslední upozornění od uživatele \n" +" whois - Získat informace o profilu uživatele \n" +" lose - Donutit uživatele přestat vás sledovat \n" +" fav - Přidejte uživatelovo poslední oznámení jako 'Oblíbené' \n" +" fav # - Přidat upozornění s daným id jako 'Oblíbené' \n" +" repeat # - Opakovat oznámení s daným id \n" +" repeat - Opakovat poslední oznámení od uživatele \n" +" reply # - Odpověď na oznámení s daným id \n" +" reply - Odpověď na poslední oznámení od uživatele \n" +" join - Připojit se ke skupině \n" +" login - Získat odkaz pro přihlášení k webovému rozhraní \n" +" drop - Opustit skupinu \n" +" stats - získejte Vaše statistiky \n" +" stop - stejné jako 'off' \n" +" quit - stejné jako 'off' \n" +" sub - Stejné jako 'follow' \n" +" unsub - Stejné jako 'leave' \n" +" last - Stejné jako 'get' \n" +" on - Dosud neimplementován. \n" +" off - Dosud neimplementován. \n" +" nudge - Připomenout uživateli aby něco poslal. \n" +" invite - Dosud neimplementován. \n" +" track - Dosud neimplementován. \n" +" untrack -Dosud neimplementován. \n" +" track off - Dosud neimplementován. \n" +" untrack all - Dosud neimplementován. \n" +" tracks - Dosud neimplementován. \n" +" tracking - Dosud neimplementován. \n" +" " + +#: lib/common.php:135 +msgid "No configuration file found. " +msgstr "Žádný konfigurační soubor nalezen. " #: lib/common.php:136 msgid "I looked for configuration files in the following places: " -msgstr "" +msgstr "Díval jsem se po konfiguračních souborech na těchto místech: " #: lib/common.php:138 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "Možná budete chtít spustit instalační program abyste to vyřešili." #: lib/common.php:139 msgid "Go to the installer." -msgstr "" +msgstr "Jdi na instalaci." #: lib/connectsettingsaction.php:110 msgid "IM" -msgstr "" +msgstr "IM" #: lib/connectsettingsaction.php:111 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Aktualizace z a na instant messenger (IM)" #: lib/connectsettingsaction.php:116 msgid "Updates by SMS" -msgstr "" +msgstr "Aktualizace z a na SMS" + +#: lib/connectsettingsaction.php:120 +msgid "Connections" +msgstr "Připojení" + +#: lib/connectsettingsaction.php:121 +msgid "Authorized connected applications" +msgstr "Autorizované propojené aplikace" #: lib/dberroraction.php:60 msgid "Database error" +msgstr "Chyba databáze" + +#: lib/designsettings.php:105 +msgid "Upload file" +msgstr "Nahrát soubor" + +#: lib/designsettings.php:109 +msgid "" +"You can upload your personal background image. The maximum file size is 2MB." msgstr "" +"Můžete nahrát váš osobní obrázek na pozadí. Maximální velikost souboru je 2 " +"MB." #: lib/designsettings.php:418 msgid "Design defaults restored." -msgstr "" +msgstr "Obnoveno výchozí nastavení vzhledu." + +#: lib/disfavorform.php:114 lib/disfavorform.php:140 +msgid "Disfavor this notice" +msgstr "Odebrat toto oznámení z oblíbených" #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" -msgstr "Odstranit toto oznámení" +msgstr "Přidat toto oznámení do oblíbených" + +#: lib/favorform.php:140 +msgid "Favor" +msgstr "Oblíbit" #: lib/feed.php:85 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" #: lib/feed.php:87 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" #: lib/feed.php:89 msgid "Atom" -msgstr "" +msgstr "Atom" #: lib/feed.php:91 msgid "FOAF" -msgstr "" +msgstr "FOAF" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Exportovat data" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -4103,32 +6035,41 @@ msgstr "" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Všechny" #: lib/galleryaction.php:139 msgid "Select tag to filter" -msgstr "" +msgstr "Zvolte značku k filtrování" #: lib/galleryaction.php:140 msgid "Tag" -msgstr "" +msgstr "Značka" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Vyberte si značku k zúžení seznamu" #: lib/galleryaction.php:143 msgid "Go" -msgstr "" +msgstr "Jdi" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Dát tomuto uživateli roli \"%s\"" + +#: lib/groupeditform.php:163 +msgid "URL of the homepage or blog of the group or topic" +msgstr "URL domovské stránky nebo blogu skupiny nebo tématu" #: lib/groupeditform.php:168 msgid "Describe the group or topic" -msgstr "" +msgstr "Popište skupinu nebo téma" + +#: lib/groupeditform.php:170 +#, php-format +msgid "Describe the group or topic in %d characters" +msgstr "Popište skupinu nebo téma ve %d znacích" #: lib/groupeditform.php:187 #, php-format @@ -4149,10 +6090,6 @@ msgstr "" 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 "" @@ -4200,11 +6137,6 @@ msgstr "" msgid "[%s]" msgstr "" -#: lib/jabber.php:567 -#, php-format -msgid "Unknown inbox source %d." -msgstr "" - #: lib/joinform.php:114 msgid "Join" msgstr "Přidat se" @@ -4279,12 +6211,6 @@ msgid "" "%4$s" msgstr "" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 -#, php-format -msgid "%s: confirm you own this phone number with this code:" -msgstr "" - #. TRANS: Subject for 'nudge' notification email #: lib/mail.php:484 #, php-format @@ -4308,12 +6234,6 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 -#, php-format -msgid "New private message from %s" -msgstr "" - #. TRANS: Body for direct-message notification email #: lib/mail.php:541 #, php-format @@ -4334,12 +6254,6 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "" - #. TRANS: Body for favorite notification email #: lib/mail.php:592 #, php-format @@ -4404,10 +6318,6 @@ msgid "" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" -#: lib/mailbox.php:89 -msgid "Only the user can read their own mailboxes." -msgstr "" - #: lib/mailbox.php:139 msgid "" "You have no private messages. You can send private message to engage other " @@ -4422,10 +6332,6 @@ msgstr "" msgid "Not a registered user." msgstr "Není registrovaný uživatel." -#: lib/mailhandler.php:50 -msgid "Sorry, no incoming email allowed." -msgstr "" - #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." msgstr "" @@ -4444,10 +6350,6 @@ msgstr "" 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 "" @@ -4478,28 +6380,15 @@ msgstr "" msgid "%s is not a supported file type on this server." msgstr "" -#: lib/messageform.php:120 -msgid "Send a direct notice" -msgstr "" - #: lib/messageform.php:146 msgid "To" msgstr "" -#: lib/messageform.php:178 lib/noticeform.php:237 -msgctxt "Send button for sending notice" -msgid "Send" -msgstr "" - #: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Co se děje %s?" -#: lib/noticeform.php:193 -msgid "Attach" -msgstr "" - #: lib/noticeform.php:197 msgid "Attach a file" msgstr "" @@ -4534,10 +6423,6 @@ msgstr "" msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 -msgid "at" -msgstr "" - #: lib/noticelist.php:502 msgid "web" msgstr "" @@ -4546,10 +6431,6 @@ msgstr "" msgid "Reply" msgstr "Odpovědi" -#: lib/nudgeform.php:128 -msgid "Nudge" -msgstr "" - #: lib/oauthstore.php:283 msgid "Error inserting new profile" msgstr "Chyba při vkládání nového profilu" @@ -4590,27 +6471,11 @@ msgstr "Oblíbené" msgid "Inbox" msgstr "" -#: lib/personalgroupnav.php:126 -msgid "Your incoming messages" -msgstr "" - -#: lib/personalgroupnav.php:130 -msgid "Outbox" -msgstr "" - -#: lib/personalgroupnav.php:131 -msgid "Your sent messages" -msgstr "" - #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 -msgid "Unknown" -msgstr "" - #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Odběry" @@ -4627,10 +6492,6 @@ msgstr "Odběratelé" msgid "All subscribers" msgstr "Všichni odběratelé" -#: lib/profileaction.php:191 -msgid "User ID" -msgstr "" - #: lib/profileaction.php:196 msgid "Member since" msgstr "Členem od" @@ -4652,10 +6513,6 @@ msgstr "Veřejné" msgid "Recent tags" msgstr "" -#: lib/redirectingaction.php:95 -msgid "No return-to arguments." -msgstr "" - #: lib/repeatform.php:132 msgid "Yes" msgstr "Ano" @@ -4684,44 +6541,14 @@ msgstr "Hledat" msgid "Find people on this site" msgstr "" -#: lib/searchgroupnav.php:83 -msgid "Find content of notices" -msgstr "" - -#: lib/searchgroupnav.php:85 -msgid "Find groups on this site" -msgstr "" - -#: lib/section.php:89 -msgid "Untitled section" -msgstr "" - #: lib/section.php:106 msgid "More..." msgstr "" -#: lib/silenceform.php:67 -msgid "Silence" -msgstr "" - #: lib/silenceform.php:78 msgid "Silence this user" msgstr "Odstranit tohoto uživatele" -#: lib/subgroupnav.php:99 -#, php-format -msgid "Groups %s is a member of" -msgstr "" - -#: lib/subgroupnav.php:105 -msgid "Invite" -msgstr "" - -#: lib/subgroupnav.php:106 -#, php-format -msgid "Invite friends and colleagues to join you on %s" -msgstr "" - #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -4800,10 +6627,6 @@ msgstr "" msgid "Edit" msgstr "" -#: lib/userprofile.php:287 -msgid "Send a direct message to this user" -msgstr "" - #: lib/userprofile.php:288 msgid "Message" msgstr "Zpráva" @@ -4812,11 +6635,6 @@ msgstr "Zpráva" msgid "Moderate" msgstr "" -#: lib/userprofile.php:366 -msgctxt "role" -msgid "Administrator" -msgstr "" - #: lib/userprofile.php:367 msgctxt "role" msgid "Moderator" diff --git a/locale/da/LC_MESSAGES/statusnet.po b/locale/da/LC_MESSAGES/statusnet.po index 8061c776e9..2deacb309d 100644 --- a/locale/da/LC_MESSAGES/statusnet.po +++ b/locale/da/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Danish # +# Author@translatewiki.net: Brion # Author@translatewiki.net: Mstenbaek # -- # This file is distributed under the same license as the StatusNet package. @@ -8,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:42+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:39+0000\n" "Language-Team: Danish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: da\n" "X-Message-Group: out-statusnet\n" @@ -2281,87 +2282,279 @@ msgstr "" "Med venlig hilsen,\n" "%2$s\n" +#: actions/joingroup.php:60 +msgid "You must be logged in to join a group." +msgstr "Du skal være logget ind for at deltage i en gruppe." + +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Ingen brugernavn eller ID." + +#: actions/joingroup.php:141 +#, php-format +msgid "%1$s joined group %2$s" +msgstr "%1$s blev medlem af gruppe n %2$s" + +#: actions/leavegroup.php:60 +msgid "You must be logged in to leave a group." +msgstr "Du skal være logget på for at forlade en gruppe." + +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:389 +msgid "You are not a member of that group." +msgstr "Du er ikke medlem af denne gruppe." + +#: actions/leavegroup.php:137 +#, php-format +msgid "%1$s left group %2$s" +msgstr "%1$s forlod gruppe %2$s" + +#: actions/login.php:102 actions/otp.php:62 actions/register.php:144 +msgid "Already logged in." +msgstr "Allerede logget ind" + #: actions/login.php:148 msgid "Incorrect username or password." -msgstr "" +msgstr "Forkert brugernavn eller password." + +#: actions/login.php:154 actions/otp.php:120 +msgid "Error setting user. You are probably not authorized." +msgstr "Fejl ved indstilling af bruger. Du har sandsynligvis ikke tilladelse." + +#: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 +msgid "Login" +msgstr "Log ind" #: actions/login.php:249 msgid "Login to site" -msgstr "" +msgstr "Login til webstedet" #: actions/login.php:258 actions/register.php:485 msgid "Remember me" -msgstr "" +msgstr "Husk mig" #: actions/login.php:259 actions/register.php:487 msgid "Automatically login in the future; not for shared computers!" -msgstr "" +msgstr "Automatisk login fremover, ikke for computere, der deles!" #: actions/login.php:269 msgid "Lost or forgotten password?" -msgstr "" +msgstr "Mistet eller glemt password?" #: actions/login.php:288 msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" +"Af sikkerhedsmæssige årsager bedes du indtaste dit brugernavn og din " +"adgangskode før du ændrer dine indstillinger." #: actions/login.php:292 msgid "Login with your username and password." -msgstr "" +msgstr "Log ind med dit brugernavn og password." #: actions/login.php:295 #, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" +"Har du ikke et brugernavn endnu? [Register] (%% action.register%%) en ny " +"konto." + +#: actions/makeadmin.php:92 +msgid "Only an admin can make another user an admin." +msgstr "Kun en admin kan gøre en anden bruger til admin." + +#: actions/makeadmin.php:96 +#, php-format +msgid "%1$s is already an admin for group \"%2$s\"." +msgstr "%1$s er allerede administrator for gruppen «%2$s»." #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "" +msgstr "Kan ikke finde medlemskab oplysninger for %1$s i gruppen %2$s." + +#: actions/makeadmin.php:146 +#, php-format +msgid "Can't make %1$s an admin for group %2$s." +msgstr "Kan ikke gøre %1$s til admin for gruppen %2$s." + +#: actions/newapplication.php:52 +msgid "New Application" +msgstr "Nyt program" + +#: actions/newapplication.php:64 +msgid "You must be logged in to register an application." +msgstr "Du skal være logget ind for at registrere et program." + +#: actions/newapplication.php:143 +msgid "Use this form to register a new application." +msgstr "Brug denne formular til at registrere et nyt program." + +#: actions/newapplication.php:176 +msgid "Source URL is required." +msgstr "Kilde-URL er påkrævet." + +#: actions/newapplication.php:258 actions/newapplication.php:267 +msgid "Could not create application." +msgstr "Kunne ikke oprette programmet." + +#: actions/newgroup.php:53 +msgid "New group" +msgstr "Ny gruppe" + +#: actions/newgroup.php:110 +msgid "Use this form to create a new group." +msgstr "Brug denne formular for at oprette en ny gruppe." + +#: actions/newmessage.php:71 actions/newmessage.php:231 +msgid "New message" +msgstr "Ny besked" + +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:502 +msgid "You can't send a message to this user." +msgstr "Du kan ikke sende en besked til denne bruger." + +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:138 lib/command.php:481 +#: lib/command.php:582 +msgid "No content!" +msgstr "Ingen indhold!" + +#: actions/newmessage.php:158 +msgid "No recipient specified." +msgstr "Ingen modtager specificeret." #. TRANS: Error text shown when trying to send a direct message to self. #: actions/newmessage.php:164 lib/command.php:506 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" +"Du kan ikke sende en besked til dig selv, bare sig det stille til dig selv i " +"stedet." + +#: actions/newmessage.php:181 +msgid "Message sent" +msgstr "Beskeden er sendt" + +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:185 lib/command.php:514 +#, php-format +msgid "Direct message to %s sent." +msgstr "Direkte besked til %s sendt." #: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189 msgid "Ajax Error" +msgstr "Ajax Fejl" + +#: actions/newnotice.php:69 +msgid "New notice" +msgstr "Ny meddelelse" + +#: actions/newnotice.php:227 +msgid "Notice posted" +msgstr "Meddelelse gemt" + +#: 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 "" +"Søg efter indhold af meddelelser på %%site.name%%. Separer søgetermer med " +"mellemrum, de skal være 3 karakterer eller derover." + +#: actions/noticesearch.php:78 +msgid "Text search" +msgstr "Tekst søgning" + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%1$s\" on %2$s" +msgstr "Søgeresultater for \"%1$s\" på %2$s" + +#: actions/noticesearch.php:121 +#, php-format +msgid "" +"Be the first to [post on this topic](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" +msgstr "" +"Vær den første til at [skrive om dette emne] (%%%%action.newnotice%%%%?" +"status_textarea=%s) !" + +#: 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 "" +"Hvorfor ikke [registrere en konto] (%%%%action.register%%%%) og vær den " +"første til at [skrive om dette emne ] (%%%%action.newnotice%%%%?" +"status_textarea=%s) !" + +#: actions/noticesearchrss.php:96 +#, php-format +msgid "Updates with \"%s\"" +msgstr "Opdateringer med \"%s\"" + +#: actions/noticesearchrss.php:98 +#, php-format +msgid "Updates matching search term \"%1$s\" on %2$s!" +msgstr "Opdateringer matcher søgeordet \"%1$s\" på %2$s!" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" +"Denne bruger tillader ikke at blive puffet, eller har ikke bekræftet eller " +"indstillet sin e-mail endnu." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Puf sendt" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Puf sendt!" + +#: actions/oauthappssettings.php:59 +msgid "You must be logged in to list your applications." +msgstr "Du skal være logget ind for at liste dine applikationer." + +#: actions/oauthappssettings.php:74 +msgid "OAuth applications" +msgstr "OAuth programmer" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" -msgstr "" +msgstr "Programmer, du har registreret" + +#: actions/oauthappssettings.php:135 +#, php-format +msgid "You have not registered any applications yet." +msgstr "Du har ikke registreret nogen programmer endnu." + +#: actions/oauthconnectionssettings.php:72 +msgid "Connected applications" +msgstr "Tilsluttede programmer" #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." -msgstr "" +msgstr "Du har tilladt følgende programmer at få adgang din konto." + +#: actions/oauthconnectionssettings.php:175 +msgid "You are not a user of that application." +msgstr "Du er ikke bruger af dette program." #: actions/oauthconnectionssettings.php:186 #, php-format msgid "Unable to revoke access for app: %s." msgstr "" -#: actions/oauthconnectionssettings.php:198 -msgid "You have not authorized any applications to use your account." -msgstr "" - #: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2406,17 +2599,26 @@ msgstr "" msgid "No login token requested." msgstr "" -#: actions/otp.php:104 -msgid "Login token expired." -msgstr "" +#: actions/passwordsettings.php:104 +msgid "Old password" +msgstr "Gammel adgangskode" + +#: actions/passwordsettings.php:108 actions/recoverpassword.php:235 +msgid "New password" +msgstr "Ny adgangskode" #: actions/passwordsettings.php:109 msgid "6 or more characters" msgstr "" -#: actions/passwordsettings.php:113 actions/recoverpassword.php:240 -msgid "Same as password above" -msgstr "" +#: actions/passwordsettings.php:112 actions/recoverpassword.php:239 +#: actions/register.php:440 +msgid "Confirm" +msgstr "Bekræft" + +#: actions/passwordsettings.php:117 +msgid "Change" +msgstr "Ændre" #: actions/passwordsettings.php:154 actions/register.php:237 msgid "Password must be 6 or more characters." @@ -2426,18 +2628,10 @@ msgstr "" msgid "Passwords don't match." msgstr "" -#: actions/passwordsettings.php:165 -msgid "Incorrect old password" -msgstr "" - #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." msgstr "" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 -msgid "Can't save new password." -msgstr "" - #. TRANS: Menu item for site administration #: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 msgid "Paths" @@ -2488,16 +2682,12 @@ msgstr "" #: actions/pathsadminpanel.php:259 msgid "Theme" -msgstr "" +msgstr "Tema" #: actions/pathsadminpanel.php:264 msgid "Theme server" msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" - #: actions/pathsadminpanel.php:272 msgid "Theme directory" msgstr "" @@ -2508,11 +2698,11 @@ msgstr "" #: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" -msgstr "" +msgstr "Aldrig" #: actions/pathsadminpanel.php:325 msgid "Always" -msgstr "" +msgstr "Altid" #: actions/pathsadminpanel.php:329 msgid "Use SSL" @@ -2558,7 +2748,7 @@ msgstr "" #: actions/profilesettings.php:115 actions/register.php:460 #: lib/applicationeditform.php:244 lib/groupeditform.php:161 msgid "Homepage" -msgstr "" +msgstr "Hjemmeside" #: actions/profilesettings.php:117 actions/register.php:462 msgid "URL of your homepage, blog, or profile on another site" @@ -2577,6 +2767,13 @@ msgstr "" msgid "Bio" msgstr "" +#: actions/profilesettings.php:132 actions/register.php:478 +#: actions/showgroup.php:265 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:177 +#: lib/userprofile.php:165 +msgid "Location" +msgstr "Lokation" + #: actions/profilesettings.php:134 actions/register.php:480 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" @@ -2699,9 +2896,9 @@ msgstr "" msgid "Your nickname on this server, or your registered email address." msgstr "" -#: actions/recoverpassword.php:209 -msgid "Recover password" -msgstr "" +#: actions/recoverpassword.php:208 +msgid "Reset password" +msgstr "Nulstil adgangskode" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" @@ -2717,7 +2914,7 @@ msgstr "" #: actions/recoverpassword.php:243 msgid "Reset" -msgstr "" +msgstr "Afbryd" #: actions/recoverpassword.php:282 msgid "No user with that email address or username." @@ -2984,10 +3181,6 @@ msgstr "" msgid "URL" msgstr "" -#: actions/showgroup.php:293 lib/groupeditform.php:184 -msgid "Aliases" -msgstr "" - #: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "" @@ -3093,10 +3286,6 @@ msgstr "" msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:245 -msgid "Local" -msgstr "" - #: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" @@ -3133,10 +3322,6 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:67 -msgid "Edit site-wide message" -msgstr "" - #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars." msgstr "" @@ -3191,11 +3376,6 @@ msgid "" "email but isn't listed here, send email to let us know at %s." msgstr "" -#. TRANS: Message given saving SMS phone number confirmation code without having provided one. -#: actions/smssettings.php:548 -msgid "No code entered" -msgstr "" - #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 #: lib/adminpanelaction.php:408 @@ -3403,10 +3583,6 @@ msgid "" "click “Reject”." msgstr "" -#: actions/userauthorization.php:219 -msgid "Reject" -msgstr "" - #: actions/userauthorization.php:232 msgid "No authorization request!" msgstr "" @@ -3596,12 +3772,12 @@ msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" @@ -3646,11 +3822,6 @@ msgstr "" msgid "Change email handling" msgstr "" -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 -msgid "Other options" -msgstr "" - #. TRANS: Link description in user account settings menu. #: lib/accountsettingsaction.php:146 msgid "Other" @@ -3966,13 +4137,6 @@ msgstr "" msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#. TRANS: Message given having nudged another user. -#. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:240 -#, php-format -msgid "Nudge sent to %s." -msgstr "" - #. TRANS: User statistics text. #. TRANS: %1$s is the number of other user the user is subscribed to. #. TRANS: %2$s is the number of users that are subscribed to the user. @@ -3991,20 +4155,6 @@ msgstr "" msgid "Fullname: %s" msgstr "" -#. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:438 lib/mail.php:268 -#, php-format -msgid "Location: %s" -msgstr "" - -#. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:442 lib/mail.php:271 -#, php-format -msgid "Homepage: %s" -msgstr "" - #. TRANS: Whois output. %s is the bio information of the queried user. #: lib/command.php:446 #, php-format @@ -4031,13 +4181,6 @@ msgstr "" msgid "Error sending direct message." msgstr "" -#. TRANS: Message given having repeated a notice from another user. -#. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:554 -#, php-format -msgid "Notice from %s repeated." -msgstr "" - #. TRANS: Message given if content of a notice for a reply is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. #: lib/command.php:592 @@ -4045,13 +4188,6 @@ msgstr "" msgid "Notice too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#. TRANS: Text shown having sent a reply to a notice successfully. -#. TRANS: %s is the nickname of the user of the notice the reply was sent to. -#: lib/command.php:603 -#, php-format -msgid "Reply to %s sent." -msgstr "" - #. TRANS: Error text shown when no username was provided when issuing a subscribe command. #: lib/command.php:655 msgid "Specify the name of the user to subscribe to." @@ -4262,10 +4398,6 @@ msgstr "" msgid "Extra nicknames for the group, comma- or space- separated, max %d" msgstr "" -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "" - #: lib/groupnav.php:114 #, php-format msgid "Add or edit %s logo" @@ -4320,14 +4452,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "" - -#: lib/logingroupnav.php:80 -msgid "Login with a username and password" -msgstr "" - #: lib/logingroupnav.php:86 msgid "Sign up for a new account" msgstr "" @@ -4637,22 +4761,10 @@ msgstr "" msgid "web" msgstr "" -#: lib/noticelist.php:568 -msgid "in context" -msgstr "" - #: lib/noticelist.php:631 msgid "Reply" msgstr "" -#: lib/noticelist.php:675 -msgid "Notice repeated" -msgstr "" - -#: lib/nudgeform.php:128 -msgid "Nudge" -msgstr "" - #: lib/oauthstore.php:291 msgid "Error inserting avatar" msgstr "" @@ -4698,10 +4810,6 @@ msgstr "" msgid "User ID" msgstr "" -#: lib/profileaction.php:196 -msgid "Member since" -msgstr "" - #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" @@ -4847,10 +4955,6 @@ msgstr "" msgid "Edit" msgstr "" -#: lib/userprofile.php:288 -msgid "Message" -msgstr "" - #: lib/userprofile.php:326 msgid "Moderate" msgstr "" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 5f4bef9915..8d6d9a9a74 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -18,12 +18,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:46+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:44+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -2628,8 +2628,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Bitte nur %s URLs über einfaches HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Kein unterstütztes Datenformat." @@ -5008,19 +5008,19 @@ msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" "Der Methode saveKnownGroups wurde ein schlechter Wert zur Verfügung gestellt" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7077,7 +7077,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "Theme enthält unsichere Dateierweiterungen; könnte unsicher sein." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 0289904359..7923464797 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:50+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:46+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -1798,8 +1798,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "" @@ -3537,18 +3537,18 @@ msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index d3ffb4dedb..e828b02149 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:59+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:55+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -2557,8 +2557,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Not a supported data format." @@ -4732,18 +4732,18 @@ msgid "Problem saving notice." msgstr "Problem saving notice." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problem saving group inbox." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/eo/LC_MESSAGES/statusnet.po b/locale/eo/LC_MESSAGES/statusnet.po index 2b9af18473..16e5ae58b6 100644 --- a/locale/eo/LC_MESSAGES/statusnet.po +++ b/locale/eo/LC_MESSAGES/statusnet.po @@ -12,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:45:53+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:49+0000\n" "Language-Team: Esperanto\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: eo\n" "X-Message-Group: out-statusnet\n" @@ -2570,8 +2570,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Bonvolu, nur %s-URL per plata HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Datumformato ne subteniĝas." @@ -4538,18 +4538,18 @@ msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index c7523164d4..72f1e94c2c 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -4,6 +4,7 @@ # Author@translatewiki.net: Crazymadlover # Author@translatewiki.net: Locos epraix # Author@translatewiki.net: McDutchie +# Author@translatewiki.net: Patcito # Author@translatewiki.net: PerroVerd # Author@translatewiki.net: Peter17 # Author@translatewiki.net: Translationista @@ -14,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:04+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:33:59+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -2612,8 +2613,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Solamente %s URLs sobre HTTP simples por favor." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "No es un formato de dato soportado" @@ -4994,18 +4995,18 @@ msgid "Problem saving notice." msgstr "Hubo un problema al guardar el aviso." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Mal tipo proveído a saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Hubo un problema al guarda la bandeja de entrada del grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -5655,6 +5656,18 @@ msgstr "Comando completo" msgid "Command failed" msgstr "Comando falló" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:84 lib/command.php:108 +msgid "Notice with that id does not exist." +msgstr "Ningún aviso con ese ID existe." + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:130 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "No se pudo encontrar el usuario con el apodo %s." + #. TRANS: Error text shown when an unimplemented command is given. #: lib/command.php:185 msgid "Sorry, this command is not yet implemented." @@ -5665,6 +5678,13 @@ msgstr "Disculpa, todavía no se implementa este comando." msgid "It does not make a lot of sense to nudge yourself!" msgstr "¡No tiene sentido darte un toque a ti mismo!" +#. TRANS: Message given having nudged another user. +#. TRANS: %s is the nickname of the user that was nudged. +#: lib/command.php:240 +#, php-format +msgid "Nudge sent to %s." +msgstr "Zumbido enviado a %s." + #. TRANS: User statistics text. #. TRANS: %1$s is the number of other user the user is subscribed to. #. TRANS: %2$s is the number of users that are subscribed to the user. @@ -5685,6 +5705,20 @@ msgstr "" msgid "Notice marked as fave." msgstr "Aviso marcado como favorito." +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:360 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s se unió al grupo %2$s." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s dejo el grupo %2$s." + #. TRANS: Whois output. %s is the full name of the queried user. #: lib/command.php:434 #, php-format @@ -5733,11 +5767,32 @@ msgstr "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d" msgid "Error sending direct message." msgstr "Error al enviar mensaje directo." +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:554 +#, php-format +msgid "Notice from %s repeated." +msgstr "Se ha repetido el aviso de %s." + #. TRANS: Error text shown when repeating a notice fails with an unknown reason. #: lib/command.php:557 msgid "Error repeating notice." msgstr "Ha habido un error al repetir el aviso." +#. TRANS: Message given if content of a notice for a reply is too long. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:592 +#, php-format +msgid "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr "Mensaje demasiado largo - el máximo es de 140 caracteres, enviaste %d." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:603 +#, php-format +msgid "Reply to %s sent." +msgstr "Se ha enviado la respuesta a %s." + #. TRANS: Error text shown when a reply to a notice fails with an unknown reason. #: lib/command.php:606 msgid "Error saving notice." @@ -5746,19 +5801,13 @@ msgstr "Error al guardar el aviso." #. TRANS: Error text shown when no username was provided when issuing a subscribe command. #: lib/command.php:655 msgid "Specify the name of the user to subscribe to." -msgstr "" +msgstr "Especificar el nombre del usuario al cual se quiere suscribir." #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. #: lib/command.php:664 msgid "Can't subscribe to OMB profiles by command." msgstr "No te puedes suscribir a perfiles de OMB por orden." -#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. -#. TRANS: Error text shown when no username was provided when issuing the command. -#: lib/command.php:694 lib/command.php:804 -msgid "Specify the name of the user to unsubscribe from." -msgstr "" - #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. #: lib/command.php:724 lib/command.php:750 diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index c479081952..797fc8c251 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:12+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:08+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -22,7 +22,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -2554,8 +2554,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "لطفا تنها از نشانی‌های اینترنتی %s از راه HTTP ساده استفاده کنید." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست." @@ -4804,18 +4804,18 @@ msgid "Problem saving notice." msgstr "هنگام ذخیرهٔ پیام مشکلی ایجاد شد." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "هنگام ذخیرهٔ صندوق ورودی گروه مشکلی رخ داد." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 804c96d2d7..5cb62b22da 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:06+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:01+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -2104,8 +2104,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Tuo ei ole tuettu tietomuoto." @@ -3959,13 +3959,13 @@ msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 3e588a54a6..bd905de29f 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -7,6 +7,7 @@ # Author@translatewiki.net: Jean-Frédéric # Author@translatewiki.net: Julien C # Author@translatewiki.net: McDutchie +# Author@translatewiki.net: Patcito # Author@translatewiki.net: Peter17 # Author@translatewiki.net: Sherbrooke # Author@translatewiki.net: Y-M D @@ -17,12 +18,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:15+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:11+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -2635,8 +2636,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Veuillez n'utiliser que des URL HTTP complètes en %s." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Format de données non supporté." @@ -5027,18 +5028,18 @@ msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Le type renseigné pour saveKnownGroups n’est pas valable" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7120,6 +7121,8 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." msgstr "" +"Ce thème contient un nom d'extension de ficher dangereux; peut être " +"dangereux." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 6682009db6..0758448f24 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:16+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:13+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -1835,8 +1835,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Non é un formato de datos soportado." @@ -3591,13 +3591,13 @@ msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/gl/LC_MESSAGES/statusnet.po b/locale/gl/LC_MESSAGES/statusnet.po index fff987a4fa..40e6314ee0 100644 --- a/locale/gl/LC_MESSAGES/statusnet.po +++ b/locale/gl/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:22+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:20+0000\n" "Language-Team: Galician\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: out-statusnet\n" @@ -2609,8 +2609,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Só %s enderezos URL sobre HTTP simple." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Non se soporta ese formato de datos." @@ -4995,18 +4995,18 @@ msgid "Problem saving notice." msgstr "Houbo un problema ao gardar a nota." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "O tipo dado para saveKnownGroups era incorrecto" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Houbo un problema ao gardar a caixa de entrada do grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "♻ @%1$s %2$s" @@ -7075,7 +7075,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "O tema visual contén nomes de extensión inseguros." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 34d71bfe6a..598dd033a7 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:24+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:22+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -3408,13 +3408,13 @@ msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 0e6a36ac62..da63fd6ea7 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:27+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34: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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -2353,8 +2353,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Njeje podpěrany datowy format." @@ -4230,18 +4230,18 @@ msgid "" msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 3e831d160d..9575fa6036 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:33+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:33+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -2604,8 +2604,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Solmente le URLs %s es permittite super HTTP simple." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Formato de datos non supportate." @@ -4969,18 +4969,18 @@ msgid "Problem saving notice." msgstr "Problema salveguardar nota." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Mal typo fornite a saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problema salveguardar le cassa de entrata del gruppo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7045,6 +7045,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." msgstr "" +"Le thema contine nomines de extension de file insecur; pote esser insecur." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 2c8ab1c6b7..6fb275b237 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:35+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:34+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -1874,8 +1874,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Enginn stuðningur við gagnasnið." @@ -3692,13 +3692,13 @@ msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 06f0841805..db7cb67ceb 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:40+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34: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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -2592,8 +2592,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Solo URL %s attraverso HTTP semplice." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Non è un formato di dati supportato." @@ -4940,18 +4940,18 @@ msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problema nel salvare la casella della posta del gruppo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index b6678b6bc4..027ea92c21 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:42+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:44+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -2470,8 +2470,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "サポートされていないデータ形式。" @@ -4717,12 +4717,12 @@ msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" diff --git a/locale/ka/LC_MESSAGES/statusnet.po b/locale/ka/LC_MESSAGES/statusnet.po index 4f47a57fe6..23881ba43e 100644 --- a/locale/ka/LC_MESSAGES/statusnet.po +++ b/locale/ka/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:45+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:48+0000\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ka\n" "X-Message-Group: out-statusnet\n" @@ -747,10 +747,6 @@ msgstr "არცერთი ფაილი არ ატვირთულა msgid "Pick a square area of the image to be your avatar" msgstr "აირჩიეთ სურათის კვადრატული მონაკვეთი თქვენი ავატარისთვის" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 -msgid "Lost our file data." -msgstr "" - #: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "ავატარი განახლდა." @@ -1346,12 +1342,6 @@ msgstr "შემომავალი ელ. ფოსტა" msgid "Send email to this address to post new notices." msgstr "გააგზავნე ელ. ფოსტა ამ მისამართზე ახალი შეტყობინებების დასაპოსტად." -#. TRANS: Instructions for incoming e-mail address input form. -#. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 -msgid "Make a new email address for posting to; cancels the old one." -msgstr "" - #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. #: actions/emailsettings.php:168 actions/smssettings.php:189 @@ -2473,8 +2463,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "გთხოვთ გამოიყენოთ მხოლოდ %s URL–ები წმინდა HTTP მეთოდით." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "მონაცემთა ფორმატი მხარდაჭერილი არ არის." @@ -3621,20 +3611,6 @@ msgstr "" msgid "Members" msgstr "" -#: actions/showgroup.php:398 lib/profileaction.php:117 -#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 -#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 -msgid "(None)" -msgstr "" - -#: actions/showgroup.php:404 -msgid "All members" -msgstr "" - -#: actions/showmessage.php:98 -msgid "Only the sender and recipient may read this message." -msgstr "" - #: actions/showstream.php:122 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" @@ -3787,20 +3763,70 @@ msgstr "საიტის შეტყობინების ტექსტ msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" +#. TRANS: Title for SMS settings. +#: actions/smssettings.php:59 +msgid "SMS settings" +msgstr "SMS პარამეტრები" + +#. TRANS: SMS settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/smssettings.php:74 +#, php-format +msgid "You can receive SMS messages through email from %%site.name%%." +msgstr "" +"თქვენ შეგიძლიათ მიიღოთ SMS შეტყობინებები %%site.name%%-სგან ელ. ფოსტის " +"საშუალებით." + +#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. +#: actions/smssettings.php:97 +msgid "SMS is not available." +msgstr "SMS არ არის ხელმისაწვდომი." + +#. TRANS: Form legend for SMS settings form. +#: actions/smssettings.php:111 +msgid "SMS address" +msgstr "SMS მისამართი" + +#. TRANS: Form guide in SMS settings form. +#: actions/smssettings.php:120 +msgid "Current confirmed SMS-enabled phone number." +msgstr "მიმდინარე დადასტურებული SMS გააქტიურებული ტელ. ნომერი." + #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "ამ ტელ. ნომრის დასტური მოლოდინშია." + +#. TRANS: Field label for SMS address input in SMS settings form. +#: actions/smssettings.php:142 +msgid "Confirmation code" +msgstr "დასტურის კოდი" #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "შეიყვანეთ კოდი, რომელიც მიიღეთ თქვენს ტელეფონზე." + +#. TRANS: Button label to confirm SMS confirmation code in SMS settings. +#: actions/smssettings.php:148 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "დასტური" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 msgid "SMS phone number" -msgstr "" +msgstr "SMS ტელეფონის ნომერი" + +#. TRANS: SMS phone number input field instructions in SMS settings form. +#: actions/smssettings.php:156 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "ტელ. ნომერი, პუნქტუაციის ან სივრცეების გარეშე, ქვეყნის კოდით." + +#. TRANS: Form legend for SMS preferences form. +#: actions/smssettings.php:195 +msgid "SMS preferences" +msgstr "SMS კონფიგურაცია" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -3808,16 +3834,74 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"გამომიგზავნე ცნობები SMS-ით; ვაცნობიერებ, რომ შესაძლებელია ჩემმა ოპერატორმა " +"საგრძნობი გადასახადები დამაკისროს." + +#. TRANS: Confirmation message for successful SMS preferences save. +#: actions/smssettings.php:315 +msgid "SMS preferences saved." +msgstr "SMS კონფიგურაცია შენახულია." + +#. TRANS: Message given saving SMS phone number without having provided one. +#: actions/smssettings.php:338 +msgid "No phone number." +msgstr "ტელეფონის ნომერი არ არის." + +#. TRANS: Message given saving SMS phone number without having selected a carrier. +#: actions/smssettings.php:344 +msgid "No carrier selected." +msgstr "ოპერატორი შერჩეული არ არის." + +#. TRANS: Message given saving SMS phone number that is already set. +#: actions/smssettings.php:352 +msgid "That is already your phone number." +msgstr "ეს უკვე არის ტქვენი ტელეფონის მისამართი." + +#. TRANS: Message given saving SMS phone number that is already set for another user. +#: actions/smssettings.php:356 +msgid "That phone number already belongs to another user." +msgstr "ეს ტელეფონის ნომერი სხვას ეკუთვნის." + +#. TRANS: Message given saving valid SMS phone number that is to be confirmed. +#: actions/smssettings.php:384 +msgid "" +"A confirmation code was sent to the phone number you added. Check your phone " +"for the code and instructions on how to use it." +msgstr "" +"დასადასტურებელი კოდი გამოგზავნილია თქვენს მიერ მითითებულ ტელეფონის ნომერზე. " +"შეამოწმეთ შეამოწმეთ თქვენი ტელეფონი, რომ მიიღოთ დასადასტურებელი კოდი და " +"ინსტრუქცია გამოყენებისთვის." + +#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. +#: actions/smssettings.php:413 +msgid "That is the wrong confirmation number." +msgstr "ეს დასტურის კოდი არასწორია." + +#. TRANS: Message given after successfully canceling SMS phone number confirmation. +#: actions/smssettings.php:427 +msgid "SMS confirmation cancelled." +msgstr "SMS დადასტურება გაუქმებულია." + +#. TRANS: Message given trying to remove an SMS phone number that is not +#. TRANS: registered for the active user. +#: actions/smssettings.php:448 +msgid "That is not your phone number." +msgstr "ეს არ არის თქვენი ნომერი." + +#. TRANS: Message given after successfully removing a registered SMS phone number. +#: actions/smssettings.php:470 +msgid "The SMS phone number was removed." +msgstr "SMS ტელეფონის ნომერი წაშლილია." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 msgid "Mobile carrier" -msgstr "" +msgstr "მობილური ოპერატორი" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 msgid "Select a carrier" -msgstr "" +msgstr "აირჩიეთ ოპერატორი" #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. #. TRANS: %s is an administrative contact's e-mail address. @@ -3827,6 +3911,14 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" +"თქვენი ტელეფონის მობილური ოპერატორი. თუ იცით ოპერატორი, რომელსაც შეუძლია " +"მიიღოს SMS ელ. ფოსტის გავლით, მაგრამ ამ სიაში ვერ აღმოაჩინეთ, მაშინ " +"გაგვაგებინეთ ამის შესახებ, მოგვწერეთ მისამართზე - %s." + +#. TRANS: Message given saving SMS phone number confirmation code without having provided one. +#: actions/smssettings.php:548 +msgid "No code entered" +msgstr "კოდი არ არის შეყვანილი" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 @@ -3834,10 +3926,6 @@ msgstr "" msgid "Snapshots" msgstr "" -#: actions/snapshotadminpanel.php:65 -msgid "Manage snapshot configuration" -msgstr "" - #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." msgstr "" @@ -3860,56 +3948,96 @@ msgstr "" #: actions/snapshotadminpanel.php:217 msgid "Frequency" -msgstr "" +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/subedit.php:70 +msgid "You are not subscribed to that profile." +msgstr "თქვენ არ გაქვთ გამოწერილი ამ პროფილის განახლებები." + +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 +msgid "Could not save subscription." +msgstr "გამოწერის დამახსოვრება ვერ მოხერხდა." + #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "ეს მოქმედება მხოლოდ POST მოთხოვნებს იღებს." -#: actions/subscribe.php:117 -msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "" +#: actions/subscribe.php:107 +msgid "No such profile." +msgstr "ასეთი პროფილი არ არსებობს." + +#: actions/subscribe.php:145 +msgid "Subscribed" +msgstr "გამოწერილია" + +#: actions/subscribers.php:50 +#, php-format +msgid "%s subscribers" +msgstr "%s გამომწერი" + +#: actions/subscribers.php:52 +#, php-format +msgid "%1$s subscribers, page %2$d" +msgstr "%1$s გამომწერი, გვერდი %2$d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "" +msgstr "არის ხალხი, ვინც თქვენს შეტყობინებებს თვალ-ყურს ადევნებს." #: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "" +msgstr "არის ხალხი, ვინც %s-ს შეტყობინებებს თვალ-ყურს ადევნებს." #: actions/subscribers.php:108 msgid "" "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 "%s არ ჰყავს გამომწერები. გინდა გახდე პირველი?" + +#: actions/subscribers.php:114 +#, php-format +msgid "" +"%s has no subscribers. Why not [register an account](%%%%action.register%%%" +"%) and be the first?" msgstr "" +"%s არ ჰყავს გამომწერები. [დარეგისტრირდი](%%%%action.register%%%%) და გახდი " +"პირველი." + +#: actions/subscriptions.php:52 +#, php-format +msgid "%s subscriptions" +msgstr "%s გამოწერები" + +#: actions/subscriptions.php:54 +#, php-format +msgid "%1$s subscriptions, page %2$d" +msgstr "%1$s გამოწერები, გვერდი %2$d" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." -msgstr "" +msgstr "ეს არის ხალხი, ვის შეტყობინებებსაც უსმენთ." #: actions/subscriptions.php:69 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "" +msgstr "ეს არის ხალხი ვის შეტყობინებებსაც ყურს უგდებს %s." #: actions/subscriptions.php:126 #, php-format @@ -3921,11 +4049,6 @@ msgid "" "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/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" @@ -3951,12 +4074,6 @@ msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" -#. TRANS: User admin panel title -#: actions/useradminpanel.php:59 -msgctxt "TITLE" -msgid "User" -msgstr "" - #: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" @@ -4033,10 +4150,6 @@ msgstr "" msgid "Enjoy your hotdog!" msgstr "" -#: actions/usergroups.php:132 -msgid "Search for more groups" -msgstr "" - #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." @@ -4080,10 +4193,6 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:199 -msgid "Author(s)" -msgstr "" - #. TRANS: Server exception thrown when a URL cannot be processed. #: classes/File.php:143 #, php-format @@ -4118,38 +4227,76 @@ msgstr "" msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 +msgid "Group join failed." +msgstr "ჯგუფში გაწევრიანება ვერ მოხერხდა." + +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 +msgid "Not part of group." +msgstr "ჯგუფის წევრი არ ხართ." + +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 +msgid "Group leave failed." +msgstr "ჯგუფის დატოვება ვერ მოხერხდა." + +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 +msgid "Could not update local group." +msgstr "ლოკალური ჯგუფის განახლება ვერ მოხერხდა." + #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "ბაზის სახელი ან DSN ვერსად ვერ მოიძებნა." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. #: classes/Message.php:46 msgid "You are banned from sending direct messages." -msgstr "" +msgstr "თქვენ აგეკრძალათ პირდაპირი შეტყობინებების გაგზავნის უფლება." + +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 +msgid "Could not insert message." +msgstr "შეტყობინების ჩასმა ვერ მოხერხდა." + +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 +msgid "Could not update message with new URI." +msgstr "შეტყობინების ახალი URI-თ განახლება ვერ მოხერხდა." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "ასეთი პროფილი (%1$d) შეტყობინებისათვის (%2$d) არ არსებობს." + +#. TRANS: Server exception. %s are the error details. +#: classes/Notice.php:193 +#, php-format +msgid "Database error inserting hashtag: %s" +msgstr "ბაზის შეცდომა hashtag-ის ჩასმისას: %s" #. TRANS: Client exception thrown if a notice contains too many characters. #: classes/Notice.php:265 msgid "Problem saving notice. Too long." -msgstr "" +msgstr "პრობლემა შეტყობინების შენახვისას. ძალიან გრძელია." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. #: classes/Notice.php:270 msgid "Problem saving notice. Unknown user." -msgstr "" +msgstr "პრობლემა შეტყობინების შენახვისას. მომხმარებელი უცნობია." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. #: classes/Notice.php:276 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"ძალიან ბევრი შეტყობინება მოკლე დროში; ცოტა დაისვენეთ და რამდენიმე წუთში " +"კიდევ დაპოსტეთ." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. #: classes/Notice.php:283 @@ -4157,16 +4304,36 @@ msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" +"ძალიან ბევრი დუბლირებული შეტყობინებები მოკლე პერიოდში. ცოტა დაისვენეთ და " +"რამდენიმე წუთში ისევ დაპოსტეთ." + +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:291 +msgid "You are banned from posting notices on this site." +msgstr "თქვენ აგეკრძალათ ამ საიტზე შეტყობინებების დაპოსტვა." + +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:358 classes/Notice.php:385 +msgid "Problem saving notice." +msgstr "პრობლემა შეტყობინების შენახვისას." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." -msgstr "" +msgstr "პრობლემა ჯგუფის ინდექსის შენახვისას." + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: classes/Notice.php:1759 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). @@ -4174,6 +4341,7 @@ msgstr "" #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" +"ვერ ხერხდება როლის \"%1$s\" უკუგება მომხმარებლისგან #%2$d; არ არსებობს." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). @@ -4181,95 +4349,307 @@ msgstr "" #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" +"ვერ ხერხდება როლის \"%1$s\" უკუგება მომხმარებლისგან #%2$d; მონაცემთა ბაზის " +"შეცდომა." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "პროფილი არ არსებობს." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:339 +msgid "Unable to save tag." +msgstr "სანიშნეს დამახსოვრება ვერ ხერხდება." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 +msgid "You have been banned from subscribing." +msgstr "თქვენ აგეკრძალათ გამოწერა." + +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 +msgid "Already subscribed!" +msgstr "უკვე გამოწერილია!" + +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 +msgid "User has blocked you." +msgstr "მომხმარებელმა დაგბლოკათ." + +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 +msgid "Not subscribed!" +msgstr "არ გაქვთ გამოწერილი!" + +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." +msgstr "საკუთარი გამოწერის წაშლა ვერ ხერხდება." + +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "გამოწერის წაშლა ვერ მოხერხდა. 0მბ-იანი ტოკენი" + +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." +msgstr "გამოწერის წაშლა ვერ მოხერხდა." + +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 +#, php-format +msgid "Welcome to %1$s, @%2$s!" +msgstr "გამარჯობა @%2$s, კეთილი იყოს თქვენი მობრძანება %1$s-ზე!" + +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 +msgid "Could not create group." +msgstr "ჯგუფის შექმნა ვერ მოხერხდა." + +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 +msgid "Could not set group URI." +msgstr "ჯგუფის URI-ს მინიჭება ვერ მოხერხდა." + +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 +msgid "Could not set group membership." +msgstr "ჯგუფის წევრობის მინიჭება ვერ მოხერხდა." + +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 +msgid "Could not save local group info." +msgstr "ჯგუფის ლოკალური ინფორმაციის დამახსოვრება ვერ მოხერხდა." + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:109 +msgid "Change your profile settings" +msgstr "შეცვალე პროფილის პარამეტრები" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:116 +msgid "Upload an avatar" +msgstr "ატვირთე ავატარი" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:123 +msgid "Change your password" +msgstr "შეცვალე პაროლი" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:130 msgid "Change email handling" -msgstr "" +msgstr "ელ. ფოსტის მართვა" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:137 +msgid "Design your profile" +msgstr "პროფილის პარამეტრები" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:144 +msgid "Other options" +msgstr "სხვა ოფციები" #. TRANS: Link description in user account settings menu. #: lib/accountsettingsaction.php:146 msgid "Other" -msgstr "" +msgstr "სხვა" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: lib/action.php:148 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. #: lib/action.php:164 msgid "Untitled page" -msgstr "" +msgstr "უსათაურო გვერდი" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. #: lib/action.php:449 msgid "Primary site navigation" -msgstr "" +msgstr "საიტის ძირითადი ნავიგაცია" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:455 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "პირადი პროფილი და მეგობრების ნაკადი" + +#. TRANS: Main menu option when logged in for access to personal profile and friends timeline +#: lib/action.php:458 +msgctxt "MENU" +msgid "Personal" +msgstr "პირადი" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:460 +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "შეცვალე ელ. ფოსტა, ავატარი, პაროლი, პროფილი" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:465 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "სერვისებთან დაკავშირება" + +#. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services +#: lib/action.php:468 +msgid "Connect" +msgstr "კავშირი" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:471 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "" +msgstr "საიტის კონფიგურაცია" + +#. TRANS: Main menu option when logged in and site admin for access to site configuration +#: lib/action.php:474 +msgctxt "MENU" +msgid "Admin" +msgstr "ადმინი" + +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:478 +#, php-format +msgctxt "TOOLTIP" +msgid "Invite friends and colleagues to join you on %s" +msgstr "მოიწვიე მეგობრები და კოლეგები %s-ზე" + +#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users +#: lib/action.php:481 +msgctxt "MENU" +msgid "Invite" +msgstr "მოწვევა" + +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:487 +msgctxt "TOOLTIP" +msgid "Logout from the site" +msgstr "გასვლა საიტიდან" + +#. TRANS: Main menu option when logged in to log out the current user +#: lib/action.php:490 +msgctxt "MENU" +msgid "Logout" +msgstr "გასვლა" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:495 +msgctxt "TOOLTIP" +msgid "Create an account" +msgstr "გახსენი ანგარიში" + +#. TRANS: Main menu option when not logged in to register a new account +#: lib/action.php:498 +msgctxt "MENU" +msgid "Register" +msgstr "რეგისტრაცია" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:501 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "საიტზე შესვლა" + +#: lib/action.php:504 +msgctxt "MENU" +msgid "Login" +msgstr "შესვლა" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:507 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "" +msgstr "დამეხმარეთ!" #: lib/action.php:510 msgctxt "MENU" msgid "Help" -msgstr "" +msgstr "დახმარება" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:513 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "მოძებნე ხალხი ან ტექსტი" + +#: lib/action.php:516 +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:538 lib/adminpanelaction.php:400 +msgid "Site notice" +msgstr "საიტის შეტყობინება" + +#. TRANS: DT element for local views block. String is hidden in default CSS. +#: lib/action.php:605 +msgid "Local views" +msgstr "ლოკალური ხედები" + +#. TRANS: DT element for page notice. String is hidden in default CSS. +#: lib/action.php:675 +msgid "Page notice" +msgstr "გვერდის შეტყობინება" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. #: lib/action.php:778 msgid "Secondary site navigation" -msgstr "" +msgstr "საიტის მეორადი ნავიგაცია" #. TRANS: Secondary navigation menu option leading to help on StatusNet. #: lib/action.php:784 msgid "Help" -msgstr "" +msgstr "დახმარება" + +#. TRANS: Secondary navigation menu option leading to text about StatusNet site. +#: lib/action.php:787 +msgid "About" +msgstr "საიტის შესახებ" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. #: lib/action.php:790 msgid "FAQ" -msgstr "" +msgstr "ხდკ" #. TRANS: Secondary navigation menu option leading to Terms of Service. #: lib/action.php:795 msgid "TOS" -msgstr "" +msgstr "მპ" + +#. TRANS: Secondary navigation menu option leading to privacy policy. +#: lib/action.php:799 +msgid "Privacy" +msgstr "პირადი" #. TRANS: Secondary navigation menu option. #: lib/action.php:802 msgid "Source" -msgstr "" +msgstr "წყარო" + +#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. +#: lib/action.php:808 +msgid "Contact" +msgstr "კონტაქტი" #: lib/action.php:810 msgid "Badge" -msgstr "" +msgstr "იარლიყი" #. TRANS: DT element for StatusNet software license. #: lib/action.php:839 msgid "StatusNet software license" -msgstr "" +msgstr "StatusNet კოდის ლიცენზია" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. #: lib/action.php:843 @@ -4278,12 +4658,14 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" +"**%%site.name%%** არის მიკრობლოგინგის სერვისი მოწოდებული [%%site.broughtby%%]" +"(%%site.broughtbyurl%%)-ს მიერ." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. #: lib/action.php:846 #, php-format msgid "**%%site.name%%** is a microblogging service." -msgstr "" +msgstr "**%%site.name%%** არის მიკრობლოგინგის სერვისი." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. #: lib/action.php:850 @@ -4293,36 +4675,57 @@ msgid "" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" +"ის მუშაობს [StatusNet](http://status.net/) მიკრობლოგინგის კოდზე, ვერსია %s, " +"რომელიც ხელმისაწვდომია [GNU Affero ძირითადი საჯარო ლიცენზიით](http://www.fsf." +"org/licensing/licenses/agpl-3.0.html)." + +#. TRANS: DT element for StatusNet site content license. +#: lib/action.php:866 +msgid "Site content license" +msgstr "საიტის შიგთავსის ლიცენზია" + +#. TRANS: Content license displayed when license is set to 'private'. +#. TRANS: %1$s is the site name. +#: lib/action.php:873 +#, php-format +msgid "Content and data of %1$s are private and confidential." +msgstr "%1$s ის შიგთავსი და მონაცემები არის პირადული და კონფიდენციალური." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. #: lib/action.php:880 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." -msgstr "" +msgstr "შიგთავსი და მონაცემები %1$s-ის საკუთრებაა. ყველა უფლება დაცულია." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. #: lib/action.php:884 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" +"შიგთავსი და მონაცემები წვლილის შემტანების საკუთრებაა. ყველა უფლება დაცულია." #. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. #: lib/action.php:897 #, php-format msgid "All %1$s content and data are available under the %2$s license." -msgstr "" +msgstr "%1$s-ს მთლიანი შიგთავსი და მონაცემები ხელმისაწვდომია %2$s ლიცენზიით." + +#. TRANS: DT element for pagination (previous/next, etc.). +#: lib/action.php:1236 +msgid "Pagination" +msgstr "გვერდებათ დაყოფა" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. #: lib/action.php:1247 msgid "After" -msgstr "" +msgstr "შემდეგი" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. #: lib/action.php:1257 msgid "Before" -msgstr "" +msgstr "წინა" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. #: lib/activity.php:122 @@ -4331,124 +4734,275 @@ msgstr "" #: lib/activityutils.php:208 msgid "Can't handle remote content yet." -msgstr "" +msgstr "ჯერჯერობით ვერ ვამუშავებ დაშორებულ შიგთავსს." -#: lib/activityutils.php:244 -msgid "Can't handle embedded XML content yet." -msgstr "" +#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. +#: lib/adminpanelaction.php:98 +msgid "You cannot make changes to this site." +msgstr "თქვენ არ გაქვთ ამ საიტზე ცვლილებების შეტანის უფლება." -#: lib/activityutils.php:248 -msgid "Can't handle embedded Base64 content yet." -msgstr "" +#. TRANS: Client error message throw when a certain panel's settings cannot be changed. +#: lib/adminpanelaction.php:110 +msgid "Changes to that panel are not allowed." +msgstr "ამ პანელის ცვლილებები არ არის დაშვებული." #. TRANS: Client error message. #: lib/adminpanelaction.php:229 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm() არ არის განხორციელებული." #. TRANS: Client error message #: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings() არ არის განხორციელებული." + +#. TRANS: Client error message thrown if design settings could not be deleted in +#. TRANS: the admin panel Design. +#: lib/adminpanelaction.php:284 +msgid "Unable to delete design setting." +msgstr "დიზაინის პარამეტრების წაშლა ვერ ხერხდება." #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:350 msgid "Basic site configuration" -msgstr "" +msgstr "საიტის ძირითადი კონფიგურაცია" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:352 +msgctxt "MENU" +msgid "Site" +msgstr "საიტი" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:358 msgid "Design configuration" -msgstr "" +msgstr "დიზაინის კონფიგურაცია" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:360 +msgctxt "MENU" +msgid "Design" +msgstr "დიზაინი" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:366 +msgid "User configuration" +msgstr "მომხმარებლის კონფიგურაცია" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 msgid "User" -msgstr "" +msgstr "მომხმარებელი" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:374 msgid "Access configuration" -msgstr "" +msgstr "შესვლის კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:382 +msgid "Paths configuration" +msgstr "გზების კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:390 +msgid "Sessions configuration" +msgstr "სესიების კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:398 +msgid "Edit site notice" +msgstr "საიტის შეტყობინების რედაქტირება" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:406 msgid "Snapshots configuration" -msgstr "" +msgstr "წინა ვერსიების კონფიგურაცია" #. TRANS: Client error 401. #: lib/apiauth.php:113 msgid "API resource requires read-write access, but you only have read access." msgstr "" +"API რესურსი მოითხოვს ჩაწერა-წაკითხვის წვდომას, მაგრამ თვენ მხოლოდ წაკითხვის " +"უფლება გაქვთ." + +#. TRANS: Form legend. +#: lib/applicationeditform.php:137 +msgid "Edit application" +msgstr "ჩაასწორე აპლიკაცია" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:187 +msgid "Icon for this application" +msgstr "ამ აპლიკაციის ხატულა" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:209 +#, php-format +msgid "Describe your application in %d characters" +msgstr "აღწერეთ თქვენი აპლიკაცია %d სიმბოლოთი" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:213 +msgid "Describe your application" +msgstr "აღწერეთ თქვენი აპლიკაცია" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:224 +msgid "URL of the homepage of this application" +msgstr "აპლიკაციის საწყისი გვერდის URL" + +#. TRANS: Form input field label. +#: lib/applicationeditform.php:226 +msgid "Source URL" +msgstr "წყაროს URL" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:233 +msgid "Organization responsible for this application" +msgstr "ამ აპლიკაციაზე პასუხისმგებელი ორგანიზაცია" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:242 msgid "URL for the homepage of the organization" -msgstr "" +msgstr "ორგანიზაციის საწყისი გვერდის URL" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:251 msgid "URL to redirect to after authentication" -msgstr "" +msgstr "ავტორიზაციის შემდეგ გადასამისამართებელი URL" #. TRANS: Radio button label for application type #: lib/applicationeditform.php:278 msgid "Browser" -msgstr "" +msgstr "ბროუზერი" #. TRANS: Radio button label for application type #: lib/applicationeditform.php:295 msgid "Desktop" -msgstr "" +msgstr "ინსტალირებადი" #. TRANS: Form guide. #: lib/applicationeditform.php:297 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "აპლიკაციის ტიპი, ბროუზერისთვის ან ინსტალირებადი" #. TRANS: Radio button label for access type. #: lib/applicationeditform.php:320 msgid "Read-only" -msgstr "" +msgstr "მხოლოდ წაკითხვადი" #. TRANS: Radio button label for access type. #: lib/applicationeditform.php:339 msgid "Read-write" -msgstr "" +msgstr "კიტხვა-წერადი" #. TRANS: Form guide. #: lib/applicationeditform.php:341 msgid "Default access for this application: read-only, or read-write" msgstr "" +"შესვლის პირვანდელი მდგომარეობა ამ აპლიკაციისთვის: მხოლოდ წაკითხვადი, ან " +"კითხვა-წერადი" + +#. TRANS: Submit button title +#: lib/applicationeditform.php:359 +msgid "Cancel" +msgstr "გაუქმება" #. TRANS: Application access type #: lib/applicationlist.php:136 msgid "read-write" -msgstr "" +msgstr "კიტხვა-წერადი" #. TRANS: Application access type #: lib/applicationlist.php:138 msgid "read-only" -msgstr "" +msgstr "მხოლოდ წაკითხვადი" #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) #: lib/applicationlist.php:144 #, php-format msgid "Approved %1$s - \"%2$s\" access." -msgstr "" +msgstr "დამტკიცებულია %1$s - \"%2$s\" შესვლა" + +#. TRANS: Button label +#: lib/applicationlist.php:159 +msgctxt "BUTTON" +msgid "Revoke" +msgstr "უკუგება" + +#. TRANS: DT element label in attachment list. +#: lib/attachmentlist.php:88 +msgid "Attachments" +msgstr "მიმაგრებები" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:265 +msgid "Author" +msgstr "ავტორი" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:279 +msgid "Provider" +msgstr "მომწოდებელი" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "შეტყობინებები სადაც ეს მიმაგრება გამოჩენილა" + +#: lib/attachmenttagcloudsection.php:48 +msgid "Tags for this attachment" +msgstr "ამ მიმაგრების სანიშნეები" + +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +msgid "Password changing failed" +msgstr "პაროლის ცვლილება ჩაიშალა" + +#: lib/authenticationplugin.php:236 +msgid "Password changing is not allowed" +msgstr "პაროლის ცვლილება არ არის ნებადართული" + +#: lib/channel.php:157 lib/channel.php:177 +msgid "Command results" +msgstr "ბრძანების შედეგები" #: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" -msgstr "" +msgstr "ბრძანება დასრულდა" + +#: lib/channel.php:240 +msgid "Command failed" +msgstr "ბრძანება ჩაიშალა" + +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:84 lib/command.php:108 +msgid "Notice with that id does not exist." +msgstr "შეტყობინებები ამ ID-თ არ არსებობს." + +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:101 lib/command.php:630 +msgid "User has no last notice." +msgstr "მომხმარებელს არ გააჩნია ბოლო შეტყობინება." + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:130 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "მომხმარებელი მეტსახელით %s ვერ მოიძებნა." + +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "ლოკალური მომხმარებელი მეტსახელით %s ვერ მოიძებნა." #. TRANS: Error text shown when an unimplemented command is given. #: lib/command.php:185 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "ბოდიში, ეს ბრძანება ჯერ არ არის განხორციელებული." #. TRANS: Command exception text shown when a user tries to nudge themselves. #: lib/command.php:231 @@ -4473,12 +5027,54 @@ msgid "" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"გამოწერები: %1$s\n" +"გამომწერები: %2$s\n" +"შეტყობინებები: %3$s" + +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:314 +msgid "Notice marked as fave." +msgstr "შეტყობინება მონიშნულია რჩეულად." + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:360 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s გაწევრიანდა ჯგუფში %2$s." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s-მა დატოვა ჯგუფი %2$s." + +#. TRANS: Whois output. %s is the full name of the queried user. +#: lib/command.php:434 +#, php-format +msgid "Fullname: %s" +msgstr "სრული სახელი: %s" + +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/command.php:438 lib/mail.php:268 +#, php-format +msgid "Location: %s" +msgstr "მდებარეობა: %s" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/command.php:442 lib/mail.php:271 +#, php-format +msgid "Homepage: %s" +msgstr "გვერდი: %s" #. TRANS: Whois output. %s is the bio information of the queried user. #: lib/command.php:446 #, php-format msgid "About: %s" -msgstr "" +msgstr "%s-ის შესახებ" #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). #: lib/command.php:474 @@ -4487,6 +5083,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s დაშორებული პროფილია; პირდაპირი შეტყობინებების გაგზავნა მხოლოდ იგივე " +"სერვერზე მყოფ მომხმარებელთანაა შესააძლებელი." #. TRANS: Message given if content is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. @@ -4494,6 +5092,25 @@ msgstr "" #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" +"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ " +"გააგზავნეთ %2$d." + +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:517 +msgid "Error sending direct message." +msgstr "შეცდომა პირდაპირი შეტყობინების გაგზავნისას." + +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:554 +#, php-format +msgid "Notice from %s repeated." +msgstr "შეტყობინება %s-გან გამეორდა." + +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:557 +msgid "Error repeating notice." +msgstr "შეცდომა შეტყობინების გამეორებისას." #. TRANS: Message given if content of a notice for a reply is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. @@ -4501,28 +5118,51 @@ msgstr "" #, php-format msgid "Notice too long - maximum is %1$d characters, you sent %2$d." msgstr "" +"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ " +"გააგზავნეთ %2$d." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:603 +#, php-format +msgid "Reply to %s sent." +msgstr "პასუხი %s-ს გაეგზავნა." + +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:606 +msgid "Error saving notice." +msgstr "შეცდომა შეტყობინების შენახვისას." #. TRANS: Error text shown when no username was provided when issuing a subscribe command. #: lib/command.php:655 msgid "Specify the name of the user to subscribe to." -msgstr "" +msgstr "მიუთითეთ მომხმარებლის სახელი, რომელსაც გინდათ ყური დაუგდოთ." -#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. -#: lib/command.php:664 -msgid "Can't subscribe to OMB profiles by command." -msgstr "" +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 +#, php-format +msgid "Subscribed to %s." +msgstr "%s-ს გამოწერა დასრულდა წარმატებით." #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. #. TRANS: Error text shown when no username was provided when issuing the command. #: lib/command.php:694 lib/command.php:804 msgid "Specify the name of the user to unsubscribe from." -msgstr "" +msgstr "მიუთითეთ მომხმარებლის სახელი, რომ გამოწერა გააუქმოთ." + +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 +#, php-format +msgid "Unsubscribed from %s." +msgstr "%s-ს გამოწერა გაუქმდა." #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. #: lib/command.php:724 lib/command.php:750 msgid "Command not yet implemented." -msgstr "" +msgstr "ბრძანება ჯერ არ არის შემუშავებული." #. TRANS: Error text shown when the command "off" fails for an unknown reason. #: lib/command.php:731 @@ -4541,12 +5181,6 @@ msgstr "" msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#. TRANS: Text shown after requesting other users that are subscribed to a user -#. TRANS: (followers) without having any subscribers. -#: lib/command.php:858 -msgid "No one is subscribed to you." -msgstr "" - #. TRANS: Text shown after requesting other users that are subscribed to a user (followers). #. TRANS: This message support plural forms. This message is followed by a #. TRANS: hard coded space and a comma separated list of subscribing users. @@ -4605,10 +5239,6 @@ msgstr "" msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 -msgid "Go to the installer." -msgstr "" - #: lib/connectsettingsaction.php:110 msgid "IM" msgstr "" @@ -4625,10 +5255,6 @@ msgstr "" msgid "Database error" msgstr "" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - #: lib/feed.php:85 msgid "RSS 1.0" msgstr "" @@ -4637,10 +5263,6 @@ msgstr "" msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 -msgid "Atom" -msgstr "" - #: lib/feed.php:91 msgid "FOAF" msgstr "" @@ -4653,84 +5275,154 @@ msgstr "" msgid "Filter tags" msgstr "" -#: lib/galleryaction.php:139 -msgid "Select tag to filter" -msgstr "" +#: lib/galleryaction.php:140 +msgid "Tag" +msgstr "სანიშნე" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "სიის გასაფილტრად აირჩიე სანიშნე" #: lib/galleryaction.php:143 msgid "Go" -msgstr "" +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" +msgstr "საწყისი გვერდის URL, ან ჯგუფის/თემის ბლოგი" #: 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 "არწერე ჯგუფი ან თემა %d სიმბოლოთი" + +#: 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 "" +"ჯგუფის დამატებითი მეტსახელები. გამოყავით მძიმით ან სივრცით. მაქსიმუმ %d " +"სიმბოლო" + +#: lib/groupnav.php:85 +msgid "Group" +msgstr "ჯგუფი" + +#: lib/groupnav.php:101 +msgid "Blocked" +msgstr "დაბლოკილია" + +#: lib/groupnav.php:102 +#, php-format +msgid "%s blocked users" +msgstr "%s დაბლოკილი მომხმარებელი" + +#: lib/groupnav.php:108 +#, php-format +msgid "Edit %s group properties" +msgstr "%s ჯგუფის პარამეტრების რედაქტირება" + +#: lib/groupnav.php:113 +msgid "Logo" +msgstr "ლოგო" #: lib/groupnav.php:114 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "%s-ს ლოგოს დამატება ან ჩასწორება" #: lib/groupnav.php:120 #, php-format msgid "Add or edit %s design" -msgstr "" +msgstr "%s-ს დიზაინის დამატება ან ჩასწორება" + +#: lib/groupsbymemberssection.php:71 +msgid "Groups with most members" +msgstr "ჯგუფები უმეტესი მომხმარებლებით" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "ჯგუფები უმეტესი პოსტებით" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "%s ჯგუფის შეტყობინებებში გამოყენებული სანიშნეები" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" -msgstr "" +msgstr "ეს გვერდი მიუწვდომელია იმ მედია ფორმატში რომელსაც თქვენ იღებთ" + +#: lib/imagefile.php:72 +msgid "Unsupported image file format." +msgstr "სურათის ფორმატი მხარდაჭერილი არ არის." + +#: lib/imagefile.php:88 +#, php-format +msgid "That file is too big. The maximum file size is %s." +msgstr "ეს ფაილი ძალიან დიდია. ფაილის მაქს. ზომაა %s." + +#: lib/imagefile.php:93 +msgid "Partial upload." +msgstr "ნაწილობრივი ატვირთვა." #: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." -msgstr "" +msgstr "სისტემური შეცდომა ფაილის ატვირთვისას." #: lib/imagefile.php:109 msgid "Not an image or corrupt file." -msgstr "" +msgstr "სურათი არ არის, ან ფაილი დაზიანებულია." + +#: lib/imagefile.php:122 +msgid "Lost our file." +msgstr "ფაილი დაიკარგა." #: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" -msgstr "" +msgstr "ფაილის ტიპი უცნობია" #: lib/imagefile.php:244 msgid "MB" -msgstr "" +msgstr "მბ" #: lib/imagefile.php:246 msgid "kB" -msgstr "" +msgstr "კბ" #: lib/jabber.php:387 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" + +#: lib/logingroupnav.php:80 +msgid "Login with a username and password" +msgstr "შედი მომხ. სახელით და პაროლით." #: lib/logingroupnav.php:86 msgid "Sign up for a new account" -msgstr "" +msgstr "ახალი ანგარიშის გერისტრაცია" + +#. TRANS: Subject for address confirmation email +#: lib/mail.php:174 +msgid "Email address confirmation" +msgstr "ელ. ფოსტის მისამართის დადასტურება" #. TRANS: Body for address confirmation email. #: lib/mail.php:177 @@ -4749,6 +5441,26 @@ 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" +"\\�\n" +"�" + +#. TRANS: Subject of new-subscriber notification e-mail +#: lib/mail.php:243 +#, php-format +msgid "%1$s is now listening to your notices on %2$s." +msgstr "%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე." #: lib/mail.php:248 #, php-format @@ -4756,6 +5468,9 @@ msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" +"ტუ თქვენ გგონიათ, რომ ეს ანგარიში არაკეთილსინგისიერად გამოიყენება, შეგიძლიათ " +"დაბლოკოთ ის თქვნი გამომწერებიდან და უჩივლოთ მას საიტის ადმინისტრაციასთან აქ %" +"s" #. TRANS: Main body of new-subscriber notification e-mail #: lib/mail.php:254 @@ -4772,6 +5487,22 @@ msgid "" "----\n" "Change your email address or notification options at %8$s\n" msgstr "" +"%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე.\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"პატივისცემით,\n" +"%7$s.\n" +"\n" +"----\n" +"შეცვალეთ თქვენი ელ. ფოსტის მისამართი ან შეტყობინებების პარამეტრები აქ %8$s\n" + +#. TRANS: Subject of notification mail for new posting email address +#: lib/mail.php:304 +#, php-format +msgid "New email address for posting to %s" +msgstr "%s-ზე დასაპოსტი ახალი ელ. ფოსტის მისამართი" #. TRANS: Body of notification mail for new posting email address #: lib/mail.php:308 @@ -4786,12 +5517,32 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"თქვენ ახალი დასაპოსტი ელ. ფოსტის მისამართი გაქვთ %1$s-ზე.\n" +"\n" +"გააგზავნეთ ელ. წერილი %2$s-ზე, რომ დაპოსტოთ ახალი შეტყობინებები.\n" +"\n" +"მეტი ინსტრუქციები ელ. ფოსტის შესახებ აქ %3$s.\n" +"\n" +"პატივისცემით,\n" +"%4$s" + +#. TRANS: Subject line for SMS-by-email notification messages +#: lib/mail.php:433 +#, php-format +msgid "%s status" +msgstr "%s სტატუსი" + +#. TRANS: Subject line for SMS-by-email address confirmation message +#: lib/mail.php:460 +msgid "SMS confirmation" +msgstr "SMS დადასტურება" #. TRANS: Main body heading for SMS-by-email address confirmation message #: lib/mail.php:463 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" +"%s: დაადასტურეთ, რომ ეს მობილურის ნომერი მართლაც თქვენია ამ კოდის მეშვეობით:" #. TRANS: Subject for 'nudge' notification email #: lib/mail.php:484 @@ -4815,6 +5566,24 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s (%2$s) დაინტერესდა თუ რას აკეთებთ ამ დღეებში და გეპატიჟებათ რაიმე " +"სიახლეების დასაპოსტად.\n" +"\n" +"ასე რომ გისმენთ დიდი ინტერესით :)\n" +"\n" +"%3$s\n" +"\n" +"ნუ უპასუხებთ ამ წერილს; ადრესატს არ მიუვა.\n" +"\n" +"პატივისცემით,\n" +"%4$s\n" +"\\�" + +#. TRANS: Subject for direct-message notification email +#: lib/mail.php:536 +#, php-format +msgid "New private message from %s" +msgstr "ახალი პირადი შეტყობინება %s-სგან" #. TRANS: Body for direct-message notification email #: lib/mail.php:541 @@ -4835,6 +5604,27 @@ 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" +"\\�" + +#. TRANS: Subject for favorite notification email +#: lib/mail.php:589 +#, php-format +msgid "%s (@%s) added your notice as a favorite" +msgstr "%s-მა (@%s) დაამატა თქვენი შეტყობინება თავის რჩეულებში" #. TRANS: Body for favorite notification email #: lib/mail.php:592 @@ -4857,6 +5647,24 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s-მა (@%7$s) ეხლახანს დაამატა თქვენი შეტყობინება თავის რჩეულებში %2$s-" +"ზე.\n" +"\n" +"შეტყობინების URL-ია:\n" +"\n" +"%3$s\n" +"\n" +"თქვენი შეტყობინების ტექსტია:\n" +"\n" +"%4$s\n" +"\n" +"თქვენ შეგიძლიათ ნახოთ %1$s-ის რჩეული შეტყობინებების სია აქ:\n" +"\n" +"%5$s\n" +"\n" +"პატივისცემით,\n" +"%6$s\n" +"\\�" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. #: lib/mail.php:651 @@ -4866,11 +5674,14 @@ msgid "" "\n" "\t%s" msgstr "" +"მთლიანი საუბრის წაკითხვა შესაძლებელია აქ:\n" +"\n" +"%s" #: lib/mail.php:657 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgstr "%s-მა (@%s) გამოაგზავნა შეტყობინება თქვენს საყურადღებოდ" #. TRANS: Body of @-reply notification e-mail. #: lib/mail.php:660 @@ -4900,324 +5711,575 @@ msgid "" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" +#: lib/mailbox.php:89 +msgid "Only the user can read their own mailboxes." +msgstr "მხოლოდ მომხმარებელს შეუძლია თავისი ფოსტის წაკითხვა." + #: lib/mailbox.php:139 msgid "" "You have no private messages. You can send private message to engage other " "users in conversation. People can send you messages for your eyes only." msgstr "" +"თქვენ არ გაქვთ პირადი შეტყობინებები. თქვენ შეგიძლიათ გააგზავნოთ პირადი " +"შეტყობინებები, რომ ჩაერთოთ საუბრებში სხვა ხალხთან. ხალხს შეუძლია " +"გამოგიგზავნონ შეტყობინებები მხოლოდ თქვენ დასანახად." #: lib/mailbox.php:228 lib/noticelist.php:506 msgid "from" +msgstr "ვისგან" + +#: lib/mailhandler.php:37 +msgid "Could not parse message." +msgstr "შეტყობინების გაცრა (გა-parse-ვა) ვერ მოხერხდა." + +#: 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 "შეტყობინების ტიპი არ არის მხარდაჭერილი: %s" #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." -msgstr "" +msgstr "ფაილის შენახვისას მოხდა მონაცემთა ბაზის შეცდომა. გთხოვთ კიდევ სცადოთ." #: lib/mediafile.php:142 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"ასატვირთი ფაილი სცდება ფაილის დაშვებულ ზომას. upload_max_filesize დირექტივა " +"php.ini-ში." #: lib/mediafile.php:147 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" +"ასატვირთი ფაილი სცდება MAX_FILE_SIZE დირექტივას, რომელიც მითითებული იყო HTML " +"ფორმაში." #: 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." -msgstr "" +msgstr "ფაილის დისკზე ჩაწერა ვერ მოხერხდა." #: lib/mediafile.php:165 msgid "File upload stopped by extension." -msgstr "" +msgstr "ფაილის არვირთვა გაჩერდა გაფართოების გამო." #: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." -msgstr "" +msgstr "ფაილი სცდება მომხმარებლის კვოტას." #: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "ფაილის გადატანა დანიშნულების დირექტორიაში ვერ მოხერხდა." + +#: lib/mediafile.php:202 lib/mediafile.php:238 +msgid "Could not determine file's MIME type." +msgstr "ფაილის MIME ტიპი ვერ დადგინდა." #: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." -msgstr "" +msgstr "სხვა %s ფორმატი სცადეთ." #: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." -msgstr "" +msgstr "%s არ არის ამ სერვერზე მხარდაჭერილი ფაილის ტიპი." + +#: lib/messageform.php:120 +msgid "Send a direct notice" +msgstr "გააგზავნე პირდაპირი შეტყობინება" #: lib/messageform.php:146 msgid "To" -msgstr "" +msgstr "ვის" + +#: lib/messageform.php:159 lib/noticeform.php:186 +msgid "Available characters" +msgstr "ხელმისაწვდომი სიმბოლოები" + +#: lib/messageform.php:178 lib/noticeform.php:237 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "გაგზავნა" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "შეტყობინების გაგზავნა" #: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "" +msgstr "რა არის ახალი %s?" #: lib/noticeform.php:193 msgid "Attach" -msgstr "" +msgstr "ფაილის მიმაგრება" #: lib/noticeform.php:197 msgid "Attach a file" -msgstr "" +msgstr "მიამაგრე ფაილი" #: lib/noticeform.php:213 msgid "Share my location" -msgstr "" +msgstr "გააზიარე ჩემი მდებარეობა" + +#: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "არ გააზიარო ჩემი მდებარეობა" #: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"ბოდიში, როგორც ჩანს ადგილმდებარეობის დადგენას ჩვეულებრივზე მეტი ხანი " +"სჭირდება, გთხოვთ სცადოთ მოგვიანებით" + +#. TRANS: Used in coordinates as abbreviation of north +#: lib/noticelist.php:436 +msgid "N" +msgstr "ჩ" #. TRANS: Used in coordinates as abbreviation of south #: lib/noticelist.php:438 msgid "S" -msgstr "" +msgstr "ს" #. TRANS: Used in coordinates as abbreviation of east #: lib/noticelist.php:440 msgid "E" -msgstr "" +msgstr "ა" #. TRANS: Used in coordinates as abbreviation of west #: lib/noticelist.php:442 msgid "W" -msgstr "" +msgstr "დ" #: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -msgstr "" +msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" #: lib/noticelist.php:502 msgid "web" msgstr "" +#: lib/noticelist.php:630 +msgid "Reply to this notice" +msgstr "უპასუხე ამ შეტყობინებას" + #: lib/noticelist.php:631 msgid "Reply" -msgstr "" +msgstr "პასუხი" -#: lib/nudgeform.php:128 -msgid "Nudge" -msgstr "" +#: lib/noticelist.php:675 +msgid "Notice repeated" +msgstr "შეტყობინება გამეორებულია" + +#: lib/oauthstore.php:283 +msgid "Error inserting new profile" +msgstr "შეცდომა ახალი პროფილის ჩასმისას." + +#: lib/oauthstore.php:291 +msgid "Error inserting avatar" +msgstr "შეცდომა ავატარის ჩასმისას" + +#: lib/oauthstore.php:306 +msgid "Error updating remote profile" +msgstr "შეცდომა დაშორებული პროფილის განახლებისას." + +#: lib/oauthstore.php:311 +msgid "Error inserting remote profile" +msgstr "შეცდომა დაშორებული პროფილის ჩასმისას." + +#: lib/oauthstore.php:490 +msgid "Couldn't insert new subscription." +msgstr "ახალი გამოწერის ჩასმა ვერ მოხერხდა." + +#: lib/personalgroupnav.php:99 +msgid "Personal" +msgstr "პირადი" + +#: lib/personalgroupnav.php:104 +msgid "Replies" +msgstr "პასუხები" + +#: lib/personalgroupnav.php:114 +msgid "Favorites" +msgstr "რჩეულები" #: lib/personalgroupnav.php:125 msgid "Inbox" -msgstr "" +msgstr "შემომავალი წერილების ყუთი" + +#: lib/personalgroupnav.php:126 +msgid "Your incoming messages" +msgstr "თქვენი შემომავალი შეტყობინებები" + +#: lib/personalgroupnav.php:130 +msgid "Outbox" +msgstr "გამავალი წერილების ყუთი" + +#: lib/personalgroupnav.php:131 +msgid "Your sent messages" +msgstr "თქვენი გაგზავნილი წერილები" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "%s-ს შეტყობინებებში გამოყენებული სანიშნეები" + +#: lib/plugin.php:115 +msgid "Unknown" +msgstr "უცნობი" + +#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 +msgid "Subscriptions" +msgstr "გამოწერები" + +#: lib/profileaction.php:126 +msgid "All subscriptions" +msgstr "ყველა გამოწერა" + +#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 +msgid "Subscribers" +msgstr "გამომწერები" + +#: lib/profileaction.php:161 +msgid "All subscribers" +msgstr "ყველა გამომწერი" #: lib/profileaction.php:191 msgid "User ID" -msgstr "" +msgstr "მომხმარებლის იდ" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "" +msgstr "დღიური საშუალო" + +#: lib/profileaction.php:264 +msgid "All groups" +msgstr "ყველა ჯგუფი" #: lib/profileformaction.php:123 msgid "Unimplemented method." -msgstr "" +msgstr "მეთოდი განუხორციელებელია." #: lib/publicgroupnav.php:78 msgid "Public" -msgstr "" +msgstr "საჯარო" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "" +msgstr "ბოლო სანიშნეები" + +#: lib/publicgroupnav.php:92 +msgid "Popular" +msgstr "პოპულარული" + +#: lib/repeatform.php:107 +msgid "Repeat this notice?" +msgstr "გავიმეორო ეს შეტყობინება?" + +#: lib/repeatform.php:132 +msgid "Yes" +msgstr "დიახ" + +#: lib/repeatform.php:132 +msgid "Repeat this notice" +msgstr "შეტყობინების გამეორება" + +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "ჩამოართვი \"%s\" როლი ამ მომხმარებელს" #: lib/router.php:709 msgid "No single user defined for single-user mode." -msgstr "" +msgstr "ერთი მომხმარებელი არ განსაზღვრულა ერთარედთი-მომხმარებლის რეჟიმისთვის." -#: lib/sandboxform.php:67 -msgid "Sandbox" -msgstr "" +#: lib/sandboxform.php:78 +msgid "Sandbox this user" +msgstr "ამ მომხმარებლის იზოლირება" #: lib/searchaction.php:120 msgid "Search site" -msgstr "" +msgstr "ძიება საიტზე" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "საკვანძო სიტყვები" + +#: lib/searchaction.php:127 +msgid "Search" +msgstr "ძიება" #: lib/searchaction.php:162 msgid "Search help" -msgstr "" +msgstr "ძიება დახმარებაში" + +#: lib/searchgroupnav.php:80 +msgid "People" +msgstr "ადამიანები" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "მოძებნე ადამიანები ამ საიტზე" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "მოძებნე შეტყობინებებში" + +#: lib/searchgroupnav.php:85 +msgid "Find groups on this site" +msgstr "მოძებნე ჯგუფები ამ საიტზე" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "უსათაურო სექცია" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "მეტი..." + +#: lib/silenceform.php:67 +msgid "Silence" +msgstr "დადუმება" + +#: lib/silenceform.php:78 +msgid "Silence this user" +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" -msgstr "" +msgstr "მომხმარებლების სანიშნეების ღრუბელი (თვითმონიშნული)" #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "" +msgstr "მომხმარებლების სანიშნეების ღრუბელი (როგორც სხვებმა მონიშნეს)" + +#: lib/tagcloudsection.php:56 +msgid "None" +msgstr "არაფერი" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "ამ სერვერს არ შეუძლია თემების ატვირთვა ZIP-ის მხარდაჭერის გარეშე." #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." -msgstr "" +msgstr "თემის ფაილი არ არის, ან ატვირთვა ვერ მოხერხდა." + +#: lib/themeuploader.php:91 lib/themeuploader.php:102 +#: lib/themeuploader.php:278 lib/themeuploader.php:282 +#: lib/themeuploader.php:290 lib/themeuploader.php:297 +msgid "Failed saving theme." +msgstr "თემის შენახვა ჩაიშალა." #: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "არასწორი თემა: დირექტორიების არასწორი სტრუქტურა." #: lib/themeuploader.php:166 #, php-format msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgstr "ატვირთული თემა ძალიან დიდია; შეუკუმშავი უნდა იყოს %d ბაიტზე ნაკლები." #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "თემის არასწორი არქივი: ფაილი css/display.css არ არის" #: lib/themeuploader.php:218 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"თემა შეიცავს ფაილის ან საქაღალდის არასწორ სახელს. გამოიყენეთ ASCII ასოები, " +"ციფრები, ქვედა ტირე, და მინუსის ნიშანი." #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." msgstr "" +"თემა ფაილის გაფართოებების საშიშ სახელებს შეიცავს; შეიძლება არ იყოს უსაფრთხო." #: lib/themeuploader.php:241 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "თემა შეიცავს ფაილის ტიპს '.%s', რომელიც აკრძალულია." + +#: lib/themeuploader.php:259 +msgid "Error opening theme archive." +msgstr "თემის არქივის გახსნისას მოხდა შეცდომა." #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "საუკეთესო მპოსტავები" #: lib/unsandboxform.php:69 msgid "Unsandbox" -msgstr "" +msgstr "იზოლირების მოხსნა" + +#: lib/unsandboxform.php:80 +msgid "Unsandbox this user" +msgstr "ამ მომხმარებლის იზოლირების მოხსნა" #: lib/unsilenceform.php:67 msgid "Unsilence" -msgstr "" +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:117 +msgid "Edit Avatar" +msgstr "ავატარის რედაქტირება" + +#: lib/userprofile.php:234 lib/userprofile.php:248 +msgid "User actions" +msgstr "მომხმარებლის მოქმედებები" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "მომხმარებლის წაშლა პროგრესშია..." + +#: lib/userprofile.php:263 +msgid "Edit profile settings" +msgstr "პროფილის პარამეტრების რედაქტირება" #: lib/userprofile.php:264 msgid "Edit" -msgstr "" +msgstr "რედაქტირება" + +#: lib/userprofile.php:287 +msgid "Send a direct message to this user" +msgstr "გაუგზავნე პირდაპირი შეტყობინება ამ მომხმარებელს" + +#: lib/userprofile.php:288 +msgid "Message" +msgstr "შეტყობინება" #: lib/userprofile.php:326 msgid "Moderate" -msgstr "" +msgstr "მოდერაცია" + +#: lib/userprofile.php:364 +msgid "User role" +msgstr "მომხმარებლის როლი" #: lib/userprofile.php:366 msgctxt "role" msgid "Administrator" -msgstr "" +msgstr "ადმინისტრატორი" #: lib/userprofile.php:367 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "მოდერატორი" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1102 msgid "a few seconds ago" -msgstr "" +msgstr "რამდენიმე წამის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1105 msgid "about a minute ago" -msgstr "" +msgstr "დაახლოებით 1 წუთის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1109 #, php-format msgid "about %d minutes ago" -msgstr "" +msgstr "დაახლოებით %d წუთის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1112 msgid "about an hour ago" -msgstr "" +msgstr "დაახლოებით 1 საათის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1116 #, php-format msgid "about %d hours ago" -msgstr "" +msgstr "დაახლოებით %d საათის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1119 msgid "about a day ago" -msgstr "" +msgstr "დაახლოებით 1 დღის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1123 #, php-format msgid "about %d days ago" -msgstr "" +msgstr "დაახლოებით %d დღის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1126 msgid "about a month ago" -msgstr "" +msgstr "დაახლოებით 1 თვის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1130 #, php-format msgid "about %d months ago" -msgstr "" +msgstr "დაახლოებით %d თვის წინ" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1133 msgid "about a year ago" -msgstr "" +msgstr "დაახლოებით 1 წლის წინ" + +#: lib/webcolor.php:82 +#, php-format +msgid "%s is not a valid color!" +msgstr "%s არ არის სწორი ფერი!" #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" +"%s არ არის სწორი ფერი! გამოიყენეთ 3 ან 6 სიმბოლოიანი თექვსმეტობითი ციფრი." diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 7a2504c04d..a82559718a 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:50+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:52+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -2375,8 +2375,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "지원하는 형식의 데이터가 아닙니다." @@ -4335,13 +4335,13 @@ msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 00339c08af..cdabe37a3c 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:56+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:34:59+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -2608,8 +2608,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Ве молиме користете само %s URL-адреси врз прост HTTP-код." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Ова не е поддржан формат на податотека." @@ -4989,18 +4989,18 @@ msgid "Problem saving notice." msgstr "Проблем во зачувувањето на белешката." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "На saveKnownGroups му е уакажан грешен тип" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7059,7 +7059,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "Овој изглед содржи небезбедни податотечни наставки." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 44820c1585..4b23489ada 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:46:58+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:01+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -2527,8 +2527,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Bare %s-nettadresser over vanlig HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Ikke et støttet dataformat." @@ -4692,18 +4692,18 @@ msgid "Problem saving notice." msgstr "Problem ved lagring av notis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problem ved lagring av gruppeinnboks." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 5e8bc6980d..9afcea4bfa 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:07+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:11+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -2633,8 +2633,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Alleen URL's voor %s via normale HTTP alstublieft." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Geen ondersteund gegevensformaat." @@ -5029,12 +5029,12 @@ msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Het gegevenstype dat is opgegeven aan saveKnownGroups is onjuist" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " @@ -5042,7 +5042,7 @@ msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7125,7 +7125,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "Het uiterlijk bevat onveilige namen voor bestandsextensies." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 4dd5d023ca..badba4fc2c 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:02+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:06+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -1883,8 +1883,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Ikkje eit støtta dataformat." @@ -3733,13 +3733,13 @@ msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index eb826b7d17..d87c2de9ec 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:09+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:13+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -2591,8 +2591,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Dozwolone są tylko adresy URL %s przez zwykły protokół HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "To nie jest obsługiwany format danych." @@ -4960,18 +4960,18 @@ msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Podano błędne dane do saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7040,6 +7040,8 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." msgstr "" +"Temat zawiera niebezpieczne rozszerzenie nazwy pliku, co może stanowić " +"zagrożenie." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 8b0f8901b6..44dc05c506 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -12,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:11+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:15+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -551,7 +551,7 @@ msgstr "Ocorreu um problema com a sua sessão. Por favor, tente novamente." #: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" -msgstr "Alcunha ou senha inválidos!" +msgstr "Utilizador ou senha inválidos!" #: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." @@ -752,7 +752,7 @@ msgstr "Anexo não foi encontrado." #: actions/grouplogo.php:86 actions/groupmembers.php:76 #: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." -msgstr "Alcunha não definida." +msgstr "Nome de utilizador não definido." #: actions/avatarbynickname.php:64 msgid "No size." @@ -1502,7 +1502,7 @@ msgstr "Quero publicar notas por correio electrónico." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:219 msgid "Publish a MicroID for my email address." -msgstr "Publicar uma MicroID para o meu endereço electrónico." +msgstr "Publicar um MicroID para o meu endereço electrónico." #. TRANS: Confirmation message for successful e-mail preferences save. #: actions/emailsettings.php:334 @@ -2061,7 +2061,7 @@ msgstr "Enviar-me via Jabber/GTalk respostas de pessoas que não subscrevo." #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:179 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "Publicar uma MicroID para o meu endereço Jabber/GTalk." +msgstr "Publicar um MicroID para o meu endereço Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. #: actions/imsettings.php:287 actions/othersettings.php:180 @@ -2296,7 +2296,7 @@ msgstr "Tem de iniciar uma sessão para se juntar a um grupo." #: actions/joingroup.php:88 actions/leavegroup.php:88 msgid "No nickname or ID." -msgstr "Nenhuma alcunha ou utilizador." +msgstr "Nenhum utilizador ou ID." #: actions/joingroup.php:141 #, php-format @@ -2595,8 +2595,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Só URLs %s sobre HTTP simples, por favor." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Formato de dados não suportado." @@ -3218,7 +3218,7 @@ msgstr "Utilizador ou endereço de correio electrónico" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." msgstr "" -"A sua utilizador neste servidor, ou o seu correio electrónico registado." +"O seu utilizador neste servidor, ou o seu correio electrónico registado." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 msgid "Recover" @@ -3250,7 +3250,7 @@ msgstr "Reiniciar" #: actions/recoverpassword.php:252 msgid "Enter a nickname or email address." -msgstr "Introduza uma utilizador ou um endereço de correio electrónico." +msgstr "Introduza um utilizador ou um endereço de correio electrónico." #: actions/recoverpassword.php:282 msgid "No user with that email address or username." @@ -4965,18 +4965,18 @@ msgid "Problem saving notice." msgstr "Problema na gravação da nota." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "O tipo fornecido ao método saveKnownGroups é incorrecto" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problema na gravação da caixa de entrada do grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -5647,7 +5647,14 @@ msgstr "Utilizador não tem nenhuma última nota." #: lib/command.php:130 #, php-format msgid "Could not find a user with nickname %s." -msgstr "Não foi encontrado um utilizador com a alcunha %s." +msgstr "Não foi encontrado um utilizador com o nome %s." + +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "Não foi encontrado nenhum utilizador local com o nome %s." #. TRANS: Error text shown when an unimplemented command is given. #: lib/command.php:185 @@ -5686,6 +5693,20 @@ msgstr "" msgid "Notice marked as fave." msgstr "Nota marcada como favorita." +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:360 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s juntou-se ao grupo %2$s." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s deixou o grupo %2$s." + #. TRANS: Whois output. %s is the full name of the queried user. #: lib/command.php:434 #, php-format @@ -5775,12 +5796,26 @@ msgstr "Introduza o nome do utilizador para subscrever." msgid "Can't subscribe to OMB profiles by command." msgstr "Não pode subscrever perfis OMB por comando." +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 +#, php-format +msgid "Subscribed to %s." +msgstr "Subscreveu %s." + #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. #. TRANS: Error text shown when no username was provided when issuing the command. #: lib/command.php:694 lib/command.php:804 msgid "Specify the name of the user to unsubscribe from." msgstr "Introduza o nome do utilizador para deixar de subscrever." +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 +#, php-format +msgid "Unsubscribed from %s." +msgstr "Deixou de subscrever %s." + #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. #: lib/command.php:724 lib/command.php:750 @@ -5817,7 +5852,14 @@ msgstr "Comando para iniciar sessão foi desactivado." #: lib/command.php:784 #, php-format msgid "This link is useable only once and is valid for only 2 minutes: %s." -msgstr "" +msgstr "O link é utilizável uma única vez e só é válido durante 2 minutos: %s." + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "Subscrição de %s cancelada." #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. #: lib/command.php:831 @@ -6081,7 +6123,7 @@ msgstr "Localidade do grupo, se aplicável, por ex. \"Cidade, Região, País\"" #, php-format msgid "Extra nicknames for the group, comma- or space- separated, max %d" msgstr "" -"Utilizadors extra para o grupo, separadas por vírgulas ou espaços, máx. %d" +"Nomes adicionais para o grupo, separados por vírgulas ou espaços, máx. %d" #: lib/groupnav.php:85 msgid "Group" @@ -6997,7 +7039,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "O tema contém extensões de ficheiro inseguras; pode não ser seguro." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 35d77d6afc..259149cc01 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:12+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:17+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -2621,8 +2621,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Por favor, somente URLs %s sobre HTTP puro." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Não é um formato de dados suportado." @@ -4993,18 +4993,18 @@ msgid "Problem saving notice." msgstr "Problema no salvamento da mensagem." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "O tipo fornecido ao método saveKnownGroups é incorreto" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problema no salvamento das mensagens recebidas do grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7074,7 +7074,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "O tema contém extensões de arquivo inseguras; pode não ser seguro." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index f5920331c2..f219931c7b 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:14+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:19+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -2610,8 +2610,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Только %s URL в простом HTTP, пожалуйста." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Неподдерживаемый формат данных." @@ -4977,18 +4977,18 @@ msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Для saveKnownGroups указан неверный тип" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7054,7 +7054,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "Тема содержит файлы с опасным расширением; это может быть небезопасно." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/statusnet.pot b/locale/statusnet.pot index 1816b21ab9..549ca5bca6 100644 --- a/locale/statusnet.pot +++ b/locale/statusnet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2471,8 +2471,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "" @@ -4684,18 +4684,18 @@ msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index b8f2aed97c..ceb7de7362 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:15+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:26+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -2584,8 +2584,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Endast %s-webbadresser över vanlig HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Ett dataformat som inte stödjs" @@ -4931,18 +4931,18 @@ msgid "Problem saving notice." msgstr "Problem med att spara notis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 187d962980..1bf80f4310 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:17+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:28+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -2280,8 +2280,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "" @@ -4148,13 +4148,13 @@ msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 1ca9d3ddf0..b1ce8405e6 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:22+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:34+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -3474,13 +3474,13 @@ msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index bc3312e467..de3b519668 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:25+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:39+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -2600,8 +2600,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "URL-адреса %s лише в простому HTTP, будь ласка." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Такий формат даних не підтримується." @@ -4965,18 +4965,18 @@ msgid "Problem saving notice." msgstr "Проблема при збереженні допису." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "Задається невірний тип для saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "Проблема при збереженні вхідних дописів для групи." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -7036,6 +7036,8 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." msgstr "" +"У темі містяться файли, що мають небезпечні розширення; це може виявитися " +"небезпечним." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 32b5eb0c4d..bd15203297 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:27+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:41+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -1799,8 +1799,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "Không hỗ trợ định dạng dữ liệu này." @@ -3512,13 +3512,13 @@ msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 67fa987185..ecf0afc449 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:31+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:46+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -1368,7 +1368,7 @@ msgstr "设置 %%site.name%% 发送的邮件。" #. TRANS: Field label for e-mail address input in e-mail settings form. #: actions/emailsettings.php:106 actions/emailsettings.php:132 msgid "Email address" -msgstr "电子邮件地址" +msgstr "电邮地址" #. TRANS: Form note in e-mail settings form. #: actions/emailsettings.php:112 @@ -2161,7 +2161,7 @@ msgstr "使用这个表单来邀请好友和同事加入。" #: actions/invite.php:187 msgid "Email addresses" -msgstr "电子邮件地址" +msgstr "电邮地址" #: actions/invite.php:189 msgid "Addresses of friends to invite (one per line)" @@ -2539,8 +2539,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "请只用HTTP明文的%sURLs的地址。" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "不支持的数据格式。" @@ -4823,18 +4823,18 @@ msgid "Problem saving notice." msgstr "保存消息时出错。" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "对 saveKnownGroups 提供的类型无效" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "保存小组收件箱时出错。" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -6863,7 +6863,7 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "主题包含不安全的文件扩展名,可能有危险。" #: lib/themeuploader.php:241 #, php-format diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index be1444e94f..8e8217901e 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-09-05 09:45+0000\n" -"PO-Revision-Date: 2010-09-05 09:47:33+0000\n" +"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"PO-Revision-Date: 2010-09-08 22:35:48+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 (r72319); Translate extension (2010-08-20)\n" +"X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -1842,8 +1842,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209 -#: lib/apiaction.php:1237 lib/apiaction.php:1360 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1215 +#: lib/apiaction.php:1243 lib/apiaction.php:1366 msgid "Not a supported data format." msgstr "" @@ -3637,18 +3637,18 @@ msgid "You are banned from posting notices on this site." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:897 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:996 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1757 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" From 2566895d937282e747afa25cce5d7a3d07f87b73 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Thu, 9 Sep 2010 19:44:51 +0200 Subject: [PATCH 93/94] Localisation updates from http://translatewiki.net --- locale/cs/LC_MESSAGES/statusnet.po | 577 +++++++++++++++++++++--- locale/es/LC_MESSAGES/statusnet.po | 51 ++- locale/fa/LC_MESSAGES/statusnet.po | 204 +++++++-- locale/ka/LC_MESSAGES/statusnet.po | 287 +++++++----- locale/statusnet.pot | 2 +- locale/te/LC_MESSAGES/statusnet.po | 45 +- locale/zh_CN/LC_MESSAGES/statusnet.po | 606 +++++++++++++------------- 7 files changed, 1243 insertions(+), 529 deletions(-) diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 218cc0368d..301bd40ce2 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-08 22:33:36+0000\n" +"PO-Revision-Date: 2010-09-09 17:36:23+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -39,7 +39,7 @@ msgstr "Registrace" #. TRANS: Checkbox instructions for admin setting "Private" #: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "Zakázat anonymím (nepřihlášeným) uživatelům prohlížet stránky" +msgstr "Zakázat anonymním (nepřihlášeným) uživatelům prohlížet stránky" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 @@ -6031,7 +6031,7 @@ msgstr "Exportovat data" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "Filtrovat tagy" #: lib/galleryaction.php:131 msgid "All" @@ -6071,10 +6071,35 @@ msgstr "Popište skupinu nebo téma" msgid "Describe the group or topic in %d characters" msgstr "Popište skupinu nebo téma ve %d znacích" +#: lib/groupeditform.php:179 +msgid "" +"Location for the group, if any, like \"City, State (or Region), Country\"" +msgstr "" +"Umístění skupiny, pokud je nějaké, ve stylu \"město, stát (nebo region), země" +"\"" + #: lib/groupeditform.php:187 #, php-format msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgstr "Další přezdívky pro skupinu, oddělené čárkou nebo mezerou, max %d" + +#: lib/groupnav.php:85 +msgid "Group" +msgstr "Skupina" + +#: lib/groupnav.php:101 +msgid "Blocked" +msgstr "Zablokován" + +#: lib/groupnav.php:102 +#, php-format +msgid "%s blocked users" +msgstr "%s blokovaní uživatelé" + +#: lib/groupnav.php:108 +#, php-format +msgid "Edit %s group properties" +msgstr "Editovat vlastnosti skupiny %s" #: lib/groupnav.php:113 msgid "Logo" @@ -6083,21 +6108,25 @@ msgstr "Logo" #: lib/groupnav.php:114 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Přidat nebo upravit logo %s" #: lib/groupnav.php:120 #, php-format msgid "Add or edit %s design" -msgstr "" +msgstr "Přidat nebo upravit vzhled %s" + +#: lib/groupsbymemberssection.php:71 +msgid "Groups with most members" +msgstr "Skupiny s nejvíce členy" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Skupiny s nejvíce příspěvky" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Značky v oznámeních skupiny %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6108,6 +6137,11 @@ msgstr "Tato stránka není k dispozici v typu média která přijímáte." msgid "Unsupported image file format." msgstr "Nepodporovaný formát obrázku." +#: lib/imagefile.php:88 +#, php-format +msgid "That file is too big. The maximum file size is %s." +msgstr "Ten soubor je příliš velký. Maximální velikost souboru je %s." + #: lib/imagefile.php:93 msgid "Partial upload." msgstr "Částečné náhrání." @@ -6120,30 +6154,47 @@ 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:122 +msgid "Lost our file." +msgstr "Ztratili jsme náš soubor." + #: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" -msgstr "" +msgstr "Neznámý typ souboru" #: lib/imagefile.php:244 msgid "MB" -msgstr "" +msgstr "MB" #: lib/imagefile.php:246 msgid "kB" -msgstr "" +msgstr "kB" #: lib/jabber.php:387 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" + +#: lib/jabber.php:567 +#, php-format +msgid "Unknown inbox source %d." +msgstr "Neznámý zdroj inboxu %d." #: lib/joinform.php:114 msgid "Join" -msgstr "Přidat se" +msgstr "Připojit se" + +#: lib/leaveform.php:114 +msgid "Leave" +msgstr "Opustit" + +#: lib/logingroupnav.php:80 +msgid "Login with a username and password" +msgstr "Přihlásit se pomocí svého uživatelského jména a hesla." #: lib/logingroupnav.php:86 msgid "Sign up for a new account" -msgstr "" +msgstr "Vytvořit nový účet" #. TRANS: Subject for address confirmation email #: lib/mail.php:174 @@ -6167,12 +6218,26 @@ msgid "" "Thanks for your time, \n" "%s\n" msgstr "" +"Ahoj,% s. \n" +"\n" +" Někdo právě vložil tuto e-mailovou adresu na %s. \n" +"\n" +" Pokud jsi to byl ty, a chceš potvrdit své zadání, použij níže uvedenou " +"adresu:\n" +"\n" +" %s\n" +"\n" +" Pokud ne, tak tuto zprávu ignoruj. \n" +"\n" +" Díky za tvůj čas, \n" +" %s\n" +" " #. TRANS: Subject of new-subscriber notification e-mail #: lib/mail.php:243 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1 od teď naslouchá tvým sdělením v %2" +msgstr "%1$s od teď naslouchá tvým sdělením na %2$s." #: lib/mail.php:248 #, php-format @@ -6180,6 +6245,8 @@ msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" +"Pokud si myslíte, že tento účet je zneužíván, můžete ho zablokovat ze svého " +"seznamu přihlášených a reportovat jako spam adminům na %s" #. TRANS: Main body of new-subscriber notification e-mail #: lib/mail.php:254 @@ -6196,6 +6263,28 @@ msgid "" "----\n" "Change your email address or notification options at %8$s\n" msgstr "" +"%1$s nyní naslouchá vasim oznámením na %2$s.\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Váš,\n" +"%7$s.\n" +"\n" +"----\n" +"Zmeňte vaší e-mailovouadresu nebo nastavení upozornění na %8$s\n" + +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/mail.php:274 +#, php-format +msgid "Bio: %s" +msgstr "O: %s" + +#. TRANS: Subject of notification mail for new posting email address +#: lib/mail.php:304 +#, php-format +msgid "New email address for posting to %s" +msgstr "Nová e-mailová adresa pro psaní na %s" #. TRANS: Body of notification mail for new posting email address #: lib/mail.php:308 @@ -6210,12 +6299,37 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"Máte novou posílací aadresu na %1$s.\n" +"\n" +"K poslání nového oznámení pošlete e-mail na %2$s.\n" +"\n" +"Instrukce naleznete na %3$s.\n" +"\n" +"Váš,\n" +"%4$s" + +#. TRANS: Subject line for SMS-by-email notification messages +#: lib/mail.php:433 +#, php-format +msgid "%s status" +msgstr "status %s" + +#. TRANS: Subject line for SMS-by-email address confirmation message +#: lib/mail.php:460 +msgid "SMS confirmation" +msgstr "SMS potvrzení" + +#. TRANS: Main body heading for SMS-by-email address confirmation message +#: lib/mail.php:463 +#, php-format +msgid "%s: confirm you own this phone number with this code:" +msgstr "%s: potvrďte že vlastníte toto telefonní číslo tímto kódem:" #. TRANS: Subject for 'nudge' notification email #: lib/mail.php:484 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "%s Vás pošťouchl" #. TRANS: Body for 'nudge' notification email #: lib/mail.php:489 @@ -6233,6 +6347,23 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s (%2$s) by zajímalo, co poslední dobou děláte a poštouchl vás, abyste " +"poslali nějaké novinky.\n" +"\n" +"Takže šup na stránky a něco pošlete :)\n" +"\n" +"%3$s\n" +"\n" +"Neodpovídejte na tento e-mail, nedostane se k nim.\n" +"\n" +"S pozdravem,\n" +"%4$s\n" + +#. TRANS: Subject for direct-message notification email +#: lib/mail.php:536 +#, php-format +msgid "New private message from %s" +msgstr "Nová soukromá zpráva od %s" #. TRANS: Body for direct-message notification email #: lib/mail.php:541 @@ -6253,6 +6384,26 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) vám poslal soukromou zprávu: \n" +"\n" +" -------------------------------------------------- ---- \n" +"%3$s \n" +" -------------------------------------------------- ---- \n" +"\n" +" Můžete odpovědět zde: \n" +"\n" +" %4$s \n" +"\n" +" Neodpovídejte na tento e-mail, nedostane se k nim. \n" +"\n" +" S pozdravem \n" +" %5$s \n" + +#. TRANS: Subject for favorite notification email +#: lib/mail.php:589 +#, php-format +msgid "%s (@%s) added your notice as a favorite" +msgstr "%s (@%s) přidal vaše oznámení jako oblíbené" #. TRANS: Body for favorite notification email #: lib/mail.php:592 @@ -6275,6 +6426,23 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) právě přidal vaše oznámení z %2$s jako jedno ze svých " +"oblíbených. \n" +"\n" +" URL Vašeho oznámení je: \n" +"\n" +" %3$s \n" +"\n" +" Text Vašeho oznámení je: \n" +"\n" +" %4$s \n" +"\n" +" Můžete vidět seznam %1$S oblíbených zde: \n" +"\n" +" %5$s \n" +"\n" +" Váš, \n" +" %6$s \n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. #: lib/mail.php:651 @@ -6284,11 +6452,14 @@ msgid "" "\n" "\t%s" msgstr "" +"Celý rozhovor si můžete přečíst zde: \n" +"\n" +" %s" #: lib/mail.php:657 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgstr "%s (@%s) poslal oznámení žádající o vaši pozornost" #. TRANS: Body of @-reply notification e-mail. #: lib/mail.php:660 @@ -6317,119 +6488,237 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" +"%1$s (@%9$s) právě poslal oznámení žádající o vaši pozornost ('@-odpověď') " +"na %2$s.\n" +"\n" +"Oznámení je zde:\n" +"\n" +"%3$s\n" +"\n" +"Stojí v něm:\n" +"\n" +"%4$s\n" +"\n" +"%5$smůžete odpověďet zde:\n" +"\n" +"%6$s\n" +"\n" +"Seznam všech @-odpovědí pro vás je zde:\n" +"\n" +"%7$s\n" +"\n" +"Váš,\n" +"%2$s\n" +"\n" +"P.S. Tato upozornění můžete vypnout zde: %8$s\n" + +#: lib/mailbox.php:89 +msgid "Only the user can read their own mailboxes." +msgstr "Pouze uživatel může přečíst své vlastní schránky." #: 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 "" +"Nemáte žádné soukromé zprávy. Můžete poslat soukromou zprávu, aby se " +"zapojili ostatní uživatelé v rozhovoru. Lidé mohou posílat zprávy jen pro " +"vaše oči." #: lib/mailbox.php:228 lib/noticelist.php:506 msgid "from" -msgstr "" +msgstr "od" + +#: lib/mailhandler.php:37 +msgid "Could not parse message." +msgstr "Nelze zpracovat zprávu." #: lib/mailhandler.php:42 msgid "Not a registered user." msgstr "Není registrovaný uživatel." +#: lib/mailhandler.php:46 +msgid "Sorry, that is not your incoming email address." +msgstr "Je nám líto, toto není vaše příchozí e-mailová adresa." + +#: lib/mailhandler.php:50 +msgid "Sorry, no incoming email allowed." +msgstr "Je nám líto, žádný příchozí e-mail není dovolen." + +#: lib/mailhandler.php:228 +#, php-format +msgid "Unsupported message type: %s" +msgstr "Nepodporovaný typ zprávy: %s" + #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." -msgstr "" +msgstr "Nastala chyba v databázi při ukládání souboru. Prosím zkuste to znovu." #: lib/mediafile.php:142 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"Velkost uploadovaného souboru překračuje upload_max_filesize limit v php.ini." #: lib/mediafile.php:147 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" +"Velkost uploadovaného souboru překračuje MAX_FILE_SIZE limit, které bylo " +"uvedeno v HTML formuláři." #: lib/mediafile.php:152 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "Nahrávaný soubor byl nahrán pouze částečně." + +#: lib/mediafile.php:159 +msgid "Missing a temporary folder." +msgstr "Chybí dočasný adresář." #: lib/mediafile.php:162 msgid "Failed to write file to disk." -msgstr "" +msgstr "Nepodařilo se zapsat soubor na disk." #: lib/mediafile.php:165 msgid "File upload stopped by extension." -msgstr "" +msgstr "Nahrávání souboru zastaveno rozšířením PHP." #: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." -msgstr "" +msgstr "Soubor překračuje kvótu uživatele." #: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "Soubor nemohl být přesunut do cílového adresáře." #: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." -msgstr "Nelze smazat oblíbenou položku." +msgstr "Nelze určit typ MIME souboru." #: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." -msgstr "" +msgstr "Zkuste použít jiný formát %s." #: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." -msgstr "" +msgstr "%s není typ souboru podporovan na tomto serveru." + +#: lib/messageform.php:120 +msgid "Send a direct notice" +msgstr "Pošlete přímou zprávu" #: lib/messageform.php:146 msgid "To" -msgstr "" +msgstr "Komu:" + +#: lib/messageform.php:159 lib/noticeform.php:186 +msgid "Available characters" +msgstr "Zbývá znaků" + +#: lib/messageform.php:178 lib/noticeform.php:237 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Odeslat" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "Poslat oznámení" #: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "Co se děje %s?" +msgstr "Co se děje, %s?" + +#: lib/noticeform.php:193 +msgid "Attach" +msgstr "Připojit" #: lib/noticeform.php:197 msgid "Attach a file" -msgstr "" +msgstr "Přiložit soubor" #: lib/noticeform.php:213 msgid "Share my location" -msgstr "" +msgstr "Sdílet mé umístění" + +#: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "Nesdílet moje umístění" #: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"Je nám líto, načítání vaší geo lokace trvá déle, než se očekávalo, zkuste to " +"prosím znovu později" + +#. TRANS: Used in coordinates as abbreviation of north +#: lib/noticelist.php:436 +msgid "N" +msgstr "S" #. TRANS: Used in coordinates as abbreviation of south #: lib/noticelist.php:438 msgid "S" -msgstr "" +msgstr "J" #. TRANS: Used in coordinates as abbreviation of east #: lib/noticelist.php:440 msgid "E" -msgstr "" +msgstr "V" #. TRANS: Used in coordinates as abbreviation of west #: lib/noticelist.php:442 msgid "W" -msgstr "" +msgstr "Z" #: lib/noticelist.php:444 #, 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:453 +msgid "at" +msgstr "v" #: lib/noticelist.php:502 msgid "web" -msgstr "" +msgstr "web" + +#: lib/noticelist.php:568 +msgid "in context" +msgstr "v kontextu" + +#: lib/noticelist.php:603 +msgid "Repeated by" +msgstr "Opakováno" + +#: lib/noticelist.php:630 +msgid "Reply to this notice" +msgstr "Odpovědět na toto oznámení" #: lib/noticelist.php:631 msgid "Reply" -msgstr "Odpovědi" +msgstr "Odpovědět" + +#: lib/noticelist.php:675 +msgid "Notice repeated" +msgstr "Sdělení opakováno" + +#: lib/nudgeform.php:116 +msgid "Nudge this user" +msgstr "Pošťuchovat tohoto uživatele" + +#: lib/nudgeform.php:128 +msgid "Nudge" +msgstr "Pošťouchnout" + +#: lib/nudgeform.php:128 +msgid "Send a nudge to this user" +msgstr "Poslat pošťouchnutí tomuto uživateli" #: lib/oauthstore.php:283 msgid "Error inserting new profile" @@ -6437,7 +6726,7 @@ msgstr "Chyba při vkládání nového profilu" #: lib/oauthstore.php:291 msgid "Error inserting avatar" -msgstr "Chyba při kládání obrázku" +msgstr "Chyba při vkládání avataru" #: lib/oauthstore.php:306 msgid "Error updating remote profile" @@ -6469,12 +6758,28 @@ msgstr "Oblíbené" #: lib/personalgroupnav.php:125 msgid "Inbox" -msgstr "" +msgstr "Doručená pošta" + +#: lib/personalgroupnav.php:126 +msgid "Your incoming messages" +msgstr "Vaše příchozí zprávy" + +#: lib/personalgroupnav.php:130 +msgid "Outbox" +msgstr "Odeslaná pošta" + +#: lib/personalgroupnav.php:131 +msgid "Your sent messages" +msgstr "Vaše odeslané zprávy" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Značky v oznámeních %s" + +#: lib/plugin.php:115 +msgid "Unknown" +msgstr "Neznámé" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -6492,6 +6797,10 @@ msgstr "Odběratelé" msgid "All subscribers" msgstr "Všichni odběratelé" +#: lib/profileaction.php:191 +msgid "User ID" +msgstr "ID uživatele" + #: lib/profileaction.php:196 msgid "Member since" msgstr "Členem od" @@ -6499,113 +6808,227 @@ msgstr "Členem od" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "" +msgstr "Denní průměr" + +#: lib/profileaction.php:264 +msgid "All groups" +msgstr "Všechny skupiny" #: lib/profileformaction.php:123 msgid "Unimplemented method." -msgstr "" +msgstr "Neimplementovaná metoda." #: lib/publicgroupnav.php:78 msgid "Public" msgstr "Veřejné" +#: lib/publicgroupnav.php:82 +msgid "User groups" +msgstr "Skupin uživatel" + #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "" +msgstr "Nedávné značky" + +#: lib/publicgroupnav.php:88 +msgid "Featured" +msgstr "Doporučení" + +#: lib/publicgroupnav.php:92 +msgid "Popular" +msgstr "Populární" + +#: lib/redirectingaction.php:95 +msgid "No return-to arguments." +msgstr "Chybí argument return-to." + +#: lib/repeatform.php:107 +msgid "Repeat this notice?" +msgstr "Opakovat toto oznámení?" #: lib/repeatform.php:132 msgid "Yes" msgstr "Ano" +#: lib/repeatform.php:132 +msgid "Repeat this notice" +msgstr "Opakovat toto oznámení" + +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Odebrat uživateli roli \"%s\"" + #: lib/router.php:709 msgid "No single user defined for single-user mode." -msgstr "" +msgstr "Nenastaven uživatel pro jednouživatelský mód" #: lib/sandboxform.php:67 msgid "Sandbox" -msgstr "" +msgstr "Sandbox" #: lib/sandboxform.php:78 msgid "Sandbox this user" -msgstr "Zablokovat tohoto uživatele" +msgstr "Sandboxovat tohoto uživatele" + +#: lib/searchaction.php:120 +msgid "Search site" +msgstr "Prohledat stránky" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "Klíčová slova" #: lib/searchaction.php:127 msgid "Search" msgstr "Hledat" +#: lib/searchaction.php:162 +msgid "Search help" +msgstr "Nápověda k hledání" + +#: lib/searchgroupnav.php:80 +msgid "People" +msgstr "Lidé" + #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "Najít lidi na této stránce" + +#: lib/searchgroupnav.php:83 +msgid "Find content of notices" +msgstr "Najít v obsahu oznámení" + +#: lib/searchgroupnav.php:85 +msgid "Find groups on this site" +msgstr "Najít skupiny na této stránce" + +#: lib/section.php:89 +msgid "Untitled section" +msgstr "Oddíl bez názvu" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "Další…" + +#: lib/silenceform.php:67 +msgid "Silence" +msgstr "Uťišit" #: lib/silenceform.php:78 msgid "Silence this user" -msgstr "Odstranit tohoto uživatele" +msgstr "Utišit tohoto uživatele" + +#: lib/subgroupnav.php:83 +#, php-format +msgid "People %s subscribes to" +msgstr "Lidé ke kterým je %s přihlášen" + +#: lib/subgroupnav.php:91 +#, php-format +msgid "People subscribed to %s" +msgstr "Lidé přihlášení k %s" + +#: lib/subgroupnav.php:99 +#, php-format +msgid "Groups %s is a member of" +msgstr "Skupiny kterých je %s členem" + +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Pozvat" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Pozvěte přátele a kolegy, aby se k vám připojili na %s" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" -msgstr "" +msgstr "Mrak štítků kterými se uživatelé sami označili" #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "" +msgstr "Mrak štítků kterými jsou uživatelé označeni" + +#: lib/tagcloudsection.php:56 +msgid "None" +msgstr "Nic" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "Tento server nemůže zpracovat nahrání tématu bez podpory ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." -msgstr "" +msgstr "Chybí soubor tématu nebo se nepodařilo nahrání." + +#: lib/themeuploader.php:91 lib/themeuploader.php:102 +#: lib/themeuploader.php:278 lib/themeuploader.php:282 +#: lib/themeuploader.php:290 lib/themeuploader.php:297 +msgid "Failed saving theme." +msgstr "Chyba při ukládání tématu." #: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Neplatné téma: špatná adresářová struktura." #: lib/themeuploader.php:166 #, php-format msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." msgstr "" +"Nahrané téma je příliš velké, nezkomprimované musí být menší než %d bajtů." #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Neplatný archiv tématu: chybí soubor css/display.css" #: lib/themeuploader.php:218 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"Téma obsahuje neplatné jméno souboru nebo složky. Zůstaňte u písmen ASCII, " +"číslic, podtržítka a mínusu." #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." -msgstr "" +msgstr "Téma obsahuje nebezpečné přípony souborů, může být nebezpečné." #: lib/themeuploader.php:241 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "Téma obsahuje soubor typu '.%s', což není povoleno." + +#: lib/themeuploader.php:259 +msgid "Error opening theme archive." +msgstr "Chyba při otevírání archivu tématu." #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Nejlepší pisálci" + +#: lib/unsandboxform.php:69 +msgid "Unsandbox" +msgstr "Odsandboxovat" #: lib/unsandboxform.php:80 msgid "Unsandbox this user" -msgstr "Zablokovat tohoto uživatele" +msgstr "Odsandboxovat tohoto uživatele" + +#: lib/unsilenceform.php:67 +msgid "Unsilence" +msgstr "Zrušit utišení" #: lib/unsilenceform.php:78 msgid "Unsilence this user" -msgstr "Odstranit tohoto uživatele" +msgstr "Zrušit utišení tohoto uživatele" + +#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +msgid "Unsubscribe from this user" +msgstr "Odhlásit se od tohoto uživatele" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" @@ -6621,11 +7044,19 @@ msgstr "Akce uživatele" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Probíhá mazání uživatele..." + +#: lib/userprofile.php:263 +msgid "Edit profile settings" +msgstr "Upravit nastavení profilu" #: lib/userprofile.php:264 msgid "Edit" -msgstr "" +msgstr "Editovat" + +#: lib/userprofile.php:287 +msgid "Send a direct message to this user" +msgstr "Odeslat přímou zprávu tomuto uživateli" #: lib/userprofile.php:288 msgid "Message" @@ -6633,12 +7064,21 @@ msgstr "Zpráva" #: lib/userprofile.php:326 msgid "Moderate" -msgstr "" +msgstr "Moderovat" + +#: lib/userprofile.php:364 +msgid "User role" +msgstr "Role uživatele" + +#: lib/userprofile.php:366 +msgctxt "role" +msgid "Administrator" +msgstr "Administrátor" #: lib/userprofile.php:367 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "Moderátor" #. TRANS: Used in notices to indicate when the notice was made compared to now. #: lib/util.php:1102 @@ -6694,7 +7134,12 @@ msgstr "asi před %d mesíci" msgid "about a year ago" msgstr "asi před rokem" +#: lib/webcolor.php:82 +#, php-format +msgid "%s is not a valid color!" +msgstr "%s není platná barva!" + #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "" +msgstr "%s není platná barva! Použijte 3 nebo 6 hex znaků." diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 72f1e94c2c..a2d80329e3 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-08 22:33:59+0000\n" +"PO-Revision-Date: 2010-09-09 17:36:47+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -5661,6 +5661,12 @@ msgstr "Comando falló" msgid "Notice with that id does not exist." msgstr "Ningún aviso con ese ID existe." +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:101 lib/command.php:630 +msgid "User has no last notice." +msgstr "El/La usuario/a no tiene ningún último aviso" + #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. #: lib/command.php:130 @@ -5668,6 +5674,14 @@ msgstr "Ningún aviso con ese ID existe." msgid "Could not find a user with nickname %s." msgstr "No se pudo encontrar el usuario con el apodo %s." +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" +"No se pudo encontrar a ningún usuario local con el nombre de usuario %s." + #. TRANS: Error text shown when an unimplemented command is given. #: lib/command.php:185 msgid "Sorry, this command is not yet implemented." @@ -5808,6 +5822,26 @@ msgstr "Especificar el nombre del usuario al cual se quiere suscribir." msgid "Can't subscribe to OMB profiles by command." msgstr "No te puedes suscribir a perfiles de OMB por orden." +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 +#, php-format +msgid "Subscribed to %s." +msgstr "Suscrito a %s." + +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:694 lib/command.php:804 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Especifica el nombre del usuario del cual cancelar la suscripción." + +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 +#, php-format +msgid "Unsubscribed from %s." +msgstr "Cancelada la suscripción a %s." + #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. #: lib/command.php:724 lib/command.php:750 @@ -5837,7 +5871,7 @@ msgstr "No se puede activar notificación." #. TRANS: Error text shown when issuing the login command while login is disabled. #: lib/command.php:771 msgid "Login command is disabled." -msgstr "" +msgstr "El comando de inicio de sesión está inhabilitado." #. TRANS: Text shown after issuing the login command successfully. #. TRANS: %s is a logon link.. @@ -5845,6 +5879,15 @@ msgstr "" #, php-format msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" +"Este enlace es utilizable sólo una vez y es válido sólo durante dos minutos: " +"%s." + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "Cancelada la suscripción a %s." #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. #: lib/command.php:831 @@ -6718,7 +6761,7 @@ msgstr "en" #: lib/noticelist.php:502 msgid "web" -msgstr "" +msgstr "red" #: lib/noticelist.php:568 msgid "in context" @@ -7028,6 +7071,8 @@ msgstr "" #: lib/themeuploader.php:224 msgid "Theme contains unsafe file extension names; may be unsafe." msgstr "" +"El tema contiene nombres de extensiones de archivo inseguras y puede ser " +"peligroso." #: lib/themeuploader.php:241 #, php-format diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 797fc8c251..5585a34634 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-08 22:34:08+0000\n" +"POT-Creation-Date: 2010-09-09 17:35+0000\n" +"PO-Revision-Date: 2010-09-09 17:36:54+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -442,6 +442,11 @@ msgstr "نام مکان خیلی طولانی است (حداکثر ۲۵۵ نوی msgid "Too many aliases! Maximum %d." msgstr "نام‌های مستعار بسیار زیاد هستند! حداکثر %d." +#: actions/apigroupcreate.php:267 +#, php-format +msgid "Invalid alias: \"%s\"." +msgstr "نام مستعار نامعتبر است: «%s»." + #: actions/apigroupcreate.php:276 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format @@ -506,6 +511,10 @@ msgstr "%s گروه" msgid "groups on %s" msgstr "گروه‌ها در %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "بارگذاری شکست خورد." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "هیچ پارامتر oauth_token آماده نشده است." @@ -530,7 +539,7 @@ msgstr "رمز نامعتبر است." #: 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 "مشکلی در دریافت نشست شما وجود دارد. لطفا بعدا سعی کنید." #: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" @@ -745,7 +754,7 @@ msgstr "بدون اندازه." #: actions/avatarbynickname.php:69 msgid "Invalid size." -msgstr "اندازه‌ی نادرست" +msgstr "اندازه نادرست است." #. TRANS: Link description in user account settings menu. #: actions/avatarsettings.php:67 actions/showgroup.php:230 @@ -799,7 +808,8 @@ msgstr "هیچ پرونده‌ای بارگذاری نشد." #: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" -msgstr "یک مربع از عکس خود را انتخاب کنید تا چهره‌ی شما باشد." +msgstr "" +"یک مربع از عکس خود را انتخاب کنید تا به عنوان تصویر چهرهٔ شما انتخاب شود." #: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." @@ -1134,9 +1144,15 @@ msgstr "پوستهٔ وب‌گاه" msgid "Theme for the site." msgstr "پوسته برای وب‌گاه" +#: actions/designadminpanel.php:467 +msgid "Custom theme" +msgstr "پوستهٔ اختصاصی" + #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" +"شما می‌توانید یک پوستهٔ اختصاصی StatusNet را به‌عنوان یک آرشیو .ZIP بارگذاری " +"کنید." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1196,11 +1212,11 @@ msgstr "پیوندها" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "پیشرفته" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "CSS اختصاصی" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -1637,7 +1653,7 @@ msgstr "کاربران ویژه" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "کاربران ویژه، صفحه‌ی %d" +msgstr "کاربران ویژه، صفحهٔ %d" #: actions/featured.php:99 #, php-format @@ -1682,11 +1698,11 @@ msgstr "شما شناسایی نشده اید." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." -msgstr "نمی‌توان نشانه‌ی درخواست شما را به نشانه‌ی دسترسی تبدیل کرد." +msgstr "نمی‌توان نشانهٔ درخواست شما را به نشانهٔ دسترسی تبدیل کرد." #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." -msgstr "خدمات مورد نظر از نسخه‌ی نا مفهومی از قرارداد OMB استفاده می‌کند." +msgstr "خدمات مورد نظر از نسخهٔ نامفهومی از قرارداد OMB استفاده می‌کند." #: actions/finishremotesubscribe.php:138 msgid "Error updating remote profile." @@ -1813,7 +1829,7 @@ msgstr "شما می‌توانید یک نشان برای گروه خود با #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "یک ناحیه‌ی مربع از تصویر را انتخاب کنید تا به عنوان نشان باشد." +msgstr "یک ناحیه‌ی مربع از تصویر را انتخاب کنید تا به عنوان نشان انتخاب شود." #: actions/grouplogo.php:399 msgid "Logo updated." @@ -1864,7 +1880,7 @@ msgstr "این کاربر یک مدیر شود" #: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 #, php-format msgid "%s timeline" -msgstr "خط زمانی %s" +msgstr "خط‌زمانی %s" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -2026,7 +2042,7 @@ msgstr "پاسخ کسانی که من آن‌ها را دنبال نمی‌کن #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:179 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "یک شناسه‌ی کوچک برای Jabber/Gtalk من منتشر کن." +msgstr "یک شناسهٔ کوچک برای Jabber/Gtalk من منتشر کن." #. TRANS: Confirmation message for successful IM preferences save. #: actions/imsettings.php:287 actions/othersettings.php:180 @@ -2041,12 +2057,12 @@ msgstr "هیچ شناسهٔ Jabber ای وجود ندارد." #. TRANS: Message given saving IM address that cannot be normalised. #: actions/imsettings.php:317 msgid "Cannot normalize that Jabber ID" -msgstr "نمی‌توان شناسه‌ی Jabber را تایید کرد" +msgstr "نمی‌توان شناسهٔ Jabber را تایید کرد" #. TRANS: Message given saving IM address that not valid. #: actions/imsettings.php:322 msgid "Not a valid Jabber ID" -msgstr "شناسه‌ی Jabber درست نیست" +msgstr "شناسهٔ Jabber درست نیست" #. TRANS: Message given saving IM address that is already set. #: actions/imsettings.php:326 @@ -2088,7 +2104,7 @@ msgstr "تایید پیام‌رسان فوری لغو شد." #. TRANS: registered for the active user. #: actions/imsettings.php:424 msgid "That is not your Jabber ID." -msgstr "این شناسه‌ی Jabber شما نیست." +msgstr "این شناسهٔ Jabber شما نیست." #. TRANS: Message given after successfully removing a registered IM address. #: actions/imsettings.php:447 @@ -2480,6 +2496,8 @@ msgstr "پیام‌هایی که با جست‌و‌جوی عبارت »%1$s« msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" +"این کاربر اجازهٔ یادآوری‌کردن را نداده است یا پست‌الکترونیک خود را تایید یا " +"تعیین نکرده است." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2585,7 +2603,7 @@ msgstr "کوتاه‌کردن نشانی‌های اینترنتی با" #: actions/othersettings.php:117 msgid "Automatic shortening service to use." -msgstr "کوتاه‌کننده‌ی نشانی مورد استفاده." +msgstr "کوتاه‌کنندهٔ نشانی مورد استفاده." #: actions/othersettings.php:122 msgid "View profile designs" @@ -2597,7 +2615,7 @@ msgstr "نمایش دادن یا پنهان کردن طراحی‌های نما #: actions/othersettings.php:153 msgid "URL shortening service is too long (max 50 chars)." -msgstr "کوتاه کننده‌ی نشانی بسیار طولانی است (بیش‌تر از ۵۰ حرف)." +msgstr "کوتاه کنندهٔ نشانی بسیار طولانی است (بیش‌تر از ۵۰ حرف)." #: actions/otp.php:69 msgid "No user ID specified." @@ -2708,22 +2726,22 @@ msgstr "تنظیمات و نشانی محلی این وب‌گاه StatusNet." #: actions/pathsadminpanel.php:157 #, php-format msgid "Theme directory not readable: %s." -msgstr "شاخه‌ی پوسته‌ها قابل خواندن نیست: %s." +msgstr "شاخهٔ پوسته‌ها قابل خواندن نیست: %s." #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." -msgstr "شاخه‌ی تصویر چهره‌ها قابل نوشتن نیست: %s." +msgstr "شاخهٔ تصویر چهره‌ها قابل نوشتن نیست: %s." #: actions/pathsadminpanel.php:169 #, php-format msgid "Background directory not writable: %s." -msgstr "شاخه‌ی پس زمینه‌ها قابل نوشتن نیست: %s." +msgstr "شاخهٔ پس زمینه‌ها قابل نوشتن نیست: %s." #: actions/pathsadminpanel.php:177 #, php-format msgid "Locales directory not readable: %s." -msgstr "پوشه‌ی تنظیمات محلی قابل خواندن نیست: %s." +msgstr "پوشهٔ تنظیمات محلی قابل خواندن نیست: %s." #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." @@ -2813,6 +2831,10 @@ msgstr "مسیر تصاویر پیش‌زمینه" msgid "Background directory" msgstr "شاخهٔ تصاویر پیش‌زمینه" +#: actions/pathsadminpanel.php:320 +msgid "SSL" +msgstr "SSL" + #: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "هیچ وقت" @@ -2932,6 +2954,10 @@ msgstr "شرح‌حال" msgid "Location" msgstr "موقعیت" +#: actions/profilesettings.php:134 actions/register.php:480 +msgid "Where you are, like \"City, State (or Region), Country\"" +msgstr "مکانی که شما در آن هستید، مانند «شهر، ایالت (یا استان)، کشور»" + #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" msgstr "مکان کنونی من هنگام فرستادن پیام‌ها به اشتراک گذاشته شود" @@ -2977,7 +3003,7 @@ msgstr "شرح‌حال خیلی طولانی است (بیشینه %d نویسه #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." -msgstr "منطقه‌ی زمانی انتخاب نشده است." +msgstr "منطقهٔ زمانی انتخاب نشده است." #: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." @@ -3021,11 +3047,11 @@ 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" -msgstr "خط زمانی عمومی" +msgstr "خط‌زمانی عمومی" #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" @@ -3256,7 +3282,7 @@ msgstr "ثبت نام" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "اجازه‌ی ثبت نام داده نشده است." +msgstr "اجازهٔ ثبت‌نام داده نشده است." #: actions/register.php:205 msgid "You can't register if you don't agree to the license." @@ -3523,6 +3549,10 @@ msgstr "شما نمی‌توانید نقش‌های کاربری را در ای msgid "User doesn't have this role." msgstr "کاربر این نقش را ندارد." +#: actions/rsd.php:146 actions/version.php:159 +msgid "StatusNet" +msgstr "StatusNet" + #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 #: lib/adminpanelaction.php:392 @@ -3667,6 +3697,15 @@ msgstr "" "که دوست دارید کلیک کنید تا آن‌ها را برای بعد چوب‌الفها کنید یا یک نشانه روی " "آن‌ها بگذارید." +#: actions/showfavorites.php:208 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" +msgstr "" +"%s تاکنون هیچ پیامی را به برگزیده‌هایش اضافه نکرده است. چیز جالبی بفرستید که " +"ممکن است به برگزیده‌هایشان اضافه کنند :)" + #: actions/showfavorites.php:212 #, php-format msgid "" @@ -3914,6 +3953,11 @@ msgstr "نام وب‌گاه باید طولی غیر صفر داشته باشد msgid "You must have a valid contact email address." msgstr "شما باید یک نشانی پست الکترونیکی معتبر برای ارتباط داشته باشید." +#: actions/siteadminpanel.php:159 +#, php-format +msgid "Unknown language \"%s\"." +msgstr "زبان «%s» ناشناس است." + #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." msgstr "کمینهٔ محدودیت متن ۰ است (نامحدود)." @@ -4334,6 +4378,10 @@ msgstr "" msgid "%s is not listening to anyone." msgstr "%s هیچ‌کس را دنبال نمی‌کند." +#: actions/subscriptions.php:208 +msgid "Jabber" +msgstr "Jabber" + #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 msgid "SMS" msgstr "پیامک" @@ -4616,6 +4664,11 @@ msgstr "" msgid "Updates from %1$s on %2$s!" msgstr "به روز رسانی‌های %1$s در %2$s" +#: actions/version.php:75 +#, php-format +msgid "StatusNet %s" +msgstr "StatusNet %s" + #: actions/version.php:155 #, php-format msgid "" @@ -4710,6 +4763,11 @@ msgstr "" "یک پرونده با این حجم زیاد می‌تواند از سهمیهٔ کاربری ماهانهٔ شما از %d بایت " "بگذرد." +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "نام‌پرونده نادرست است." + #. TRANS: Exception thrown when joining a group fails. #: classes/Group_member.php:42 msgid "Group join failed." @@ -4740,7 +4798,7 @@ msgstr "نمی‌توان رمز ورود را برای %s ایجاد کرد" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "هیچ پایگاه‌داده یا DSN هیچ‌جا پیدا نشد." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. #: classes/Message.php:46 @@ -4757,7 +4815,7 @@ msgstr "پیغام نمی تواند درج گردد" #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "چنین نمایه‌ای (%1$d) برای پیام (%2$d) وجود ندارد." #. TRANS: Server exception. %s are the error details. #: classes/Notice.php:193 @@ -4825,7 +4883,7 @@ msgstr "RT @%1$s %2$s" #: classes/Profile.php:737 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "نمی‌توان نقش «%1$s» را از کاربر #%2$d گرفت، وجود ندارد." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). @@ -4833,6 +4891,12 @@ msgstr "" #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" +"نمی‌توان نقش «%1$s» را از کاربر #%2$d گرفت، خطا در پایگاه داده وجود دارد." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "نمایه وجود ندارد." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. #: classes/Subscription.php:75 lib/oauthstore.php:465 @@ -5396,7 +5460,7 @@ msgstr "تنها خواندنی" #: lib/applicationlist.php:144 #, php-format msgid "Approved %1$s - \"%2$s\" access." -msgstr "" +msgstr "تایید شده %1$s - با دسترسی «%2$s»" #. TRANS: Button label #: lib/applicationlist.php:159 @@ -5447,6 +5511,25 @@ msgstr "دستور انجام شد" msgid "Command failed" msgstr "فرمان شکست خورد" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:84 lib/command.php:108 +msgid "Notice with that id does not exist." +msgstr "پیامی با آن شناسه وجود ندارد." + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:130 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "نمی‌توان یک کاربر را با نام مستعار %s پیدا کرد." + +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "نمی‌توان یک کاربر را با نام مستعار %s پیدا کرد." + #. TRANS: Error text shown when an unimplemented command is given. #: lib/command.php:185 msgid "Sorry, this command is not yet implemented." @@ -5457,6 +5540,13 @@ msgstr "متاسفانه این دستور هنوز پیاده نشده است." msgid "It does not make a lot of sense to nudge yourself!" msgstr "خیلی جالب نیست که به خودتان یادآوری کنید!" +#. TRANS: Message given having nudged another user. +#. TRANS: %s is the nickname of the user that was nudged. +#: lib/command.php:240 +#, php-format +msgid "Nudge sent to %s." +msgstr "یادآوری به %s فرستاده شد." + #. TRANS: User statistics text. #. TRANS: %1$s is the number of other user the user is subscribed to. #. TRANS: %2$s is the number of users that are subscribed to the user. @@ -5477,6 +5567,20 @@ msgstr "" msgid "Notice marked as fave." msgstr "پیام به‌عنوان برگزیده مشخص شد." +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:360 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s به گروه %2$s پیوست." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s گروه %2$s را ترک کرد." + #. TRANS: Whois output. %s is the full name of the queried user. #: lib/command.php:434 #, php-format @@ -5527,11 +5631,34 @@ msgstr "" msgid "Error sending direct message." msgstr "خطا در فرستادن پیام مستقیم." +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:554 +#, php-format +msgid "Notice from %s repeated." +msgstr "پیام %s تکرار شد." + #. TRANS: Error text shown when repeating a notice fails with an unknown reason. #: lib/command.php:557 msgid "Error repeating notice." msgstr "هنگام تکرار پیام خطایی رخ داد." +#. TRANS: Message given if content of a notice for a reply is too long. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:592 +#, php-format +msgid "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr "" +"پیام بسیار طولانی است - بیشترین اندازه امکان پذیر %d نویسه است، شما %d نویسه " +"فرستاده‌اید" + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:603 +#, php-format +msgid "Reply to %s sent." +msgstr "پاسخ به %s فرستاده شد." + #. TRANS: Error text shown when a reply to a notice fails with an unknown reason. #: lib/command.php:606 msgid "Error saving notice." @@ -5553,6 +5680,13 @@ msgstr "نمی‌توان با دستور مشترک نمایه‌های OMB ش msgid "Specify the name of the user to unsubscribe from." msgstr "" +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 +#, php-format +msgid "Unsubscribed from %s." +msgstr "اشتراک از %s لغو شد." + #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. #: lib/command.php:724 lib/command.php:750 @@ -5582,7 +5716,7 @@ msgstr "ناتوان در روشن کردن آگاه سازی." #. TRANS: Error text shown when issuing the login command while login is disabled. #: lib/command.php:771 msgid "Login command is disabled." -msgstr "" +msgstr "فرمان ورود غیرفعال شده است." #. TRANS: Text shown after issuing the login command successfully. #. TRANS: %s is a logon link.. @@ -5590,6 +5724,14 @@ msgstr "" #, php-format msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" +"این پیوند تنها یک‌بار قابل استفاده است و فقط برای دو دقیقه معتبر است: %s." + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "%s لغو اشتراک شد." #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. #: lib/command.php:831 diff --git a/locale/ka/LC_MESSAGES/statusnet.po b/locale/ka/LC_MESSAGES/statusnet.po index 23881ba43e..5e952641e2 100644 --- a/locale/ka/LC_MESSAGES/statusnet.po +++ b/locale/ka/LC_MESSAGES/statusnet.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-08 22:34:48+0000\n" +"POT-Creation-Date: 2010-09-09 17:35+0000\n" +"PO-Revision-Date: 2010-09-09 17:37:30+0000\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" @@ -129,24 +129,6 @@ msgstr "%1$s და მეგობრები, გვერდი %2$d" msgid "%s and friends" msgstr " %s და მეგობრები" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 -#, php-format -msgid "Feed for friends of %s (RSS 1.0)" -msgstr "" - -#. TRANS: %1$s is user nickname -#: actions/all.php:116 -#, php-format -msgid "Feed for friends of %s (RSS 2.0)" -msgstr "" - -#. TRANS: %1$s is user nickname -#: actions/all.php:125 -#, php-format -msgid "Feed for friends of %s (Atom)" -msgstr "" - #. TRANS: %1$s is user nickname #: actions/all.php:138 #, php-format @@ -3374,16 +3356,6 @@ msgstr "პასუხები %s–ს" msgid "Replies to %1$s, page %2$d" msgstr "პასუხები %1$s–ს, გვერდი %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:199 #, php-format msgid "" @@ -3553,21 +3525,6 @@ msgstr "%1$s-ის რჩეული შეტყობინებები, 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 " @@ -3592,44 +3549,24 @@ msgstr "" msgid "URL" msgstr "" -#: actions/showgroup.php:338 -#, php-format -msgid "Notice feed for %s group (RSS 1.0)" -msgstr "" - -#: actions/showgroup.php:344 -#, php-format -msgid "Notice feed for %s group (RSS 2.0)" -msgstr "" - -#: actions/showgroup.php:350 -#, php-format -msgid "Notice feed for %s group (Atom)" -msgstr "" +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 +msgid "Note" +msgstr "შენიშვნა" #: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" -msgstr "" +msgstr "წევრები" -#: actions/showstream.php:122 -#, php-format -msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "" +#: actions/showgroup.php:398 lib/profileaction.php:117 +#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 +#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 +msgid "(None)" +msgstr "(არცერთი)" -#: actions/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/showgroup.php:439 +msgid "Created" +msgstr "შექმნილია" #: actions/showstream.php:205 msgid "" @@ -3682,17 +3619,13 @@ msgstr "საიტის სახელი" msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "თქვენი საიტის სახელი, როგორც \"თქვენი კომპანიის მიკრობლოგი\"" -#: actions/siteadminpanel.php:229 -msgid "Brought by" -msgstr "" - #: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "ტექსტი გამოყენებული თითოეული გვერდის ბოლოს კრედიტებისთვის" #: actions/siteadminpanel.php:234 msgid "Brought by URL" -msgstr "" +msgstr "მომწოდებლის URL" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" @@ -3761,7 +3694,11 @@ msgstr "საიტის შეტყობინების ტექსტ #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "საერთო სასაიტო შეტყობინების ტექსტი (მაქს. 255 სიმბოლო; HTML შეიძლება)" + +#: actions/sitenoticeadminpanel.php:198 +msgid "Save site notice" +msgstr "შეინახე საერთოსასაიტო შეტყობინება" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 @@ -3924,11 +3861,19 @@ msgstr "კოდი არ არის შეყვანილი" #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 #: lib/adminpanelaction.php:408 msgid "Snapshots" -msgstr "" +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 "" +msgstr "წინა ვერსიის სიხშირე ციფრი უნდა იყოს." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -3938,25 +3883,21 @@ msgstr "" 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 "" +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 "" - #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "მდგომარეობა გაიგზავნება ამ URL-ზე" + +#: actions/snapshotadminpanel.php:248 +msgid "Save snapshot settings" +msgstr "დაიმახსოვრე მდგომარეობის პარამეტრები" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -3975,6 +3916,11 @@ msgstr "ეს მოქმედება მხოლოდ POST მოთხ msgid "No such profile." msgstr "ასეთი პროფილი არ არსებობს." +#: actions/subscribe.php:117 +msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." +msgstr "" +"თქვენ არ შეგიძლიათ გამოიწეროთ 0მბ-იანი 0.1 დაშორებული პროფილი ამ მოქმედებით." + #: actions/subscribe.php:145 msgid "Subscribed" msgstr "გამოწერილია" @@ -4048,32 +3994,75 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" +"თუ ჯერ არ უსმენთ არავის შეტყობიენბებს, სცადეთ გამოიწეროთ თქვენთვის " +"საინტერესო ადამიანები. სცადეთ [ხალხის ძიება](%%action.peoplesearch%%), " +"გადახედეთ საინტერესო ჯგუფების წევრებს და ჩვენს მიერ [შემოთავაზებულ " +"მომხმარებლებს](%%action.featured%%). თუ ხართ [Twitter-ის მომხმარებელი](%%" +"action.twittersettings%%), შეგიძლიათ ავტომატურად გამოიწეროთ ხალხი, რომლებსაც " +"იქ მიჰყვებით." + +#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#, php-format +msgid "%s is not listening to anyone." +msgstr "%s არავის უსმენს." + +#: actions/subscriptions.php:208 +msgid "Jabber" +msgstr "Jabber" + +#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +msgid "SMS" +msgstr "SMS" + +#: actions/tag.php:69 +#, php-format +msgid "Notices tagged with %1$s, page %2$d" +msgstr "შეტყობინებები მონიშნული %1$s-ით, გვერდი %2$d" #: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (RSS 1.0)" #: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (RSS 2.0)" #: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (Atom)" + +#: actions/tagother.php:65 +#, php-format +msgid "Tag %s" +msgstr "სანიშნე %s" + +#: actions/tagother.php:77 lib/userprofile.php:76 +msgid "User profile" +msgstr "მომხმარებლის პროფილი" #: actions/tagother.php:81 actions/userauthorization.php:132 #: lib/userprofile.php:103 msgid "Photo" -msgstr "" +msgstr "ფოტო" + +#: actions/tagother.php:141 +msgid "Tag user" +msgstr "მონიშნე მომხმარებელი" #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" +msgid "User" +msgstr "მომხმარებელი" + #: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" @@ -4162,10 +4151,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:163 -msgid "Contributors" -msgstr "" - #: actions/version.php:170 msgid "" "StatusNet is free software: you can redistribute it and/or modify it under " @@ -4193,6 +4178,11 @@ msgstr "" msgid "Plugins" msgstr "" +#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. +#: actions/version.php:198 lib/action.php:805 +msgid "Version" +msgstr "ვერსია" + #. TRANS: Server exception thrown when a URL cannot be processed. #: classes/File.php:143 #, php-format @@ -5231,49 +5221,104 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" +#: lib/common.php:135 +msgid "No configuration file found. " +msgstr "კონფიგურაციის ფაილი ვერ მოიძებნა. " + #: lib/common.php:136 msgid "I looked for configuration files in the following places: " -msgstr "" +msgstr "კონფიგურაციის ფაილები შემდეგ ადგილებში ვეძებე: " #: lib/common.php:138 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "თუ გინდათ ინსტალატორი გაუშვით ამის გასასწორებლად." + +#: lib/common.php:139 +msgid "Go to the installer." +msgstr "გადადი ამ ინსტალატორზე." #: lib/connectsettingsaction.php:110 msgid "IM" -msgstr "" +msgstr "IM" #: lib/connectsettingsaction.php:111 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "განახლებები ჩათ კლიენტისგან (IM)" #: lib/connectsettingsaction.php:116 msgid "Updates by SMS" -msgstr "" +msgstr "განახლებები SMS-თ" + +#: 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 "" +"თქვენ შეგიძლიათ ატვირთოთ პერსონალური ფონური სურათი. ფაილის დასაშვები ზომაა " +"2მბ." + +#: 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 "" +msgstr "RSS 1.0" #: lib/feed.php:87 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" + +#: lib/feed.php:89 +msgid "Atom" +msgstr "Atom" #: lib/feed.php:91 msgid "FOAF" -msgstr "" +msgstr "FOAF" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "მონაცემების გატანა" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "სანიშნეების გაფილტვრა" + +#: lib/galleryaction.php:131 +msgid "All" +msgstr "ყველა" + +#: lib/galleryaction.php:139 +msgid "Select tag to filter" +msgstr "აირჩიე გასაფილტრი სანიშნე" #: lib/galleryaction.php:140 msgid "Tag" @@ -5411,6 +5456,14 @@ msgstr "კბ" msgid "[%s]" msgstr "[%s]" +#: lib/joinform.php:114 +msgid "Join" +msgstr "გაერთიანება" + +#: lib/leaveform.php:114 +msgid "Leave" +msgstr "დატოვება" + #: lib/logingroupnav.php:80 msgid "Login with a username and password" msgstr "შედი მომხ. სახელით და პაროლით." @@ -5498,6 +5551,12 @@ msgstr "" "----\n" "შეცვალეთ თქვენი ელ. ფოსტის მისამართი ან შეტყობინებების პარამეტრები აქ %8$s\n" +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/mail.php:274 +#, php-format +msgid "Bio: %s" +msgstr "ბიოგრაფია: %s" + #. TRANS: Subject of notification mail for new posting email address #: lib/mail.php:304 #, php-format diff --git a/locale/statusnet.pot b/locale/statusnet.pot index 549ca5bca6..38771ecbe8 100644 --- a/locale/statusnet.pot +++ b/locale/statusnet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-08 22:33+0000\n" +"POT-Creation-Date: 2010-09-09 17:35+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/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 1bf80f4310..e1390e1140 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-08 22:35:28+0000\n" +"POT-Creation-Date: 2010-09-09 17:35+0000\n" +"PO-Revision-Date: 2010-09-09 17:38:05+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -813,6 +813,10 @@ msgstr "ఈ గుంపు లోనికి చేరకుండా ని msgid "Unblock user from group" msgstr "వాడుకరిని గుంపు నుండి నిరోధించు" +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +msgid "Unblock" +msgstr "నిరోధాన్ని ఎత్తివేయి" + #: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "ఈ వాడుకరిని నిరోధించు" @@ -1054,12 +1058,12 @@ msgstr "సైటుకి మీరు నేపథ్యపు చిత్ర #. TRANS: Used as radio button label to add a background image. #: actions/designadminpanel.php:527 lib/designsettings.php:139 msgid "On" -msgstr "" +msgstr "ఆన్" #. TRANS: Used as radio button label to not add a background image. #: actions/designadminpanel.php:544 lib/designsettings.php:155 msgid "Off" -msgstr "" +msgstr "ఆఫ్" #: actions/designadminpanel.php:564 lib/designsettings.php:170 msgid "Change colours" @@ -1087,7 +1091,7 @@ msgstr "ఉన్నత" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "ప్రత్యేక CSS" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -2421,6 +2425,10 @@ msgstr "సేవకి" msgid "Site's server hostname." msgstr "" +#: actions/pathsadminpanel.php:242 +msgid "Path" +msgstr "త్రోవ" + #: actions/pathsadminpanel.php:242 msgid "Site path" msgstr "సైటు అలంకారం" @@ -2784,6 +2792,10 @@ msgstr "తెలియని చర్య" msgid "6 or more characters, and don't forget it!" msgstr "6 లేదా అంతకంటే ఎక్కువ అక్షరాలు, మర్చిపోకండి!" +#: actions/recoverpassword.php:243 +msgid "Reset" +msgstr "రీసెట్" + #: actions/recoverpassword.php:252 msgid "Enter a nickname or email address." msgstr "పేరు లేదా ఈమెయిల్ చిరునామా ఇవ్వండి." @@ -2905,7 +2917,7 @@ msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. #: actions/register.php:535 msgid "All rights reserved." -msgstr "" +msgstr "సర్వహక్కులూ సురక్షితం." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. #: actions/register.php:540 @@ -4726,6 +4738,10 @@ msgstr "మునుజూపు" msgid "Notices where this attachment appears" msgstr "" +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +msgid "Password changing failed" +msgstr "సంకేతపదం మార్పు విఫలమైంది" + #: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "ఆదేశ ఫలితాలు" @@ -4829,18 +4845,25 @@ msgstr "నోటీసుని భద్రపరచడంలో పొరప #. TRANS: Error text shown when no username was provided when issuing a subscribe command. #: lib/command.php:655 msgid "Specify the name of the user to subscribe to." -msgstr "" +msgstr "ఏవరికి చందా చేరాలనుకుంటున్నారో ఆ వాడుకరి పేరుని ఇవ్వండి." #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. #: lib/command.php:664 msgid "Can't subscribe to OMB profiles by command." msgstr "" +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 +#, php-format +msgid "Subscribed to %s." +msgstr "%sకి చందా చేరారు." + #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. #. TRANS: Error text shown when no username was provided when issuing the command. #: lib/command.php:694 lib/command.php:804 msgid "Specify the name of the user to unsubscribe from." -msgstr "" +msgstr "ఎవరినుండైతే చందావిరమించాలనుకుంటున్నారో ఆ వాడుకరి పేరుని ఇవ్వండి." #. TRANS: Error text shown when the command "off" fails for an unknown reason. #: lib/command.php:731 @@ -5016,7 +5039,7 @@ msgstr "" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "భోగట్టా ఎగుమతి" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -5614,11 +5637,11 @@ msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" #: lib/noticelist.php:453 msgid "at" -msgstr "" +msgstr "ప్రాంతం" #: lib/noticelist.php:502 msgid "web" -msgstr "" +msgstr "జాలం" #: lib/noticelist.php:568 msgid "in context" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index ecf0afc449..12a240ef68 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -15,7 +15,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-08 22:35:46+0000\n" +"PO-Revision-Date: 2010-09-09 17:38:22+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -92,7 +92,7 @@ msgstr "保存" #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." -msgstr "未找到此消息。" +msgstr "没有这个页面。" #. TRANS: Error text shown when trying to send a direct message to a user that does not exist. #: actions/all.php:79 actions/allrss.php:68 @@ -133,7 +133,7 @@ msgstr "%1$s 和好友,第%2$d页" #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" -msgstr "%s 及好友" +msgstr "%s 和好友们" #. TRANS: %1$s is user nickname #: actions/all.php:107 @@ -175,7 +175,7 @@ msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"您可以试着到他们的资料页 [呼叫%1$s](../%2$s) 他们或者 [给他们发消息](%%%%" +"你可以试着到他们的资料页 [呼叫%1$s](../%2$s) 他们或者 [给他们发消息](%%%%" "action.newnotice%%%%?status_textarea=%3$s)。" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 @@ -189,7 +189,7 @@ msgstr "" #. TRANS: H1 text #: actions/all.php:182 msgid "You and friends" -msgstr "您和好友们" +msgstr "你和好友们" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. @@ -243,7 +243,7 @@ msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -"您必须指定一个名为'device'的参数,值可以是以下中的一个:sms, im, none。" +"你必须指定一个名为'device'的参数,值可以是以下中的一个:sms, im, none。" #: actions/apiaccountupdatedeliverydevice.php:133 msgid "Could not update user." @@ -283,16 +283,16 @@ msgstr "服务器当前的设置无法处理这么多的 POST 数据(%s bytes #: 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 msgid "Could not update your design." -msgstr "无法更新您的设计。" +msgstr "无法更新你的外观。" #: actions/apiblockcreate.php:105 msgid "You cannot block yourself!" -msgstr "您不能屏蔽自己!" +msgstr "你不能屏蔽自己!" #: actions/apiblockcreate.php:126 msgid "Block user failed." @@ -368,7 +368,7 @@ msgstr "无法关注用户:未找到用户。" #: actions/apifriendshipscreate.php:118 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "无法关注用户:您已经关注了%s。" +msgstr "无法关注用户:你已经关注了%s。" #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." @@ -376,7 +376,7 @@ msgstr "无法取消关注用户:未找到用户。" #: actions/apifriendshipsdestroy.php:120 msgid "You cannot unfollow yourself." -msgstr "您不能取消关注自己。" +msgstr "你不能取消关注自己。" #: actions/apifriendshipsexists.php:91 msgid "Two valid IDs or screen_names must be supplied." @@ -464,12 +464,12 @@ msgstr "小组未找到。" #. TRANS: Error text shown a user tries to join a group they already are a member of. #: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336 msgid "You are already a member of that group." -msgstr "您已经是该小组成员。" +msgstr "你已经是该小组成员。" #. TRANS: Error text shown when a user tries to join a group they are blocked from joining. #: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341 msgid "You have been blocked from that group by the admin." -msgstr "您已经被该小组的管理员屏蔽。" +msgstr "你已经被管理员从该小组中屏蔽。" #. TRANS: Message given having failed to add a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. @@ -480,7 +480,7 @@ msgstr "无法把用户%1$s添加到%2$s小组" #: actions/apigroupleave.php:115 msgid "You are not a member of this group." -msgstr "您不是该小组成员。" +msgstr "你不是该小组成员。" #. TRANS: Message given having failed to remove a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. @@ -500,7 +500,7 @@ msgstr "%s 的小组" #: actions/apigrouplist.php:108 #, php-format msgid "%1$s groups %2$s is a member of." -msgstr "%1$s 个小组,%2$s 是其中一个小组成员。" +msgstr "%1$s 的小组,%2$s 是小组成员。" #. TRANS: Message is used as a title. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. @@ -542,7 +542,7 @@ msgstr "无效的 token。" #: 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 "您的 session 出现了一个问题,请重试。" +msgstr "你的 session 出现了一个问题,请重试。" #: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" @@ -566,7 +566,7 @@ msgstr "Request token 已被批准。请为它换一个 access token。" #: actions/apioauthauthorize.php:227 #, php-format msgid "The request token %s has been denied and revoked." -msgstr "%s的 request token 被拒绝并已被取消。" +msgstr "%s的 request token 被拒绝并被取消。" #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. @@ -582,7 +582,7 @@ 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" @@ -596,7 +596,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" "来自%2$s%1$s应用希望能够%3$s您的%4$s账户数据。您应该只允许您信任的第三方程序访问您的%4$s账户。" +"strong>你的%4$s账户数据。你应该只允许你信任信任的第三方程序访问你的%4$s账户。" #. TRANS: Main menu option when logged in for access to user settings #: actions/apioauthauthorize.php:310 lib/action.php:463 @@ -627,7 +627,7 @@ msgstr "允许" #: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "允许或阻止对您账户信息的访问。" +msgstr "允许或阻止对你账户信息的访问。" #: actions/apistatusesdestroy.php:112 msgid "This method requires a POST or DELETE." @@ -635,7 +635,7 @@ msgstr "此方法接受POST或DELETE请求。" #: actions/apistatusesdestroy.php:135 msgid "You may not delete another user's status." -msgstr "您不能删除其他用户的消息。" +msgstr "你不能删除其他用户的消息。" #: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 @@ -645,7 +645,7 @@ msgstr "没有这条消息。" #. TRANS: Error text shown when trying to repeat an own notice. #: actions/apistatusesretweet.php:83 lib/command.php:538 msgid "Cannot repeat your own notice." -msgstr "不能转发您自己的消息。" +msgstr "不能转发你自己的消息。" #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. #: actions/apistatusesretweet.php:91 lib/command.php:544 @@ -662,7 +662,7 @@ msgstr "没有找到此 ID 的消息。" #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "客户端必须提供一个“状态”参数与数值。" +msgstr "客户端必须提供一个包含内容的“状态”参数。" #: actions/apistatusesupdate.php:242 actions/newnotice.php:157 #: lib/mailhandler.php:60 @@ -686,22 +686,22 @@ msgstr "不支持的格式。" #: actions/apitimelinefavorites.php:110 #, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s / 来自 %2$s 的收藏" #: actions/apitimelinefavorites.php:119 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "回复 %2$s / %3$s 的 %1$s 更新。" +msgstr "%1$s 条消息被 %2$s 收藏 / %2$s" #: actions/apitimelinementions.php:118 #, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s / 条消息提到了 %2$s" #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "回复 %2$s / %3$s 的 %1$s 更新。" +msgstr " %1$s 条消息回复给来自 %2$s 的消息 / %3$s。" #: actions/apitimelinepublic.php:197 actions/publicrss.php:103 #, php-format @@ -765,7 +765,7 @@ msgstr "头像" #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "您可以上传您的个人头像。文件大小限制在%s以下。" +msgstr "你可以上传你的个人头像。文件大小限制在%s以下。" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 @@ -781,7 +781,7 @@ msgstr "头像设置" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" -msgstr "原始的" +msgstr "原始" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 #: actions/grouplogo.php:213 actions/grouplogo.php:274 @@ -803,11 +803,11 @@ msgstr "剪裁" #: actions/avatarsettings.php:305 msgid "No file uploaded." -msgstr "上传文件未成功。" +msgstr "没有文件被上传。" #: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" -msgstr "请选择一块方形区域作为您的头像" +msgstr "请选择一块方形区域作为你的头像" #: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." @@ -827,11 +827,11 @@ msgstr "头像已删除。" #: actions/block.php:69 msgid "You already blocked that user." -msgstr "您已经屏蔽该用户。" +msgstr "你已经屏蔽该用户。" #: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" -msgstr "屏蔽用户失败。" +msgstr "屏蔽用户。" #: actions/block.php:138 msgid "" @@ -839,8 +839,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 "" -"您确定要屏蔽这个用户吗?屏蔽后,会取消这个用户对您的关注,并且以后也无法关注" -"您,您也不会收到任何来自这个用户的@回复提醒。" +"你确定要屏蔽这个用户吗?屏蔽后,会取消这个用户对你的关注,将来也无法再关注" +"你,你也不会收到任何来自这个用户的@回复提醒。" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. @@ -870,7 +870,7 @@ msgstr "不要屏蔽这个用户" #: actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" -msgstr "确定" +msgstr "是" #. TRANS: Submit button title for 'Yes' when blocking a user. #: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 @@ -931,7 +931,7 @@ msgstr "发布到 %s" #: actions/confirmaddress.php:75 msgid "No confirmation code." -msgstr "没有验证码" +msgstr "没有确认码" #: actions/confirmaddress.php:80 msgid "Confirmation code not found." @@ -939,7 +939,7 @@ msgstr "未找到确认码。" #: actions/confirmaddress.php:85 msgid "That confirmation code is not for you!" -msgstr "此确认码不是您的!" +msgstr "此确认码不是你的!" #. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. #: actions/confirmaddress.php:91 @@ -950,7 +950,7 @@ msgstr "不可识别的地址类型%s。" #. TRANS: Client error for an already confirmed email/jabbel/sms address. #: actions/confirmaddress.php:96 msgid "That address has already been confirmed." -msgstr "此地址已被确认。" +msgstr "此地址已被确认过了。" #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. @@ -980,7 +980,7 @@ msgstr "确认地址" #: actions/confirmaddress.php:161 #, php-format msgid "The address \"%s\" has been confirmed for your account." -msgstr "地址 \"%s\" 已确认。" +msgstr "你账户的地址 \"%s\" 已被确认。" #: actions/conversation.php:99 msgid "Conversation" @@ -993,7 +993,7 @@ msgstr "消息" #: actions/deleteapplication.php:63 msgid "You must be logged in to delete an application." -msgstr "您必须登录才能删除应用。" +msgstr "你必须登录后才能删除应用。" #: actions/deleteapplication.php:71 msgid "Application not found." @@ -1002,13 +1002,13 @@ msgstr "未找到应用。" #: actions/deleteapplication.php:78 actions/editapplication.php:77 #: actions/showapplication.php:94 msgid "You are not the owner of this application." -msgstr "您不是该应用的拥有者。" +msgstr "你不是该应用的拥有者。" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 #: lib/action.php:1307 msgid "There was a problem with your session token." -msgstr "您的 session token 出现了问题。" +msgstr "你的 session token 出现了问题。" #: actions/deleteapplication.php:123 actions/deleteapplication.php:147 msgid "Delete application" @@ -1020,7 +1020,7 @@ msgid "" "about the application from the database, including all existing user " "connections." msgstr "" -"您确定要删除这个应用吗?这将从数据库中清除有关这个应用的所有数据,包括所有的" +"你确定要删除这个应用吗?这将从数据库中清除有关这个应用的所有数据,包括所有的" "用户关联。" #. TRANS: Submit button title for 'No' when deleting an application. @@ -1052,7 +1052,7 @@ msgstr "无法删除这条消息。" msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." -msgstr "您即将永久删除一条消息。这样做是无法恢复的。" +msgstr "你即将永久删除一条消息,此操作无法撤销。" #: actions/deletenotice.php:109 actions/deletenotice.php:141 msgid "Delete notice" @@ -1060,7 +1060,7 @@ msgstr "删除消息" #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" -msgstr "确定要删除这条消息吗?" +msgstr "你确定要删除这条消息吗?" #. TRANS: Submit button title for 'No' when deleting a notice. #: actions/deletenotice.php:151 @@ -1070,15 +1070,15 @@ msgstr "不要删除这个消息" #. TRANS: Submit button title for 'Yes' when deleting a notice. #: actions/deletenotice.php:158 lib/noticelist.php:657 msgid "Delete this notice" -msgstr "删除这个消息" +msgstr "删除" #: actions/deleteuser.php:67 msgid "You cannot delete users." -msgstr "您不能删除用户。" +msgstr "你不能删除用户。" #: actions/deleteuser.php:74 msgid "You can only delete local users." -msgstr "您只能删除本地用户。" +msgstr "你只能删除本地用户。" #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" @@ -1089,7 +1089,7 @@ 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 "" -"您确定要删除这个用户吗?这将从数据库中清除有关这个用户的所有数据,没有备份。" +"你确定要删除这个用户吗?这将从数据库中清除有关这个用户的所有数据,没有备份。" #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 @@ -1101,11 +1101,11 @@ msgstr "删除这个用户" #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 #: lib/groupnav.php:119 msgid "Design" -msgstr "设计" +msgstr "外观" #: actions/designadminpanel.php:74 msgid "Design settings for this StatusNet site." -msgstr "这个 StatusNet 网站的设计设置" +msgstr "这个 StatusNet 网站的外观设置" #: actions/designadminpanel.php:318 msgid "Invalid logo URL." @@ -1142,7 +1142,7 @@ msgstr "自定义主题" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "您可以上传一个 .ZIP 压缩文件作为一个自定义的 StatusNet 主题" +msgstr "你可以上传一个 .ZIP 压缩文件作为一个自定义的 StatusNet 主题" #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1158,7 +1158,7 @@ msgstr "背景" msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "您可以为网站上传一个背景图像。文件大小限制在%1$s以下。" +msgstr "你可以为网站上传一个背景图像。文件大小限制在%1$s以下。" #. TRANS: Used as radio button label to add a background image. #: actions/designadminpanel.php:527 lib/designsettings.php:139 @@ -1192,7 +1192,7 @@ msgstr "边栏" #: actions/designadminpanel.php:613 lib/designsettings.php:217 msgid "Text" -msgstr "消息" +msgstr "文字" #: actions/designadminpanel.php:626 lib/designsettings.php:230 msgid "Links" @@ -1212,7 +1212,7 @@ msgstr "使用默认值" #: actions/designadminpanel.php:677 lib/designsettings.php:248 msgid "Restore default designs" -msgstr "恢复默认设计" +msgstr "恢复默认外观" #: actions/designadminpanel.php:683 lib/designsettings.php:254 msgid "Reset back to default" @@ -1231,7 +1231,7 @@ msgstr "保存" #: actions/designadminpanel.php:686 lib/designsettings.php:257 msgid "Save design" -msgstr "保存设计" +msgstr "保存外观" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" @@ -1252,7 +1252,7 @@ msgstr "编辑应用" #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." -msgstr "您必须登录后才能编辑应用。" +msgstr "你必须登录后才能编辑应用。" #: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 @@ -1261,7 +1261,7 @@ msgstr "没有这个应用。" #: actions/editapplication.php:161 msgid "Use this form to edit your application." -msgstr "通过此表单来编辑您的应用。" +msgstr "通过此表单来编辑你的应用。" #: actions/editapplication.php:177 actions/newapplication.php:159 msgid "Name is required." @@ -1277,7 +1277,7 @@ msgstr "名字已被使用,换一个吧。" #: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." -msgstr "必须有一个描述。" +msgstr "必须填写描述。" #: actions/editapplication.php:194 msgid "Source URL is too long." @@ -1318,7 +1318,7 @@ msgstr "编辑 %s 小组" #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能创建小组。" #: actions/editgroup.php:107 actions/editgroup.php:172 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 @@ -1337,11 +1337,11 @@ msgstr "描述过长(不能超过%d个字符)。" #: actions/editgroup.php:228 actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" -msgstr "无效的昵称:“%s”。" +msgstr "无效的别名:“%s”。" #: actions/editgroup.php:258 msgid "Could not update group." -msgstr "无法更新组" +msgstr "无法更新小组" #. TRANS: Server exception thrown when creating group aliases failed. #: actions/editgroup.php:264 classes/User_group.php:514 @@ -1362,7 +1362,7 @@ msgstr "Email 设置" #: actions/emailsettings.php:76 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "设置 %%site.name%% 发送的邮件。" +msgstr "设置你如何接受来自 %%site.name%% 的邮件。" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. @@ -1373,7 +1373,7 @@ msgstr "电邮地址" #. TRANS: Form note in e-mail settings form. #: actions/emailsettings.php:112 msgid "Current confirmed email address." -msgstr "已确认的电子邮件。" +msgstr "当前确认的电子邮件。" #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. @@ -1392,8 +1392,8 @@ msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -"等待确认此地址。请查看您的收件箱(和垃圾箱)是否收到了邮件,其中包含了进一步的" -"指示。" +"正等待确认此邮件。请查看你的收件箱(和垃圾箱)是否收到了邮件,里面包含了更多的" +"说明。" #. TRANS: Button label to cancel an e-mail address confirmation procedure. #. TRANS: Button label to cancel an IM address confirmation procedure. @@ -1429,13 +1429,13 @@ msgstr "接收用 email" #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. #: actions/emailsettings.php:155 actions/smssettings.php:178 msgid "Send email to this address to post new notices." -msgstr "向这个 email 地址发邮件来发布新的消息。" +msgstr "通过发送电子邮件到这个地址来发布新的消息。" #. TRANS: Instructions for incoming e-mail address input form. #. TRANS: Instructions for incoming SMS e-mail address input form. #: actions/emailsettings.php:164 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." -msgstr "生成新的电子邮件地址用于发布信息;取消旧的。" +msgstr "生成新的电子邮件地址用于发布消息;取消旧的。" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. @@ -1508,7 +1508,7 @@ msgstr "不是有效的电子邮件。" #. TRANS: Message given saving e-mail address that is already set. #: actions/emailsettings.php:370 msgid "That is already your email address." -msgstr "您已登记此电子邮件。" +msgstr "你已登记此电子邮件。" #. TRANS: Message given saving e-mail address that is already set for another user. #: actions/emailsettings.php:374 @@ -1521,7 +1521,7 @@ msgstr "此电子邮件属于其他用户。" #: actions/emailsettings.php:391 actions/imsettings.php:348 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." -msgstr "无法插入验证码。" +msgstr "无法插入确认码。" #. TRANS: Message given saving valid e-mail address that is to be confirmed. #: actions/emailsettings.php:398 @@ -1529,8 +1529,8 @@ 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 "" -"验证码已被发送到您新增的电子邮件。请检查收件箱(和垃圾箱),找到验证码并按要求" -"使用它。" +"确认码已被发送到你新增的电子邮件地址。请检查收件箱(和垃圾箱),找到确认码和使" +"用说明。" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. @@ -1548,18 +1548,18 @@ msgstr "这是错误的电子邮件地址。" #. TRANS: Message given after successfully canceling e-mail address confirmation. #: actions/emailsettings.php:438 msgid "Email confirmation cancelled." -msgstr "Email 验证已取消。" +msgstr "Email 确认已取消。" #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. #: actions/emailsettings.php:458 msgid "That is not your email address." -msgstr "这是他人的电子邮件。" +msgstr "这个不是你的电子邮件地址。" #. TRANS: Message given after successfully removing a registered e-mail address. #: actions/emailsettings.php:479 msgid "The email address was removed." -msgstr "email 地址已移除。" +msgstr "电子邮件地址已被删除。" #: actions/emailsettings.php:493 actions/smssettings.php:568 msgid "No incoming email address." @@ -1575,7 +1575,7 @@ msgstr "无法更新用户记录。" #. TRANS: Message given after successfully removing an incoming e-mail address. #: actions/emailsettings.php:508 actions/smssettings.php:581 msgid "Incoming email address removed." -msgstr "发布用的电子邮件被移除。" +msgstr "发布用的电子邮件被删除。" #. TRANS: Message given after successfully adding an incoming e-mail address. #: actions/emailsettings.php:532 actions/smssettings.php:605 @@ -1673,15 +1673,15 @@ msgstr "要查看的用户不存在。" #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 msgid "You can use the local subscription!" -msgstr "您可以使用本地关注!" +msgstr "你可以使用本地关注!" #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." -msgstr "该用户屏蔽了您对他/她的关注。" +msgstr "该用户屏蔽了你,无法关注。" #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." -msgstr "您没有被授权。" +msgstr "你没有被授权。" #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." @@ -1689,7 +1689,7 @@ msgstr "无法将 request token 转换为 access token。" #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." -msgstr "远程服务使用了位置版本的 OMB 协议。" +msgstr "远程服务使用了未知版本的 OMB 协议。" #: actions/finishremotesubscribe.php:138 msgid "Error updating remote profile." @@ -1709,11 +1709,11 @@ msgstr "无效的权限。" #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "此角色是保留的且不能被设置。" +msgstr "此权限是保留的且不能被设置。" #: actions/grantrole.php:75 msgid "You cannot grant user roles on this site." -msgstr "您不能在这个网站授予用户权限。" +msgstr "你不能在这个网站授予用户权限。" #: actions/grantrole.php:82 msgid "User already has this role." @@ -1723,13 +1723,13 @@ msgstr "用户已有此权限。" #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:79 msgid "No profile specified." -msgstr "没有指定的消息。" +msgstr "没有指定的用户。" #: actions/groupblock.php:76 actions/groupunblock.php:76 #: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." -msgstr "没有找到此ID的个人信息。" +msgstr "此 ID 没有用户。" #: actions/groupblock.php:81 actions/groupunblock.php:81 #: actions/makeadmin.php:81 @@ -1759,7 +1759,7 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" -"您确定要在“%2$s”小组中屏蔽用户“%1$s”么?他们将被从小组中删除,并且不能在小组" +"你确定要在“%2$s”小组中屏蔽用户“%1$s”么?他们将被从小组中删除,并且不能在小组" "内发布消息或关注该小组。" #. TRANS: Submit button title for 'No' when blocking a user from a group. @@ -1782,26 +1782,26 @@ msgstr "没有 ID。" #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能创建小组。" #: actions/groupdesignsettings.php:144 msgid "Group design" -msgstr "小组页面设计。" +msgstr "小组页面外观。" #: actions/groupdesignsettings.php:155 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 msgid "Couldn't update your design." -msgstr "无法更新你的设计。" +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" @@ -1811,7 +1811,7 @@ msgstr "小组logo" #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "您可以给您的小组上传一个 logo。文件最大限制为%s。" +msgstr "你可以给你的小组上传一个 logo。文件最大限制为%s。" #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." @@ -1828,16 +1828,16 @@ msgstr "更新 logo 失败。" #: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" -msgstr "%s 小组成员" +msgstr "%s 的小组成员" #: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" -msgstr "%s 小组成员,第%2$d页" +msgstr "%s 的小组成员,第%2$d页" #: actions/groupmembers.php:118 msgid "A list of the users in this group." -msgstr "该组成员列表。" +msgstr "该小组的成员列表。" #: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" @@ -1872,7 +1872,7 @@ msgstr "%s的时间线" #: actions/grouprss.php:142 #, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "%2$s上%1$s的更新!" +msgstr "在%2$s上%1$s小组组员的更新!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1882,7 +1882,7 @@ msgstr "小组" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "个小组,第 %d 页" +msgstr "小组,第 %d 页" #: actions/groups.php:90 #, php-format @@ -1893,7 +1893,7 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" -"%%%%site.name%%%%的小组可以让您找到有相同兴趣的朋友一起交流。当您加入到一个小" +"%%%%site.name%%%%的小组可以让你找到有相同兴趣的朋友一起交流。当你加入到一个小" "组后可以可以通过使用“!小组名称”发布消息给所有其他的小组成员。找不到感兴趣的小" "组?试一下[搜索小组](%%%%action.groupsearch%%%%)或[建立自己的小组](%%%%" "action.newgroup%%%%)!" @@ -1962,7 +1962,7 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"您可以通过Jabber/GTalk [即时通讯工具](%%doc.im%%)发送和接收消息。在这里配置它" +"你可以通过Jabber/GTalk [即时通讯工具](%%doc.im%%)发送和接收消息。在这里配置它" "们。" #. TRANS: Message given in the IM settings if XMPP is not enabled on the site. @@ -1988,8 +1988,8 @@ 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 "" -"正在等待验证这个地址。请查阅您的 Jabber/GTalk 帐户看有没有收到下一步的指示。" -"(您添加 %s 为您的好友了吗?)" +"正在等待验证这个地址。请查阅你的 Jabber/GTalk 帐户看有没有收到下一步的指示。" +"(你添加 %s 为到你的好友了吗?)" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -2000,7 +2000,7 @@ msgid "" "add %s to your buddy list in your IM client or on GTalk." msgstr "" "Jabber 或 GTalk 帐号,类似\"UserName@example.org\"。首先,必须在即时聊天工具" -"或GTalk中将 %s 加为好友。" +"或 GTalk 中将 %s 加为好友。" #. TRANS: Form legend for IM preferences form. #: actions/imsettings.php:155 @@ -2010,12 +2010,12 @@ msgstr "IM 首选项已保存。" #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:160 msgid "Send me notices through Jabber/GTalk." -msgstr "通过Jabber/GTalk发送通告。" +msgstr "通过 Jabber/GTalk 发送通告。" #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:166 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "当我的Jabber/GTalk状态改变时自动发布消息。" +msgstr "当我的 Jabber/GTalk 状态改变时自动发布消息。" #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:172 @@ -2025,7 +2025,7 @@ msgstr "将我没有关注的用户给我的回复通过 Jabber/GTalk 发送给 #. TRANS: Checkbox label in IM preferences form. #: actions/imsettings.php:179 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "公开Jabber/GTalk帐号的 MicroID。" +msgstr "公开 Jabber/GTalk 帐号的 MicroID。" #. TRANS: Confirmation message for successful IM preferences save. #: actions/imsettings.php:287 actions/othersettings.php:180 @@ -2040,7 +2040,7 @@ msgstr "没有 Jabber ID。" #. TRANS: Message given saving IM address that cannot be normalised. #: actions/imsettings.php:317 msgid "Cannot normalize that Jabber ID" -msgstr "无法识别此Jabber ID" +msgstr "无法识别此 Jabber ID" #. TRANS: Message given saving IM address that not valid. #: actions/imsettings.php:322 @@ -2050,7 +2050,7 @@ msgstr "不是有效的 Jabber ID" #. TRANS: Message given saving IM address that is already set. #: actions/imsettings.php:326 msgid "That is already your Jabber ID." -msgstr "您已登记此Jabber帐号。" +msgstr "这个已经是你的 Jabber 帐号了。" #. TRANS: Message given saving IM address that is already set for another user. #: actions/imsettings.php:330 @@ -2064,12 +2064,12 @@ msgstr "Jabber ID 属于另一用户。" msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." -msgstr "验证码已被发送到您新增的即时通讯帐号。您必须允许 %s 向您发送信息。" +msgstr "验证码已被发送到你新增的 IM 地址。你必须允许 %s 向你发送信息。" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. #: actions/imsettings.php:388 msgid "That is the wrong IM address." -msgstr "即时通讯帐号错误。" +msgstr "IM 地址错误。" #. TRANS: Server error thrown on database error canceling IM address confirmation. #: actions/imsettings.php:397 @@ -2079,18 +2079,18 @@ msgstr "无法删除 IM 确认。" #. TRANS: Message given after successfully canceling IM address confirmation. #: actions/imsettings.php:402 msgid "IM confirmation cancelled." -msgstr "IM 验证已取消。" +msgstr "IM 确认已取消。" #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. #: actions/imsettings.php:424 msgid "That is not your Jabber ID." -msgstr "这不是您的Jabber帐号。" +msgstr "这不是你的 Jabber ID。" #. TRANS: Message given after successfully removing a registered IM address. #: actions/imsettings.php:447 msgid "The IM address was removed." -msgstr "IM 地址已移除。" +msgstr "IM 地址已删除。" #: actions/inbox.php:59 #, php-format @@ -2104,7 +2104,7 @@ 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." @@ -2113,12 +2113,12 @@ msgstr "邀请已被禁用。" #: actions/invite.php:41 #, php-format msgid "You must be logged in to invite other users to use %s." -msgstr "您必须登录才能邀请他人使用%s。" +msgstr "你必须登录才能邀请他人使用%s。" #: actions/invite.php:72 #, php-format msgid "Invalid email address: %s" -msgstr "电子邮件地址 %s 不正确" +msgstr "无效的电子邮件地址:%s" #: actions/invite.php:110 msgid "Invitation(s) sent" @@ -2130,7 +2130,7 @@ msgstr "邀请新用户" #: actions/invite.php:128 msgid "You are already subscribed to these users:" -msgstr "您已关注了这些用户:" +msgstr "你已经关注了这些用户:" #. TRANS: Whois output. #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. @@ -2142,7 +2142,7 @@ msgstr "%1$s (%2$s)" #: actions/invite.php:136 msgid "" "These people are already users and you were automatically subscribed to them:" -msgstr "这些好友已注册,您已自动关注了这些用户:" +msgstr "这些好友已注册,你已自动关注了这些用户:" #: actions/invite.php:144 msgid "Invitation(s) sent to the following people:" @@ -2152,7 +2152,7 @@ msgstr "已发送邀请给这些人:" msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" -msgstr "如果其他人接受邀请并注册,您将得到通知。谢谢您推动了社区发展壮大!" +msgstr "如果其他人接受邀请并注册,你将得到通知。谢谢你推动了社区发展壮大!" #: actions/invite.php:162 msgid "" @@ -2185,7 +2185,7 @@ msgstr "发布" #: actions/invite.php:228 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s 邀请您加入 %2$s" +msgstr "%1$s 邀请你加入 %2$s" #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. #: actions/invite.php:231 @@ -2218,32 +2218,32 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s 邀请您加入 %2$s (%3$s)。\n" +"%1$s 邀请你加入 %2$s (%3$s)。\n" "\n" -"%2$s 是一个能让您和您认识的或感兴趣的人保持联系的微博客服务。 \n" +"%2$s 是一个能让你和你认识的或感兴趣的人保持联系的微博客服务。 \n" "\n" -"您可以和您认识的人分享您的近况、想法或者您的网络生活。您也可以结交有共同兴趣" +"你可以和你认识的人分享你的近况、想法或者你的网络生活。你也可以结交有共同兴趣" "的新朋友。\n" "\n" "%1$s 说:\n" "\n" "%4$s\n" "\n" -"您可以在这里查阅%1$s在%2$s的资料页:\n" +"你可以在这里查看%1$s在%2$s的资料页:\n" "\n" "%5$s\n" "\n" -"如果您想试试这个服务,请点击下面的链接接受邀请。\n" +"如果你想试试这个服务,请点击下面的链接接受邀请。\n" "\n" "%6$s\n" "\n" -"如果您目前不愿意,请跳过这条信息。感谢您的耐心和时间。\n" +"如果你目前不愿意,请跳过这条信息。感谢你的耐心和时间。\n" "\n" "诚挚的感谢, %2$s\n" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "您必须登录才能加入小组。" +msgstr "你必须登录才能加入小组。" #: actions/joingroup.php:88 actions/leavegroup.php:88 msgid "No nickname or ID." @@ -2256,12 +2256,12 @@ msgstr "%1$s加入了%2$s小组" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." -msgstr "您必须登录才能离开小组。" +msgstr "你必须登录才能离开小组。" #. TRANS: Error text shown when trying to leave an existing group the user is not a member of. #: actions/leavegroup.php:100 lib/command.php:389 msgid "You are not a member of that group." -msgstr "您不是该群小组成员。" +msgstr "你不是该群小组成员。" #: actions/leavegroup.php:137 #, php-format @@ -2278,7 +2278,7 @@ msgstr "用户名或密码不正确。" #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." -msgstr "设置用户时出错。您可能没有被认证。" +msgstr "设置用户时出错。你可能没有被认证。" #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" @@ -2308,13 +2308,13 @@ msgstr "由于安全原因,修改设置前需要输入用户名和密码。" #: actions/login.php:292 msgid "Login with your username and password." -msgstr "用用户名和密码登录。" +msgstr "使用用户名和密码登录。" #: actions/login.php:295 #, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." -msgstr "没有账户?[注册](%%action.register%%) 一个新帐号。" +msgstr "没有帐号?[注册](%%action.register%%) 一个新帐号。" #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." @@ -2337,7 +2337,7 @@ msgstr "无法让%1$s成为%2$s小组的管理员。" #: actions/microsummary.php:69 msgid "No current status." -msgstr "没有当前状态。" +msgstr "没有当前消息。" #: actions/newapplication.php:52 msgid "New Application" @@ -2477,7 +2477,7 @@ msgstr "呼叫已发出!" #: actions/oauthappssettings.php:59 msgid "You must be logged in to list your applications." -msgstr "必须登录才能查看您的程序列表。" +msgstr "必须登录才能查看你的应用列表。" #: actions/oauthappssettings.php:74 msgid "OAuth applications" @@ -2485,12 +2485,12 @@ msgstr "OAuth 应用" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" -msgstr "您已经登记的程序。" +msgstr "你已经登记的程序。" #: actions/oauthappssettings.php:135 #, php-format msgid "You have not registered any applications yet." -msgstr "您还没登记任何程序。" +msgstr "你还没登记任何程序。" #: actions/oauthconnectionssettings.php:72 msgid "Connected applications" @@ -2498,11 +2498,11 @@ msgstr "关联的应用" #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." -msgstr "您已允许以下程序访问你的账户。" +msgstr "你已允许以下程序访问你的账户。" #: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." -msgstr "您不是那个应用的用户。" +msgstr "你不是那个应用的用户。" #: actions/oauthconnectionssettings.php:186 #, php-format @@ -2511,7 +2511,7 @@ msgstr "不能取消%s程序的访问。" #: actions/oauthconnectionssettings.php:198 msgid "You have not authorized any applications to use your account." -msgstr "您还没允许任何程序使用您的账户。" +msgstr "你还没允许任何程序使用你的账户。" #: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " @@ -2524,13 +2524,13 @@ msgstr "消息没有对应用户。" #: actions/oembed.php:87 actions/shownotice.php:175 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s在的%2$s上的消息" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') #: actions/oembed.php:159 #, php-format msgid "Content type %s not supported." -msgstr "%s文件类型不被支持。" +msgstr "%s内容类型不被支持。" #. TRANS: Error message displaying attachments. %s is the site's base URL. #: actions/oembed.php:163 @@ -2570,15 +2570,15 @@ msgstr "缩短 URL 使用" #: actions/othersettings.php:117 msgid "Automatic shortening service to use." -msgstr "要使用的自动缩短服务。" +msgstr "要使用的自动短网址服务。" #: actions/othersettings.php:122 msgid "View profile designs" -msgstr "查看个人页面设计" +msgstr "查看个人页面外观" #: actions/othersettings.php:123 msgid "Show or hide profile designs." -msgstr "显示或隐藏个人页面设计。" +msgstr "显示或隐藏个人页面外观。" #: actions/othersettings.php:153 msgid "URL shortening service is too long (max 50 chars)." @@ -2586,23 +2586,23 @@ msgstr "短网址服务过长(不能超过50个字符)。" #: actions/otp.php:69 msgid "No user ID specified." -msgstr "此ID没有相应用户。" +msgstr "没用指定用户 ID。" #: actions/otp.php:83 msgid "No login token specified." -msgstr "指定的登录令牌无效。" +msgstr "没有指定登录 token。" #: actions/otp.php:90 msgid "No login token requested." -msgstr "没有请求登录令牌。" +msgstr "没有请求的登录 token。" #: actions/otp.php:95 msgid "Invalid login token specified." -msgstr "指定的登录令牌无效。" +msgstr "指定的登录 token 无效。" #: actions/otp.php:104 msgid "Login token expired." -msgstr "登录令牌已过期。" +msgstr "登录 token 已过期。" #: actions/outbox.php:58 #, php-format @@ -2616,7 +2616,7 @@ 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" @@ -2624,7 +2624,7 @@ msgstr "修改密码" #: actions/passwordsettings.php:69 msgid "Change your password." -msgstr "修改您的密码" +msgstr "修改你的密码" #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 msgid "Password change" @@ -2649,7 +2649,7 @@ msgstr "密码确认" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" -msgstr "相同的密码" +msgstr "与上面相同的密码" #: actions/passwordsettings.php:117 msgid "Change" @@ -2669,7 +2669,7 @@ msgstr "旧密码不正确" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." -msgstr "保存用户时出错;不正确。" +msgstr "保存用户时出错;无效。" #: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." @@ -2818,7 +2818,7 @@ msgstr "使用 SSL" #: actions/pathsadminpanel.php:330 msgid "When to use SSL" -msgstr "使用 SSL 的时机" +msgstr "什么时候使用 SSL" #: actions/pathsadminpanel.php:335 msgid "SSL server" @@ -2871,7 +2871,7 @@ msgstr "个人设置" #: actions/profilesettings.php:71 msgid "" "You can update your personal profile info here so people know more about you." -msgstr "在这里更新个人信息,让大家对您了解得更多。" +msgstr "在这里更新个人信息,让大家对你了解得更多。" #: actions/profilesettings.php:99 msgid "Profile information" @@ -2895,16 +2895,16 @@ msgstr "主页" #: actions/profilesettings.php:117 actions/register.php:462 msgid "URL of your homepage, blog, or profile on another site" -msgstr "您的主页、博客或在其他网站的URL" +msgstr "你的主页、博客或在其他网站的URL" #: actions/profilesettings.php:122 actions/register.php:468 #, php-format msgid "Describe yourself and your interests in %d chars" -msgstr "用不超过%d个字符描述您自己和您的爱好" +msgstr "用不超过%d个字符描述你自己和你的兴趣" #: actions/profilesettings.php:125 actions/register.php:471 msgid "Describe yourself and your interests" -msgstr "描述您自己和您的爱好" +msgstr "描述你自己和你的兴趣" #: actions/profilesettings.php:127 actions/register.php:473 msgid "Bio" @@ -2919,7 +2919,7 @@ msgstr "位置" #: actions/profilesettings.php:134 actions/register.php:480 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "您的地理位置,格式类似\"城市,省份,国家\"" +msgstr "你的地理位置,格式类似\"城市,省份,国家\"" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" @@ -2934,7 +2934,7 @@ msgstr "标签" #: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "您的标签 (字母、数字、“-”、“. ”和“ _”), 以逗号或空格分隔" +msgstr "你的标签 (字母、数字、“-”、“. ”和“ _”), 以逗号或空格分隔" #: actions/profilesettings.php:151 msgid "Language" @@ -2950,7 +2950,7 @@ msgstr "时区" #: actions/profilesettings.php:162 msgid "What timezone are you normally in?" -msgstr "您一般处于哪个时区?" +msgstr "你一般处于哪个时区?" #: actions/profilesettings.php:167 msgid "" @@ -3097,7 +3097,7 @@ msgstr "标签云" #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "您已经登录了!" +msgstr "你已经登录了!" #: actions/recoverpassword.php:62 msgid "No such recovery code." @@ -3127,11 +3127,11 @@ msgstr "无法更新已确认的电子邮件。" 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 "如果您忘记或丢失了密码,您可以发送一个新的密码到您之前设置的邮箱中。" +msgstr "如果你忘记或丢失了密码,你可以发送一个新的密码到你之前设置的邮箱中。" #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "您的身份已被验证,请在下面输入新的密码。 " +msgstr "你的身份已被验证,请在下面输入新的密码。 " #: actions/recoverpassword.php:188 msgid "Password recovery" @@ -3143,7 +3143,7 @@ msgstr "昵称或电子邮件" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." -msgstr "您在此服务器的昵称,或注册邮箱。" +msgstr "你在此服务器的昵称,或登记的邮箱。" #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 msgid "Recover" @@ -3193,7 +3193,7 @@ msgstr "保存地址确认时出错。" msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." -msgstr "恢复密码的说明已被发送到您登记的电子邮箱中。" +msgstr "恢复密码的说明已被发送到你登记的电子邮箱中。" #: actions/recoverpassword.php:357 msgid "Unexpected password reset." @@ -3213,7 +3213,7 @@ msgstr "保存用户设置时出错。" #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." -msgstr "新密码已保存,您现在已登录。" +msgstr "新密码已保存,你现在已登录。" #: actions/register.php:92 actions/register.php:196 actions/register.php:412 msgid "Sorry, only invited people can register." @@ -3237,7 +3237,7 @@ msgstr "不允许注册。" #: actions/register.php:205 msgid "You can't register if you don't agree to the license." -msgstr "您必须同意许可协议才能注册。" +msgstr "你必须同意许可协议才能注册。" #: actions/register.php:219 msgid "Email address already exists." @@ -3252,7 +3252,7 @@ msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" -"您可以通过此表单建立一个新的账户。然后您就可以发布消息并与朋友和同事们保持联" +"你可以通过此表单建立一个新的账户。然后你就可以发布消息并与朋友和同事们保持联" "系。 " #: actions/register.php:432 @@ -3330,23 +3330,23 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"恭喜,%s!欢迎来到%%%%site.name%%%%。您可能想要……\n" +"恭喜,%s!欢迎来到%%%%site.name%%%%。你可能想要……\n" "\n" -"* 查看您的[资料页](%2$s) 并发布您的第一条消息.\n" +"* 查看你的[资料页](%2$s) 并发布你的第一条消息.\n" "* 添加 [Jabber/GTalk 地址](%%%%action.imsettings%%%%) 然后通过 IM 发布信" "息。\n" -"* [搜索](%%%%action.peoplesearch%%%%) 您认识的或和您有共同兴趣的朋友。 \n" -"* 更新您的 [资料页设置](%%%%action.profilesettings%%%%) 告诉大家更多关于您的" +"* [搜索](%%%%action.peoplesearch%%%%) 你认识的或和你有共同兴趣的朋友。 \n" +"* 更新你的 [资料页设置](%%%%action.profilesettings%%%%) 告诉大家更多关于你的" "情况。 \n" -"* 阅读 [在线文档](%%%%doc.help%%%%) 有的功能也许您还不熟悉。\n" +"* 阅读 [在线文档](%%%%doc.help%%%%) 有的功能也许你还不熟悉。\n" "\n" -"感谢您的注册,希望您喜欢这个服务。" +"感谢你的注册,希望你喜欢这个服务。" #: actions/register.php:607 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" -msgstr "(您将收到一封邮件,包含了如何确认邮件地址的说明。)" +msgstr "(你将收到一封邮件,包含了如何确认邮件地址的说明。)" #: actions/remotesubscribe.php:98 #, php-format @@ -3355,9 +3355,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%%)有账户,请" -"填入您的资料页 URL。" +"要关注用户或小组,你需要[登录](%%action.login%%),或[注册](%%action.register%" +"%) 一个新账户。如果你已经在另一个[兼容的微博客](%%doc.openmublog%%)有账户,请" +"填入你的资料页 URL。" #: actions/remotesubscribe.php:112 msgid "Remote subscribe" @@ -3381,7 +3381,7 @@ msgstr "资料页 URL" #: actions/remotesubscribe.php:134 msgid "URL of your profile on another compatible microblogging service" -msgstr "您在其他兼容的微博客服务的资料页 URL" +msgstr "你在其他兼容的微博客服务的资料页 URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 #: lib/userprofile.php:406 @@ -3398,7 +3398,7 @@ msgstr "不是有效的资料页 URL (没有YADIS 文档或定义了无效的 XR #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." -msgstr "这是一个本地用户!需要登录才能关注。" +msgstr "这是一个本地用户!登录才能关注。" #: actions/remotesubscribe.php:183 msgid "Couldn’t get a request token." @@ -3418,7 +3418,7 @@ msgstr "你不能重复自己的消息。" #: actions/repeat.php:90 msgid "You already repeated that notice." -msgstr "您已转发过了那个消息。" +msgstr "你已转发过了那个消息。" #: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" @@ -3432,7 +3432,7 @@ msgstr "已转发!" #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" -msgstr "%s 的回复" +msgstr "对 %s 的回复" #: actions/replies.php:128 #, php-format @@ -3467,7 +3467,7 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" -"您可以让其他用户参与对话,关注更多的人或者 [加入小组](%%action.groups%%)。" +"你可以让其他用户参与对话,关注更多的人或者 [加入小组](%%action.groups%%)。" #: actions/replies.php:206 #, php-format @@ -3475,21 +3475,21 @@ msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"您可以试着 [呼叫%1$s](../%2$s) 或者给他们 [发一些消息](%%%%action.newnotice%%" +"你可以试着 [呼叫%1$s](../%2$s) 或者给他们 [发一些消息](%%%%action.newnotice%%" "%%?status_textarea=%3$s)。" #: actions/repliesrss.php:72 #, php-format msgid "Replies to %1$s on %2$s!" -msgstr "对%s的回复,第%2$d页" +msgstr "在%2$s上对%1$s的回复!" #: actions/revokerole.php:75 msgid "You cannot revoke user roles on this site." -msgstr "您不能在这个网站移除用户角色。" +msgstr "你不能在这个网站移除用户角色。" #: actions/revokerole.php:82 msgid "User doesn't have this role." -msgstr "用户没有角色。" +msgstr "用户没有此权限。" #: actions/rsd.php:146 actions/version.php:159 msgid "StatusNet" @@ -3497,7 +3497,7 @@ msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." -msgstr "您不能在这个网站授予用户角色。" +msgstr "你不能在这个网站授予用户权限。" #: actions/sandbox.php:72 msgid "User is already sandboxed." @@ -3511,7 +3511,7 @@ msgstr "Sessions" #: actions/sessionsadminpanel.php:65 msgid "Session settings for this StatusNet site." -msgstr "这个 StatusNet 网站的设计设置" +msgstr "这个 StatusNet 网站的外观设置" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3536,7 +3536,7 @@ msgstr "保存访问设置" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能创建小组。" #: actions/showapplication.php:157 msgid "Application profile" @@ -3614,7 +3614,7 @@ msgstr "提示:我们支持HMAC-SHA1签名。我们不支持明文的签名方 #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "您确定要重置你的consumer key和secret吗?" +msgstr "你确定要重置你的consumer key和secret吗?" #: actions/showfavorites.php:79 #, php-format @@ -3645,7 +3645,7 @@ 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 @@ -3837,7 +3837,7 @@ msgstr "这是%1$s的时间线,但是%2$s还没有发布任何内容。" msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" -msgstr "最近看到了什么有趣的消息了么?您还没有发布消息呢,现在开始吧 :)" +msgstr "最近看到了什么有趣的消息了么?你还没有发布消息呢,现在开始吧 :)" #: actions/showstream.php:207 #, php-format @@ -3845,7 +3845,7 @@ msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"您可以试着呼叫%1$s或给他们 [发一些消息](%%%%action.newnotice%%%%?" +"你可以试着呼叫%1$s或给他们 [发一些消息](%%%%action.newnotice%%%%?" "status_textarea=%2$s)。" #: actions/showstream.php:243 @@ -3879,11 +3879,11 @@ msgstr "%s 的转发" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "您不能在这个站点移除用户角色。" +msgstr "你不能在这个站点上将用户禁言。" #: actions/silence.php:72 msgid "User is already silenced." -msgstr "用户已经静默。" +msgstr "用户已经被禁言。" #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" @@ -3895,7 +3895,7 @@ msgstr "网站名称长度必须大于零。" #: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." -msgstr "您必须有一个有效的 email 地址。" +msgstr "你必须有一个有效的 email 地址。" #: actions/siteadminpanel.php:159 #, php-format @@ -3920,7 +3920,7 @@ msgstr "网站名称" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "您的网站名称,例如\\\"您公司网站的微博\\\"" +msgstr "你的网站名称,例如\\\"你公司网站的微博\\\"" #: actions/siteadminpanel.php:229 msgid "Brought by" @@ -3944,7 +3944,7 @@ msgstr "网站的联系我们电子邮件地址" #: actions/siteadminpanel.php:245 msgid "Local" -msgstr "本地化" +msgstr "本地" #: actions/siteadminpanel.php:256 msgid "Default timezone" @@ -4020,7 +4020,7 @@ msgstr "SMS 设置" #: actions/smssettings.php:74 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "您可以通过 %%site.name%% 的电子邮件接收SMS短信。" +msgstr "你可以通过 %%site.name%% 的电子邮件接收SMS短信。" #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 @@ -4098,7 +4098,7 @@ msgstr "未选择运营商。" #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 msgid "That is already your phone number." -msgstr "您已登记此电话号码。" +msgstr "你已登记此电话号码。" #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 @@ -4111,7 +4111,7 @@ msgid "" "A confirmation code was sent to the phone number you added. Check your phone " "for the code and instructions on how to use it." msgstr "" -"验证码已被发送到您新增的电话号码。请检查您的电话,找到验证码并按要求使用它。" +"验证码已被发送到你新增的电话号码。请检查你的电话,找到验证码并按要求使用它。" #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 @@ -4152,7 +4152,7 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" -"电话的服务商。如果您的服务商支持通过电子邮件发送SMS短信,而这里尚未列出,请联" +"电话的服务商。如果你的服务商支持通过电子邮件发送SMS短信,而这里尚未列出,请联" "系 %s 以告知。" #. TRANS: Message given saving SMS phone number confirmation code without having provided one. @@ -4220,7 +4220,7 @@ msgstr "保存访问设置" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." -msgstr "您没有关注这个用户" +msgstr "你没有关注这个用户" #. TRANS: Exception thrown when a subscription could not be stored on the server. #: actions/subedit.php:83 classes/Subscription.php:136 @@ -4237,7 +4237,7 @@ msgstr "没有这个文件。" #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "您不能用这个操作关注一个 OMB 0.1 远程用户。" +msgstr "你不能用这个操作关注一个 OMB 0.1 远程用户。" #: actions/subscribe.php:145 msgid "Subscribed" @@ -4246,16 +4246,16 @@ msgstr "已关注" #: actions/subscribers.php:50 #, php-format msgid "%s subscribers" -msgstr "%s个关注者" +msgstr "%s的关注者" #: actions/subscribers.php:52 #, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%1$s个关注者,第%2$d页" +msgstr "%1$s的关注者,第%2$d页" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "这些用户关注了您的消息。" +msgstr "这些用户关注了你的消息。" #: actions/subscribers.php:67 #, php-format @@ -4266,7 +4266,7 @@ msgstr "这些用户关注了%s的消息。" msgid "" "You have no subscribers. Try subscribing to people you know and they might " "return the favor" -msgstr "还没有人关注您,尝试关注一些您认识的用户,他们或许会关注您" +msgstr "还没有人关注你,尝试关注一些你认识的用户,他们或许会关注你" #: actions/subscribers.php:110 #, php-format @@ -4285,16 +4285,16 @@ msgstr "" #: actions/subscriptions.php:52 #, php-format msgid "%s subscriptions" -msgstr "%s的关注" +msgstr "%s 关注的用户" #: actions/subscriptions.php:54 #, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "%1$s的关注,第%2$d页" +msgstr "%1$s 关注的用户,第%2$d页" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." -msgstr "这是您关注的用户。" +msgstr "这是你关注的用户。" #: actions/subscriptions.php:69 #, php-format @@ -4310,10 +4310,10 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" -"您现在还看不到其他人的消息,试着去关注一些您认识的人。试一下 [用户搜索](%%" -"action.peoplesearch%%),在我们的 [推荐用户](%%action.featured%%) 中找一些您感" -"兴趣的小组的用户。如果您是 [Twitter用户](%%action.twittersettings%%),您可以" -"自动关注您已经关注的用户。" +"你现在还看不到其他人的消息,试着去关注一些你认识的人。试一下 [用户搜索](%%" +"action.peoplesearch%%),在我们的 [推荐用户](%%action.featured%%) 中找一些你感" +"兴趣的小组的用户。如果你是 [Twitter用户](%%action.twittersettings%%),你可以" +"自动关注你已经关注的用户。" #: actions/subscriptions.php:128 actions/subscriptions.php:132 #, php-format @@ -4380,7 +4380,7 @@ msgstr "" #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." -msgstr "您只能给您关注或关注您的人添加标签。" +msgstr "你只能给你关注或关注你的人添加标签。" #: actions/tagother.php:200 msgid "Could not save tags." @@ -4388,7 +4388,7 @@ msgstr "无法保存标签。" #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "使用这个表单给您的关注者或您关注的用户添加标签。" +msgstr "使用这个表单给你的关注者或你关注的用户添加标签。" #: actions/tagrss.php:35 msgid "No such tag." @@ -4396,15 +4396,15 @@ msgstr "没有此标签。" #: actions/unblock.php:59 msgid "You haven't blocked that user." -msgstr "您未屏蔽该用户。" +msgstr "你未屏蔽该用户。" #: actions/unsandbox.php:72 msgid "User is not sandboxed." -msgstr "用户还没在沙盒中。" +msgstr "用户不在沙盒中。" #: actions/unsilence.php:72 msgid "User is not silenced." -msgstr "用户已经静默。" +msgstr "用户未被禁言。" #: actions/unsubscribe.php:77 msgid "No profile ID in request." @@ -4499,7 +4499,7 @@ msgid "" "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" -"请检查这些详细信息,确认希望关注此用户的消息。如果您不想关注,请点击\\\"拒绝" +"请检查这些详细信息,确认希望关注此用户的消息。如果你不想关注,请点击\\\"拒绝" "\\\"。" #: actions/userauthorization.php:196 actions/version.php:167 @@ -4537,7 +4537,7 @@ msgid "" "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -"已授权关注,但是没有回传 URL。请到网站查看如何授权关注。您的 subscription " +"已授权关注,但是没有回传 URL。请到网站查看如何授权关注。你的 subscription " "token 是:" #: actions/userauthorization.php:266 @@ -4588,23 +4588,23 @@ msgstr "头像 URL ‘%s’ 图像格式错误。" #: actions/userdesignsettings.php:76 lib/designsettings.php:65 msgid "Profile design" -msgstr "查看个人页面设计" +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 "通过背景图片和调色板自定义您的页面外观。" +msgstr "通过背景图片和调色板自定义你的页面外观。" #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "享受您的成果吧!" +msgstr "享受你的成果吧!" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 #, php-format msgid "%1$s groups, page %2$d" -msgstr "%1$s个小组,第%2$d页" +msgstr "%1$s的小组,第%2$d页" #: actions/usergroups.php:132 msgid "Search for more groups" @@ -4655,7 +4655,7 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" -"StatusNet 是一个免费软件,您可以在遵守自由软件基金会发布的 GNU Affero GPL 或" +"StatusNet 是一个免费软件,你可以在遵守自由软件基金会发布的 GNU Affero GPL 或" "第三版或以后的版本的情况下重新部署或者修改它," #: actions/version.php:176 @@ -4673,7 +4673,7 @@ msgstr "" msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." -msgstr "您应该在本程序中收到了一份 GNU Affero GPL 的副本,如果没有收到请看%s。" +msgstr "你应该在本程序中收到了一份 GNU Affero GPL 的副本,如果没有收到请看%s。" #: actions/version.php:191 msgid "Plugins" @@ -4707,21 +4707,21 @@ msgid "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." msgstr "" -"不能有文件大于%1$d字节,您上传的文件是%2$d字节。换一个小点的版本试一下。" +"不能有文件大于%1$d字节,你上传的文件是%2$d字节。换一个小点的版本试一下。" #. TRANS: Message given if an upload would exceed user quota. #. TRANS: %d (number) is the user quota in bytes. #: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." -msgstr "这么大的文件会超过您%d字节的用户配额。" +msgstr "这么大的文件会超过你%d字节的用户配额。" #. TRANS: Message given id an upload would exceed a user's monthly quota. #. TRANS: $d (number) is the monthly user quota in bytes. #: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "这么大的文件会超过您%d字节的每月配额。" +msgstr "这么大的文件会超过你%d字节的每月配额。" #. TRANS: Client exception thrown if a file upload does not have a valid name. #: classes/File.php:248 classes/File.php:263 @@ -4763,7 +4763,7 @@ msgstr "没有找到数据库名称或者 DSN。" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. #: classes/Message.php:46 msgid "You are banned from sending direct messages." -msgstr "您被禁止发送私信。" +msgstr "你被禁止发送私信。" #. TRANS: Message given when a message could not be stored on the server. #: classes/Message.php:63 @@ -4802,19 +4802,19 @@ msgstr "保存消息时出错。未知用户。" #: classes/Notice.php:276 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." -msgstr "您在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" +msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. #: classes/Notice.php:283 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." -msgstr "您在短时间里发布了过多的重复消息,请深呼吸,过几分钟再发消息。" +msgstr "你在短时间里发布了过多的重复消息,请深呼吸,过几分钟再发消息。" #. TRANS: Client exception thrown when a user tries to post while being banned. #: classes/Notice.php:291 msgid "You are banned from posting notices on this site." -msgstr "在这个网站您被禁止发布消息。" +msgstr "在这个网站你被禁止发布消息。" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. @@ -4866,7 +4866,7 @@ msgstr "无法保存标签。" #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. #: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." -msgstr "您被禁止添加关注。" +msgstr "你被禁止添加关注。" #. TRANS: Exception thrown when trying to subscribe while already subscribed. #: classes/Subscription.php:80 @@ -4928,7 +4928,7 @@ msgstr "无法保存本地小组信息。" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:109 msgid "Change your profile settings" -msgstr "修改您的个人信息" +msgstr "修改你的个人信息" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:116 @@ -4948,7 +4948,7 @@ msgstr "修改电子邮件" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:137 msgid "Design your profile" -msgstr "页面设计" +msgstr "设计你的个人页面外观" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:144 @@ -4992,7 +4992,7 @@ msgstr "个人" #: lib/action.php:460 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "修改您的 email 地址、头像、密码、资料" +msgstr "修改你的 email 地址、头像、密码、资料" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:465 @@ -5246,7 +5246,7 @@ msgstr "还不能处理嵌入式 Base64 内容。" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." -msgstr "您不能在这个站点授予用户角色。" +msgstr "你不能在这个站点上修改。" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. #: lib/adminpanelaction.php:110 @@ -5267,7 +5267,7 @@ msgstr "saveSettings() 尚未实现。" #. TRANS: the admin panel Design. #: lib/adminpanelaction.php:284 msgid "Unable to delete design setting." -msgstr "无法删除设计设置。" +msgstr "无法删除外观设置。" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:350 @@ -5283,13 +5283,13 @@ msgstr "网站" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:358 msgid "Design configuration" -msgstr "设计配置" +msgstr "外观配置" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:360 msgctxt "MENU" msgid "Design" -msgstr "设计" +msgstr "外观" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:366 @@ -5345,12 +5345,12 @@ msgstr "该应用的图标" #: lib/applicationeditform.php:209 #, php-format msgid "Describe your application in %d characters" -msgstr "用不超过%d个字符描述您的应用" +msgstr "用不超过%d个字符描述你的应用" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:213 msgid "Describe your application" -msgstr "描述您的应用" +msgstr "描述你的应用" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:224 @@ -5585,7 +5585,7 @@ msgstr "关于:%s" msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." -msgstr "%s是一个远程的用户;您只能给同一个服务器上的用户发送私信。" +msgstr "%s是一个远程的用户;你只能给同一个服务器上的用户发送私信。" #. TRANS: Message given if content is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. @@ -5616,7 +5616,7 @@ msgstr "转发消息时出错。" #: lib/command.php:592 #, php-format msgid "Notice too long - maximum is %1$d characters, you sent %2$d." -msgstr "消息过长 - 最长%1$d个字符,您发送的是%2$d。" +msgstr "消息过长 - 最长%1$d个字符,你发送的是%2$d。" #. TRANS: Text shown having sent a reply to a notice successfully. #. TRANS: %s is the nickname of the user of the notice the reply was sent to. @@ -5708,7 +5708,7 @@ msgstr "已取消关注%s。" #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. #: lib/command.php:831 msgid "You are not subscribed to anyone." -msgstr "您没有关注任何人。" +msgstr "你没有关注任何人。" #. TRANS: Text shown after requesting other users a user is subscribed to. #. TRANS: This message support plural forms. This message is followed by a @@ -5716,13 +5716,13 @@ msgstr "您没有关注任何人。" #: lib/command.php:836 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "您已关注了这个用户:" +msgstr[0] "你已关注了这个用户:" #. TRANS: Text shown after requesting other users that are subscribed to a user #. TRANS: (followers) without having any subscribers. #: lib/command.php:858 msgid "No one is subscribed to you." -msgstr "没有人关注您。" +msgstr "没有人关注你。" #. TRANS: Text shown after requesting other users that are subscribed to a user (followers). #. TRANS: This message support plural forms. This message is followed by a @@ -5730,13 +5730,13 @@ msgstr "没有人关注您。" #: lib/command.php:863 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "这个用户正在关注您:" +msgstr[0] "这个用户正在关注你:" #. TRANS: Text shown after requesting groups a user is subscribed to without having #. TRANS: any group subscriptions. #: lib/command.php:885 msgid "You are not a member of any groups." -msgstr "您不是该小组成员。" +msgstr "你还未成为任何一个小组的成员。" #. TRANS: Text shown after requesting groups a user is subscribed to. #. TRANS: This message support plural forms. This message is followed by a @@ -5744,7 +5744,7 @@ msgstr "您不是该小组成员。" #: lib/command.php:890 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "您是该小组成员:" +msgstr[0] "你是该小组成员:" #: lib/command.php:905 msgid "" @@ -5792,14 +5792,14 @@ msgstr "" "off - 关闭提醒\n" "help - 显示此帮助\n" "follow <昵称> - 关注该用户\n" -"groups - 列出您加入的小组\n" -"subscriptions - 列出您关注的用户\n" -"subscribers - 列出您的关注者\n" +"groups - 列出你加入的小组\n" +"subscriptions - 列出你关注的用户\n" +"subscribers - 列出你的关注者\n" "leave <昵称> - 取消关注该用户\n" "d <昵称> <文字> - 给该用户发送私信\n" "get <昵称> - 获取该用户的最后一条消息\n" "whois <昵称> - 获取该用户的个人信息\n" -"lose <昵称> - 强行取消该用户对您的关注\n" +"lose <昵称> - 强行取消该用户对你的关注\n" "fav <昵称> - 将该用户最后一条消息加为'收藏'\n" "fav #<消息id> - 将该id的消息加为'收藏'\n" "repeat #<消息id> - 转发该id的消息\n" @@ -5809,7 +5809,7 @@ msgstr "" "join <小组> - 加入小组\n" "login - 获取网页登录的地址\n" "drop <小组> - 离开小组\n" -"stats - 获取您的统计\n" +"stats - 获取你的统计\n" "stop - 和'off'相同\n" "quit - 和'off'相同\n" "sub <昵称> - 和'follow'相同\n" @@ -5836,7 +5836,7 @@ msgstr "我在以下位置查找了配置文件:" #: lib/common.php:138 msgid "You may wish to run the installer to fix this." -msgstr "或许您想运行安装程序来解决这个问题。" +msgstr "或许你想运行安装程序来解决这个问题。" #: lib/common.php:139 msgid "Go to the installer." @@ -5873,11 +5873,11 @@ msgstr "上传文件" #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "您可以上传您的个人页面背景。文件最大 2MB。" +msgstr "你可以上传你的个人页面背景。文件最大 2MB。" #: lib/designsettings.php:418 msgid "Design defaults restored." -msgstr "默认设计已恢复。" +msgstr "默认外观已恢复。" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" @@ -5885,7 +5885,7 @@ msgstr "取消收藏这个消息" #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" -msgstr "收藏这个消息" +msgstr "收藏" #: lib/favorform.php:140 msgid "Favor" @@ -5993,7 +5993,7 @@ msgstr "添加或编辑 %s 图标" #: lib/groupnav.php:120 #, php-format msgid "Add or edit %s design" -msgstr "添加或编辑%s设计" +msgstr "添加或编辑%s外观" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" @@ -6011,7 +6011,7 @@ msgstr "这个组所发布的消息的标签" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" -msgstr "这个页面不提供您想要的媒体类型" +msgstr "这个页面不提供你想要的媒体类型" #: lib/imagefile.php:72 msgid "Unsupported image file format." @@ -6100,22 +6100,22 @@ msgid "" msgstr "" "嗨, %s。\n" "\n" -"刚刚有人在%s填写了您的电子邮件地址。\n" +"刚刚有人在%s填写了你的电子邮件地址。\n" "\n" -"如果是您的操作并且您想完成您的确认,请使用下面的URL:\n" +"如果是你的操作并且你想完成你的确认,请使用下面的URL:\n" "\n" "%s\n" "\n" -"如果您不知道这封邮件是怎么回事,忽略掉这封邮件就好。\n" +"如果你不知道这封邮件是怎么回事,忽略掉这封邮件就好。\n" "\n" -"谢谢您的宝贵时间,\n" +"谢谢你的宝贵时间,\n" "%s\n" #. TRANS: Subject of new-subscriber notification e-mail #: lib/mail.php:243 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s 开始关注您的 %2$s 信息。" +msgstr "%1$s 开始关注你在 %2$s 的消息。" #: lib/mail.php:248 #, php-format @@ -6123,7 +6123,7 @@ msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -"如果您认为此帐户正被人恶意使用,您可以将其从您的关注者中屏蔽掉并到 %s 报告给" +"如果你认为此帐户正被人恶意使用,你可以将其从你的关注者中屏蔽掉并到 %s 报告给" "网站的管理员为他们在发垃圾信息。" #. TRANS: Main body of new-subscriber notification e-mail @@ -6141,7 +6141,7 @@ msgid "" "----\n" "Change your email address or notification options at %8$s\n" msgstr "" -"%1$s开始关注您在%2$s的消息。\n" +"%1$s开始关注你在%2$s的消息。\n" "\n" "\t%3$s\n" "\n" @@ -6150,7 +6150,7 @@ msgstr "" "%7$s.\n" "\n" "----\n" -"在%8$s更改您的 email 地址或通知选项\n" +"在%8$s更改你的 email 地址或通知选项\n" #. TRANS: Profile info line in new-subscriber notification e-mail #: lib/mail.php:274 @@ -6177,7 +6177,7 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" -"您的 %1$s 发布用地址已更新。\n" +"你的 %1$s 发布用地址已更新。\n" "\n" "发送邮件到 %2$s 来发布新消息。\n" "\n" @@ -6202,13 +6202,13 @@ msgstr "SMS 验证" #: lib/mail.php:463 #, php-format msgid "%s: confirm you own this phone number with this code:" -msgstr "%s:通过此代码证明这是您的手机:" +msgstr "%s:通过此代码证明这是你的手机:" #. TRANS: Subject for 'nudge' notification email #: lib/mail.php:484 #, php-format msgid "You've been nudged by %s" -msgstr "%s呼叫您" +msgstr "你被%s呼叫了" #. TRANS: Body for 'nudge' notification email #: lib/mail.php:489 @@ -6226,9 +6226,9 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" -"%1$s (%2$s) 想知道您这几天在做什么并邀请您来发布一些消息。\n" +"%1$s (%2$s) 想知道你这几天在做什么并邀请你来发布一些消息。\n" "\n" -"那就让他/她知道您的动态吧 :)\n" +"那就让他/她知道你的动态吧 :)\n" "\n" "%3$s\n" "\n" @@ -6262,13 +6262,13 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" -"%1$s (%2$s) 给您发了一条私信“:\n" +"%1$s (%2$s) 给你发了一条私信“:\n" "\n" "------------------------------------------------------\n" "%3$s\n" "------------------------------------------------------\n" "\n" -"您可以到这里回复这条私信:\n" +"你可以到这里回复这条私信:\n" "\n" "%4$s\n" "\n" @@ -6281,7 +6281,7 @@ msgstr "" #: lib/mail.php:589 #, php-format msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) 收藏了您的消息" +msgstr "%s (@%s) 收藏了你的消息" #. TRANS: Body for favorite notification email #: lib/mail.php:592 @@ -6304,17 +6304,17 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" -"%1$s (@%7$s) 刚刚在 %2$s 收藏了一条您的消息。\n" +"%1$s (@%7$s) 刚刚在 %2$s 收藏了一条你的消息。\n" "\n" -"您的这条消息的URL:\n" +"你的这条消息的URL:\n" "\n" "%3$s\n" "\n" -"您的这条消息的内容是:\n" +"你的这条消息的内容是:\n" "\n" "%4$s\n" "\n" -"您可以到这里查看所有 %1$s 收藏的消息:\n" +"你可以到这里查看所有 %1$s 收藏的消息:\n" "\n" "%5$s\n" "\n" @@ -6336,7 +6336,7 @@ msgstr "" #: lib/mail.php:657 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) 给您发送了一条消息" +msgstr "%s (@%s) 给你发送了一条消息" #. TRANS: Body of @-reply notification e-mail. #: lib/mail.php:660 @@ -6365,7 +6365,7 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" -"%1$s (@%9$s) 刚刚在%2$s通过(@回复)发送了一条消息给您。\n" +"%1$s (@%9$s) 刚刚在%2$s通过(@回复)发送了一条消息给你。\n" "\n" "消息的地址是:\n" "\n" @@ -6375,18 +6375,18 @@ msgstr "" "\n" "\t%4$s\n" "\n" -"%5$s您可以到这里回复:\n" +"%5$s你可以到这里回复:\n" "\n" "\t%6$s\n" "\n" -"所有给您的 @回复 消息:\n" +"所有给你的 @回复 消息:\n" "\n" "%7$s\n" "\n" "真切的问候,\n" "%2$s\n" "\n" -"P.S. 您可以到这里关掉这些邮件提醒:%8$s\n" +"P.S. 你可以到这里关掉这些邮件提醒:%8$s\n" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." @@ -6397,8 +6397,8 @@ 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:228 lib/noticelist.php:506 msgid "from" @@ -6414,7 +6414,7 @@ msgstr "不是已注册用户。" #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." -msgstr "抱歉,这个不是您的收信电子邮件地址。" +msgstr "抱歉,这个不是你的收信电子邮件地址。" #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." @@ -6427,7 +6427,7 @@ msgstr "不支持的信息格式:%s" #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." -msgstr "保存您的文件时数据库出现了一个错误。请重试。" +msgstr "保存你的文件时数据库出现了一个错误。请重试。" #: lib/mediafile.php:142 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." @@ -6523,7 +6523,7 @@ msgstr "不要分享我的地理位置。" msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" -msgstr "抱歉,获取您的地理位置时间过长,请稍候重试" +msgstr "抱歉,获取你的地理位置时间过长,请稍候重试" #. TRANS: Used in coordinates as abbreviation of north #: lib/noticelist.php:436 @@ -6564,11 +6564,11 @@ msgstr "查看对话" #: lib/noticelist.php:603 msgid "Repeated by" -msgstr "被转发" +msgstr "转发来自" #: lib/noticelist.php:630 msgid "Reply to this notice" -msgstr "回复这个消息" +msgstr "回复" #: lib/noticelist.php:631 msgid "Reply" @@ -6580,7 +6580,7 @@ msgstr "消息已转发" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "呼叫这个用户" +msgstr "呼叫用户" #: lib/nudgeform.php:128 msgid "Nudge" @@ -6632,7 +6632,7 @@ msgstr "收件箱" #: lib/personalgroupnav.php:126 msgid "Your incoming messages" -msgstr "您收到的私信" +msgstr "你收到的私信" #: lib/personalgroupnav.php:130 msgid "Outbox" @@ -6640,7 +6640,7 @@ msgstr "发件箱" #: lib/personalgroupnav.php:131 msgid "Your sent messages" -msgstr "您发送的私信" +msgstr "你发送的私信" #: lib/personaltagcloudsection.php:56 #, php-format @@ -6722,7 +6722,7 @@ msgstr "是" #: lib/repeatform.php:132 msgid "Repeat this notice" -msgstr "转发这个消息" +msgstr "转发" #: lib/revokeroleform.php:91 #, php-format @@ -6816,12 +6816,12 @@ msgstr "邀请朋友和同事来%s一起和你交流" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" -msgstr "用户自我标签的用户标签云" +msgstr "自己添加标签的用户标签云" #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "被标签的用户标签云" +msgstr "被添加标签的用户标签云" #: lib/tagcloudsection.php:56 msgid "None" From f2fd8b36f4a932f50770c84d769297bcfc1c1483 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Thu, 9 Sep 2010 20:12:46 +0200 Subject: [PATCH 94/94] Localisation updates from http://translatewiki.net * fixes several po -> mo issues in 'cs' and 'ka' also reported at https://bugzilla.wikimedia.org/show_bug.cgi?id=25120 * removed some unneeded leading spaces in 'cs' --- locale/cs/LC_MESSAGES/statusnet.po | 134 ++++++++++++++--------------- locale/ka/LC_MESSAGES/statusnet.po | 11 +-- locale/statusnet.pot | 2 +- 3 files changed, 70 insertions(+), 77 deletions(-) diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 301bd40ce2..e5baa2ff50 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-08 22:33+0000\n" -"PO-Revision-Date: 2010-09-09 17:36:23+0000\n" +"PO-Revision-Date: 2010-09-09 18:08:09+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -3385,19 +3385,19 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" "Gratulujeme, %1$s! A Vítejte v %%%%site.name%%%%. Odtud možná budete " -"chtít ... \n" +"chtít ...\n" "\n" -" * Jít na [profil](%2$s) a poslat první zprávu. \n" -" * Přidat [Jabber / GTalk adresu](%%%%action.imsetting %%%%) abyste mohli " -"zasílat oznámení prostřednictvím okamžitých zpráv (IM). \n" -" * [Hledat lidi](%%%%action.peoplesearch%%%%), které znáte, nebo kteří " -"sdílejí vaše zájmy. \n" -" * Aktualizací [nastavení profilu](%%%%action.profilesettings%%%%) o vás " -"více říci ostatním. \n" -" * Pročíst si [online nápovědu](%%%%doc.help%%%%) pro objevení funkcí které " -"jste možná přehlédli. \n" +"* Jít na [profil](%2$s) a poslat první zprávu.\n" +"* Přidat [Jabber / GTalk adresu](%%%%action.imsetting %%%%) abyste mohli " +"zasílat oznámení prostřednictvím okamžitých zpráv (IM).\n" +"* [Hledat lidi](%%%%action.peoplesearch%%%%), které znáte, nebo kteří " +"sdílejí vaše zájmy.\n" +"* Aktualizací [nastavení profilu](%%%%action.profilesettings%%%%) o vás více " +"říci ostatním.\n" +"* Pročíst si [online nápovědu](%%%%doc.help%%%%) pro objevení funkcí které " +"jste možná přehlédli.\n" "\n" -" Díky za registraci a doufáme, že se vám používání této služby bude líbít." +"Díky za registraci a doufáme, že se vám používání této služby bude líbít." #: actions/register.php:607 msgid "" @@ -5902,45 +5902,44 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" -"Příkazy: \n" -" on - zapnout oznámení \n" -" off - vypnout oznámení \n" -" help - zobrazí tuto nápovědu \n" -" follow - Přihlásit se k uživatel \n" -" groups - seznam skupin, ke kterým jste připojen\n" -" subscriptions - seznam lidí, které sledujete \n" -" subscribers - seznam osob, které vás sledují \n" -" leave - Odhlásit se od uživatele \n" -" d - Přímá zpráva uživateli \n" -" get - Dostanete poslední upozornění od uživatele \n" -" whois - Získat informace o profilu uživatele \n" -" lose - Donutit uživatele přestat vás sledovat \n" -" fav - Přidejte uživatelovo poslední oznámení jako 'Oblíbené' \n" -" fav # - Přidat upozornění s daným id jako 'Oblíbené' \n" -" repeat # - Opakovat oznámení s daným id \n" -" repeat - Opakovat poslední oznámení od uživatele \n" -" reply # - Odpověď na oznámení s daným id \n" -" reply - Odpověď na poslední oznámení od uživatele \n" -" join - Připojit se ke skupině \n" -" login - Získat odkaz pro přihlášení k webovému rozhraní \n" -" drop - Opustit skupinu \n" -" stats - získejte Vaše statistiky \n" -" stop - stejné jako 'off' \n" -" quit - stejné jako 'off' \n" -" sub - Stejné jako 'follow' \n" -" unsub - Stejné jako 'leave' \n" -" last - Stejné jako 'get' \n" -" on - Dosud neimplementován. \n" -" off - Dosud neimplementován. \n" -" nudge - Připomenout uživateli aby něco poslal. \n" -" invite - Dosud neimplementován. \n" -" track - Dosud neimplementován. \n" -" untrack -Dosud neimplementován. \n" -" track off - Dosud neimplementován. \n" -" untrack all - Dosud neimplementován. \n" -" tracks - Dosud neimplementován. \n" -" tracking - Dosud neimplementován. \n" -" " +"Příkazy:\n" +"on - zapnout oznámení\n" +"off - vypnout oznámení\n" +"help - zobrazí tuto nápovědu\n" +"follow - Přihlásit se k uživatel\n" +"groups - seznam skupin, ke kterým jste připojen\n" +"subscriptions - seznam lidí, které sledujete\n" +"subscribers - seznam osob, které vás sledují\n" +"leave - Odhlásit se od uživatele\n" +"d - Přímá zpráva uživateli\n" +"get - Dostanete poslední upozornění od uživatele\n" +"whois - Získat informace o profilu uživatele\n" +"lose - Donutit uživatele přestat vás sledovat\n" +"fav - Přidejte uživatelovo poslední oznámení jako 'Oblíbené'\n" +"fav # - Přidat upozornění s daným id jako 'Oblíbené'\n" +"repeat # - Opakovat oznámení s daným id\n" +"repeat - Opakovat poslední oznámení od uživatele\n" +"reply # - Odpověď na oznámení s daným id\n" +"reply - Odpověď na poslední oznámení od uživatele\n" +"join - Připojit se ke skupině\n" +"login - Získat odkaz pro přihlášení k webovému rozhraní\n" +"drop - Opustit skupinu\n" +"stats - získejte Vaše statistiky\n" +"stop - stejné jako 'off'\n" +"quit - stejné jako 'off'\n" +"sub - Stejné jako 'follow'\n" +"unsub - Stejné jako 'leave'\n" +"last - Stejné jako 'get'\n" +"on - Dosud neimplementován.\n" +"off - Dosud neimplementován.\n" +"nudge - Připomenout uživateli aby něco poslal.\n" +"invite - Dosud neimplementován.\n" +"track - Dosud neimplementován.\n" +"untrack -Dosud neimplementován.\n" +"track off - Dosud neimplementován.\n" +"untrack all - Dosud neimplementován.\n" +"tracks - Dosud neimplementován.\n" +"tracking - Dosud neimplementován.\n" #: lib/common.php:135 msgid "No configuration file found. " @@ -6218,20 +6217,19 @@ msgid "" "Thanks for your time, \n" "%s\n" msgstr "" -"Ahoj,% s. \n" +"Ahoj,% s.\n" "\n" -" Někdo právě vložil tuto e-mailovou adresu na %s. \n" +"Někdo právě vložil tuto e-mailovou adresu na %s.\n" "\n" -" Pokud jsi to byl ty, a chceš potvrdit své zadání, použij níže uvedenou " +"Pokud jsi to byl ty, a chceš potvrdit své zadání, použij níže uvedenou " "adresu:\n" "\n" -" %s\n" +"%s\n" "\n" -" Pokud ne, tak tuto zprávu ignoruj. \n" +"Pokud ne, tak tuto zprávu ignoruj.\n" "\n" -" Díky za tvůj čas, \n" -" %s\n" -" " +"Díky za tvůj čas,\n" +"%s\n" #. TRANS: Subject of new-subscriber notification e-mail #: lib/mail.php:243 @@ -6384,20 +6382,20 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" -"%1$s (%2$s) vám poslal soukromou zprávu: \n" +"%1$s (%2$s) vám poslal soukromou zprávu:\n" "\n" -" -------------------------------------------------- ---- \n" -"%3$s \n" -" -------------------------------------------------- ---- \n" +"-------------------------------------------------- ----\n" +"%3$s\n" +"-------------------------------------------------- ----\n" "\n" -" Můžete odpovědět zde: \n" +"Můžete odpovědět zde:\n" "\n" -" %4$s \n" +"%4$s\n" "\n" -" Neodpovídejte na tento e-mail, nedostane se k nim. \n" +"Neodpovídejte na tento e-mail, nedostane se k nim.\n" "\n" -" S pozdravem \n" -" %5$s \n" +"S pozdravem\n" +"%5$s\n" #. TRANS: Subject for favorite notification email #: lib/mail.php:589 diff --git a/locale/ka/LC_MESSAGES/statusnet.po b/locale/ka/LC_MESSAGES/statusnet.po index 5e952641e2..f51cb3c27d 100644 --- a/locale/ka/LC_MESSAGES/statusnet.po +++ b/locale/ka/LC_MESSAGES/statusnet.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-09 17:35+0000\n" -"PO-Revision-Date: 2010-09-09 17:37:30+0000\n" +"POT-Creation-Date: 2010-09-09 18:07+0000\n" +"PO-Revision-Date: 2010-09-09 18:09:12+0000\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: MediaWiki 1.17alpha (r72348); Translate extension (2010-08-20)\n" @@ -5506,8 +5506,6 @@ msgstr "" "\n" "გმადლობთ რომ დრო დაგვითმეთ,\n" "%s\n" -"\\�\n" -"�" #. TRANS: Subject of new-subscriber notification e-mail #: lib/mail.php:243 @@ -5636,7 +5634,6 @@ msgstr "" "\n" "პატივისცემით,\n" "%4$s\n" -"\\�" #. TRANS: Subject for direct-message notification email #: lib/mail.php:536 @@ -5667,7 +5664,7 @@ msgstr "" "\n" "-------------------------------------------------------\n" "%3$s\n" -"------------------------------------------------------�-\n" +"-------------------------------------------------------\n" "\n" "თქვენ შეგიძლიათ უპასუხოთ ამ შეტყობინებას აქ:\n" "\n" @@ -5677,7 +5674,6 @@ msgstr "" "\n" "პატივისცემით,\n" "%5$s\n" -"\\�" #. TRANS: Subject for favorite notification email #: lib/mail.php:589 @@ -5723,7 +5719,6 @@ msgstr "" "\n" "პატივისცემით,\n" "%6$s\n" -"\\�" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. #: lib/mail.php:651 diff --git a/locale/statusnet.pot b/locale/statusnet.pot index 38771ecbe8..4656cdd1fc 100644 --- a/locale/statusnet.pot +++ b/locale/statusnet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-09 17:35+0000\n" +"POT-Creation-Date: 2010-09-09 18:07+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"