We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 4b4894b1 authored by Siebrand Mazeland's avatar Siebrand Mazeland

Many i18n/L10n updates and lots of descriptions for translators added.

parent d358c88f
...@@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { ...@@ -42,7 +42,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 EditApplicationAction extends OwnerDesignAction class EditApplicationAction extends OwnerDesignAction
{ {
var $msg = null; var $msg = null;
...@@ -51,18 +50,19 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -51,18 +50,19 @@ class EditApplicationAction extends OwnerDesignAction
function title() function title()
{ {
return _('Edit Application'); // TRANS: Title for "Edit application" form.
return _('Edit application');
} }
/** /**
* Prepare to run * Prepare to run
*/ */
function prepare($args) function prepare($args)
{ {
parent::prepare($args); parent::prepare($args);
if (!common_logged_in()) { if (!common_logged_in()) {
// TRANS: Client error displayed trying to edit an application while not logged in.
$this->clientError(_('You must be logged in to edit an application.')); $this->clientError(_('You must be logged in to edit an application.'));
return false; return false;
} }
...@@ -74,10 +74,12 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -74,10 +74,12 @@ class EditApplicationAction extends OwnerDesignAction
$cur = common_current_user(); $cur = common_current_user();
if ($cur->id != $this->owner->id) { if ($cur->id != $this->owner->id) {
// TRANS: Client error displayed trying to edit an application while not being its owner.
$this->clientError(_('You are not the owner of this application.'), 401); $this->clientError(_('You are not the owner of this application.'), 401);
} }
if (!$this->app) { if (!$this->app) {
// TRANS: Client error displayed trying to edit an application that does not exist.
$this->clientError(_('No such application.')); $this->clientError(_('No such application.'));
return false; return false;
} }
...@@ -94,7 +96,6 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -94,7 +96,6 @@ class EditApplicationAction extends OwnerDesignAction
* *
* @return void * @return void
*/ */
function handle($args) function handle($args)
{ {
parent::handle($args); parent::handle($args);
...@@ -115,6 +116,7 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -115,6 +116,7 @@ class EditApplicationAction extends OwnerDesignAction
&& empty($_POST) && empty($_POST)
&& ($_SERVER['CONTENT_LENGTH'] > 0) && ($_SERVER['CONTENT_LENGTH'] > 0)
) { ) {
// TRANS: Client exception. %s is CONTENT_LENGTH (in bytes).
$msg = _('The server was unable to handle that much POST ' . $msg = _('The server was unable to handle that much POST ' .
'data (%s bytes) due to its current configuration.'); 'data (%s bytes) due to its current configuration.');
$this->clientException(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); $this->clientException(sprintf($msg, $_SERVER['CONTENT_LENGTH']));
...@@ -136,6 +138,7 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -136,6 +138,7 @@ class EditApplicationAction extends OwnerDesignAction
} elseif ($this->arg('save')) { } elseif ($this->arg('save')) {
$this->trySave(); $this->trySave();
} else { } else {
// TRANS: Client error displayed submitting invalid form data for edit application.
$this->clientError(_('Unexpected form submission.')); $this->clientError(_('Unexpected form submission.'));
} }
} }
...@@ -158,6 +161,7 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -158,6 +161,7 @@ class EditApplicationAction extends OwnerDesignAction
$this->element('p', 'error', $this->msg); $this->element('p', 'error', $this->msg);
} else { } else {
$this->element('p', 'instructions', $this->element('p', 'instructions',
// TRANS: Instructions for "Edit application" form.
_('Use this form to edit your application.')); _('Use this form to edit your application.'));
} }
} }
...@@ -174,36 +178,47 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -174,36 +178,47 @@ class EditApplicationAction extends OwnerDesignAction
$access_type = $this->arg('default_access_type'); $access_type = $this->arg('default_access_type');
if (empty($name)) { if (empty($name)) {
// TRANS: Validation error shown when not providing a name in the "Edit application" form.
$this->showForm(_('Name is required.')); $this->showForm(_('Name is required.'));
return; return;
} elseif (mb_strlen($name) > 255) { } elseif (mb_strlen($name) > 255) {
$this->showForm(_('Name is too long (max 255 chars).')); // TRANS: Validation error shown when providing too long a name in the "Edit application" form.
$this->showForm(_('Name is too long (max 255 characters).'));
return; return;
} else if ($this->nameExists($name)) { } else if ($this->nameExists($name)) {
// TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form.
$this->showForm(_('Name already in use. Try another one.')); $this->showForm(_('Name already in use. Try another one.'));
return; return;
} elseif (empty($description)) { } elseif (empty($description)) {
// TRANS: Validation error shown when not providing a description in the "Edit application" form.
$this->showForm(_('Description is required.')); $this->showForm(_('Description is required.'));
return; return;
} elseif (Oauth_application::descriptionTooLong($description)) { } elseif (Oauth_application::descriptionTooLong($description)) {
$this->showForm(sprintf( $this->showForm(sprintf(
_('Description is too long (max %d chars).'), // TRANS: Validation error shown when providing too long a description in the "Edit application" form.
_m('Description is too long (maximum %d character).',
'Description is too long (maximum %d characters).',
Oauth_application::maxDesc()),
Oauth_application::maxDesc())); Oauth_application::maxDesc()));
return; return;
} elseif (mb_strlen($source_url) > 255) { } elseif (mb_strlen($source_url) > 255) {
// TRANS: Validation error shown when providing too long a source URL in the "Edit application" form.
$this->showForm(_('Source URL is too long.')); $this->showForm(_('Source URL is too long.'));
return; return;
} elseif ((mb_strlen($source_url) > 0) } elseif ((mb_strlen($source_url) > 0)
&& !Validate::uri($source_url, && !Validate::uri($source_url,
array('allowed_schemes' => array('http', 'https')))) array('allowed_schemes' => array('http', 'https'))))
{ {
// TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form.
$this->showForm(_('Source URL is not valid.')); $this->showForm(_('Source URL is not valid.'));
return; return;
} elseif (empty($organization)) { } elseif (empty($organization)) {
// TRANS: Validation error shown when not providing an organisation in the "Edit application" form.
$this->showForm(_('Organization is required.')); $this->showForm(_('Organization is required.'));
return; return;
} elseif (mb_strlen($organization) > 255) { } elseif (mb_strlen($organization) > 255) {
$this->showForm(_('Organization is too long (max 255 chars).')); // TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form.
$this->showForm(_('Organization is too long (maximum 255 characters).'));
return; return;
} elseif (empty($homepage)) { } elseif (empty($homepage)) {
$this->showForm(_('Organization homepage is required.')); $this->showForm(_('Organization homepage is required.'));
...@@ -212,9 +227,11 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -212,9 +227,11 @@ class EditApplicationAction extends OwnerDesignAction
&& !Validate::uri($homepage, && !Validate::uri($homepage,
array('allowed_schemes' => array('http', 'https')))) array('allowed_schemes' => array('http', 'https'))))
{ {
// TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form.
$this->showForm(_('Homepage is not a valid URL.')); $this->showForm(_('Homepage is not a valid URL.'));
return; return;
} elseif (mb_strlen($callback_url) > 255) { } elseif (mb_strlen($callback_url) > 255) {
// TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form.
$this->showForm(_('Callback is too long.')); $this->showForm(_('Callback is too long.'));
return; return;
} elseif (mb_strlen($callback_url) > 0 } elseif (mb_strlen($callback_url) > 0
...@@ -222,6 +239,7 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -222,6 +239,7 @@ class EditApplicationAction extends OwnerDesignAction
array('allowed_schemes' => array('http', 'https')) array('allowed_schemes' => array('http', 'https'))
)) ))
{ {
// TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form.
$this->showForm(_('Callback URL is not valid.')); $this->showForm(_('Callback URL is not valid.'));
return; return;
} }
...@@ -258,6 +276,7 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -258,6 +276,7 @@ class EditApplicationAction extends OwnerDesignAction
// the next step. // the next step.
if ($result === false) { if ($result === false) {
common_log_db_error($this->app, 'UPDATE', __FILE__); common_log_db_error($this->app, 'UPDATE', __FILE__);
// TRANS: Server error occuring when an application could not be updated from the "Edit application" form.
$this->serverError(_('Could not update application.')); $this->serverError(_('Could not update application.'));
} }
...@@ -276,7 +295,6 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -276,7 +295,6 @@ class EditApplicationAction extends OwnerDesignAction
* *
* @return boolean true if the name already exists * @return boolean true if the name already exists
*/ */
function nameExists($name) function nameExists($name)
{ {
$newapp = Oauth_application::staticGet('name', $name); $newapp = Oauth_application::staticGet('name', $name);
...@@ -286,6 +304,4 @@ class EditApplicationAction extends OwnerDesignAction ...@@ -286,6 +304,4 @@ class EditApplicationAction extends OwnerDesignAction
return $newapp->id != $this->app->id; return $newapp->id != $this->app->id;
} }
} }
} }
...@@ -36,8 +36,11 @@ class InviteAction extends CurrentUserDesignAction ...@@ -36,8 +36,11 @@ class InviteAction extends CurrentUserDesignAction
{ {
parent::handle($args); parent::handle($args);
if (!common_config('invite', 'enabled')) { if (!common_config('invite', 'enabled')) {
// TRANS: Client error displayed when trying to sent invites while they have been disabled.
$this->clientError(_('Invites have been disabled.')); $this->clientError(_('Invites have been disabled.'));
} else if (!common_logged_in()) { } else if (!common_logged_in()) {
// TRANS: Client error displayed when trying to sent invites while not logged in.
// TRANS: %s is the StatusNet site name.
$this->clientError(sprintf(_('You must be logged in to invite other users to use %s.'), $this->clientError(sprintf(_('You must be logged in to invite other users to use %s.'),
common_config('site', 'name'))); common_config('site', 'name')));
return; return;
...@@ -69,7 +72,9 @@ class InviteAction extends CurrentUserDesignAction ...@@ -69,7 +72,9 @@ class InviteAction extends CurrentUserDesignAction
foreach ($addresses as $email) { foreach ($addresses as $email) {
$email = trim($email); $email = trim($email);
if (!Validate::email($email, common_config('email', 'check_domain'))) { if (!Validate::email($email, common_config('email', 'check_domain'))) {
$this->showForm(sprintf(_('Invalid email address: %s'), $email)); // TRANS: Form validation message when providing an e-mail address that does not validate.
// TRANS: %s is an invalid e-mail address.
$this->showForm(sprintf(_('Invalid email address: %s.'), $email));
return; return;
} }
} }
...@@ -107,8 +112,10 @@ class InviteAction extends CurrentUserDesignAction ...@@ -107,8 +112,10 @@ class InviteAction extends CurrentUserDesignAction
function title() function title()
{ {
if ($this->mode == 'sent') { if ($this->mode == 'sent') {
return _('Invitation(s) sent'); // TRANS: Page title when invitations have been sent.
return _('Invitations sent');
} else { } else {
// TRANS: Page title when inviting potential users.
return _('Invite new users'); return _('Invite new users');
} }
} }
...@@ -125,28 +132,48 @@ class InviteAction extends CurrentUserDesignAction ...@@ -125,28 +132,48 @@ class InviteAction extends CurrentUserDesignAction
function showInvitationSuccess() function showInvitationSuccess()
{ {
if ($this->already) { if ($this->already) {
$this->element('p', null, _('You are already subscribed to these users:')); // TRANS: Message displayed inviting users to use a StatusNet site while the inviting user
// TRANS: is already subscribed to one or more users with the given e-mail address(es).
// TRANS: Plural form is based on the number of reported already subscribed e-mail addresses.
// TRANS: Followed by a bullet list.
$this->element('p', null, _m('You are already subscribed to this user:',
'You are already subscribed to these users:',
count($this->already)));
$this->elementStart('ul'); $this->elementStart('ul');
foreach ($this->already as $other) { foreach ($this->already as $other) {
// TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address).
$this->element('li', null, sprintf(_('%1$s (%2$s)'), $other->nickname, $other->email)); $this->element('li', null, sprintf(_('%1$s (%2$s)'), $other->nickname, $other->email));
} }
$this->elementEnd('ul'); $this->elementEnd('ul');
} }
if ($this->subbed) { if ($this->subbed) {
$this->element('p', null, _('These people are already users and you were automatically subscribed to them:')); // TRANS: Message displayed inviting users to use a StatusNet site while the invited user
// TRANS: already uses a this StatusNet site. Plural form is based on the number of
// TRANS: reported already present people. Followed by a bullet list.
$this->element('p', null, _m('This person is already a user and you were automatically subscribed:',
'These people are already users and you were automatically subscribed to them:',
count($this->subbed)));
$this->elementStart('ul'); $this->elementStart('ul');
foreach ($this->subbed as $other) { foreach ($this->subbed as $other) {
// TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address).
$this->element('li', null, sprintf(_('%1$s (%2$s)'), $other->nickname, $other->email)); $this->element('li', null, sprintf(_('%1$s (%2$s)'), $other->nickname, $other->email));
} }
$this->elementEnd('ul'); $this->elementEnd('ul');
} }
if ($this->sent) { if ($this->sent) {
$this->element('p', null, _('Invitation(s) sent to the following people:')); // TRANS: Message displayed inviting users to use a StatusNet site. Plural form is
// TRANS: based on the number of invitations sent. Followed by a bullet list of
// TRANS: e-mail addresses to which invitations were sent.
$this->element('p', null, _m('Invitation sent to the following person:',
'Invitations sent to the following people:',
count($this->sent)));
$this->elementStart('ul'); $this->elementStart('ul');
foreach ($this->sent as $other) { foreach ($this->sent as $other) {
$this->element('li', null, $other); $this->element('li', null, $other);
} }
$this->elementEnd('ul'); $this->elementEnd('ul');
// TRANS: Generic message displayed after sending out one or more invitations to
// TRANS: people to join a StatusNet site.
$this->element('p', null, _('You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!')); $this->element('p', null, _('You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!'));
} }
} }
...@@ -159,6 +186,7 @@ class InviteAction extends CurrentUserDesignAction ...@@ -159,6 +186,7 @@ class InviteAction extends CurrentUserDesignAction
} else { } else {
$this->elementStart('div', 'instructions'); $this->elementStart('div', 'instructions');
$this->element('p', null, $this->element('p', null,
// TRANS: Form instructions.
_('Use this form to invite your friends and colleagues to use this service.')); _('Use this form to invite your friends and colleagues to use this service.'));
$this->elementEnd('div'); $this->elementEnd('div');
} }
...@@ -179,18 +207,23 @@ class InviteAction extends CurrentUserDesignAction ...@@ -179,18 +207,23 @@ class InviteAction extends CurrentUserDesignAction
'class' => 'form_settings', 'class' => 'form_settings',
'action' => common_local_url('invite'))); 'action' => common_local_url('invite')));
$this->elementStart('fieldset'); $this->elementStart('fieldset');
// TRANS: Form legend.
$this->element('legend', null, 'Send an invitation'); $this->element('legend', null, 'Send an invitation');
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$this->elementStart('li'); $this->elementStart('li');
// TRANS: Field label for a list of e-mail addresses.
$this->textarea('addresses', _('Email addresses'), $this->textarea('addresses', _('Email addresses'),
$this->trimmed('addresses'), $this->trimmed('addresses'),
// TRANS: Tooltip for field label for a list of e-mail addresses.
_('Addresses of friends to invite (one per line)')); _('Addresses of friends to invite (one per line)'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
// TRANS: Field label for a personal message to send to invitees.
$this->textarea('personal', _('Personal message'), $this->textarea('personal', _('Personal message'),
$this->trimmed('personal'), $this->trimmed('personal'),
// TRANS: Tooltip for field label for a personal message to send to invitees.
_('Optionally add a personal message to the invitation.')); _('Optionally add a personal message to the invitation.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
...@@ -224,10 +257,16 @@ class InviteAction extends CurrentUserDesignAction ...@@ -224,10 +257,16 @@ class InviteAction extends CurrentUserDesignAction
$headers['From'] = mail_notify_from(); $headers['From'] = mail_notify_from();
$headers['To'] = trim($email); $headers['To'] = trim($email);
// TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. // TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral
// TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is
// TRANS: the StatusNet sitename.
$headers['Subject'] = sprintf(_('%1$s has invited you to join them on %2$s'), $bestname, $sitename); $headers['Subject'] = sprintf(_('%1$s has invited you to join them on %2$s'), $bestname, $sitename);
// TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. // TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral
// TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the
// TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the
// TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link
// TRANS: to register with the StatusNet site.
$body = sprintf(_("%1\$s has invited you to join them on %2\$s (%3\$s).\n\n". $body = sprintf(_("%1\$s has invited you to join them on %2\$s (%3\$s).\n\n".
"%2\$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n\n". "%2\$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n\n".
"You can also share news about yourself, your thoughts, or your life online with people who know about you. ". "You can also share news about yourself, your thoughts, or your life online with people who know about you. ".
......
This diff is collapsed.
...@@ -44,7 +44,6 @@ define('TAGS_PER_PAGE', 100); ...@@ -44,7 +44,6 @@ define('TAGS_PER_PAGE', 100);
* @copyright 2008-2009 StatusNet, Inc. * @copyright 2008-2009 StatusNet, Inc.
* @link http://status.net/ * @link http://status.net/
*/ */
class PublictagcloudAction extends Action class PublictagcloudAction extends Action
{ {
function isReadOnly($args) function isReadOnly($args)
...@@ -54,24 +53,37 @@ class PublictagcloudAction extends Action ...@@ -54,24 +53,37 @@ class PublictagcloudAction extends Action
function title() function title()
{ {
// TRANS: Title for public tag cloud.
return _('Public tag cloud'); return _('Public tag cloud');
} }
function showPageNotice() function showPageNotice()
{ {
$this->element('p', 'instructions', $this->element('p', 'instructions',
sprintf(_('These are most popular recent tags on %s '), // TRANS: Instructions (more used like an explanation/header).
// TRANS: %s is the StatusNet sitename.
sprintf(_('These are most popular recent tags on %s'),
common_config('site', 'name'))); common_config('site', 'name')));
} }
function showEmptyList() function showEmptyList()
{ {
// TRANS: This message contains a Markdown URL. The link description is between
// TRANS: square brackets, and the link between parentheses. Do not separate "]("
// TRANS: and do not change the URL part.
$message = _('No one has posted a notice with a [hashtag](%%doc.tags%%) yet.') . ' '; $message = _('No one has posted a notice with a [hashtag](%%doc.tags%%) yet.') . ' ';
if (common_logged_in()) { if (common_logged_in()) {
// TRANS: Message shown to a logged in user for the public tag cloud
// TRANS: while no tags exist yet. "One" refers to the non-existing hashtag.
$message .= _('Be the first to post one!'); $message .= _('Be the first to post one!');
} }
else { else {
// TRANS: Message shown to a anonymous user for the public tag cloud
// TRANS: while no tags exist yet. "One" refers to the non-existing hashtag.
// TRANS: This message contains a Markdown URL. The link description is between
// TRANS: square brackets, and the link between parentheses. Do not separate "]("
// TRANS: and do not change the URL part.
$message .= _('Why not [register an account](%%action.register%%) and be the first to post one!'); $message .= _('Why not [register an account](%%action.register%%) and be the first to post one!');
} }
......
...@@ -54,7 +54,6 @@ require_once INSTALLDIR.'/lib/feedlist.php'; ...@@ -54,7 +54,6 @@ require_once INSTALLDIR.'/lib/feedlist.php';
* @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 ShowstreamAction extends ProfileAction class ShowstreamAction extends ProfileAction
{ {
function isReadOnly($args) function isReadOnly($args)
...@@ -84,7 +83,6 @@ class ShowstreamAction extends ProfileAction ...@@ -84,7 +83,6 @@ class ShowstreamAction extends ProfileAction
function handle($args) function handle($args)
{ {
// Looks like we're good; start output // Looks like we're good; start output
// For YADIS discovery, we also have a <meta> tag // For YADIS discovery, we also have a <meta> tag
...@@ -186,7 +184,6 @@ class ShowstreamAction extends ProfileAction ...@@ -186,7 +184,6 @@ class ShowstreamAction extends ProfileAction
$this->element('link', array('rel' => 'EditURI', $this->element('link', array('rel' => 'EditURI',
'type' => 'application/rsd+xml', 'type' => 'application/rsd+xml',
'href' => $rsd)); 'href' => $rsd));
} }
function showProfile() function showProfile()
......
...@@ -41,14 +41,17 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { ...@@ -41,14 +41,17 @@ 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 SubscribersAction extends GalleryAction class SubscribersAction extends GalleryAction
{ {
function title() function title()
{ {
if ($this->page == 1) { if ($this->page == 1) {
// TRANS: Header for list of subscribers for a user (first page).
// TRANS: %s is the user's nickname.
return sprintf(_('%s subscribers'), $this->user->nickname); return sprintf(_('%s subscribers'), $this->user->nickname);
} else { } else {
// TRANS: Header for list of subscribers for a user (not first page).
// TRANS: %1$s is the user's nickname, $2$d is the page number.
return sprintf(_('%1$s subscribers, page %2$d'), return sprintf(_('%1$s subscribers, page %2$d'),
$this->user->nickname, $this->user->nickname,
$this->page); $this->page);
...@@ -60,10 +63,14 @@ class SubscribersAction extends GalleryAction ...@@ -60,10 +63,14 @@ class SubscribersAction extends GalleryAction
$user = common_current_user(); $user = common_current_user();
if ($user && ($user->id == $this->profile->id)) { if ($user && ($user->id == $this->profile->id)) {
$this->element('p', null, $this->element('p', null,
// TRANS: Page notice for page with an overview of all subscribers
// TRANS: of the logged in user's own profile.
_('These are the people who listen to '. _('These are the people who listen to '.
'your notices.')); 'your notices.'));
} else { } else {
$this->element('p', null, $this->element('p', null,
// TRANS: Page notice for page with an overview of all subscribers of a user other
// TRANS: than the logged in user. %s is the user nickname.
sprintf(_('These are the people who '. sprintf(_('These are the people who '.
'listen to %s\'s notices.'), 'listen to %s\'s notices.'),
$this->profile->nickname)); $this->profile->nickname));
...@@ -105,12 +112,20 @@ class SubscribersAction extends GalleryAction ...@@ -105,12 +112,20 @@ class SubscribersAction extends GalleryAction
if (common_logged_in()) { if (common_logged_in()) {
$current_user = common_current_user(); $current_user = common_current_user();
if ($this->user->id === $current_user->id) { if ($this->user->id === $current_user->id) {
$message = _('You have no subscribers. Try subscribing to people you know and they might return the favor'); // TRANS: Subscriber list text when the logged in user has no subscribers.
$message = _('You have no subscribers. Try subscribing to people you know and they might return the favor.');
} else { } else {
// TRANS: Subscriber list text when looking at the subscribers for a of a user other
// TRANS: than the logged in user that has no subscribers. %s is the user nickname.
$message = sprintf(_('%s has no subscribers. Want to be the first?'), $this->user->nickname); $message = sprintf(_('%s has no subscribers. Want to be the first?'), $this->user->nickname);
} }
} }
else { else {
// TRANS: Subscriber list text when looking at the subscribers for a of a user that has none
// TRANS: as an anonymous user. %s is the user nickname.
// TRANS: This message contains a Markdown URL. The link description is between