summaryrefslogtreecommitdiff
path: root/plugins/OStatus
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-09-22 10:45:34 -0400
committerEvan Prodromou <evan@status.net>2010-09-22 10:45:34 -0400
commitb5cfcba4712809cb17eabba299ce5ff04f4d7d70 (patch)
tree38235bafd6ddf194e484b97321c0c341bea9de38 /plugins/OStatus
parent91a186251047127ad7f1238f47ff761d9127627c (diff)
parentf0105893b0b78ff88d08cc2417773ad8a44dc2fa (diff)
Merge branch '0.9.x' into activityexport
Conflicts: plugins/OStatus/OStatusPlugin.php
Diffstat (limited to 'plugins/OStatus')
-rw-r--r--plugins/OStatus/OStatusPlugin.php29
-rw-r--r--plugins/OStatus/actions/groupsalmon.php30
-rw-r--r--plugins/OStatus/actions/hostmeta.php1
-rw-r--r--plugins/OStatus/actions/ostatusgroup.php8
-rw-r--r--plugins/OStatus/actions/ostatusinit.php22
-rw-r--r--plugins/OStatus/actions/ostatussub.php42
-rw-r--r--plugins/OStatus/actions/ownerxrd.php2
-rw-r--r--plugins/OStatus/actions/pushcallback.php26
-rw-r--r--plugins/OStatus/actions/pushhub.php37
-rw-r--r--plugins/OStatus/actions/usersalmon.php48
-rw-r--r--plugins/OStatus/actions/userxrd.php8
-rw-r--r--plugins/OStatus/classes/FeedSub.php9
-rw-r--r--plugins/OStatus/classes/HubSub.php13
-rw-r--r--plugins/OStatus/classes/Magicsig.php4
-rw-r--r--plugins/OStatus/classes/Ostatus_profile.php126
-rw-r--r--plugins/OStatus/classes/Ostatus_source.php4
-rw-r--r--plugins/OStatus/lib/discovery.php4
-rw-r--r--plugins/OStatus/lib/discoveryhints.php1
-rw-r--r--plugins/OStatus/lib/linkheader.php3
-rw-r--r--plugins/OStatus/lib/magicenvelope.php6
-rw-r--r--plugins/OStatus/lib/ostatusqueuehandler.php1
-rw-r--r--plugins/OStatus/lib/pushinqueuehandler.php1
-rw-r--r--plugins/OStatus/lib/salmon.php5
-rw-r--r--plugins/OStatus/lib/salmonaction.php17
-rw-r--r--plugins/OStatus/lib/xrd.php7
-rw-r--r--plugins/OStatus/lib/xrdaction.php1
-rw-r--r--plugins/OStatus/locale/OStatus.pot581
-rw-r--r--plugins/OStatus/tests/remote-tests.php6
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) . '">' .
'&#8230;' .
- '</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);