diff options
Diffstat (limited to 'plugins/OStatus')
28 files changed, 761 insertions, 281 deletions
diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 98f18f833..6cd935c9e 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -223,6 +223,7 @@ class OStatusPlugin extends Plugin array('nickname' => $profile->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), + // TRANS: Link description for link to subscribe to a remote user. _m('Subscribe')); $output->elementEnd('li'); @@ -241,6 +242,7 @@ class OStatusPlugin extends Plugin array('group' => $group->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), + // TRANS: Link description for link to join a remote group. _m('Join')); } @@ -453,6 +455,7 @@ class OStatusPlugin extends Plugin } $url = $notice->url; + // TRANSLATE: %s is a domain. $title = sprintf(_m("Sent from %s via OStatus"), $domain); return false; } @@ -524,6 +527,7 @@ class OStatusPlugin extends Plugin } if (!$oprofile->subscribe()) { + // TRANS: Exception. throw new Exception(_m('Could not set up remote subscription.')); } } @@ -598,10 +602,10 @@ class OStatusPlugin extends Plugin common_date_iso8601(time())); $act->time = time(); - $act->title = _("Unfollow"); + $act->title = _m('Unfollow'); // TRANS: Success message for unsubscribe from user attempt through OStatus. // TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. - $act->content = sprintf(_("%1$s stopped following %2$s."), + $act->content = sprintf(_m('%1$s stopped following %2$s.'), $profile->getBestName(), $other->getBestName()); @@ -659,6 +663,7 @@ class OStatusPlugin extends Plugin return true; } else { $oprofile->garbageCollect(); + // TRANS: Exception. throw new Exception(_m("Failed joining remote group.")); } } @@ -717,7 +722,6 @@ class OStatusPlugin extends Plugin * @param Notice $notice being favored * @return hook return value */ - function onEndFavorNotice(Profile $profile, Notice $notice) { $user = User::staticGet('id', $profile->id); @@ -778,10 +782,10 @@ class OStatusPlugin extends Plugin $notice->id, common_date_iso8601(time())); $act->time = time(); - $act->title = _("Disfavor"); + $act->title = _m('Disfavor'); // TRANS: Success message for remove a favorite notice through OStatus. // TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. - $act->content = sprintf(_("%1$s marked notice %2$s as no longer a favorite."), + $act->content = sprintf(_m('%1$s marked notice %2$s as no longer a favorite.'), $profile->getBestName(), $notice->uri); @@ -855,8 +859,9 @@ class OStatusPlugin extends Plugin $action->elementStart('p', array('id' => 'entity_remote_subscribe', 'class' => 'entity_subscribe')); $action->element('a', array('href' => common_local_url($target), - 'class' => 'entity_remote_subscribe') - , _m('Remote')); // @todo: i18n: Add translator hint for this text. + 'class' => 'entity_remote_subscribe'), + // TRANS: Link text for link to remote subscribe. + _m('Remote')); $action->elementEnd('p'); $action->elementEnd('div'); } @@ -895,6 +900,7 @@ class OStatusPlugin extends Plugin $profile->id, common_date_iso8601(time())); $act->time = time(); + // TRANS: Title for activity. $act->title = _m("Profile update"); // TRANS: Ping text for remote profile update through OStatus. // TRANS: %s is user that updated their profile. @@ -927,7 +933,8 @@ class OStatusPlugin extends Plugin array('nickname' => $profileUser->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), - _m('Subscribe')); // @todo: i18n: Add context. + // TRANS: Link text for a user to subscribe to an OStatus user. + _m('Subscribe')); $output->elementEnd('li'); } } @@ -941,9 +948,9 @@ class OStatusPlugin extends Plugin 'version' => STATUSNET_VERSION, 'author' => 'Evan Prodromou, James Walker, Brion Vibber, Zach Copley', 'homepage' => 'http://status.net/wiki/Plugin:OStatus', - 'rawdescription' => - _m('Follow people across social networks that implement '. - '<a href="http://ostatus.org/">OStatus</a>.')); // @todo i18n: Add translator hint. + // TRANS: Plugin description. + 'rawdescription' => _m('Follow people across social networks that implement '. + '<a href="http://ostatus.org/">OStatus</a>.')); return true; } diff --git a/plugins/OStatus/actions/groupsalmon.php b/plugins/OStatus/actions/groupsalmon.php index 5094dccf0..3a3d63fe2 100644 --- a/plugins/OStatus/actions/groupsalmon.php +++ b/plugins/OStatus/actions/groupsalmon.php @@ -17,15 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/** - * @package OStatusPlugin - * @author James Walker <james@status.net> - */ - if (!defined('STATUSNET')) { exit(1); } +/** + * @package OStatusPlugin + * @author James Walker <james@status.net> + */ class GroupsalmonAction extends SalmonAction { var $group = null; @@ -37,17 +36,20 @@ class GroupsalmonAction extends SalmonAction $id = $this->trimmed('id'); if (!$id) { - $this->clientError(_('No ID.')); + // TRANS: Client error. + $this->clientError(_m('No ID.')); } $this->group = User_group::staticGet('id', $id); if (empty($this->group)) { - $this->clientError(_('No such group.')); + // TRANS: Client error. + $this->clientError(_m('No such group.')); } $oprofile = Ostatus_profile::staticGet('group_id', $id); if ($oprofile) { + // TRANS: Client error. $this->clientError(_m("Can't accept remote posts for a remote group.")); } @@ -57,7 +59,6 @@ class GroupsalmonAction extends SalmonAction /** * We've gotten a post event on the Salmon backchannel, probably a reply. */ - function handlePost() { // @fixme process all objects? @@ -69,18 +70,20 @@ class GroupsalmonAction extends SalmonAction case ActivityObject::COMMENT: break; default: + // TRANS: Client exception. throw new ClientException("Can't handle that kind of post."); } // Notice must be to the attention of this group - $context = $this->activity->context; if (empty($context->attention)) { + // TRANS: Client exception. throw new ClientException("Not to the attention of anyone."); } else { $uri = common_local_url('groupbyid', array('id' => $this->group->id)); if (!in_array($uri, $context->attention)) { + // TRANS: Client exception. throw new ClientException("Not to the attention of this group."); } } @@ -116,14 +119,15 @@ class GroupsalmonAction extends SalmonAction * currently we're doing the main logic in joingroup action * and so have to repeat it here. */ - function handleJoin() { $oprofile = $this->ensureProfile(); if (!$oprofile) { + // TRANS: Client error. $this->clientError(_m("Can't read profile to set up group membership.")); } if ($oprofile->isGroup()) { + // TRANS: Client error. $this->clientError(_m("Groups can't join groups.")); } @@ -137,7 +141,7 @@ class GroupsalmonAction extends SalmonAction } if (Group_block::isBlocked($this->group, $profile)) { - $this->clientError(_('You have been blocked from that group by the admin.'), 403); + $this->clientError(_m('You have been blocked from that group by the admin.'), 403); return false; } @@ -151,6 +155,7 @@ class GroupsalmonAction extends SalmonAction //Event::handle('EndJoinGroup', array($this->group, $profile)); //} } catch (Exception $e) { + // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. $this->serverError(sprintf(_m('Could not join remote user %1$s to group %2$s.'), $oprofile->uri, $this->group->nickname)); } @@ -159,7 +164,6 @@ class GroupsalmonAction extends SalmonAction /** * A remote user left our group. */ - function handleLeave() { $oprofile = $this->ensureProfile(); @@ -180,10 +184,10 @@ class GroupsalmonAction extends SalmonAction //Event::handle('EndLeaveGroup', array($this->group, $profile)); //} } catch (Exception $e) { + // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. $this->serverError(sprintf(_m('Could not remove remote user %1$s from group %2$s.'), $oprofile->uri, $this->group->nickname)); return; } } - } diff --git a/plugins/OStatus/actions/hostmeta.php b/plugins/OStatus/actions/hostmeta.php index 8ca07f916..db4c913e1 100644 --- a/plugins/OStatus/actions/hostmeta.php +++ b/plugins/OStatus/actions/hostmeta.php @@ -26,7 +26,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } class HostMetaAction extends Action { - function handle() { parent::handle(); diff --git a/plugins/OStatus/actions/ostatusgroup.php b/plugins/OStatus/actions/ostatusgroup.php index 1861e866f..7db00ffbe 100644 --- a/plugins/OStatus/actions/ostatusgroup.php +++ b/plugins/OStatus/actions/ostatusgroup.php @@ -72,13 +72,16 @@ class OStatusGroupAction extends OStatusSubAction $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('profile', + // TRANS: Field label. _m('Join group'), $this->profile_uri, + // TRANS: Tooltip for field label "Join group". _m("OStatus group's address, like http://example.net/group/nickname.")); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('validate', _m('Continue')); + // TRANS: Button text. + $this->submit('validate', _m('BUTTON','Continue')); $this->elementEnd('fieldset'); @@ -156,7 +159,6 @@ class OStatusGroupAction extends OStatusSubAction * * @return string Title of the page */ - function title() { // TRANS: Page title for OStatus remote group join form @@ -168,9 +170,9 @@ class OStatusGroupAction extends OStatusSubAction * * @return instructions for use */ - function getInstructions() { + // TRANS: Instructions. return _m('You can subscribe to groups from other supported sites. Paste the group\'s profile URI below:'); } diff --git a/plugins/OStatus/actions/ostatusinit.php b/plugins/OStatus/actions/ostatusinit.php index 0c991aba9..f576823e3 100644 --- a/plugins/OStatus/actions/ostatusinit.php +++ b/plugins/OStatus/actions/ostatusinit.php @@ -27,7 +27,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } class OStatusInitAction extends Action { - var $nickname; var $group; var $profile; @@ -38,6 +37,7 @@ class OStatusInitAction extends Action parent::prepare($args); if (common_logged_in()) { + // TRANS: Client error. $this->clientError(_m('You can use the local subscription!')); return false; } @@ -78,6 +78,7 @@ class OStatusInitAction extends Action $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); $this->elementStart('head'); + // TRANS: Form title. $this->element('title', null, _m('Subscribe to user')); $this->elementEnd('head'); $this->elementStart('body'); @@ -92,11 +93,15 @@ class OStatusInitAction extends Action function showContent() { if ($this->group) { + // TRANS: Form legend. $header = sprintf(_m('Join group %s'), $this->group); - $submit = _m('Join'); + // TRANS: Button text. + $submit = _m('BUTTON','Join'); } else { + // TRANS: Form legend. $header = sprintf(_m('Subscribe to %s'), $this->nickname); - $submit = _m('Subscribe'); + // TRANS: Button text. + $submit = _m('BUTTON','Subscribe'); } $this->elementStart('form', array('id' => 'form_ostatus_connect', 'method' => 'post', @@ -108,12 +113,15 @@ class OStatusInitAction extends Action $this->elementStart('ul', 'form_data'); $this->elementStart('li', array('id' => 'ostatus_nickname')); + // TRANS: Field label. $this->input('nickname', _m('User nickname'), $this->nickname, _m('Nickname of the user you want to follow.')); $this->hidden('group', $this->group); // pass-through for magic links $this->elementEnd('li'); $this->elementStart('li', array('id' => 'ostatus_profile')); + // TRANS: Field label. $this->input('profile', _m('Profile Account'), $this->profile, + // TRANS: Tooltip for field label "Profile Account". _m('Your account id (e.g. user@identi.ca).')); $this->elementEnd('li'); $this->elementEnd('ul'); @@ -135,6 +143,7 @@ class OStatusInitAction extends Action } elseif (strpos($this->profile, '@') !== false) { $this->connectWebfinger($this->profile); } else { + // TRANS: Client error. $this->clientError(_m("Must provide a remote profile.")); } } @@ -146,6 +155,7 @@ class OStatusInitAction extends Action $disco = new Discovery; $result = $disco->lookup($acct); if (!$result) { + // TRANS: Client error. $this->clientError(_m("Couldn't look up OStatus account profile.")); } @@ -158,6 +168,7 @@ class OStatusInitAction extends Action } } + // TRANS: Client error. $this->clientError(_m("Couldn't confirm remote profile address.")); } @@ -183,6 +194,7 @@ class OStatusInitAction extends Action if ($user) { return common_local_url('userbyid', array('id' => $user->id)); } else { + // TRANS: Client error. $this->clientError("No such user."); } } else if ($this->group) { @@ -190,16 +202,18 @@ class OStatusInitAction extends Action if ($group) { return common_local_url('groupbyid', array('id' => $group->group_id)); } else { + // TRANS: Client error. $this->clientError("No such group."); } } else { + // TRANS: Client error. $this->clientError("No local user or group nickname provided."); } } function title() { + // TRANS: Page title. return _m('OStatus Connect'); } - } diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index 4cbd7d034..493b51965 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -62,13 +62,15 @@ class OStatusSubAction extends Action $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('profile', + // TRANS: Field label for a field that takes an OStatus user address. _m('Subscribe to'), $this->profile_uri, - _m("OStatus user's address, like nickname@example.com or http://example.net/nickname")); // @todo i18n FIXME: needs context/translator hint. + // TRANS: Tooltip for field label "Subscribe to". + _m('OStatus user\'s address, like nickname@example.com or http://example.net/nickname')); $this->elementEnd('li'); $this->elementEnd('ul'); - - $this->submit('validate', _m('Continue')); // @todo i18n FIXME: needs context/translator hint. + // TRANS: Button text. + $this->submit('validate', _m('BUTTON','Continue')); $this->elementEnd('fieldset'); @@ -103,10 +105,14 @@ class OStatusSubAction extends Action $this->hidden('profile', $this->profile_uri); if ($this->oprofile->isGroup()) { $this->submit('submit', _m('Join'), 'submit', null, - _m('Join this group')); // @todo i18n FIXME: needs context/translator hint. + // TRANS: Button text. + // TRANS: Tooltip for button "Join". + _m('BUTTON','Join this group')); } else { - $this->submit('submit', _m('Confirm'), 'submit', null, - _m('Subscribe to this user')); // @todo i18n FIXME: needs context/translator hint. + // TRANS: Button text. + $this->submit('submit', _m('BUTTON','Confirm'), 'submit', null, + // TRANS: Tooltip for button "Confirm". + _m('Subscribe to this user')); } $this->elementEnd('fieldset'); $this->elementEnd('form'); @@ -156,7 +162,7 @@ class OStatusSubAction extends Action $this->elementStart('div', 'entity_profile vcard'); $this->elementStart('dl', 'entity_depiction'); - $this->element('dt', null, _('Photo')); + $this->element('dt', null, _m('Photo')); $this->elementStart('dd'); $this->element('img', array('src' => $avatar, 'class' => 'photo avatar', @@ -167,7 +173,7 @@ class OStatusSubAction extends Action $this->elementEnd('dl'); $this->elementStart('dl', 'entity_nickname'); - $this->element('dt', null, _('Nickname')); + $this->element('dt', null, _m('Nickname')); $this->elementStart('dd'); $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname'; $this->elementStart('a', array('href' => $profile, @@ -188,7 +194,7 @@ class OStatusSubAction extends Action } if (!is_null($location)) { $this->elementStart('dl', 'entity_location'); - $this->element('dt', null, _('Location')); + $this->element('dt', null, _m('Location')); $this->elementStart('dd', 'label'); $this->raw($location); $this->elementEnd('dd'); @@ -197,7 +203,7 @@ class OStatusSubAction extends Action if (!is_null($homepage)) { $this->elementStart('dl', 'entity_url'); - $this->element('dt', null, _('URL')); + $this->element('dt', null, _m('URL')); $this->elementStart('dd'); $this->elementStart('a', array('href' => $homepage, 'class' => 'url')); @@ -209,7 +215,7 @@ class OStatusSubAction extends Action if (!is_null($note)) { $this->elementStart('dl', 'entity_note'); - $this->element('dt', null, _('Note')); + $this->element('dt', null, _m('Note')); $this->elementStart('dd', 'note'); $this->raw($note); $this->elementEnd('dd'); @@ -244,31 +250,39 @@ class OStatusSubAction extends Action } else if (Validate::uri($this->profile_uri)) { $this->oprofile = Ostatus_profile::ensureProfileURL($this->profile_uri); } else { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname."); common_debug('Invalid address format.', __FILE__); return false; } return true; } catch (FeedSubBadURLException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname."); common_debug('Invalid URL or could not reach server.', __FILE__); } catch (FeedSubBadResponseException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Cannot read feed; server returned error.', __FILE__); } catch (FeedSubEmptyException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Cannot read feed; server returned an empty page.', __FILE__); } catch (FeedSubBadHTMLException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Bad HTML, could not find feed link.', __FILE__); } catch (FeedSubNoFeedException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Could not find a feed linked from this URL.', __FILE__); } catch (FeedSubUnrecognizedTypeException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Not a recognized feed type.', __FILE__); } catch (Exception $e) { // Any new ones we forgot about + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname."); common_debug(sprintf('Bad feed URL: %s %s', get_class($e), $e->getMessage()), __FILE__); } @@ -350,7 +364,7 @@ class OStatusSubAction extends Action // CSRF protection $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { - $this->showForm(_('There was a problem with your session token. '. + $this->showForm(_m('There was a problem with your session token. '. 'Try again, please.')); return; } @@ -377,6 +391,7 @@ class OStatusSubAction extends Action $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); $this->elementStart('head'); + // TRANS: Form title. $this->element('title', null, _m('Subscribe to user')); $this->elementEnd('head'); $this->elementStart('body'); @@ -408,6 +423,7 @@ class OStatusSubAction extends Action function getInstructions() { + // TRANS: Instructions. return _m('You can subscribe to users from other supported sites. Paste their address or profile URI below:'); } @@ -426,7 +442,6 @@ class OStatusSubAction extends Action * * @return void */ - function showContent() { if ($this->oprofile) { @@ -459,5 +474,4 @@ class OStatusSubAction extends Action function showNoticeForm() { // nop } - } diff --git a/plugins/OStatus/actions/ownerxrd.php b/plugins/OStatus/actions/ownerxrd.php index 3fcb982b8..9e84f72ec 100644 --- a/plugins/OStatus/actions/ownerxrd.php +++ b/plugins/OStatus/actions/ownerxrd.php @@ -34,7 +34,7 @@ class OwnerxrdAction extends XrdAction $this->user = User::siteOwner(); if (!$this->user) { - $this->clientError(_('No such user.'), 404); + $this->clientError(_m('No such user.'), 404); return false; } diff --git a/plugins/OStatus/actions/pushcallback.php b/plugins/OStatus/actions/pushcallback.php index 6c6978745..701a39c16 100644 --- a/plugins/OStatus/actions/pushcallback.php +++ b/plugins/OStatus/actions/pushcallback.php @@ -24,7 +24,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - class PushCallbackAction extends Action { function handle() @@ -46,13 +45,13 @@ class PushCallbackAction extends Action $feedid = $this->arg('feed'); common_log(LOG_INFO, "POST for feed id $feedid"); if (!$feedid) { - throw new ServerException('Empty or invalid feed id.', 400); + throw new ServerException(_m('Empty or invalid feed id.'), 400); } $feedsub = FeedSub::staticGet('id', $feedid); if (!$feedsub) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ServerException('Unknown PuSH feed id ' . $feedid, 400); + // TRANS: Server exception. %s is a feed ID. + throw new ServerException(sprintf(_m('Unknown PuSH feed id %s'),$feedid), 400); } $hmac = ''; @@ -84,30 +83,31 @@ class PushCallbackAction extends Action $verify_token = $this->arg('hub_verify_token'); if ($mode != 'subscribe' && $mode != 'unsubscribe') { - throw new ClientException("Bad hub.mode $mode", 404); + // TRANS: Client exception. %s is an invalid value for hub.mode. + throw new ClientException(sprintf(_m('Bad hub.mode "$s".',$mode)), 404); } $feedsub = FeedSub::staticGet('uri', $topic); if (!$feedsub) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Bad hub.topic feed $topic.", 404); + // TRANS: Client exception. %s is an invalid feed name. + throw new ClientException(sprintf(_m('Bad hub.topic feed "%s".'),$topic), 404); } if ($feedsub->verify_token !== $verify_token) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Bad hub.verify_token $token for $topic.", 404); + // TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. + throw new ClientException(sprintf(_m('Bad hub.verify_token %1$s for %2$s.'),$token,$topic), 404); } if ($mode == 'subscribe') { // We may get re-sub requests legitimately. if ($feedsub->sub_state != 'subscribe' && $feedsub->sub_state != 'active') { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Unexpected subscribe request for $topic.", 404); + // TRANS: Client exception. %s is an invalid topic. + throw new ClientException(sprintf(_m('Unexpected subscribe request for %s.'),$topic), 404); } } else { if ($feedsub->sub_state != 'unsubscribe') { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Unexpected unsubscribe request for $topic.", 404); + // TRANS: Client exception. %s is an invalid topic. + throw new ClientException(sprintf(_m('Unexpected unsubscribe request for %s.'),$topic), 404); } } diff --git a/plugins/OStatus/actions/pushhub.php b/plugins/OStatus/actions/pushhub.php index 6909b8539..68035ab5c 100644 --- a/plugins/OStatus/actions/pushhub.php +++ b/plugins/OStatus/actions/pushhub.php @@ -62,11 +62,11 @@ class PushHubAction extends Action $this->subunsub($mode); break; case "publish": - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Publishing outside feeds not supported.", 400); + // TRANS: Client exception. + throw new ClientException(_m('Publishing outside feeds not supported.'), 400); default: - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Unrecognized mode '$mode'.", 400); + // TRANS: Client exception. %s is a mode. + throw new ClientException(sprintf(_m('Unrecognized mode "%s".'),$mode), 400); } } @@ -85,28 +85,28 @@ class PushHubAction extends Action $topic = $this->argUrl('hub.topic'); if (!$this->recognizedFeed($topic)) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Unsupported hub.topic $topic; this hub only serves local user and group Atom feeds."); + // TRANS: Client exception. %s is a topic. + throw new ClientException(sprintf(_m('Unsupported hub.topic %s this hub only serves local user and group Atom feeds.'),$topic)); } $verify = $this->arg('hub.verify'); // @fixme may be multiple if ($verify != 'sync' && $verify != 'async') { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Invalid hub.verify $verify; must be sync or async."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.verify "%s". It must be sync or async.'),$verify)); } $lease = $this->arg('hub.lease_seconds', null); if ($mode == 'subscribe' && $lease != '' && !preg_match('/^\d+$/', $lease)) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Invalid hub.lease $lease; must be empty or positive integer."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.lease "%s". It must be empty or positive integer.'),$lease)); } $token = $this->arg('hub.verify_token', null); $secret = $this->arg('hub.secret', null); if ($secret != '' && strlen($secret) >= 200) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Invalid hub.secret $secret; must be under 200 bytes."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.secret "%s". It must be under 200 bytes.'),$secret)); } $sub = HubSub::staticGet($topic, $callback); @@ -157,8 +157,8 @@ class PushHubAction extends Action if ($feed == $userFeed) { $user = User::staticGet('id', $id); if (!$user) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Invalid hub.topic $feed; user doesn't exist."); + // TRANS: Client exception. + throw new ClientException(sprintt(_m('Invalid hub.topic "%s". User doesn\'t exist.'),$feed)); } else { return true; } @@ -166,8 +166,8 @@ class PushHubAction extends Action if ($feed == $groupFeed) { $user = User_group::staticGet('id', $id); if (!$user) { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Invalid hub.topic $feed; group doesn't exist."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.topic "%s". Group doesn\'t exist.'),$feed)); } else { return true; } @@ -190,8 +190,9 @@ class PushHubAction extends Action if (Validate::uri($url, $params)) { return $url; } else { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new ClientException("Invalid URL passed for $arg: '$url'"); + // TRANS: Client exception. + // TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. + throw new ClientException(sprintf(_m('Invalid URL passed for %1$s: "%2$s"'),$arg,$url)); } } diff --git a/plugins/OStatus/actions/usersalmon.php b/plugins/OStatus/actions/usersalmon.php index 06a72bf02..e78c65330 100644 --- a/plugins/OStatus/actions/usersalmon.php +++ b/plugins/OStatus/actions/usersalmon.php @@ -17,15 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/** - * @package OStatusPlugin - * @author James Walker <james@status.net> - */ - if (!defined('STATUSNET')) { exit(1); } +/** + * @package OStatusPlugin + * @author James Walker <james@status.net> + */ class UsersalmonAction extends SalmonAction { function prepare($args) @@ -35,13 +34,13 @@ class UsersalmonAction extends SalmonAction $id = $this->trimmed('id'); if (!$id) { - $this->clientError(_('No ID.')); + $this->clientError(_m('No ID.')); } $this->user = User::staticGet('id', $id); if (empty($this->user)) { - $this->clientError(_('No such user.')); + $this->clientError(_m('No such user.')); } return true; @@ -78,20 +77,24 @@ class UsersalmonAction extends SalmonAction if (!empty($context->replyToID)) { $notice = Notice::staticGet('uri', $context->replyToID); if (empty($notice)) { - throw new ClientException("In reply to unknown notice"); + // TRANS: Client exception. + throw new ClientException(_m('In reply to unknown notice.')); } if ($notice->profile_id != $this->user->id && !in_array($this->user->id, $notice->getReplies())) { - throw new ClientException("In reply to a notice not by this user and not mentioning this user"); + // TRANS: Client exception. + throw new ClientException(_m('In reply to a notice not by this user and not mentioning this user.')); } } else if (!empty($context->attention)) { if (!in_array($this->user->uri, $context->attention) && !in_array(common_profile_url($this->user->nickname), $context->attention)) { common_log(LOG_ERR, "{$this->user->uri} not in attention list (".implode(',', $context->attention).")"); - throw new ClientException("To the attention of user(s) not including this one!"); + // TRANS: Client exception. + throw new ClientException('To the attention of user(s), not including this one.'); } } else { - throw new ClientException("Not to anyone in reply to anything!"); + // TRANS: Client exception. + throw new ClientException('Not to anyone in reply to anything.'); } $existing = Notice::staticGet('uri', $this->activity->objects[0]->id); @@ -108,7 +111,6 @@ class UsersalmonAction extends SalmonAction * We've gotten a follow/subscribe notification from a remote user. * Save a subscription relationship for them. */ - function handleFollow() { $oprofile = $this->ensureProfile(); @@ -152,11 +154,13 @@ class UsersalmonAction extends SalmonAction 'notice_id' => $notice->id)); if (!empty($old)) { - throw new ClientException("We already know that's a fave!"); + // TRANS: Client exception. + throw new ClientException(_('This is already a favorite.')); } if (!Fave::addNew($profile, $notice)) { - throw new ClientException("Could not save new favorite."); + // TRANS: Client exception. + throw new ClientException(_m('Could not save new favorite.')); } } @@ -172,7 +176,8 @@ class UsersalmonAction extends SalmonAction $fave = Fave::pkeyGet(array('user_id' => $profile->id, 'notice_id' => $notice->id)); if (empty($fave)) { - throw new ClientException("Notice wasn't favorited!"); + // TRANS: Client exception. + throw new ClientException(_('Notice wasn\'t favorited!')); } $fave->delete(); @@ -186,7 +191,8 @@ class UsersalmonAction extends SalmonAction function getNotice($object) { if (!$object) { - throw new ClientException("Can't favorite/unfavorite without an object."); + // TRANS: Client exception. + throw new ClientException(_m('Can\'t favorite/unfavorite without an object.')); } switch ($object->type) { @@ -197,20 +203,22 @@ class UsersalmonAction extends SalmonAction case ActivityObject::COMMENT: break; default: - throw new ClientException("Can't handle that kind of object for liking/faving."); + // TRANS: Client exception. + throw new ClientException(_m('Can\'t handle that kind of object for liking/faving.')); } $notice = Notice::staticGet('uri', $object->id); if (empty($notice)) { - throw new ClientException("Notice with ID $object->id unknown."); + // TRANS: Client exception. %s is an object ID. + throw new ClientException(sprintf(_m('Notice with ID %s unknown.'),$object->id)); } if ($notice->profile_id != $this->user->id) { - throw new ClientException("Notice with ID $object->id not posted by $this->user->id."); + // TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. + throw new ClientException(sprintf(_m('Notice with ID %1$s not posted by %2$s.'),$object->id,$this->user->id)); } return $notice; } - } diff --git a/plugins/OStatus/actions/userxrd.php b/plugins/OStatus/actions/userxrd.php index dd720568b..9aa7c0306 100644 --- a/plugins/OStatus/actions/userxrd.php +++ b/plugins/OStatus/actions/userxrd.php @@ -17,16 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { exit(1); } + /** * @package OStatusPlugin * @maintainer James Walker <james@status.net> */ - -if (!defined('STATUSNET')) { exit(1); } - class UserxrdAction extends XrdAction { - function prepare($args) { parent::prepare($args); @@ -46,7 +44,7 @@ class UserxrdAction extends XrdAction $this->user = User::staticGet('uri', $this->uri); } if (!$this->user) { - $this->clientError(_('No such user.'), 404); + $this->clientError(_m('No such user.'), 404); return false; } diff --git a/plugins/OStatus/classes/FeedSub.php b/plugins/OStatus/classes/FeedSub.php index 6f9e0856a..58beec673 100644 --- a/plugins/OStatus/classes/FeedSub.php +++ b/plugins/OStatus/classes/FeedSub.php @@ -39,7 +39,6 @@ PuSH subscription flow: hub sends us updates via POST */ - class FeedDBException extends FeedSubException { public $obj; @@ -88,7 +87,6 @@ class FeedSub extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -143,7 +141,6 @@ class FeedSub extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -157,7 +154,6 @@ class FeedSub extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('id' => 'K', 'uri' => 'U'); @@ -249,7 +245,7 @@ class FeedSub extends Memcached_DataObject // We'll never actually get updates in this mode. return true; } else { - throw new ServerException("Attempting to start PuSH subscription for feed with no hub."); + throw new ServerException(_m('Attempting to start PuSH subscription for feed with no hub.')); } } @@ -279,7 +275,7 @@ class FeedSub extends Memcached_DataObject // We'll never actually get updates in this mode. return true; } else { - throw new ServerException("Attempting to end PuSH subscription for feed with no hub."); + throw new ServerException(_m('Attempting to end PuSH subscription for feed with no hub.')); } } @@ -500,5 +496,4 @@ class FeedSub extends Memcached_DataObject } return false; } - } diff --git a/plugins/OStatus/classes/HubSub.php b/plugins/OStatus/classes/HubSub.php index e01ae4e79..825d36ebd 100644 --- a/plugins/OStatus/classes/HubSub.php +++ b/plugins/OStatus/classes/HubSub.php @@ -54,7 +54,6 @@ class HubSub extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('hashkey' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, @@ -112,7 +111,6 @@ class HubSub extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('hashkey' => 'K'); @@ -206,8 +204,8 @@ class HubSub extends Memcached_DataObject if ($status >= 200 && $status < 300) { common_log(LOG_INFO, "Verified $mode of $this->callback:$this->topic"); } else { - // @todo i18n FIXME: add i18n and use sprintf for parameter. - throw new ClientException("Hub subscriber verification returned HTTP $status"); + // TRANS: Client exception. %s is a HTTP status code. + throw new ClientException(sprintf(_m('Hub subscriber verification returned HTTP %s.'),$status)); } $old = HubSub::staticGet($this->topic, $this->callback); @@ -353,10 +351,9 @@ class HubSub extends Memcached_DataObject if ($response->isOk()) { return true; } else { - throw new Exception("Callback returned status: " . - $response->getStatus() . - "; body: " . - trim($response->getBody())); + // TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. + throw new Exception(sprintf(_m('Callback returned status: %1$s. Body: %2$s'), + $response->getStatus(),trim($response->getBody()))); } } } diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index e39a6d8f7..20025c37a 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -31,7 +31,6 @@ require_once 'Crypt/RSA.php'; class Magicsig extends Memcached_DataObject { - const PUBLICKEYREL = 'magic-public-key'; public $__table = 'magicsig'; @@ -86,7 +85,6 @@ class Magicsig extends Memcached_DataObject 64, false)); } - function keys() { return array_keys($this->keyTypes()); @@ -126,7 +124,6 @@ class Magicsig extends Memcached_DataObject $this->insert(); } - public function toString($full_pair = true) { $mod = Magicsig::base64_url_encode($this->publicKey->modulus->toBytes()); @@ -197,7 +194,6 @@ class Magicsig extends Memcached_DataObject case 'RSA-SHA256': return 'sha256'; } - } public function sign($bytes) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index bf2bcb44f..047435f66 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -21,7 +21,6 @@ * @package OStatusPlugin * @maintainer Brion Vibber <brion@status.net> */ - class Ostatus_profile extends Memcached_DataObject { public $__table = 'ostatus_profile'; @@ -51,7 +50,6 @@ class Ostatus_profile extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, @@ -92,7 +90,6 @@ class Ostatus_profile extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -106,7 +103,6 @@ class Ostatus_profile extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('uri' => 'K', 'profile_id' => 'U', 'group_id' => 'U', 'feeduri' => 'U'); @@ -188,11 +184,11 @@ class Ostatus_profile extends Memcached_DataObject } else if ($this->group_id && !$this->profile_id) { return true; } else if ($this->group_id && $this->profile_id) { - // @todo i18n FIXME: use sprintf and add i18n. - throw new ServerException("Invalid ostatus_profile state: both group and profile IDs set for $this->uri."); + // TRANS: Server exception. + throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs set for %s.'),$this->uri)); } else { - // @todo i18n FIXME: use sprintf and add i18n. - throw new ServerException("Invalid ostatus_profile state: both group and profile IDs empty for $this->uri."); + // TRANS: Server exception. + throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs empty for %s.'),$this->uri)); } } @@ -280,7 +276,9 @@ class Ostatus_profile extends Memcached_DataObject if ($type == 'object') { $type = get_class($actor); } - throw new ServerException("Invalid actor passed to " . __METHOD__ . ": " . $type); + // TRANS: Server exception. + // TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. + throw new ServerException(sprintf(_m('Invalid actor passed to %1$s: %2$s.'),__METHOD__,$type)); } if ($object == null) { $object = $this; @@ -372,8 +370,8 @@ class Ostatus_profile extends Memcached_DataObject } else if ($entry instanceof Notice) { return $preamble . $entry->asAtomEntry(true, true); } else { - // @todo i18n FIXME: use sprintf and add i18n. - throw new ServerException("Invalid type passed to Ostatus_profile::notify; must be XML string or Activity entry."); + // TRANS: Server exception. + throw new ServerException(_m('Invalid type passed to Ostatus_profile::notify. It must be XML string or Activity entry.')); } } @@ -403,7 +401,7 @@ class Ostatus_profile extends Memcached_DataObject } else if ($feed->localName == 'rss') { // @fixme check namespace $this->processRssFeed($feed, $source); } else { - throw new Exception("Unknown feed format."); + throw new Exception(_m('Unknown feed format.')); } } @@ -426,7 +424,7 @@ class Ostatus_profile extends Memcached_DataObject $channels = $rss->getElementsByTagName('channel'); if ($channels->length == 0) { - throw new Exception("RSS feed without a channel."); + throw new Exception(_m('RSS feed without a channel.')); } else if ($channels->length > 1) { common_log(LOG_WARNING, __METHOD__ . ": more than one channel in an RSS feed"); } @@ -470,7 +468,8 @@ class Ostatus_profile extends Memcached_DataObject } break; default: - throw new ClientException("Can't handle that kind of post."); + // TRANS: Client exception. + throw new ClientException(_m('Can\'t handle that kind of post.')); } Event::handle('EndHandleFeedEntry', array($activity)); @@ -552,8 +551,8 @@ class Ostatus_profile extends Memcached_DataObject $sourceContent = $note->title; } else { // @fixme fetch from $sourceUrl? - // @todo i18n FIXME: use sprintf and add i18n. - throw new ClientException("No content for notice {$sourceUri}."); + // TRANS: Client exception. %s is a source URL. + throw new ClientException(sprintf(_m('No content for notice %s.'),$sourceUri)); } // Get (safe!) HTML and text versions of the content @@ -584,14 +583,17 @@ class Ostatus_profile extends Memcached_DataObject // We mark up the attachment link specially for the HTML output // so we can fold-out the full version inline. + + // TRANS: Shown when a notice is longer than supported and/or when attachments are present. + $showMoreText = _m('Show more'); $attachUrl = common_local_url('attachment', array('attachment' => $attachment->id)); $rendered = common_render_text($shortSummary) . '<a href="' . htmlspecialchars($attachUrl) .'"'. ' class="attachment more"' . - ' title="'. htmlspecialchars(_m('Show more')) . '">' . + ' title="'. htmlspecialchars($showMoreText) . '">' . '…' . - '</a>'; // @todo i18n FIXME: add translator hint/context. + '</a>'; } } @@ -703,23 +705,7 @@ class Ostatus_profile extends Memcached_DataObject continue; } - // Is the recipient a remote group? - $oprofile = Ostatus_profile::ensureProfileURI($recipient); - - if ($oprofile) { - if ($oprofile->isGroup()) { - // Deliver to local members of this remote group. - // @fixme sender verification? - $groups[] = $oprofile->group_id; - } else { - // may be canonicalized or something - $replies[] = $oprofile->uri; - } - continue; - } - // Is the recipient a local group? - // @fixme uri on user_group isn't reliable yet // $group = User_group::staticGet('uri', $recipient); $id = OStatusPlugin::localGroupFromUrl($recipient); if ($id) { @@ -738,7 +724,22 @@ class Ostatus_profile extends Memcached_DataObject } } - common_log(LOG_DEBUG, "Skipping reply to unrecognized profile $recipient"); + // Is the recipient a remote user or group? + try { + $oprofile = Ostatus_profile::ensureProfileURI($recipient); + if ($oprofile->isGroup()) { + // Deliver to local members of this remote group. + // @fixme sender verification? + $groups[] = $oprofile->group_id; + } else { + // may be canonicalized or something + $replies[] = $oprofile->uri; + } + continue; + } catch (Exception $e) { + // Neither a recognizable local nor remote user! + common_log(LOG_DEBUG, "Skipping reply to unrecognized profile $recipient: " . $e->getMessage()); + } } $attention_uris = $replies; @@ -776,8 +777,8 @@ class Ostatus_profile extends Memcached_DataObject $response = $client->get($profile_url); if (!$response->isOk()) { - // @todo i18n FIXME: use sprintf and add i18n. - throw new Exception("Could not reach profile page: " . $profile_url); + // TRANS: Exception. %s is a profile URL. + throw new Exception(sprintf(_m('Could not reach profile page %s.'),$profile_url)); } // Check if we have a non-canonical URL @@ -834,8 +835,8 @@ class Ostatus_profile extends Memcached_DataObject return self::ensureFeedURL($feedurl, $hints); } - // @todo i18n FIXME: use sprintf and add i18n. - throw new Exception("Could not find a feed URL for profile page " . $finalUrl); + // TRANS: Exception. + throw new Exception(sprintf(_m('Could not find a feed URL for profile page %s.'),$finalUrl)); } /** @@ -867,7 +868,7 @@ class Ostatus_profile extends Memcached_DataObject $user = User::staticGet('id', $profile->id); if (!empty($user)) { - // @todo i18n FIXME: use sprintf and add i18n. + // @todo i18n FIXME: use sprintf and add i18n (?) throw new OStatusShadowException($profile, "'$profile_url' is the profile for local user '{$user->nickname}'."); } @@ -972,8 +973,7 @@ class Ostatus_profile extends Memcached_DataObject } // XXX: make some educated guesses here - - throw new FeedSubException("Can't find enough profile information to make a feed."); + throw new FeedSubException(_m('Can\'t find enough profile information to make a feed.')); } /** @@ -1271,13 +1271,13 @@ class Ostatus_profile extends Memcached_DataObject $user = User::staticGet('uri', $homeuri); if ($user) { - // @todo i18n FIXME: add i18n. - throw new Exception("Local user can't be referenced as remote."); + // TRANS: Exception. + throw new Exception(_m('Local user can\'t be referenced as remote.')); } if (OStatusPlugin::localGroupFromUrl($homeuri)) { - // @todo i18n FIXME: add i18n. - throw new Exception("Local group can't be referenced as remote."); + // TRANS: Exception. + throw new Exception(_m('Local group can\'t be referenced as remote.')); } if (array_key_exists('feedurl', $hints)) { @@ -1328,8 +1328,8 @@ class Ostatus_profile extends Memcached_DataObject $oprofile->profile_id = $profile->insert(); if (!$oprofile->profile_id) { - // @todo i18n FIXME: add i18n. - throw new ServerException("Can't save local profile."); + // TRANS: Exception. + throw new ServerException(_m('Can\'t save local profile.')); } } else { $group = new User_group(); @@ -1339,16 +1339,16 @@ class Ostatus_profile extends Memcached_DataObject $oprofile->group_id = $group->insert(); if (!$oprofile->group_id) { - // @todo i18n FIXME: add i18n. - throw new ServerException("Can't save local profile."); + // TRANS: Exception. + throw new ServerException(_m('Can\'t save local profile.')); } } $ok = $oprofile->insert(); if (!$ok) { - // @todo i18n FIXME: add i18n. - throw new ServerException("Can't save OStatus profile."); + // TRANS: Exception. + throw new ServerException(_m('Can\'t save OStatus profile.')); } $avatar = self::getActivityObjectAvatar($object, $hints); @@ -1606,8 +1606,8 @@ class Ostatus_profile extends Memcached_DataObject if ($uri !== false) { if (is_null($uri)) { // Negative cache entry - // @todo i18n FIXME: add i18n. - throw new Exception('Not a valid webfinger address.'); + // TRANS: Exception. + throw new Exception(_m('Not a valid webfinger address.')); } $oprofile = Ostatus_profile::staticGet('uri', $uri); if (!empty($oprofile)) { @@ -1634,8 +1634,8 @@ class Ostatus_profile extends Memcached_DataObject // Save negative cache entry so we don't waste time looking it up again. // @fixme distinguish temporary failures? self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), null); - // @todo i18n FIXME: add i18n. - throw new Exception('Not a valid webfinger address.'); + // TRANS: Exception. + throw new Exception(_m('Not a valid webfinger address.')); } $hints = array('webfinger' => $addr); @@ -1716,8 +1716,8 @@ class Ostatus_profile extends Memcached_DataObject if (!$profile_id) { common_log_db_error($profile, 'INSERT', __FILE__); - // @todo i18n FIXME: add i18n and use sprintf for parameter. - throw new Exception("Couldn't save profile for '$addr'."); + // TRANS: Exception. %s is a webfinger address. + throw new Exception(sprintf(_m('Couldn\'t save profile for "%s".'),$addr)); } $oprofile = new Ostatus_profile(); @@ -1735,16 +1735,16 @@ class Ostatus_profile extends Memcached_DataObject if (!$result) { common_log_db_error($oprofile, 'INSERT', __FILE__); - // @todo i18n FIXME: add i18n and use sprintf for parameter. - throw new Exception("Couldn't save ostatus_profile for '$addr'."); + // TRANS: Exception. %s is a webfinger address. + throw new Exception(sprintf(_m('Couldn\'t save ostatus_profile for "%s".'),$addr)); } self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->uri); return $oprofile; } - // @todo i18n FIXME: add i18n and use sprintf for parameter. - throw new Exception("Couldn't find a valid profile for '$addr'"); + // TRANS: Exception. %s is a webfinger address. + throw new Exception(sprintf(_m('Couldn\'t find a valid profile for "%s".'),$addr)); } /** @@ -1786,7 +1786,7 @@ class Ostatus_profile extends Memcached_DataObject if ($file_id === false) { common_log_db_error($file, "INSERT", __FILE__); - throw new ServerException(_('Could not store HTML content of long post as file.')); + throw new ServerException(_m('Could not store HTML content of long post as file.')); } return $file; diff --git a/plugins/OStatus/classes/Ostatus_source.php b/plugins/OStatus/classes/Ostatus_source.php index e6ce7d442..b76bbce56 100644 --- a/plugins/OStatus/classes/Ostatus_source.php +++ b/plugins/OStatus/classes/Ostatus_source.php @@ -21,7 +21,6 @@ * @package OStatusPlugin * @maintainer Brion Vibber <brion@status.net> */ - class Ostatus_source extends Memcached_DataObject { public $__table = 'ostatus_source'; @@ -43,7 +42,6 @@ class Ostatus_source extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -69,7 +67,6 @@ class Ostatus_source extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -83,7 +80,6 @@ class Ostatus_source extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('notice_id' => 'K'); diff --git a/plugins/OStatus/lib/discovery.php b/plugins/OStatus/lib/discovery.php index 04c672720..905ece2ca 100644 --- a/plugins/OStatus/lib/discovery.php +++ b/plugins/OStatus/lib/discovery.php @@ -106,8 +106,8 @@ class Discovery } } - // @todo Needs i18n. - throw new Exception('Unable to find services for '. $id . '.'); + // TRANS: Exception. + throw new Exception(sprintf(_m('Unable to find services for %s.'),$id)); } public static function getService($links, $service) { diff --git a/plugins/OStatus/lib/discoveryhints.php b/plugins/OStatus/lib/discoveryhints.php index fa2ead732..a98f4a6d6 100644 --- a/plugins/OStatus/lib/discoveryhints.php +++ b/plugins/OStatus/lib/discoveryhints.php @@ -20,7 +20,6 @@ */ class DiscoveryHints { - static function fromXRD($xrd) { $hints = array(); diff --git a/plugins/OStatus/lib/linkheader.php b/plugins/OStatus/lib/linkheader.php index cd78d31ce..efa3f65ff 100644 --- a/plugins/OStatus/lib/linkheader.php +++ b/plugins/OStatus/lib/linkheader.php @@ -1,4 +1,7 @@ <?php +/** + * @todo Add file header and documentation. + */ class LinkHeader { diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index bbd4ce17a..03e6f7c66 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -76,7 +76,8 @@ class MagicEnvelope } } } - throw new Exception('Unable to locate signer public key.'); + // TRANS: Exception. + throw new Exception(_m('Unable to locate signer public key.')); } @@ -92,7 +93,6 @@ class MagicEnvelope 'sig' => $signature_alg->sign($armored_text), 'alg' => $signature_alg->getName() ); - } public function toXML($env) { @@ -110,7 +110,6 @@ class MagicEnvelope return $string; } - public function unfold($env) { $dom = new DOMDocument(); @@ -218,5 +217,4 @@ class MagicEnvelope 'sig' => preg_replace('/\s/', '', $sig_element->nodeValue), ); } - } diff --git a/plugins/OStatus/lib/ostatusqueuehandler.php b/plugins/OStatus/lib/ostatusqueuehandler.php index 9814cab9f..5e0ab46a5 100644 --- a/plugins/OStatus/lib/ostatusqueuehandler.php +++ b/plugins/OStatus/lib/ostatusqueuehandler.php @@ -221,5 +221,4 @@ class OStatusQueueHandler extends QueueHandler return $feed; } - } diff --git a/plugins/OStatus/lib/pushinqueuehandler.php b/plugins/OStatus/lib/pushinqueuehandler.php index 1fd29ae30..965d04266 100644 --- a/plugins/OStatus/lib/pushinqueuehandler.php +++ b/plugins/OStatus/lib/pushinqueuehandler.php @@ -22,7 +22,6 @@ * @package FeedSub * @author Brion Vibber <brion@status.net> */ - class PushInQueueHandler extends QueueHandler { function transport() diff --git a/plugins/OStatus/lib/salmon.php b/plugins/OStatus/lib/salmon.php index 631ebc7d8..963da6508 100644 --- a/plugins/OStatus/lib/salmon.php +++ b/plugins/OStatus/lib/salmon.php @@ -89,8 +89,8 @@ class Salmon $magickey->generate($user->id); } } else { - // @todo i18n FIXME: added i18n and use sprintf when using parameters. - throw new Exception("Salmon invalid actor for signing."); + // TRANS: Exception. + throw new Exception(_m('Salmon invalid actor for signing.')); } try { @@ -101,7 +101,6 @@ class Salmon return $magic_env->toXML($env); } - public function verifyMagicEnv($text) { $magic_env = new MagicEnvelope(); diff --git a/plugins/OStatus/lib/salmonaction.php b/plugins/OStatus/lib/salmonaction.php index f97c67edd..41bdb4892 100644 --- a/plugins/OStatus/lib/salmonaction.php +++ b/plugins/OStatus/lib/salmonaction.php @@ -38,11 +38,12 @@ class SalmonAction extends Action parent::prepare($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { - // TRANS: POST is a HTTP command. It should not be translated. + // TRANS: Client error. POST is a HTTP command. It should not be translated. $this->clientError(_m('This method requires a POST.')); } if (empty($_SERVER['CONTENT_TYPE']) || $_SERVER['CONTENT_TYPE'] != 'application/magic-envelope+xml') { + // TRANS: Client error. Do not translate "application/magic-envelope+xml" $this->clientError(_m('Salmon requires "application/magic-envelope+xml".')); } @@ -52,6 +53,7 @@ class SalmonAction extends Action $salmon = new Salmon; if (!$salmon->verifyMagicEnv($xml)) { common_log(LOG_DEBUG, "Salmon signature verification failed."); + // TRANS: Client error. $this->clientError(_m('Salmon signature verification failed.')); } else { $magic_env = new MagicEnvelope(); @@ -63,6 +65,7 @@ class SalmonAction extends Action if ($dom->documentElement->namespaceURI != Activity::ATOM || $dom->documentElement->localName != 'entry') { common_log(LOG_DEBUG, "Got invalid Salmon post: $xml"); + // TRANS: Client error. $this->clientError(_m('Salmon post must be an Atom entry.')); } @@ -111,6 +114,7 @@ class SalmonAction extends Action $this->handleUpdateProfile(); break; default: + // TRANS: Client exception. throw new ClientException(_m("Unrecognized activity type.")); } Event::handle('EndHandleSalmon', array($this->activity)); @@ -119,41 +123,49 @@ class SalmonAction extends Action function handlePost() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand posts.")); } function handleFollow() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand follows.")); } function handleUnfollow() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand unfollows.")); } function handleFavorite() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand favorites.")); } function handleUnfavorite() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand unfavorites.")); } function handleShare() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand share events.")); } function handleJoin() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand joins.")); } function handleLeave() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand leave events.")); } @@ -181,7 +193,8 @@ class SalmonAction extends Action if (empty($actor->id)) { common_log(LOG_ERR, "broken actor: " . var_export($actor, true)); common_log(LOG_ERR, "activity with no actor: " . var_export($this->activity, true)); - throw new Exception("Received a salmon slap from unidentified actor."); + // TRANS: Exception. + throw new Exception(_m('Received a salmon slap from unidentified actor.')); } return Ostatus_profile::ensureActivityObjectProfile($actor); diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index 145cd64cb..c8cffed9c 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -27,7 +27,6 @@ * @link http://status.net/ */ - class XRD { const XML_NS = 'http://www.w3.org/2000/xmlns/'; @@ -61,11 +60,13 @@ class XRD error_reporting($old); if (!$ok) { - throw new Exception("Invalid XML."); + // TRANS: Exception. + throw new Exception(_m('Invalid XML.')); } $xrd_element = $dom->getElementsByTagName('XRD')->item(0); if (!$xrd_element) { - throw new Exception("Invalid XML, missing XRD root."); + // TRANS: Exception. + throw new Exception(_m('Invalid XML, missing XRD root.')); } // Check for host-meta host diff --git a/plugins/OStatus/lib/xrdaction.php b/plugins/OStatus/lib/xrdaction.php index 91bb87cc2..c8b5beff3 100644 --- a/plugins/OStatus/lib/xrdaction.php +++ b/plugins/OStatus/lib/xrdaction.php @@ -103,5 +103,4 @@ class XrdAction extends Action header('Content-type: application/xrd+xml'); print $xrd->toXML(); } - } diff --git a/plugins/OStatus/locale/OStatus.pot b/plugins/OStatus/locale/OStatus.pot index 3dc6fd6ad..882e8d308 100644 --- a/plugins/OStatus/locale/OStatus.pot +++ b/plugins/OStatus/locale/OStatus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-14 22:56+0000\n" +"POT-Creation-Date: 2010-09-19 15:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,61 +16,183 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: OStatusPlugin.php:226 OStatusPlugin.php:951 actions/ostatusinit.php:99 +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:227 OStatusPlugin.php:958 msgid "Subscribe" msgstr "" -#: OStatusPlugin.php:244 OStatusPlugin.php:663 actions/ostatussub.php:105 -#: actions/ostatusinit.php:96 +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:246 OStatusPlugin.php:667 actions/ostatussub.php:107 msgid "Join" msgstr "" -#: OStatusPlugin.php:456 +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:459 #, php-format msgid "Sent from %s via OStatus" msgstr "" -#: OStatusPlugin.php:527 +#. TRANS: Exception. +#: OStatusPlugin.php:531 msgid "Could not set up remote subscription." msgstr "" -#: OStatusPlugin.php:647 +#: OStatusPlugin.php:570 +msgid "Follow" +msgstr "" + +#. TRANS: Success message for subscribe to user attempt through OStatus. +#. TRANS: %1$s is the subscriber name, %2$s is the subscribed user's name. +#: OStatusPlugin.php:573 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "" + +#: OStatusPlugin.php:620 +msgid "Unfollow" +msgstr "" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:623 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "" + +#: OStatusPlugin.php:651 msgid "Could not set up remote group membership." msgstr "" -#: OStatusPlugin.php:674 +#. TRANS: Exception. +#: OStatusPlugin.php:679 msgid "Failed joining remote group." msgstr "" -#: OStatusPlugin.php:714 +#: OStatusPlugin.php:719 msgid "Leave" msgstr "" -#: OStatusPlugin.php:880 +#: OStatusPlugin.php:760 +msgid "Favor" +msgstr "" + +#. TRANS: Success message for adding a favorite notice through OStatus. +#. TRANS: %1$s is the favoring user's name, %2$s is URI to the favored notice. +#: OStatusPlugin.php:763 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "" + +#: OStatusPlugin.php:806 +msgid "Disfavor" +msgstr "" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:809 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "" + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:885 msgid "Remote" msgstr "" -#: OStatusPlugin.php:919 +#. TRANS: Title for activity. +#: OStatusPlugin.php:925 msgid "Profile update" msgstr "" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:922 +#: OStatusPlugin.php:928 #, php-format msgid "%s has updated their profile page." msgstr "" -#: OStatusPlugin.php:966 +#. TRANS: Plugin description. +#: OStatusPlugin.php:973 msgid "" "Follow people across social networks that implement <a href=\"http://ostatus." "org/\">OStatus</a>." msgstr "" -#: classes/Ostatus_profile.php:592 +#: classes/FeedSub.php:248 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" + +#: classes/FeedSub.php:278 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:188 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:191 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:281 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:374 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" + +#: classes/Ostatus_profile.php:404 +msgid "Unknown feed format." +msgstr "" + +#: classes/Ostatus_profile.php:427 +msgid "RSS feed without a channel." +msgstr "" + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:472 +msgid "Can't handle that kind of post." +msgstr "" + +#. TRANS: Client exception. %s is a source URL. +#: classes/Ostatus_profile.php:555 +#, php-format +msgid "No content for notice %s." +msgstr "" + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. +#: classes/Ostatus_profile.php:588 msgid "Show more" msgstr "" +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:781 +#, php-format +msgid "Could not reach profile page %s." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:839 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "" + +#: classes/Ostatus_profile.php:976 +msgid "Can't find enough profile information to make a feed." +msgstr "" + #: classes/Ostatus_profile.php:1035 #, php-format msgid "Invalid avatar URL %s." @@ -86,239 +208,554 @@ msgstr "" msgid "Unable to fetch avatar from %s." msgstr "" -#. TRANS: POST is a HTTP command. It should not be translated. +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1275 +msgid "Local user can't be referenced as remote." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1280 +msgid "Local group can't be referenced as remote." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1332 classes/Ostatus_profile.php:1343 +msgid "Can't save local profile." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1351 +msgid "Can't save OStatus profile." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1610 classes/Ostatus_profile.php:1638 +msgid "Not a valid webfinger address." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1720 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1739 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1747 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "" + +#: classes/Ostatus_profile.php:1789 +msgid "Could not store HTML content of long post as file." +msgstr "" + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:208 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "" + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:355 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. #: lib/salmonaction.php:42 msgid "This method requires a POST." msgstr "" -#: lib/salmonaction.php:46 +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 msgid "Salmon requires \"application/magic-envelope+xml\"." msgstr "" -#: lib/salmonaction.php:55 +#. TRANS: Client error. +#: lib/salmonaction.php:57 msgid "Salmon signature verification failed." msgstr "" -#: lib/salmonaction.php:66 +#. TRANS: Client error. +#: lib/salmonaction.php:69 msgid "Salmon post must be an Atom entry." msgstr "" -#: lib/salmonaction.php:114 +#. TRANS: Client exception. +#: lib/salmonaction.php:118 msgid "Unrecognized activity type." msgstr "" -#: lib/salmonaction.php:122 +#. TRANS: Client exception. +#: lib/salmonaction.php:127 msgid "This target doesn't understand posts." msgstr "" -#: lib/salmonaction.php:127 +#. TRANS: Client exception. +#: lib/salmonaction.php:133 msgid "This target doesn't understand follows." msgstr "" -#: lib/salmonaction.php:132 +#. TRANS: Client exception. +#: lib/salmonaction.php:139 msgid "This target doesn't understand unfollows." msgstr "" -#: lib/salmonaction.php:137 +#. TRANS: Client exception. +#: lib/salmonaction.php:145 msgid "This target doesn't understand favorites." msgstr "" -#: lib/salmonaction.php:142 +#. TRANS: Client exception. +#: lib/salmonaction.php:151 msgid "This target doesn't understand unfavorites." msgstr "" -#: lib/salmonaction.php:147 +#. TRANS: Client exception. +#: lib/salmonaction.php:157 msgid "This target doesn't understand share events." msgstr "" -#: lib/salmonaction.php:152 +#. TRANS: Client exception. +#: lib/salmonaction.php:163 msgid "This target doesn't understand joins." msgstr "" -#: lib/salmonaction.php:157 +#. TRANS: Client exception. +#: lib/salmonaction.php:169 msgid "This target doesn't understand leave events." msgstr "" +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "" + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "" + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "" + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "" + #: tests/gettext-speedtest.php:57 msgid "Feeds" msgstr "" -#: actions/ostatusgroup.php:75 +#. TRANS: Client exception. +#: actions/pushhub.php:66 +msgid "Publishing outside feeds not supported." +msgstr "" + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:69 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "" + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:89 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:95 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:101 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:109 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:161 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:170 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:195 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "" + +#: actions/userxrd.php:47 actions/ownerxrd.php:37 actions/usersalmon.php:43 +msgid "No such user." +msgstr "" + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "" + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusgroup.php:76 msgid "Join group" msgstr "" -#: actions/ostatusgroup.php:77 +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:79 msgid "OStatus group's address, like http://example.net/group/nickname." msgstr "" -#: actions/ostatusgroup.php:81 actions/ostatussub.php:71 +#. TRANS: Button text. +#: actions/ostatusgroup.php:84 actions/ostatussub.php:73 +msgctxt "BUTTON" msgid "Continue" msgstr "" -#: actions/ostatusgroup.php:100 +#: actions/ostatusgroup.php:103 msgid "You are already a member of this group." msgstr "" #. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:135 +#: actions/ostatusgroup.php:138 msgid "Already a member!" msgstr "" #. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:146 +#: actions/ostatusgroup.php:149 msgid "Remote group join failed!" msgstr "" #. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:150 +#: actions/ostatusgroup.php:153 msgid "Remote group join aborted!" msgstr "" #. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:163 +#: actions/ostatusgroup.php:165 msgid "Confirm joining remote group" msgstr "" -#: actions/ostatusgroup.php:174 +#. TRANS: Instructions. +#: actions/ostatusgroup.php:176 msgid "" "You can subscribe to groups from other supported sites. Paste the group's " "profile URI below:" msgstr "" -#: actions/groupsalmon.php:51 +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 msgid "Can't accept remote posts for a remote group." msgstr "" -#: actions/groupsalmon.php:124 +#. TRANS: Client error. +#: actions/groupsalmon.php:127 msgid "Can't read profile to set up group membership." msgstr "" -#: actions/groupsalmon.php:127 actions/groupsalmon.php:170 +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 msgid "Groups can't join groups." msgstr "" -#: actions/groupsalmon.php:154 +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 #, php-format msgid "Could not join remote user %1$s to group %2$s." msgstr "" -#: actions/groupsalmon.php:167 +#: actions/groupsalmon.php:171 msgid "Can't read profile to cancel group membership." msgstr "" -#: actions/groupsalmon.php:183 +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 #, php-format msgid "Could not remove remote user %1$s from group %2$s." msgstr "" -#: actions/ostatussub.php:65 +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:66 msgid "Subscribe to" msgstr "" -#: actions/ostatussub.php:67 +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:69 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" msgstr "" -#: actions/ostatussub.php:106 +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:110 +msgctxt "BUTTON" msgid "Join this group" msgstr "" -#. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:108 actions/ostatussub.php:400 +#. TRANS: Button text. +#: actions/ostatussub.php:113 +msgctxt "BUTTON" msgid "Confirm" msgstr "" -#: actions/ostatussub.php:109 +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:115 msgid "Subscribe to this user" msgstr "" -#: actions/ostatussub.php:130 +#: actions/ostatussub.php:136 msgid "You are already subscribed to this user." msgstr "" -#: actions/ostatussub.php:247 actions/ostatussub.php:253 -#: actions/ostatussub.php:272 +#: actions/ostatussub.php:165 +msgid "Photo" +msgstr "" + +#: actions/ostatussub.php:176 +msgid "Nickname" +msgstr "" + +#: actions/ostatussub.php:197 +msgid "Location" +msgstr "" + +#: actions/ostatussub.php:206 +msgid "URL" +msgstr "" + +#: actions/ostatussub.php:218 +msgid "Note" +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:254 actions/ostatussub.php:261 +#: actions/ostatussub.php:286 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." msgstr "" -#: actions/ostatussub.php:256 actions/ostatussub.php:259 -#: actions/ostatussub.php:262 actions/ostatussub.php:265 -#: actions/ostatussub.php:268 +#. TRANS: Error text. +#: actions/ostatussub.php:265 actions/ostatussub.php:269 +#: actions/ostatussub.php:273 actions/ostatussub.php:277 +#: actions/ostatussub.php:281 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." msgstr "" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:301 +#: actions/ostatussub.php:315 msgid "Already subscribed!" msgstr "" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:306 +#: actions/ostatussub.php:320 msgid "Remote subscription failed!" msgstr "" -#: actions/ostatussub.php:380 actions/ostatusinit.php:81 +#: actions/ostatussub.php:367 actions/ostatusinit.php:63 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Form title. +#: actions/ostatussub.php:395 actions/ostatusinit.php:82 msgid "Subscribe to user" msgstr "" -#: actions/ostatussub.php:411 +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:415 +msgid "Confirm" +msgstr "" + +#. TRANS: Instructions. +#: actions/ostatussub.php:427 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" msgstr "" +#. TRANS: Client error. #: actions/ostatusinit.php:41 msgid "You can use the local subscription!" msgstr "" -#: actions/ostatusinit.php:63 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: actions/ostatusinit.php:95 +#. TRANS: Form legend. +#: actions/ostatusinit.php:97 #, php-format msgid "Join group %s" msgstr "" -#: actions/ostatusinit.php:98 +#. TRANS: Button text. +#: actions/ostatusinit.php:99 +msgctxt "BUTTON" +msgid "Join" +msgstr "" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:102 #, php-format msgid "Subscribe to %s" msgstr "" -#: actions/ostatusinit.php:111 +#. TRANS: Button text. +#: actions/ostatusinit.php:104 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusinit.php:117 msgid "User nickname" msgstr "" -#: actions/ostatusinit.php:112 +#: actions/ostatusinit.php:118 msgid "Nickname of the user you want to follow." msgstr "" -#: actions/ostatusinit.php:116 +#. TRANS: Field label. +#: actions/ostatusinit.php:123 msgid "Profile Account" msgstr "" -#: actions/ostatusinit.php:117 +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:125 msgid "Your account id (e.g. user@identi.ca)." msgstr "" -#: actions/ostatusinit.php:138 +#. TRANS: Client error. +#: actions/ostatusinit.php:147 msgid "Must provide a remote profile." msgstr "" -#: actions/ostatusinit.php:149 +#. TRANS: Client error. +#: actions/ostatusinit.php:159 msgid "Couldn't look up OStatus account profile." msgstr "" -#: actions/ostatusinit.php:161 +#. TRANS: Client error. +#: actions/ostatusinit.php:172 msgid "Couldn't confirm remote profile address." msgstr "" -#: actions/ostatusinit.php:202 +#. TRANS: Page title. +#: actions/ostatusinit.php:217 msgid "OStatus Connect" msgstr "" + +#: actions/pushcallback.php:48 +msgid "Empty or invalid feed id." +msgstr "" + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:54 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:93 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:98 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:105 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:110 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "" diff --git a/plugins/OStatus/tests/remote-tests.php b/plugins/OStatus/tests/remote-tests.php index c2c9a5d97..64c60a8a4 100644 --- a/plugins/OStatus/tests/remote-tests.php +++ b/plugins/OStatus/tests/remote-tests.php @@ -4,6 +4,8 @@ if (php_sapi_name() != 'cli') { die('not for web'); } +define('TIMEOUT', 60); // ssslllloowwwww salmon if queues are off + define('INSTALLDIR', dirname(dirname(dirname(dirname(__FILE__))))); set_include_path(INSTALLDIR . '/extlib' . PATH_SEPARATOR . get_include_path()); @@ -188,7 +190,7 @@ class SNTestClient extends TestBase { $url = $this->basepath . '/' . $path; - $http = new HTTP_Request2($url, 'POST'); + $http = new HTTP_Request2($url, 'POST', array('timeout' => TIMEOUT)); if ($auth) { $http->setAuth($this->username, $this->password, HTTP_Request2::AUTH_BASIC); } @@ -215,7 +217,7 @@ class SNTestClient extends TestBase protected function web($path, $form, $params=array()) { $url = $this->basepath . '/' . $path; - $http = new HTTP_Request2($url, 'GET'); + $http = new HTTP_Request2($url, 'GET', array('timeout' => TIMEOUT)); $response = $http->send(); $dom = $this->checkWeb($url, 'GET', $response); |