Commit 38980396 authored by Evan Prodromou's avatar Evan Prodromou

Merge remote branch 'gitorious/1.0.x' into 1.0.x

parents 865c1bc2 ede8fabb
...@@ -121,6 +121,7 @@ class ApprovegroupAction extends Action ...@@ -121,6 +121,7 @@ class ApprovegroupAction extends Action
if (empty($this->request)) { if (empty($this->request)) {
// TRANS: Client error displayed trying to approve group membership for a non-existing request. // TRANS: Client error displayed trying to approve group membership for a non-existing request.
// TRANS: %s is a nickname.
$this->clientError(sprintf(_('%s is not in the moderation queue for this group.'), $this->profile->nickname), 403); $this->clientError(sprintf(_('%s is not in the moderation queue for this group.'), $this->profile->nickname), 403);
} }
...@@ -176,10 +177,10 @@ class ApprovegroupAction extends Action ...@@ -176,10 +177,10 @@ class ApprovegroupAction extends Action
$this->elementEnd('head'); $this->elementEnd('head');
$this->elementStart('body'); $this->elementStart('body');
if ($this->approve) { if ($this->approve) {
// TRANS: Message on page for group admin after approving a join request. // TRANS: Message on page for group admin after approving a join request.
$this->element('p', 'success', _('Join request approved.')); $this->element('p', 'success', _('Join request approved.'));
} elseif ($this->cancel) { } elseif ($this->cancel) {
// TRANS: Message on page for group admin after rejecting a join request. // TRANS: Message on page for group admin after rejecting a join request.
$this->element('p', 'success', _('Join request canceled.')); $this->element('p', 'success', _('Join request canceled.'));
} }
$this->elementEnd('body'); $this->elementEnd('body');
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/** /**
* StatusNet, the distributed open-source microblogging tool * StatusNet, the distributed open-source microblogging tool
* *
* Leave a group * Approve group subscription request
* *
* PHP version 5 * PHP version 5
* *
......
...@@ -53,6 +53,7 @@ class CancelsubscriptionAction extends Action ...@@ -53,6 +53,7 @@ class CancelsubscriptionAction extends Action
StatusNet::setApi(true); StatusNet::setApi(true);
} }
if (!common_logged_in()) { if (!common_logged_in()) {
// TRANS: Client error displayed when trying to leave a group while not logged in.
$this->clientError(_('Not logged in.')); $this->clientError(_('Not logged in.'));
return; return;
} }
...@@ -78,6 +79,7 @@ class CancelsubscriptionAction extends Action ...@@ -78,6 +79,7 @@ class CancelsubscriptionAction extends Action
$other_id = $this->arg('unsubscribeto'); $other_id = $this->arg('unsubscribeto');
if (!$other_id) { if (!$other_id) {
// TRANS: Client error displayed when trying to leave a group without specifying an ID.
$this->clientError(_('No profile ID in request.')); $this->clientError(_('No profile ID in request.'));
return; return;
} }
...@@ -85,6 +87,7 @@ class CancelsubscriptionAction extends Action ...@@ -85,6 +87,7 @@ class CancelsubscriptionAction extends Action
$other = Profile::staticGet('id', $other_id); $other = Profile::staticGet('id', $other_id);
if (!$other) { if (!$other) {
// TRANS: Client error displayed when trying to leave a non-existing group.
$this->clientError(_('No profile with that ID.')); $this->clientError(_('No profile with that ID.'));
return; return;
} }
...@@ -103,7 +106,8 @@ class CancelsubscriptionAction extends Action ...@@ -103,7 +106,8 @@ class CancelsubscriptionAction extends Action
if ($this->boolean('ajax')) { if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8'); $this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head'); $this->elementStart('head');
$this->element('title', null, _('Unsubscribed')); // TRANS: Title after unsubscribing from a group.
$this->element('title', null, _m('TITLE','Unsubscribed'));
$this->elementEnd('head'); $this->elementEnd('head');
$this->elementStart('body'); $this->elementStart('body');
$subscribe = new SubscribeForm($this, $other); $subscribe = new SubscribeForm($this, $other);
......
...@@ -161,6 +161,7 @@ class GroupqueueAction extends GroupDesignAction ...@@ -161,6 +161,7 @@ class GroupqueueAction extends GroupDesignAction
} }
} }
// @todo FIXME: documentation missing.
class GroupQueueList extends GroupMemberList class GroupQueueList extends GroupMemberList
{ {
function newListItem($profile) function newListItem($profile)
...@@ -169,6 +170,7 @@ class GroupQueueList extends GroupMemberList ...@@ -169,6 +170,7 @@ class GroupQueueList extends GroupMemberList
} }
} }
// @todo FIXME: documentation missing.
class GroupQueueListItem extends GroupMemberListItem class GroupQueueListItem extends GroupMemberListItem
{ {
function showActions() function showActions()
......
...@@ -33,8 +33,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { ...@@ -33,8 +33,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1); exit(1);
} }
/** /**
* Change profile settings * Change profile settings
* *
...@@ -46,7 +44,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { ...@@ -46,7 +44,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/ * @link http://status.net/
*/ */
class ProfilesettingsAction extends SettingsAction class ProfilesettingsAction extends SettingsAction
{ {
/** /**
...@@ -127,15 +124,15 @@ class ProfilesettingsAction extends SettingsAction ...@@ -127,15 +124,15 @@ class ProfilesettingsAction extends SettingsAction
// TRANS: Tooltip for field label in form for profile settings. Plural // TRANS: Tooltip for field label in form for profile settings. Plural
// TRANS: is decided by the number of characters available for the // TRANS: is decided by the number of characters available for the
// TRANS: biography (%d). // TRANS: biography (%d).
$bioInstr = sprintf(_m('Describe yourself and your interests in %d character', $bioInstr = sprintf(_m('Describe yourself and your interests in %d character.',
'Describe yourself and your interests in %d characters', 'Describe yourself and your interests in %d characters.',
$maxBio), $maxBio),
$maxBio); $maxBio);
} else { } else {
// TRANS: Tooltip for field label in form for profile settings. // TRANS: Tooltip for field label in form for profile settings.
$bioInstr = _('Describe yourself and your interests'); $bioInstr = _('Describe yourself and your interests.');
} }
// TRANS: Text area label in form for profile settings where users can provide. // TRANS: Text area label in form for profile settings where users can provide
// TRANS: their biography. // TRANS: their biography.
$this->textarea('bio', _('Bio'), $this->textarea('bio', _('Bio'),
($this->arg('bio')) ? $this->arg('bio') : $profile->bio, ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
...@@ -146,7 +143,7 @@ class ProfilesettingsAction extends SettingsAction ...@@ -146,7 +143,7 @@ class ProfilesettingsAction extends SettingsAction
$this->input('location', _('Location'), $this->input('location', _('Location'),
($this->arg('location')) ? $this->arg('location') : $profile->location, ($this->arg('location')) ? $this->arg('location') : $profile->location,
// TRANS: Tooltip for field label in form for profile settings. // TRANS: Tooltip for field label in form for profile settings.
_('Where you are, like "City, State (or Region), Country"')); _('Where you are, like "City, State (or Region), Country".'));
$this->elementEnd('li'); $this->elementEnd('li');
if (common_config('location', 'share') == 'user') { if (common_config('location', 'share') == 'user') {
$this->elementStart('li'); $this->elementStart('li');
...@@ -196,7 +193,9 @@ class ProfilesettingsAction extends SettingsAction ...@@ -196,7 +193,9 @@ class ProfilesettingsAction extends SettingsAction
$this->dropdown('subscribe_policy', $this->dropdown('subscribe_policy',
// TRANS: Dropdown field label on profile settings, for what policies to apply when someone else tries to subscribe to your updates. // TRANS: Dropdown field label on profile settings, for what policies to apply when someone else tries to subscribe to your updates.
_('Subscription policy'), _('Subscription policy'),
// TRANS: Dropdown field option for following policy.
array(User::SUBSCRIBE_POLICY_OPEN => _('Let anyone follow me'), array(User::SUBSCRIBE_POLICY_OPEN => _('Let anyone follow me'),
// TRANS: Dropdown field option for following policy.
User::SUBSCRIBE_POLICY_MODERATE => _('Ask me first')), User::SUBSCRIBE_POLICY_MODERATE => _('Ask me first')),
// TRANS: Dropdown field title on group edit form. // TRANS: Dropdown field title on group edit form.
_('Whether other users need your permission to follow your updates.'), _('Whether other users need your permission to follow your updates.'),
......
...@@ -531,7 +531,7 @@ class RegisterAction extends Action ...@@ -531,7 +531,7 @@ class RegisterAction extends Action
$this->elementEnd('li'); $this->elementEnd('li');
} }
$this->elementEnd('ul'); $this->elementEnd('ul');
// TRANS: Field label on account registration page. // TRANS: Botton text to register a user on account registration page.
$this->submit('submit', _m('BUTTON','Register')); $this->submit('submit', _m('BUTTON','Register'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
......
...@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) { ...@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/ * @link http://status.net/
*/ */
class SnapshotadminpanelAction extends AdminPanelAction class SnapshotadminpanelAction extends AdminPanelAction
{ {
/** /**
...@@ -48,10 +47,10 @@ class SnapshotadminpanelAction extends AdminPanelAction ...@@ -48,10 +47,10 @@ class SnapshotadminpanelAction extends AdminPanelAction
* *
* @return string page title * @return string page title
*/ */
function title() function title()
{ {
return _('Snapshots'); // TRANS: Title for admin panel to configure snapshots.
return _m('TITLE','Snapshots');
} }
/** /**
...@@ -59,9 +58,9 @@ class SnapshotadminpanelAction extends AdminPanelAction ...@@ -59,9 +58,9 @@ class SnapshotadminpanelAction extends AdminPanelAction
* *
* @return string instructions * @return string instructions
*/ */
function getInstructions() function getInstructions()
{ {
// TRANS: Instructions for admin panel to configure snapshots.
return _('Manage snapshot configuration'); return _('Manage snapshot configuration');
} }
...@@ -70,7 +69,6 @@ class SnapshotadminpanelAction extends AdminPanelAction ...@@ -70,7 +69,6 @@ class SnapshotadminpanelAction extends AdminPanelAction
* *
* @return void * @return void
*/ */
function showForm() function showForm()
{ {
$form = new SnapshotAdminPanelForm($this); $form = new SnapshotAdminPanelForm($this);
...@@ -83,7 +81,6 @@ class SnapshotadminpanelAction extends AdminPanelAction ...@@ -83,7 +81,6 @@ class SnapshotadminpanelAction extends AdminPanelAction
* *
* @return void * @return void
*/ */
function saveSettings() function saveSettings()
{ {
static $settings = array( static $settings = array(
...@@ -124,12 +121,14 @@ class SnapshotadminpanelAction extends AdminPanelAction ...@@ -124,12 +121,14 @@ class SnapshotadminpanelAction extends AdminPanelAction
// Validate snapshot run value // Validate snapshot run value
if (!in_array($values['snapshot']['run'], array('web', 'cron', 'never'))) { if (!in_array($values['snapshot']['run'], array('web', 'cron', 'never'))) {
// TRANS: Client error displayed on admin panel for snapshots when providing an invalid run value.
$this->clientError(_('Invalid snapshot run value.')); $this->clientError(_('Invalid snapshot run value.'));
} }
// Validate snapshot frequency value // Validate snapshot frequency value
if (!Validate::number($values['snapshot']['frequency'])) { if (!Validate::number($values['snapshot']['frequency'])) {
// TRANS: Client error displayed on admin panel for snapshots when providing an invalid value for frequency.
$this->clientError(_('Snapshot frequency must be a number.')); $this->clientError(_('Snapshot frequency must be a number.'));
} }
...@@ -141,11 +140,13 @@ class SnapshotadminpanelAction extends AdminPanelAction ...@@ -141,11 +140,13 @@ class SnapshotadminpanelAction extends AdminPanelAction
array('allowed_schemes' => array('http', 'https') array('allowed_schemes' => array('http', 'https')
) )
)) { )) {
// TRANS: Client error displayed on admin panel for snapshots when providing an invalid report URL.
$this->clientError(_('Invalid snapshot report URL.')); $this->clientError(_('Invalid snapshot report URL.'));
} }
} }
} }
// @todo FIXME: add documentation
class SnapshotAdminPanelForm extends AdminForm class SnapshotAdminPanelForm extends AdminForm
{ {
/** /**
...@@ -153,7 +154,6 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -153,7 +154,6 @@ class SnapshotAdminPanelForm extends AdminForm
* *
* @return int ID of the form * @return int ID of the form
*/ */
function id() function id()
{ {
return 'form_snapshot_admin_panel'; return 'form_snapshot_admin_panel';
...@@ -164,7 +164,6 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -164,7 +164,6 @@ class SnapshotAdminPanelForm extends AdminForm
* *
* @return string class of the form * @return string class of the form
*/ */
function formClass() function formClass()
{ {
return 'form_settings'; return 'form_settings';
...@@ -175,7 +174,6 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -175,7 +174,6 @@ class SnapshotAdminPanelForm extends AdminForm
* *
* @return string URL of the action * @return string URL of the action
*/ */
function action() function action()
{ {
return common_local_url('snapshotadminpanel'); return common_local_url('snapshotadminpanel');
...@@ -186,26 +184,31 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -186,26 +184,31 @@ class SnapshotAdminPanelForm extends AdminForm
* *
* @return void * @return void
*/ */
function formData() function formData()
{ {
$this->out->elementStart( $this->out->elementStart(
'fieldset', 'fieldset',
array('id' => 'settings_admin_snapshots') array('id' => 'settings_admin_snapshots')
); );
$this->out->element('legend', null, _('Snapshots')); // TRANS: Fieldset legend on admin panel for snapshots.
$this->out->element('legend', null, _m('LEGEND','Snapshots'));
$this->out->elementStart('ul', 'form_data'); $this->out->elementStart('ul', 'form_data');
$this->li(); $this->li();
$snapshot = array( $snapshot = array(
// TRANS: Option in dropdown for snapshot method in admin panel for snapshots.
'web' => _('Randomly during web hit'), 'web' => _('Randomly during web hit'),
// TRANS: Option in dropdown for snapshot method in admin panel for snapshots.
'cron' => _('In a scheduled job'), 'cron' => _('In a scheduled job'),
// TRANS: Option in dropdown for snapshot method in admin panel for snapshots.
'never' => _('Never') 'never' => _('Never')
); );
$this->out->dropdown( $this->out->dropdown(
'run', 'run',
// TRANS: Dropdown label for snapshot method in admin panel for snapshots.
_('Data snapshots'), _('Data snapshots'),
$snapshot, $snapshot,
_('When to send statistical data to status.net servers'), // TRANS: Dropdown title for snapshot method in admin panel for snapshots.
_('When to send statistical data to status.net servers.'),
false, false,
$this->value('run', 'snapshot') $this->value('run', 'snapshot')
); );
...@@ -214,8 +217,10 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -214,8 +217,10 @@ class SnapshotAdminPanelForm extends AdminForm
$this->li(); $this->li();
$this->input( $this->input(
'frequency', 'frequency',
// TRANS: Input field label for snapshot frequency in admin panel for snapshots.
_('Frequency'), _('Frequency'),
_('Snapshots will be sent once every N web hits'), // TRANS: Input field title for snapshot frequency in admin panel for snapshots.
_('Snapshots will be sent once every N web hits.'),
'snapshot' 'snapshot'
); );
$this->unli(); $this->unli();
...@@ -223,8 +228,10 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -223,8 +228,10 @@ class SnapshotAdminPanelForm extends AdminForm
$this->li(); $this->li();
$this->input( $this->input(
'reporturl', 'reporturl',
// TRANS: Input field label for snapshot report URL in admin panel for snapshots.
_('Report URL'), _('Report URL'),
_('Snapshots will be sent to this URL'), // TRANS: Input field title for snapshot report URL in admin panel for snapshots.
_('Snapshots will be sent to this URL.'),
'snapshot' 'snapshot'
); );
$this->unli(); $this->unli();
...@@ -237,15 +244,16 @@ class SnapshotAdminPanelForm extends AdminForm ...@@ -237,15 +244,16 @@ class SnapshotAdminPanelForm extends AdminForm
* *
* @return void * @return void
*/ */
function formActions() function formActions()
{ {
$this->out->submit( $this->out->submit(
'submit', 'submit',
_('Save'), // TRANS: Button text to save snapshot settings.
_m('BUTTON','Save'),
'submit', 'submit',
null, null,
_('Save snapshot settings') // TRANS: Title for button to save snapshot settings.
_('Save snapshot settings.')
); );
} }
} }
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
// @todo FIXME: documentation missing.
class TagAction extends Action class TagAction extends Action
{ {
var $notice; var $notice;
function prepare($args) function prepare($args)
...@@ -48,7 +48,7 @@ class TagAction extends Action ...@@ -48,7 +48,7 @@ class TagAction extends Action
$this->notice = Notice_tag::getStream($this->tag, (($this->page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); $this->notice = Notice_tag::getStream($this->tag, (($this->page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
if($this->page > 1 && $this->notice->N == 0){ if($this->page > 1 && $this->notice->N == 0){
// TRANS: Server error when page not found (404) // TRANS: Server error when page not found (404).
$this->serverError(_('No such page.'),$code=404); $this->serverError(_('No such page.'),$code=404);
} }
...@@ -88,18 +88,24 @@ class TagAction extends Action ...@@ -88,18 +88,24 @@ class TagAction extends Action
return array(new Feed(Feed::RSS1, return array(new Feed(Feed::RSS1,
common_local_url('tagrss', common_local_url('tagrss',
array('tag' => $this->tag)), array('tag' => $this->tag)),
// TRANS: Link label for feed on "notices with tag" page.
// TRANS: %s is the tag the feed is for.
sprintf(_('Notice feed for tag %s (RSS 1.0)'), sprintf(_('Notice feed for tag %s (RSS 1.0)'),
$this->tag)), $this->tag)),
new Feed(Feed::RSS2, new Feed(Feed::RSS2,
common_local_url('ApiTimelineTag', common_local_url('ApiTimelineTag',
array('format' => 'rss', array('format' => 'rss',
'tag' => $this->tag)), 'tag' => $this->tag)),
// TRANS: Link label for feed on "notices with tag" page.
// TRANS: %s is the tag the feed is for.
sprintf(_('Notice feed for tag %s (RSS 2.0)'), sprintf(_('Notice feed for tag %s (RSS 2.0)'),
$this->tag)), $this->tag)),
new Feed(Feed::ATOM, new Feed(Feed::ATOM,
common_local_url('ApiTimelineTag', common_local_url('ApiTimelineTag',
array('format' => 'atom', array('format' => 'atom',
'tag' => $this->tag)), 'tag' => $this->tag)),
// TRANS: Link label for feed on "notices with tag" page.
// TRANS: %s is the tag the feed is for.
sprintf(_('Notice feed for tag %s (Atom)'), sprintf(_('Notice feed for tag %s (Atom)'),
$this->tag))); $this->tag)));
} }
...@@ -107,7 +113,7 @@ class TagAction extends Action ...@@ -107,7 +113,7 @@ class TagAction extends Action
function showContent() function showContent()
{ {
if(Event::handle('StartTagShowContent', array($this))) { if(Event::handle('StartTagShowContent', array($this))) {
$nl = new NoticeList($this->notice, $this); $nl = new NoticeList($this->notice, $this);
$cnt = $nl->show(); $cnt = $nl->show();
......
...@@ -31,12 +31,14 @@ class TagotherAction extends Action ...@@ -31,12 +31,14 @@ class TagotherAction extends Action
{ {
parent::prepare($args); parent::prepare($args);
if (!common_logged_in()) { if (!common_logged_in()) {
// TRANS: Client error displayed on user tag page when trying to add tags while not logged in.
$this->clientError(_('Not logged in.'), 403); $this->clientError(_('Not logged in.'), 403);
return false; return false;
} }
$id = $this->trimmed('id'); $id = $this->trimmed('id');
if (!$id) { if (!$id) {
// TRANS: Client error displayed on user tag page when trying to add tags without providing a user ID.
$this->clientError(_('No ID argument.')); $this->clientError(_('No ID argument.'));
return false; return false;
} }
...@@ -44,6 +46,7 @@ class TagotherAction extends Action ...@@ -44,6 +46,7 @@ class TagotherAction extends Action
$this->profile = Profile::staticGet('id', $id); $this->profile = Profile::staticGet('id', $id);
if (!$this->profile) { if (!$this->profile) {
// TRANS: Client error displayed on user tag page when trying to add tags providing a non-existing user ID.
$this->clientError(_('No profile with that ID.')); $this->clientError(_('No profile with that ID.'));
return false; return false;
} }
...@@ -63,6 +66,8 @@ class TagotherAction extends Action ...@@ -63,6 +66,8 @@ class TagotherAction extends Action
function title() function title()
{ {
// TRANS: Title for "tag other users" page.
// TRANS: %s is the user nickname.
return sprintf(_('Tag %s'), $this->profile->nickname); return sprintf(_('Tag %s'), $this->profile->nickname);
} }
...@@ -75,6 +80,7 @@ class TagotherAction extends Action ...@@ -75,6 +80,7 @@ class TagotherAction extends Action
function showContent() function showContent()
{ {
$this->elementStart('div', 'entity_profile vcard author'); $this->elementStart('div', 'entity_profile vcard author');
// TRANS: Header for user details on "tag other users" page.
$this->element('h2', null, _('User profile')); $this->element('h2', null, _('User profile'));
$avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE); $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
...@@ -118,6 +124,7 @@ class TagotherAction extends Action ...@@ -118,6 +124,7 @@ class TagotherAction extends Action
'action' => common_local_url('tagother', array('id' => $this->profile->id)))); 'action' => common_local_url('tagother', array('id' => $this->profile->id))));
$this->elementStart('fieldset'); $this->elementStart('fieldset');
// TRANS: Fieldset legend on "tag other users" page.
$this->element('legend', null, _('Tag user')); $this->element('legend', null, _('Tag user'));
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->hidden('id', $this->profile->id); $this->hidden('id', $this->profile->id);
...@@ -126,11 +133,14 @@ class TagotherAction extends Action ...@@ -126,11 +133,14 @@ class TagotherAction extends Action
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$this->elementStart('li'); $this->elementStart('li');
// TRANS: Field label for inputting tags on "tag other users" page.
$this->input('tags', _('Tags'), $this->input('tags', _('Tags'),
($this->arg('tags')) ? $this->arg('tags') : implode(' ', Profile_tag::getTags($user->id, $this->profile->id)), ($this->arg('tags')) ? $this->arg('tags') : implode(' ', Profile_tag::getTags($user->id, $this->profile->id)),
// TRANS: Title for input field for inputting tags on "tag other users" page.
_('Tags for this user (letters, numbers, -, ., and _), separated by commas or spaces.')); _('Tags for this user (letters, numbers, -, ., and _), separated by commas or spaces.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
// TRANS: Button text for saving tags for other users.
$this->submit('save', _m('BUTTON','Save')); $this->submit('save', _m('BUTTON','Save'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
...@@ -172,6 +182,7 @@ class TagotherAction extends Action ...@@ -172,6 +182,7 @@ class TagotherAction extends Action
!Subscription::pkeyGet(array('subscriber' => $this->profile->id, !Subscription::pkeyGet(array('subscriber' => $this->profile->id,
'subscribed' => $user->id))) 'subscribed' => $user->id)))
{ {
// TRANS: Client error on "tag other users" page when tagging a user is not possible because of missing mutual subscriptions.
$this->clientError(_('You can only tag people you are subscribed to or who are subscribed to you.')); $this->clientError(_('You can only tag people you are subscribed to or who are subscribed to you.'));
return; return;