diff --git a/actions/tag.php b/actions/tag.php index c0201d1a83..132d765171 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -109,11 +109,37 @@ class TagAction extends StreamAction { $tw[$tags->tag] = $tags->weight; $sum += $tags->weight; } - - foreach ($tw as $tag => $weight) { - $this->show_tag($tag, $weight, $weight/$sum); - } - + common_element_end('ul'); + } + + common_pagination($page > 1, $cnt > TAGS_PER_PAGE, + $page, 'tags'); + } + + private static function show_tag($tag) { + common_element_start('li', array('class' => 'notice_single')); + common_element_start('a', array( + 'class' => 'nickname', + 'href' => common_local_url('tag', array('tag' => $tag->tag)), + 'title' => sprintf(_("Notices tagged with %s"), $tag->tag))); + common_text('#' . $tag->tag); + common_element_end('a'); + common_text(sprintf(_('%s Notices recently tagged with %s'), $tag->num, $tag->tag)); + + $notice = Notice::staticGet($tag->last_notice_id); + if ($notice) { + $noticeurl = common_local_url('shownotice', array('notice' => $notice->id)); + common_element_start('p', 'time'); + common_text(_('Last message posted: ')); + common_element('a', array('class' => 'permalink', + 'href' => $noticeurl, + 'title' => common_exact_date($notice->created)), + common_date_string($notice->created)); + + common_text(_(' by ')); + $profile = $notice->getProfile(); + common_element('a', array('href' => $profile->profileurl), + $profile->nickname); common_element_end('p'); } } diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index a1e1545f8f..b7d4c7e7e5 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -23,29 +23,29 @@ require_once(INSTALLDIR.'/lib/twitterapi.php'); /* XXX: Please don't freak out about all the ugly comments in this file. * They are mostly in here for reference while I work on the - * API. I'll fix things up later to make them look better later. -- Zach + * API. I'll fix things up later to make them look better later. -- Zach */ class TwitapistatusesAction extends TwitterapiAction { - + function is_readonly() { - + static $write_methods = array( 'update', 'destroy'); - - $cmdtext = explode('.', $this->arg('method')); - - if (in_array($cmdtext[0], $write_methods)) { + + $cmdtext = explode('.', $this->arg('method')); + + if (in_array($cmdtext[0], $write_methods)) { return false; } - + return true; } - + function public_timeline($args, $apidata) { parent::handle($args); - + $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); + $siteserver = common_config('site', 'server'); $title = sprintf(_("%s public timeline"), $sitename); $id = "tag:$siteserver:Statuses"; $link = common_root_url(); @@ -60,22 +60,22 @@ class TwitapistatusesAction extends TwitterapiAction { // of notices by users who have custom avatars, so fix this SQL -- Zach # XXX: sub-optimal performance - + $notice->is_local = 1; $notice->orderBy('created DESC, notice.id DESC'); $notice->limit($MAX_PUBSTATUSES); $cnt = $notice->find(); - + if ($cnt > 0) { - + switch($apidata['content-type']) { - case 'xml': + case 'xml': $this->show_xml_timeline($notice); break; case 'rss': $this->show_rss_timeline($notice, $title, $id, $link, $subtitle); break; - case 'atom': + case 'atom': $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); break; case 'json': @@ -85,14 +85,14 @@ class TwitapistatusesAction extends TwitterapiAction { common_user_error("API method not found!", $code = 404); break; } - + } else { common_server_error('Couldn\'t find any statuses.', $code = 503); } - + exit(); - } - + } + function show_xml_timeline($notice) { $this->init_document('xml'); @@ -100,50 +100,50 @@ class TwitapistatusesAction extends TwitterapiAction { if (is_array($notice)) { foreach ($notice as $n) { - $twitter_status = $this->twitter_status_array($n); - $this->show_twitter_xml_status($twitter_status); + $twitter_status = $this->twitter_status_array($n); + $this->show_twitter_xml_status($twitter_status); } } else { while ($notice->fetch()) { - $twitter_status = $this->twitter_status_array($notice); + $twitter_status = $this->twitter_status_array($notice); $this->show_twitter_xml_status($twitter_status); } } - + common_element_end('statuses'); $this->end_document('xml'); - } - + } + function show_rss_timeline($notice, $title, $id, $link, $subtitle) { - + $this->init_document('rss'); - + common_element_start('channel'); common_element('title', NULL, $title); common_element('link', NULL, $link); common_element('description', NULL, $subtitle); common_element('language', NULL, 'en-us'); common_element('ttl', NULL, '40'); - - + + if (is_array($notice)) { foreach ($notice as $n) { - $entry = $this->twitter_rss_entry_array($n); + $entry = $this->twitter_rss_entry_array($n); $this->show_twitter_rss_item($entry); - } + } } else { while ($notice->fetch()) { - $entry = $this->twitter_rss_entry_array($notice); + $entry = $this->twitter_rss_entry_array($notice); $this->show_twitter_rss_item($entry); } } - common_element_end('channel'); - $this->end_twitter_rss(); + common_element_end('channel'); + $this->end_twitter_rss(); } function show_atom_timeline($notice, $title, $id, $link, $subtitle=NULL) { - + $this->init_document('atom'); common_element('title', NULL, $title); @@ -153,61 +153,61 @@ class TwitapistatusesAction extends TwitterapiAction { if (is_array($notice)) { foreach ($notice as $n) { - $entry = $this->twitter_rss_entry_array($n); + $entry = $this->twitter_rss_entry_array($n); $this->show_twitter_atom_entry($entry); - } + } } else { while ($notice->fetch()) { - $entry = $this->twitter_rss_entry_array($notice); + $entry = $this->twitter_rss_entry_array($notice); $this->show_twitter_atom_entry($entry); } } - + $this->end_document('atom'); - + } function show_json_timeline($notice) { - + $this->init_document('json'); - + $statuses = array(); - + if (is_array($notice)) { foreach ($notice as $n) { $twitter_status = $this->twitter_status_array($n); array_push($statuses, $twitter_status); - } + } } else { while ($notice->fetch()) { $twitter_status = $this->twitter_status_array($notice); array_push($statuses, $twitter_status); } - } - - $this->show_twitter_json_statuses($statuses); - + } + + $this->show_twitter_json_statuses($statuses); + $this->end_document('json'); } - + /* - Returns the 20 most recent statuses posted by the authenticating user and that user's friends. - This is the equivalent of /home on the Web. - + Returns the 20 most recent statuses posted by the authenticating user and that user's friends. + This is the equivalent of /home on the Web. + URL: http://server/api/statuses/friends_timeline.format - + Parameters: - * since. Optional. Narrows the returned results to just those statuses created after the specified - HTTP-formatted date. The same behavior is available by setting an If-Modified-Since header in - your HTTP request. + * since. Optional. Narrows the returned results to just those statuses created after the specified + HTTP-formatted date. The same behavior is available by setting an If-Modified-Since header in + your HTTP request. Ex: http://server/api/statuses/friends_timeline.rss?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT - * since_id. Optional. Returns only statuses with an ID greater than (that is, more recent than) + * since_id. Optional. Returns only statuses with an ID greater than (that is, more recent than) the specified ID. Ex: http://server/api/statuses/friends_timeline.xml?since_id=12345 * count. Optional. Specifies the number of statuses to retrieve. May not be greater than 200. - Ex: http://server/api/statuses/friends_timeline.xml?count=5 + Ex: http://server/api/statuses/friends_timeline.xml?count=5 * page. Optional. Ex: http://server/api/statuses/friends_timeline.rss?page=3 - + Formats: xml, json, rss, atom */ function friends_timeline($args, $apidata) { @@ -217,7 +217,7 @@ class TwitapistatusesAction extends TwitterapiAction { $since_id = $this->arg('since_id'); $count = $this->arg('count'); $page = $this->arg('page'); - + if (!$page) { $page = 1; } @@ -228,25 +228,25 @@ class TwitapistatusesAction extends TwitterapiAction { $user = $this->get_user($id, $apidata); $profile = $user->getProfile(); - + $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - + $siteserver = common_config('site', 'server'); + $title = sprintf(_("%s and friends"), $user->nickname); $id = "tag:$siteserver:friends:".$user->id; $link = common_local_url('all', array('nickname' => $user->nickname)); - $subtitle = sprintf(_("Updates from %s and friends on %s!"), $user->nickname, $sitename); + $subtitle = sprintf(_('Updates from %1$s and friends on %2$s!'), $user->nickname, $sitename); $notice = $user->noticesWithFriends(($page-1)*20, $count); - + switch($apidata['content-type']) { - case 'xml': + case 'xml': $this->show_xml_timeline($notice); break; case 'rss': $this->show_rss_timeline($notice, $title, $id, $link, $subtitle); break; - case 'atom': + case 'atom': $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); break; case 'json': @@ -255,7 +255,7 @@ class TwitapistatusesAction extends TwitterapiAction { default: common_user_error("API method not found!", $code = 404); } - + exit(); } @@ -272,34 +272,34 @@ class TwitapistatusesAction extends TwitterapiAction { * id. Optional. Specifies the ID or screen name of the user for whom to return the friends_timeline. Ex: http://server/api/statuses/user_timeline/12345.xml or - http://server/api/statuses/user_timeline/bob.json. + http://server/api/statuses/user_timeline/bob.json. * count. Optional. Specifies the number of statuses to retrieve. May not be greater than 200. Ex: - http://server/api/statuses/user_timeline.xml?count=5 + http://server/api/statuses/user_timeline.xml?count=5 * since. Optional. Narrows the returned results to just those statuses created after the specified HTTP-formatted date. The same behavior is available by setting an If-Modified-Since header in your HTTP request. Ex: - http://server/api/statuses/user_timeline.rss?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT + http://server/api/statuses/user_timeline.rss?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT * since_id. Optional. Returns only statuses with an ID greater than (that is, more recent than) the specified ID. Ex: http://server/api/statuses/user_timeline.xml?since_id=12345 * page. Optional. Ex: http://server/api/statuses/friends_timeline.rss?page=3 */ function user_timeline($args, $apidata) { parent::handle($args); - + $user = null; - + // function was called with an argument /statuses/user_timeline/api_arg.format if (isset($apidata['api_arg'])) { - + if (is_numeric($apidata['api_arg'])) { $user = User::staticGet($apidata['api_arg']); } else { $nickname = common_canonical_nickname($apidata['api_arg']); $user = User::staticGet('nickname', $nickname); - } + } } else { - + // if no user was specified, then we'll use the authenticated user $user = $apidata['user']; } @@ -316,11 +316,11 @@ class TwitapistatusesAction extends TwitterapiAction { common_server_error(_('User has no profile.')); exit(); } - + $count = $this->arg('count'); $since = $this->arg('since'); $since_id = $this->arg('since_id'); - + if (!$page) { $page = 1; } @@ -328,36 +328,36 @@ class TwitapistatusesAction extends TwitterapiAction { if (!$count) { $count = 20; } - + $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - + $siteserver = common_config('site', 'server'); + $title = sprintf(_("%s timeline"), $user->nickname); $id = "tag:$siteserver:user:".$user->id; $link = common_local_url('showstream', array('nickname' => $user->nickname)); - $subtitle = sprintf(_("Updates from %s on %s!"), $user->nickname, $sitename); + $subtitle = sprintf(_('Updates from %1$s on %2$s!'), $user->nickname, $sitename); $notice = new Notice(); $notice->profile_id = $user->id; - + # XXX: since # XXX: since_id - + $notice->orderBy('created DESC, notice.id DESC'); $notice->limit((($page-1)*20), $count); $cnt = $notice->find(); - + switch($apidata['content-type']) { - case 'xml': + case 'xml': $this->show_xml_timeline($notice); break; case 'rss': $this->show_rss_timeline($notice, $title, $id, $link, $subtitle); break; - case 'atom': + case 'atom': $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); break; case 'json': @@ -366,41 +366,46 @@ class TwitapistatusesAction extends TwitterapiAction { default: common_user_error("API method not found!", $code = 404); } - + exit(); } - + function update($args, $apidata) { parent::handle($args); - + $user = $apidata['user']; + + $this->is_readonly(); - $status = $this->trimmed('status'); - $source = $this->trimmed('source'); + + $notice = DB_DataObject::factory('notice'); - if (!$source) { - $source = 'api'; - } - - if (!$status) { - + $notice->profile_id = $user->id; # user id *is* profile id + $notice->created = DB_DataObject_Cast::dateTime(); + $notice->content = $this->trimmed('status'); + + if (!$notice->content) { + // XXX: Note: In this case, Twitter simply returns '200 OK' - // No error is given, but the status is not posted to the - // user's timeline. Seems bad. Shouldn't we throw an + // No error is given, but the status is not posted to the + // user's timeline. Seems bad. Shouldn't we throw an // errror? -- Zach exit(); - + } else if (strlen($status) > 140) { - // XXX: Twitter truncates anything over 140, flags the status + // XXX: Twitter truncates anything over 140, flags the status // as "truncated." Sending this error may screw up some clients // that assume Twitter will truncate for them. Should we just // truncate too? -- Zach - header('HTTP/1.1 406 Not Acceptable'); + header('HTTP/1.1 406 Not Acceptable'); print "That's too long. Max notice size is 140 chars.\n"; exit(); } + + $notice->rendered = common_render_content($notice->content, $notice); + $notice->is_local = 1; $notice = Notice::saveNew($user->id, $status, $source); @@ -411,7 +416,7 @@ class TwitapistatusesAction extends TwitterapiAction { common_broadcast_notice($notice); - // FIXME: Bad Hack + // FIXME: Bad Hack // I should be able to just sent this notice off for display, // but $notice->created does not contain a string at this // point and I don't know how to convert it to one here. So @@ -422,16 +427,16 @@ class TwitapistatusesAction extends TwitterapiAction { exit(); } - + /* Returns the 20 most recent @replies (status updates prefixed with @username) for the authenticating user. URL: http://server/api/statuses/replies.format - + Formats: xml, json, rss, atom Parameters: - * page. Optional. Retrieves the 20 next most recent replies. Ex: http://server/api/statuses/replies.xml?page=3 + * page. Optional. Retrieves the 20 next most recent replies. Ex: http://server/api/statuses/replies.xml?page=3 * since. Optional. Narrows the returned results to just those replies created after the specified HTTP-formatted date. The same behavior is available by setting an If-Modified-Since header in your HTTP request. Ex: http://server/api/statuses/replies.xml?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT @@ -451,13 +456,13 @@ class TwitapistatusesAction extends TwitterapiAction { $profile = $user->getProfile(); $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); + $siteserver = common_config('site', 'server'); - $title = sprintf(_("%s / Updates replying to %s"), $sitename, $user->nickname); + $title = sprintf(_('%1$s / Updates replying to %2$s'), $sitename, $user->nickname); $id = "tag:$siteserver:replies:".$user->id; $link = common_local_url('replies', array('nickname' => $user->nickname)); $subtitle = "gar"; - $subtitle = sprintf(_("%s updates that reply to updates from %s / %s."), $sitename, $user->nickname, $profile->getBestName()); + $subtitle = sprintf(_('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $user->nickname, $profile->getBestName()); if (!$page) { $page = 1; @@ -480,7 +485,7 @@ class TwitapistatusesAction extends TwitterapiAction { $cnt = $reply->find(); $notices = array(); - + if ($cnt) { while ($reply->fetch()) { $notice = new Notice(); @@ -494,13 +499,13 @@ class TwitapistatusesAction extends TwitterapiAction { } switch($apidata['content-type']) { - case 'xml': + case 'xml': $this->show_xml_timeline($notices); break; case 'rss': $this->show_rss_timeline($notices, $title, $id, $link, $subtitle); break; - case 'atom': + case 'atom': $this->show_atom_timeline($notices, $title, $id, $link, $subtitle); break; case 'json': @@ -516,43 +521,43 @@ class TwitapistatusesAction extends TwitterapiAction { } - - + + /* Destroys the status specified by the required ID parameter. The authenticating user must be the author of the specified status. - + URL: http://server/api/statuses/destroy/id.format - + Formats: xml, json - + Parameters: - + * id. Required. The ID of the status to destroy. Ex: http://server/api/statuses/destroy/12345.json or http://server/api/statuses/destroy/23456.xml - + */ function destroy($args, $apidata) { parent::handle($args); common_server_error("API method under construction.", $code=501); } - + # User Methods - + /* Returns up to 100 of the authenticating user's friends who have most recently updated, each with current status inline. It's also possible to request another user's recent friends list via the id parameter below. - + URL: http://server/api/statuses/friends.format - + Formats: xml, json - + Parameters: - + * id. Optional. The ID or screen name of the user for whom to request a list of friends. Ex: - http://server/api/statuses/friends/12345.json - or + http://server/api/statuses/friends/12345.json + or http://server/api/statuses/friends/bob.xml * page. Optional. Retrieves the next 100 friends. Ex: http://server/api/statuses/friends.xml?page=2 * lite. Optional. Prevents the inline inclusion of current status. Must be set to a value of true. Ex: @@ -565,21 +570,21 @@ class TwitapistatusesAction extends TwitterapiAction { parent::handle($args); return $this->subscriptions($apidata, 'subscribed', 'subscriber'); } - + /* Returns the authenticating user's followers, each with current status inline. They are ordered by the order in which they joined Twitter (this is going to be changed). - + URL: http://server/api/statuses/followers.format Formats: xml, json - Parameters: + Parameters: * id. Optional. The ID or screen name of the user for whom to request a list of followers. Ex: - http://server/api/statuses/followers/12345.json - or + http://server/api/statuses/followers/12345.json + or http://server/api/statuses/followers/bob.xml - * page. Optional. Retrieves the next 100 followers. Ex: http://server/api/statuses/followers.xml?page=2 + * page. Optional. Retrieves the next 100 followers. Ex: http://server/api/statuses/followers.xml?page=2 * lite. Optional. Prevents the inline inclusion of current status. Must be set to a value of true. Ex: http://server/api/statuses/followers.xml?lite=true */ @@ -590,30 +595,30 @@ class TwitapistatusesAction extends TwitterapiAction { } function subscriptions($apidata, $other_attr, $user_attr) { - + $user = $this->get_subs_user($apidata); - + # XXX: id # XXX: lite - + $page = $this->trimmed('page'); - + if (!$page || !is_numeric($page)) { $page = 1; } - + $profile = $user->getProfile(); - + if (!$profile) { common_server_error(_('User has no profile.')); return; } - + $sub = new Subscription(); $sub->$user_attr = $profile->id; $sub->orderBy('created DESC'); $sub->limit(($page-1)*100, 100); - + $others = array(); if ($sub->find()) { @@ -623,9 +628,9 @@ class TwitapistatusesAction extends TwitterapiAction { } else { // user has no followers } - + $type = $apidata['content-type']; - + $this->init_document($type); $this->show_profiles($others, $type); $this->end_document($type); @@ -633,18 +638,18 @@ class TwitapistatusesAction extends TwitterapiAction { } function get_subs_user($apidata) { - + // function was called with an argument /statuses/user_timeline/api_arg.format if (isset($apidata['api_arg'])) { - + if (is_numeric($apidata['api_arg'])) { $user = User::staticGet($apidata['api_arg']); } else { $nickname = common_canonical_nickname($apidata['api_arg']); $user = User::staticGet('nickname', $nickname); - } + } } else { - + // if no user was specified, then we'll use the authenticated user $user = $apidata['user']; } @@ -654,10 +659,10 @@ class TwitapistatusesAction extends TwitterapiAction { // honestly! This is what Twitter does, I swear --Zach $user = $apidata['user']; } - + return $user; } - + function show_profiles($profiles, $type) { switch ($type) { case 'xml': @@ -679,10 +684,10 @@ class TwitapistatusesAction extends TwitterapiAction { exit(); } } - + /* - Returns a list of the users currently featured on the site with their current statuses inline. - URL: http://server/api/statuses/featured.format + Returns a list of the users currently featured on the site with their current statuses inline. + URL: http://server/api/statuses/featured.format Formats: xml, json */ diff --git a/lib/util.php b/lib/util.php index 9033d7d1ac..7e1e8f7c28 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1455,4 +1455,4 @@ function common_canonical_sms($sms) { # strip non-digits preg_replace('/\D/', '', $sms); return $sms; -} \ No newline at end of file +} diff --git a/locale/laconica.pot b/locale/laconica.pot index b2ca55743c..b5d680d5f4 100644 --- a/locale/laconica.pot +++ b/locale/laconica.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-07-22 00:34+1200\n" +"POT-Creation-Date: 2008-07-29 20:02+1200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,17 +25,27 @@ msgstr "" msgid " by " msgstr "" -#: ../actions/finishopenidlogin.php:82 ../actions/register.php:239 +#: ../actions/finishopenidlogin.php:82 ../actions/register.php:255 msgid "" " except this private data: password, email address, IM address, phone number." msgstr "" -#: ../lib/mail.php:112 +#: ../actions/twitapistatuses.php:469 +#, php-format +msgid "%1$s / Updates replying to %2$s" +msgstr "" + +#: ../actions/tag.php:127 +#, php-format +msgid "%1$s Notices recently tagged with %2$s" +msgstr "" + +#: ../lib/mail.php:120 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: ../lib/mail.php:114 +#: ../lib/mail.php:122 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -46,71 +56,66 @@ msgid "" "%4$s.\n" msgstr "" +#: ../actions/twitapistatuses.php:473 +#, php-format +msgid "%1$s updates that reply to updates from %2$s / %3$s." +msgstr "" + #: ../actions/shownotice.php:45 #, php-format msgid "%1$s's status on %2$s" msgstr "" -#: ../actions/twitapistatuses.php:465 -#, php-format -msgid "%s / Updates replying to %s" -msgstr "" - -#: ../actions/tag.php:127 -#, php-format -msgid "%s Notices recently tagged with %s" -msgstr "" - #: ../actions/publicrss.php:60 #, php-format msgid "%s Public Stream" msgstr "" -#: ../actions/all.php:47 ../actions/allrss.php:70 -#: ../actions/twitapistatuses.php:222 ../lib/stream.php:49 +#: ../actions/all.php:47 ../actions/allrss.php:60 +#: ../actions/twitapistatuses.php:235 ../lib/stream.php:51 #, php-format msgid "%s and friends" msgstr "" -#: ../actions/twitapistatuses.php:35 +#: ../actions/twitapistatuses.php:49 #, php-format msgid "%s public timeline" msgstr "" -#: ../actions/twitapistatuses.php:336 +#: ../lib/mail.php:202 +#, php-format +msgid "%s status" +msgstr "" + +#: ../actions/twitapistatuses.php:335 #, php-format msgid "%s timeline" msgstr "" -#: ../actions/twitapistatuses.php:38 +#: ../actions/twitapistatuses.php:52 #, php-format msgid "%s updates from everyone!" msgstr "" -#: ../actions/twitapistatuses.php:469 -#, php-format -msgid "%s updates that reply to updates from %s / %s." -msgstr "" - -#: ../actions/register.php:261 +#: ../actions/register.php:277 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" -#: ../lib/util.php:252 +#: ../lib/util.php:244 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: ../lib/util.php:254 +#: ../lib/util.php:246 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: ../lib/util.php:269 +#: ../lib/util.php:261 msgid ". Contributors should be attributed by full name or nickname." msgstr "" @@ -118,7 +123,7 @@ msgstr "" msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" -#: ../actions/register.php:205 +#: ../actions/register.php:221 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" @@ -130,7 +135,7 @@ msgstr "" msgid "6 or more characters, and don't forget it!" msgstr "" -#: ../actions/register.php:207 +#: ../actions/register.php:223 msgid "6 or more characters. Required." msgstr "" @@ -141,22 +146,28 @@ msgid "" "s for sending messages to you." msgstr "" -#: ../actions/emailsettings.php:185 +#: ../actions/emailsettings.php:213 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 "" -#: ../lib/util.php:316 +#: ../actions/smssettings.php:216 +msgid "" +"A confirmation code was sent to the phone number you added. Check your inbox " +"(and spam box!) for the code and instructions on how to use it." +msgstr "" + +#: ../lib/util.php:310 msgid "About" msgstr "" -#: ../actions/userauthorization.php:118 +#: ../actions/userauthorization.php:119 msgid "Accept" msgstr "" #: ../actions/emailsettings.php:62 ../actions/imsettings.php:63 -#: ../actions/openidsettings.php:57 +#: ../actions/openidsettings.php:57 ../actions/smssettings.php:71 msgid "Add" msgstr "" @@ -165,10 +176,11 @@ msgid "Add OpenID" msgstr "" #: ../actions/emailsettings.php:38 ../actions/imsettings.php:39 +#: ../actions/smssettings.php:39 msgid "Address" msgstr "" -#: ../actions/showstream.php:271 +#: ../actions/showstream.php:273 msgid "All subscriptions" msgstr "" @@ -182,31 +194,32 @@ msgstr "" msgid "All updates matching search term \"%s\"" msgstr "" -#: ../actions/finishopenidlogin.php:29 ../actions/login.php:27 -#: ../actions/openidlogin.php:29 ../actions/register.php:28 +#: ../actions/finishopenidlogin.php:29 ../actions/login.php:31 +#: ../actions/openidlogin.php:29 ../actions/register.php:30 msgid "Already logged in." msgstr "" -#: ../actions/subscribe.php:48 +#: ../actions/subscribe.php:49 msgid "Already subscribed!." msgstr "" -#: ../actions/twitapifriendships.php:42 -msgid "Already subscribed." -msgstr "" - #: ../actions/deletenotice.php:54 msgid "Are you sure you want to delete this notice?" msgstr "" -#: ../actions/userauthorization.php:76 +#: ../actions/userauthorization.php:77 msgid "Authorize subscription" msgstr "" -#: ../actions/login.php:100 ../actions/register.php:226 +#: ../actions/login.php:104 ../actions/register.php:242 msgid "Automatically login in the future; not for shared computers!" msgstr "" +#: ../actions/profilesettings.php:65 +msgid "" +"Automatically subscribe to whoever subscribes to me (best for non-humans)" +msgstr "" + #: ../actions/avatar.php:32 msgid "Avatar" msgstr "" @@ -228,16 +241,20 @@ msgid "" "a message with further instructions." msgstr "" -#: ../lib/util.php:1278 +#: ../actions/smssettings.php:58 +msgid "Awaiting confirmation on this phone number." +msgstr "" + +#: ../lib/util.php:1290 msgid "Before »" msgstr "" -#: ../actions/profilesettings.php:49 ../actions/register.php:218 +#: ../actions/profilesettings.php:49 ../actions/register.php:234 msgid "Bio" msgstr "" -#: ../actions/profilesettings.php:97 ../actions/register.php:76 -#: ../actions/updateprofile.php:102 +#: ../actions/profilesettings.php:101 ../actions/register.php:78 +#: ../actions/updateprofile.php:103 msgid "Bio is too long (max 140 chars)." msgstr "" @@ -245,7 +262,7 @@ msgstr "" msgid "Can't delete this notice." msgstr "" -#: ../actions/updateprofile.php:118 +#: ../actions/updateprofile.php:119 #, php-format msgid "Can't read avatar URL '%s'" msgstr "" @@ -255,6 +272,7 @@ msgid "Can't save new password." msgstr "" #: ../actions/emailsettings.php:57 ../actions/imsettings.php:58 +#: ../actions/smssettings.php:62 msgid "Cancel" msgstr "" @@ -266,7 +284,7 @@ msgstr "" msgid "Cannot normalize that Jabber ID" msgstr "" -#: ../actions/emailsettings.php:153 +#: ../actions/emailsettings.php:181 msgid "Cannot normalize that email address" msgstr "" @@ -279,23 +297,28 @@ msgid "Change password" msgstr "" #: ../actions/password.php:43 ../actions/recoverpassword.php:166 -#: ../actions/register.php:208 +#: ../actions/register.php:224 ../actions/smssettings.php:65 msgid "Confirm" msgstr "" -#: ../actions/confirmaddress.php:84 +#: ../actions/confirmaddress.php:86 msgid "Confirm Address" msgstr "" -#: ../actions/emailsettings.php:210 ../actions/imsettings.php:222 +#: ../actions/emailsettings.php:238 ../actions/imsettings.php:222 +#: ../actions/smssettings.php:245 msgid "Confirmation cancelled." msgstr "" +#: ../actions/smssettings.php:63 +msgid "Confirmation code" +msgstr "" + #: ../actions/confirmaddress.php:38 msgid "Confirmation code not found." msgstr "" -#: ../actions/register.php:250 +#: ../actions/register.php:266 #, php-format msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " @@ -322,7 +345,7 @@ msgstr "" msgid "Connect existing account" msgstr "" -#: ../lib/util.php:324 +#: ../lib/util.php:318 msgid "Contact" msgstr "" @@ -331,37 +354,41 @@ msgstr "" msgid "Could not create OpenID form: %s" msgstr "" +#: ../actions/twitapifriendships.php:48 +msgid "Could not follow user: User not found." +msgstr "" + #: ../lib/openid.php:160 #, php-format msgid "Could not redirect to server: %s" msgstr "" -#: ../actions/updateprofile.php:161 +#: ../actions/updateprofile.php:162 msgid "Could not save avatar info" msgstr "" -#: ../actions/updateprofile.php:154 +#: ../actions/updateprofile.php:155 msgid "Could not save new profile info" msgstr "" -#: ../actions/twitapifriendships.php:58 -msgid "Could not subscribe" +#: ../actions/subscribe.php:62 +msgid "Could not subscribe other to you." +msgstr "" + +#: ../actions/subscribe.php:54 +msgid "Could not subscribe." msgstr "" #: ../actions/finishremotesubscribe.php:99 msgid "Couldn't convert request tokens to access tokens." msgstr "" -#: ../actions/subscribe.php:59 -msgid "Couldn't create subscription." -msgstr "" - -#: ../actions/confirmaddress.php:78 ../actions/emailsettings.php:206 -#: ../actions/imsettings.php:218 +#: ../actions/confirmaddress.php:80 ../actions/emailsettings.php:234 +#: ../actions/imsettings.php:218 ../actions/smssettings.php:241 msgid "Couldn't delete email confirmation." msgstr "" -#: ../actions/unsubscribe.php:56 +#: ../actions/unsubscribe.php:57 msgid "Couldn't delete subscription." msgstr "" @@ -369,7 +396,8 @@ msgstr "" msgid "Couldn't get a request token." msgstr "" -#: ../actions/emailsettings.php:177 ../actions/imsettings.php:187 +#: ../actions/emailsettings.php:205 ../actions/imsettings.php:187 +#: ../actions/smssettings.php:206 msgid "Couldn't insert confirmation code." msgstr "" @@ -377,13 +405,22 @@ msgstr "" msgid "Couldn't insert new subscription." msgstr "" -#: ../actions/profilesettings.php:160 ../actions/twitapiaccount.php:78 +#: ../actions/profilesettings.php:181 ../actions/twitapiaccount.php:92 msgid "Couldn't save profile." msgstr "" -#: ../actions/confirmaddress.php:70 ../actions/emailsettings.php:128 -#: ../actions/emailsettings.php:231 ../actions/imsettings.php:138 -#: ../actions/imsettings.php:243 ../actions/profilesettings.php:137 +#: ../actions/profilesettings.php:158 +msgid "Couldn't update user for autosubscribe." +msgstr "" + +#: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294 +msgid "Couldn't update user record." +msgstr "" + +#: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156 +#: ../actions/emailsettings.php:259 ../actions/imsettings.php:138 +#: ../actions/imsettings.php:243 ../actions/profilesettings.php:141 +#: ../actions/smssettings.php:157 ../actions/smssettings.php:269 msgid "Couldn't update user." msgstr "" @@ -407,20 +444,24 @@ msgstr "" msgid "Current confirmed Jabber/GTalk address." msgstr "" +#: ../actions/smssettings.php:46 +msgid "Current confirmed SMS-enabled phone number." +msgstr "" + #: ../actions/emailsettings.php:44 msgid "Current confirmed email address." msgstr "" -#: ../actions/showstream.php:354 +#: ../actions/showstream.php:356 msgid "Currently" msgstr "" -#: ../classes/Notice.php:70 +#: ../classes/Notice.php:72 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: ../lib/util.php:1027 +#: ../lib/util.php:1033 #, php-format msgid "DB error inserting reply: %s" msgstr "" @@ -429,11 +470,11 @@ msgstr "" msgid "Delete notice" msgstr "" -#: ../actions/profilesettings.php:51 ../actions/register.php:220 +#: ../actions/profilesettings.php:51 ../actions/register.php:236 msgid "Describe yourself and your interests in 140 chars" msgstr "" -#: ../actions/register.php:210 +#: ../actions/register.php:226 msgid "Email" msgstr "" @@ -445,11 +486,11 @@ msgstr "" msgid "Email Settings" msgstr "" -#: ../actions/register.php:67 +#: ../actions/register.php:69 msgid "Email address already exists." msgstr "" -#: ../lib/mail.php:82 +#: ../lib/mail.php:90 msgid "Email address confirmation" msgstr "" @@ -461,7 +502,11 @@ msgstr "" msgid "Enter a nickname or email address." msgstr "" -#: ../actions/userauthorization.php:136 +#: ../actions/smssettings.php:64 +msgid "Enter the code you received on your phone." +msgstr "" + +#: ../actions/userauthorization.php:137 msgid "Error authorizing token" msgstr "" @@ -481,7 +526,7 @@ msgstr "" msgid "Error inserting new profile" msgstr "" -#: ../actions/postnotice.php:88 +#: ../actions/postnotice.php:89 msgid "Error inserting notice" msgstr "" @@ -493,7 +538,7 @@ msgstr "" msgid "Error saving address confirmation." msgstr "" -#: ../actions/userauthorization.php:139 +#: ../actions/userauthorization.php:140 msgid "Error saving remote profile" msgstr "" @@ -509,8 +554,8 @@ msgstr "" msgid "Error saving user; invalid." msgstr "" -#: ../actions/login.php:43 ../actions/login.php:69 -#: ../actions/recoverpassword.php:268 ../actions/register.php:90 +#: ../actions/login.php:47 ../actions/login.php:73 +#: ../actions/recoverpassword.php:268 ../actions/register.php:92 msgid "Error setting user." msgstr "" @@ -530,7 +575,7 @@ msgstr "" msgid "Existing nickname" msgstr "" -#: ../lib/util.php:318 +#: ../lib/util.php:312 msgid "FAQ" msgstr "" @@ -538,7 +583,7 @@ msgstr "" msgid "Failed updating avatar." msgstr "" -#: ../actions/all.php:61 ../actions/allrss.php:74 +#: ../actions/all.php:61 ../actions/allrss.php:64 #, php-format msgid "Feed for friends of %s" msgstr "" @@ -553,45 +598,49 @@ msgstr "" msgid "Feed for tag %s" msgstr "" -#: ../lib/searchaction.php:101 +#: ../lib/searchaction.php:105 msgid "Find content of notices" msgstr "" -#: ../lib/searchaction.php:97 +#: ../lib/searchaction.php:101 msgid "Find people on this site" msgstr "" -#: ../actions/login.php:118 +#: ../actions/login.php:122 msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" -#: ../actions/profilesettings.php:44 ../actions/register.php:212 +#: ../actions/profilesettings.php:44 ../actions/register.php:228 msgid "Full name" msgstr "" -#: ../actions/profilesettings.php:94 ../actions/register.php:73 -#: ../actions/updateprofile.php:92 +#: ../actions/profilesettings.php:98 ../actions/register.php:75 +#: ../actions/updateprofile.php:93 msgid "Full name is too long (max 255 chars)." msgstr "" -#: ../lib/util.php:299 +#: ../lib/util.php:291 msgid "Help" msgstr "" -#: ../lib/util.php:293 +#: ../lib/util.php:285 msgid "Home" msgstr "" -#: ../actions/profilesettings.php:46 ../actions/register.php:215 +#: ../actions/profilesettings.php:46 ../actions/register.php:231 msgid "Homepage" msgstr "" -#: ../actions/profilesettings.php:91 ../actions/register.php:70 +#: ../actions/profilesettings.php:95 ../actions/register.php:72 msgid "Homepage is not a valid URL." msgstr "" +#: ../actions/emailsettings.php:91 +msgid "I want to post notices by email." +msgstr "" + #: ../actions/imsettings.php:60 msgid "IM Address" msgstr "" @@ -618,11 +667,19 @@ msgid "" "email address you have stored in your account." msgstr "" +#: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 +msgid "Incoming email" +msgstr "" + +#: ../actions/emailsettings.php:283 +msgid "Incoming email address removed." +msgstr "" + #: ../actions/password.php:69 msgid "Incorrect old password" msgstr "" -#: ../actions/login.php:63 +#: ../actions/login.php:67 msgid "Incorrect username or password." msgstr "" @@ -632,17 +689,17 @@ msgid "" "address registered to your account." msgstr "" -#: ../actions/updateprofile.php:113 +#: ../actions/updateprofile.php:114 #, php-format msgid "Invalid avatar URL '%s'" msgstr "" -#: ../actions/updateprofile.php:97 +#: ../actions/updateprofile.php:98 #, php-format msgid "Invalid homepage '%s'" msgstr "" -#: ../actions/updateprofile.php:81 +#: ../actions/updateprofile.php:82 #, php-format msgid "Invalid license URL '%s'" msgstr "" @@ -659,7 +716,7 @@ msgstr "" msgid "Invalid notice url" msgstr "" -#: ../actions/updateprofile.php:86 +#: ../actions/updateprofile.php:87 #, php-format msgid "Invalid profile URL '%s'." msgstr "" @@ -676,12 +733,12 @@ msgstr "" msgid "Invalid size." msgstr "" -#: ../actions/finishopenidlogin.php:264 ../actions/register.php:85 -#: ../actions/register.php:101 +#: ../actions/finishopenidlogin.php:264 ../actions/register.php:87 +#: ../actions/register.php:103 msgid "Invalid username or password." msgstr "" -#: ../lib/util.php:256 +#: ../lib/util.php:248 #, php-format msgid "" "It runs the [Laconica](http://laconi.ca/) microblogging software, version %" @@ -700,11 +757,11 @@ msgid "" "add %s to your buddy list in your IM client or on GTalk." msgstr "" -#: ../actions/profilesettings.php:56 +#: ../actions/profilesettings.php:57 msgid "Language" msgstr "" -#: ../actions/profilesettings.php:109 +#: ../actions/profilesettings.php:113 msgid "Language is too long (max 50 chars)." msgstr "" @@ -712,17 +769,17 @@ msgstr "" msgid "Last message posted: " msgstr "" -#: ../actions/profilesettings.php:52 ../actions/register.php:221 +#: ../actions/profilesettings.php:52 ../actions/register.php:237 msgid "Location" msgstr "" -#: ../actions/profilesettings.php:100 ../actions/register.php:79 -#: ../actions/updateprofile.php:107 +#: ../actions/profilesettings.php:104 ../actions/register.php:81 +#: ../actions/updateprofile.php:108 msgid "Location is too long (max 255 chars)." msgstr "" -#: ../actions/login.php:93 ../actions/login.php:102 -#: ../actions/openidlogin.php:68 ../lib/util.php:306 +#: ../actions/login.php:97 ../actions/login.php:106 +#: ../actions/openidlogin.php:68 ../lib/util.php:298 msgid "Login" msgstr "" @@ -731,7 +788,7 @@ msgstr "" msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "" -#: ../actions/login.php:122 +#: ../actions/login.php:126 #, php-format msgid "" "Login with your username and password. Don't have a username yet? [Register]" @@ -739,24 +796,28 @@ msgid "" "%). " msgstr "" -#: ../lib/util.php:304 +#: ../lib/util.php:296 msgid "Logout" msgstr "" -#: ../actions/register.php:214 +#: ../actions/register.php:230 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: ../actions/login.php:106 +#: ../actions/login.php:110 msgid "Lost or forgotten password?" msgstr "" +#: ../actions/emailsettings.php:80 ../actions/smssettings.php:89 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "" + #: ../actions/emailsettings.php:27 #, php-format msgid "Manage how you get email from %%site.name%%." msgstr "" -#: ../actions/showstream.php:298 +#: ../actions/showstream.php:300 msgid "Member since" msgstr "" @@ -765,15 +826,35 @@ msgstr "" msgid "Microblog by %s" msgstr "" -#: ../actions/finishopenidlogin.php:79 ../actions/register.php:236 +#: ../actions/smssettings.php:304 +#, php-format +msgid "" +"Mobile carrier for your phone. If you know a carrier that accepts SMS over " +"email but isn't listed here, send email to let us know at %s." +msgstr "" + +#: ../actions/finishopenidlogin.php:79 ../actions/register.php:252 msgid "My text and files are available under " msgstr "" +#: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 +msgid "New" +msgstr "" + +#: ../lib/mail.php:140 +#, php-format +msgid "New email address for posting to %s" +msgstr "" + +#: ../actions/emailsettings.php:297 +msgid "New incoming email address added." +msgstr "" + #: ../actions/finishopenidlogin.php:71 msgid "New nickname" msgstr "" -#: ../actions/newnotice.php:101 +#: ../actions/newnotice.php:102 msgid "New notice" msgstr "" @@ -785,18 +866,18 @@ msgstr "" msgid "New password successfully saved. You are now logged in." msgstr "" -#: ../actions/login.php:97 ../actions/profilesettings.php:41 -#: ../actions/register.php:204 +#: ../actions/login.php:101 ../actions/profilesettings.php:41 +#: ../actions/register.php:220 msgid "Nickname" msgstr "" -#: ../actions/finishopenidlogin.php:175 ../actions/profilesettings.php:106 -#: ../actions/register.php:63 +#: ../actions/finishopenidlogin.php:175 ../actions/profilesettings.php:110 +#: ../actions/register.php:65 msgid "Nickname already in use. Try another one." msgstr "" -#: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:84 -#: ../actions/register.php:61 ../actions/updateprofile.php:76 +#: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:88 +#: ../actions/register.php:63 ../actions/updateprofile.php:77 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -820,26 +901,38 @@ msgstr "" msgid "No Jabber ID." msgstr "" -#: ../actions/userauthorization.php:128 +#: ../actions/userauthorization.php:129 msgid "No authorization request!" msgstr "" +#: ../actions/smssettings.php:181 +msgid "No carrier selected." +msgstr "" + +#: ../actions/smssettings.php:316 +msgid "No code entered" +msgstr "" + #: ../actions/confirmaddress.php:33 msgid "No confirmation code." msgstr "" -#: ../actions/newnotice.php:49 +#: ../actions/newnotice.php:50 msgid "No content!" msgstr "" -#: ../actions/emailsettings.php:146 +#: ../actions/emailsettings.php:174 msgid "No email address." msgstr "" -#: ../actions/userbyid.php:27 +#: ../actions/userbyid.php:32 msgid "No id." msgstr "" +#: ../actions/emailsettings.php:271 +msgid "No incoming email address." +msgstr "" + #: ../actions/finishremotesubscribe.php:65 msgid "No nickname provided by remote server." msgstr "" @@ -848,10 +941,15 @@ msgstr "" msgid "No nickname." msgstr "" -#: ../actions/emailsettings.php:194 ../actions/imsettings.php:206 +#: ../actions/emailsettings.php:222 ../actions/imsettings.php:206 +#: ../actions/smssettings.php:229 msgid "No pending confirmation to cancel." msgstr "" +#: ../actions/smssettings.php:176 +msgid "No phone number." +msgstr "" + #: ../actions/finishremotesubscribe.php:72 msgid "No profile URL returned by server." msgstr "" @@ -860,7 +958,7 @@ msgstr "" msgid "No registered email address for that user." msgstr "" -#: ../actions/userauthorization.php:48 +#: ../actions/userauthorization.php:49 msgid "No request found!" msgstr "" @@ -893,22 +991,18 @@ msgstr "" msgid "No such subscription" msgstr "" -#: ../actions/twitapifriendships.php:34 ../actions/twitapifriendships.php:136 -msgid "No such user" -msgstr "" - #: ../actions/all.php:34 ../actions/allrss.php:35 -#: ../actions/avatarbynickname.php:43 ../actions/foaf.php:36 +#: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40 #: ../actions/recoverpassword.php:185 ../actions/remotesubscribe.php:84 #: ../actions/remotesubscribe.php:91 ../actions/replies.php:57 #: ../actions/repliesrss.php:35 ../actions/showstream.php:110 -#: ../actions/subscribe.php:43 ../actions/unsubscribe.php:38 -#: ../actions/userbyid.php:31 ../actions/userrss.php:35 ../actions/xrds.php:31 -#: ../lib/gallery.php:53 +#: ../actions/subscribe.php:44 ../actions/unsubscribe.php:39 +#: ../actions/userbyid.php:36 ../actions/userrss.php:35 ../actions/xrds.php:35 +#: ../lib/gallery.php:57 msgid "No such user." msgstr "" -#: ../lib/gallery.php:76 +#: ../lib/gallery.php:80 msgid "Nobody to show!" msgstr "" @@ -924,15 +1018,15 @@ msgstr "" msgid "Not a valid OpenID." msgstr "" -#: ../actions/emailsettings.php:157 +#: ../actions/emailsettings.php:185 msgid "Not a valid email address" msgstr "" -#: ../actions/register.php:57 +#: ../actions/register.php:59 msgid "Not a valid email address." msgstr "" -#: ../actions/profilesettings.php:87 ../actions/register.php:65 +#: ../actions/profilesettings.php:91 ../actions/register.php:67 msgid "Not a valid nickname." msgstr "" @@ -960,18 +1054,14 @@ msgstr "" msgid "Not expecting this response!" msgstr "" -#: ../actions/finishaddopenid.php:29 ../actions/logout.php:28 -#: ../actions/newnotice.php:29 ../actions/subscribe.php:27 -#: ../actions/unsubscribe.php:24 ../lib/deleteaction.php:38 +#: ../actions/finishaddopenid.php:29 ../actions/logout.php:33 +#: ../actions/newnotice.php:29 ../actions/subscribe.php:28 +#: ../actions/unsubscribe.php:25 ../lib/deleteaction.php:38 #: ../lib/settingsaction.php:27 msgid "Not logged in." msgstr "" -#: ../actions/twitapifriendships.php:104 -msgid "Not subscribed" -msgstr "" - -#: ../actions/unsubscribe.php:43 +#: ../actions/unsubscribe.php:44 msgid "Not subscribed!." msgstr "" @@ -988,7 +1078,7 @@ msgstr "" msgid "Notice has no profile" msgstr "" -#: ../actions/showstream.php:314 +#: ../actions/showstream.php:316 msgid "Notices" msgstr "" @@ -1001,7 +1091,7 @@ msgstr "" msgid "Old password" msgstr "" -#: ../lib/util.php:308 +#: ../lib/util.php:302 msgid "OpenID" msgstr "" @@ -1048,8 +1138,8 @@ msgstr "" msgid "Partial upload." msgstr "" -#: ../actions/finishopenidlogin.php:90 ../actions/login.php:98 -#: ../actions/register.php:206 +#: ../actions/finishopenidlogin.php:90 ../actions/login.php:102 +#: ../actions/register.php:222 msgid "Password" msgstr "" @@ -1069,11 +1159,11 @@ msgstr "" msgid "Password saved." msgstr "" -#: ../actions/password.php:61 ../actions/register.php:82 +#: ../actions/password.php:61 ../actions/register.php:84 msgid "Passwords don't match." msgstr "" -#: ../lib/searchaction.php:96 +#: ../lib/searchaction.php:100 msgid "People" msgstr "" @@ -1085,11 +1175,15 @@ msgstr "" msgid "People search" msgstr "" -#: ../lib/stream.php:48 +#: ../lib/stream.php:50 msgid "Personal" msgstr "" -#: ../actions/userauthorization.php:77 +#: ../actions/smssettings.php:69 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "" + +#: ../actions/userauthorization.php:78 msgid "" "Please check these details to make sure that you want to subscribe to this " "user's notices. If you didn't just ask to subscribe to someone's notices, " @@ -1100,27 +1194,29 @@ msgstr "" msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" -#: ../actions/emailsettings.php:66 ../actions/imsettings.php:67 +#: ../actions/emailsettings.php:85 ../actions/imsettings.php:67 +#: ../actions/smssettings.php:94 msgid "Preferences" msgstr "" -#: ../actions/emailsettings.php:134 ../actions/imsettings.php:144 +#: ../actions/emailsettings.php:162 ../actions/imsettings.php:144 +#: ../actions/smssettings.php:163 msgid "Preferences saved." msgstr "" -#: ../actions/profilesettings.php:56 +#: ../actions/profilesettings.php:57 msgid "Preferred language" msgstr "" -#: ../lib/util.php:320 +#: ../lib/util.php:314 msgid "Privacy" msgstr "" -#: ../actions/newnotice.php:61 ../actions/newnotice.php:69 +#: ../actions/newnotice.php:62 ../actions/newnotice.php:70 msgid "Problem saving notice." msgstr "" -#: ../lib/stream.php:58 +#: ../lib/stream.php:60 msgid "Profile" msgstr "" @@ -1132,11 +1228,11 @@ msgstr "" msgid "Profile settings" msgstr "" -#: ../actions/postnotice.php:51 ../actions/updateprofile.php:51 +#: ../actions/postnotice.php:51 ../actions/updateprofile.php:52 msgid "Profile unknown" msgstr "" -#: ../lib/util.php:295 +#: ../lib/util.php:287 msgid "Public" msgstr "" @@ -1152,7 +1248,7 @@ msgstr "" msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "" -#: ../actions/emailsettings.php:72 +#: ../actions/emailsettings.php:94 msgid "Publish a MicroID for my email address." msgstr "" @@ -1172,23 +1268,27 @@ msgstr "" msgid "Recovery code for unknown user." msgstr "" -#: ../actions/register.php:200 ../actions/register.php:241 ../lib/util.php:307 +#: ../actions/register.php:216 ../actions/register.php:257 ../lib/util.php:300 msgid "Register" msgstr "" -#: ../actions/register.php:248 +#: ../actions/register.php:28 +msgid "Registration not allowed." +msgstr "" + +#: ../actions/register.php:264 msgid "Registration successful" msgstr "" -#: ../actions/userauthorization.php:119 +#: ../actions/userauthorization.php:120 msgid "Reject" msgstr "" -#: ../actions/login.php:99 ../actions/register.php:224 +#: ../actions/login.php:103 ../actions/register.php:240 msgid "Remember me" msgstr "" -#: ../actions/updateprofile.php:69 +#: ../actions/updateprofile.php:70 msgid "Remote profile with no matching profile" msgstr "" @@ -1196,8 +1296,9 @@ msgstr "" msgid "Remote subscribe" msgstr "" -#: ../actions/emailsettings.php:47 ../actions/imsettings.php:48 -#: ../actions/openidsettings.php:106 +#: ../actions/emailsettings.php:47 ../actions/emailsettings.php:75 +#: ../actions/imsettings.php:48 ../actions/openidsettings.php:106 +#: ../actions/smssettings.php:50 ../actions/smssettings.php:84 msgid "Remove" msgstr "" @@ -1211,11 +1312,11 @@ msgid "" "remove it, add another OpenID first." msgstr "" -#: ../lib/stream.php:53 +#: ../lib/stream.php:55 msgid "Replies" msgstr "" -#: ../actions/replies.php:47 ../actions/repliesrss.php:76 ../lib/stream.php:54 +#: ../actions/replies.php:47 ../actions/repliesrss.php:76 ../lib/stream.php:56 #, php-format msgid "Replies to %s" msgstr "" @@ -1228,20 +1329,32 @@ msgstr "" msgid "Reset password" msgstr "" +#: ../actions/smssettings.php:67 +msgid "SMS Phone number" +msgstr "" + +#: ../actions/smssettings.php:33 +msgid "SMS Settings" +msgstr "" + +#: ../lib/mail.php:215 +msgid "SMS confirmation" +msgstr "" + #: ../actions/recoverpassword.php:167 msgid "Same as password above" msgstr "" -#: ../actions/register.php:209 +#: ../actions/register.php:225 msgid "Same as password above. Required." msgstr "" -#: ../actions/emailsettings.php:75 ../actions/imsettings.php:81 -#: ../actions/profilesettings.php:64 +#: ../actions/emailsettings.php:97 ../actions/imsettings.php:81 +#: ../actions/profilesettings.php:67 ../actions/smssettings.php:100 msgid "Save" msgstr "" -#: ../lib/searchaction.php:80 ../lib/util.php:296 +#: ../lib/searchaction.php:84 ../lib/util.php:288 msgid "Search" msgstr "" @@ -1263,11 +1376,19 @@ msgid "" "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -#: ../lib/util.php:1132 +#: ../actions/smssettings.php:296 +msgid "Select a carrier" +msgstr "" + +#: ../lib/util.php:1144 msgid "Send" msgstr "" -#: ../actions/emailsettings.php:69 +#: ../actions/emailsettings.php:73 ../actions/smssettings.php:82 +msgid "Send email to this address to post new notices." +msgstr "" + +#: ../actions/emailsettings.php:88 msgid "Send me notices of new subscriptions through email." msgstr "" @@ -1275,15 +1396,21 @@ msgstr "" msgid "Send me notices through Jabber/GTalk." msgstr "" +#: ../actions/smssettings.php:97 +msgid "" +"Send me notices through SMS; I understand I may incur exorbitant charges " +"from my carrier." +msgstr "" + #: ../actions/imsettings.php:76 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -#: ../lib/util.php:302 +#: ../lib/util.php:294 msgid "Settings" msgstr "" -#: ../actions/profilesettings.php:168 +#: ../actions/profilesettings.php:189 msgid "Settings saved." msgstr "" @@ -1299,11 +1426,11 @@ msgstr "" msgid "Something weird happened." msgstr "" -#: ../lib/util.php:322 +#: ../lib/util.php:316 msgid "Source" msgstr "" -#: ../actions/showstream.php:294 +#: ../actions/showstream.php:296 msgid "Statistics" msgstr "" @@ -1316,19 +1443,19 @@ msgstr "" msgid "Subscribe" msgstr "" -#: ../actions/showstream.php:311 ../actions/subscribers.php:27 +#: ../actions/showstream.php:313 ../actions/subscribers.php:27 msgid "Subscribers" msgstr "" -#: ../actions/userauthorization.php:309 +#: ../actions/userauthorization.php:310 msgid "Subscription authorized" msgstr "" -#: ../actions/userauthorization.php:319 +#: ../actions/userauthorization.php:320 msgid "Subscription rejected" msgstr "" -#: ../actions/showstream.php:228 ../actions/showstream.php:305 +#: ../actions/showstream.php:230 ../actions/showstream.php:307 #: ../actions/subscriptions.php:27 msgid "Subscriptions" msgstr "" @@ -1337,11 +1464,11 @@ msgstr "" msgid "System error uploading file." msgstr "" -#: ../actions/tag.php:41 ../lib/util.php:297 +#: ../actions/tag.php:41 ../lib/util.php:289 msgid "Tags" msgstr "" -#: ../lib/searchaction.php:100 +#: ../lib/searchaction.php:104 msgid "Text" msgstr "" @@ -1361,7 +1488,7 @@ msgstr "" msgid "That confirmation code is not for you!" msgstr "" -#: ../actions/emailsettings.php:163 +#: ../actions/emailsettings.php:191 msgid "That email address already belongs to another user." msgstr "" @@ -1373,43 +1500,60 @@ msgstr "" msgid "That is already your Jabber ID." msgstr "" -#: ../actions/emailsettings.php:160 +#: ../actions/emailsettings.php:188 msgid "That is already your email address." msgstr "" +#: ../actions/smssettings.php:188 +msgid "That is already your phone number." +msgstr "" + #: ../actions/imsettings.php:233 msgid "That is not your Jabber ID." msgstr "" -#: ../actions/emailsettings.php:221 +#: ../actions/emailsettings.php:249 msgid "That is not your email address." msgstr "" -#: ../actions/emailsettings.php:198 ../actions/imsettings.php:210 +#: ../actions/smssettings.php:257 +msgid "That is not your phone number." +msgstr "" + +#: ../actions/emailsettings.php:226 ../actions/imsettings.php:210 msgid "That is the wrong IM address." msgstr "" -#: ../actions/newnotice.php:52 +#: ../actions/smssettings.php:233 +msgid "That is the wrong confirmation number." +msgstr "" + +#: ../actions/smssettings.php:191 +msgid "That phone number already belongs to another user." +msgstr "" + +#: ../actions/newnotice.php:53 msgid "That's too long. Max notice size is 140 chars." msgstr "" -#: ../actions/confirmaddress.php:86 +#: ../actions/confirmaddress.php:88 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" -#: ../actions/emailsettings.php:238 ../actions/imsettings.php:250 +#: ../actions/emailsettings.php:264 ../actions/imsettings.php:250 +#: ../actions/smssettings.php:274 msgid "The address was removed." msgstr "" -#: ../actions/userauthorization.php:311 +#: ../actions/userauthorization.php:312 msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site's instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -#: ../actions/userauthorization.php:321 +#: ../actions/userauthorization.php:322 msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site's instructions for details on how to fully reject the " @@ -1456,11 +1600,11 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: ../actions/profilesettings.php:62 +#: ../actions/profilesettings.php:63 msgid "Timezone" msgstr "" -#: ../actions/profilesettings.php:103 +#: ../actions/profilesettings.php:107 msgid "Timezone not selected." msgstr "" @@ -1472,7 +1616,11 @@ msgid "" "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" -#: ../actions/profilesettings.php:48 ../actions/register.php:217 +#: ../actions/twitapifriendships.php:150 +msgid "Two user ids or screen_names must be supplied." +msgstr "" + +#: ../actions/profilesettings.php:48 ../actions/register.php:233 msgid "URL of your homepage, blog, or profile on another site" msgstr "" @@ -1480,8 +1628,8 @@ msgstr "" msgid "URL of your profile on another compatible microblogging service" msgstr "" -#: ../actions/emailsettings.php:104 ../actions/imsettings.php:110 -#: ../actions/recoverpassword.php:39 +#: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 +#: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 msgid "Unexpected form submission." msgstr "" @@ -1493,7 +1641,7 @@ msgstr "" msgid "Unknown version of OMB protocol." msgstr "" -#: ../lib/util.php:264 +#: ../lib/util.php:256 msgid "" "Unless otherwise specified, contents of this site are copyright by the " "contributors and available under the " @@ -1508,7 +1656,7 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: ../actions/postnotice.php:44 ../actions/updateprofile.php:44 +#: ../actions/postnotice.php:44 ../actions/updateprofile.php:45 msgid "Unsupported OMB version" msgstr "" @@ -1516,18 +1664,18 @@ msgstr "" msgid "Unsupported image file format." msgstr "" -#: ../lib/twitterapi.php:260 ../lib/twitterapi.php:279 +#: ../lib/twitterapi.php:257 ../lib/twitterapi.php:278 msgid "Unsupported type" msgstr "" -#: ../actions/twitapistatuses.php:225 +#: ../actions/twitapistatuses.php:238 #, php-format -msgid "Updates from %s and friends on %s!" +msgid "Updates from %1$s and friends on %2$s!" msgstr "" -#: ../actions/twitapistatuses.php:339 +#: ../actions/twitapistatuses.php:338 #, php-format -msgid "Updates from %s on %s!" +msgid "Updates from %1$s on %2$s!" msgstr "" #: ../actions/avatar.php:68 @@ -1542,7 +1690,7 @@ msgid "" "share." msgstr "" -#: ../actions/register.php:211 +#: ../actions/register.php:227 msgid "Used only for updates, announcements, and password recovery" msgstr "" @@ -1551,9 +1699,9 @@ msgid "User being listened to doesn't exist." msgstr "" #: ../actions/all.php:41 ../actions/avatarbynickname.php:48 -#: ../actions/foaf.php:43 ../actions/replies.php:41 -#: ../actions/showstream.php:44 ../actions/twitapiaccount.php:64 -#: ../actions/twitapistatuses.php:317 ../actions/twitapistatuses.php:617 +#: ../actions/foaf.php:47 ../actions/replies.php:41 +#: ../actions/showstream.php:44 ../actions/twitapiaccount.php:78 +#: ../actions/twitapistatuses.php:316 ../actions/twitapistatuses.php:621 msgid "User has no profile." msgstr "" @@ -1561,25 +1709,25 @@ msgstr "" msgid "User nickname" msgstr "" -#: ../actions/profilesettings.php:62 +#: ../actions/profilesettings.php:63 msgid "What timezone are you normally in?" msgstr "" -#: ../lib/util.php:1119 +#: ../lib/util.php:1131 #, php-format msgid "What's up, %s?" msgstr "" -#: ../actions/profilesettings.php:54 ../actions/register.php:223 +#: ../actions/profilesettings.php:54 ../actions/register.php:239 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: ../actions/updateprofile.php:127 +#: ../actions/updateprofile.php:128 #, php-format msgid "Wrong image type for '%s'" msgstr "" -#: ../actions/updateprofile.php:122 +#: ../actions/updateprofile.php:123 #, php-format msgid "Wrong size image at '%s'" msgstr "" @@ -1602,14 +1750,23 @@ msgstr "" msgid "You are already logged in!" msgstr "" +#: ../actions/twitapifriendships.php:115 +msgid "You are not friends with the specified user." +msgstr "" + #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" msgstr "" -#: ../actions/register.php:193 +#: ../actions/register.php:209 msgid "You can create a new account to start posting notices." msgstr "" +#: ../actions/smssettings.php:28 +#, php-format +msgid "You can receive SMS messages through email from %%site.name%%." +msgstr "" + #: ../actions/openidsettings.php:86 msgid "" "You can remove an OpenID from your account by clicking the button marked " @@ -1632,14 +1789,27 @@ msgstr "" msgid "You can use the local subscription!" msgstr "" -#: ../actions/finishopenidlogin.php:33 ../actions/register.php:55 +#: ../actions/finishopenidlogin.php:33 ../actions/register.php:57 msgid "You can't register if you don't agree to the license." msgstr "" -#: ../actions/updateprofile.php:62 +#: ../actions/updateprofile.php:63 msgid "You did not send us that profile" msgstr "" +#: ../lib/mail.php:143 +#, php-format +msgid "" +"You have a new posting address on %1$s.\n" +"\n" +"Send email to %2$s to post new messages.\n" +"\n" +"More email instructions at %3$s.\n" +"\n" +"Faithfully yours,\n" +"%4$s" +msgstr "" + #: ../actions/recoverpassword.php:134 msgid "You've been identified. Enter a new password below. " msgstr "" @@ -1659,65 +1829,65 @@ msgid "" "account. Manage your associated OpenIDs from here." msgstr "" -#: ../lib/util.php:923 +#: ../lib/util.php:919 msgid "a few seconds ago" msgstr "" -#: ../lib/util.php:935 -#, php-format -msgid "about %d days ago" -msgstr "" - #: ../lib/util.php:931 #, php-format -msgid "about %d hours ago" +msgid "about %d days ago" msgstr "" #: ../lib/util.php:927 #, php-format +msgid "about %d hours ago" +msgstr "" + +#: ../lib/util.php:923 +#, php-format msgid "about %d minutes ago" msgstr "" -#: ../lib/util.php:939 +#: ../lib/util.php:935 #, php-format msgid "about %d months ago" msgstr "" -#: ../lib/util.php:933 +#: ../lib/util.php:929 msgid "about a day ago" msgstr "" -#: ../lib/util.php:925 +#: ../lib/util.php:921 msgid "about a minute ago" msgstr "" -#: ../lib/util.php:937 +#: ../lib/util.php:933 msgid "about a month ago" msgstr "" -#: ../lib/util.php:941 +#: ../lib/util.php:937 msgid "about a year ago" msgstr "" -#: ../lib/util.php:929 +#: ../lib/util.php:925 msgid "about an hour ago" msgstr "" -#: ../actions/showstream.php:422 ../lib/stream.php:128 +#: ../actions/showstream.php:424 ../lib/stream.php:130 msgid "delete" msgstr "" -#: ../actions/noticesearch.php:126 ../actions/showstream.php:406 -#: ../lib/stream.php:112 +#: ../actions/noticesearch.php:126 ../actions/showstream.php:408 +#: ../lib/stream.php:114 msgid "in reply to..." msgstr "" -#: ../lib/twitterapi.php:314 +#: ../lib/twitterapi.php:363 msgid "not a supported data format" msgstr "" -#: ../actions/noticesearch.php:133 ../actions/showstream.php:413 -#: ../lib/stream.php:119 +#: ../actions/noticesearch.php:133 ../actions/showstream.php:415 +#: ../lib/stream.php:121 msgid "reply" msgstr "" @@ -1725,10 +1895,10 @@ msgstr "" msgid "same as password above" msgstr "" -#: ../actions/twitapistatuses.php:687 +#: ../actions/twitapistatuses.php:691 msgid "unsupported file type" msgstr "" -#: ../lib/util.php:1269 +#: ../lib/util.php:1281 msgid "« After" msgstr ""