* improve L10n consistency for English. For example proper punctuation for all button and label titles.

* fix some i18n bugs (in-message variables).
* update/add translator documentation.
* remove superfluous whitespace.
This commit is contained in:
Siebrand Mazeland 2011-02-17 00:39:53 +01:00
parent be682a3f8c
commit a159352b65
39 changed files with 132 additions and 141 deletions

View File

@ -141,7 +141,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
} else if (!$this->user->mutuallySubscribed($this->other)) { } else if (!$this->user->mutuallySubscribed($this->other)) {
$this->clientError( $this->clientError(
// TRANS: Client error displayed trying to direct message another user who's not a friend (403). // TRANS: Client error displayed trying to direct message another user who's not a friend (403).
_('Can\'t send direct messages to users who aren\'t your friend.'), _('Cannot send direct messages to users who aren\'t your friend.'),
403, 403,
$this->format $this->format
); );

View File

@ -99,7 +99,7 @@ class ApiOauthAccessTokenAction extends ApiOauthAction
common_log(LOG_WARNING, $msg); common_log(LOG_WARNING, $msg);
// TRANS: Client error given from the OAuth API when the request token or verifier is invalid. // TRANS: Client error given from the OAuth API when the request token or verifier is invalid.
$this->clientError(_("Invalid request token or verifier."), 400, 'text'); $this->clientError(_('Invalid request token or verifier.'), 400, 'text');
} else { } else {
common_log( common_log(
LOG_INFO, LOG_INFO,

View File

@ -141,7 +141,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
default: default:
// TRANS: Exception thrown requesting an unsupported notice output format. // TRANS: Exception thrown requesting an unsupported notice output format.
// TRANS: %s is the requested output format. // TRANS: %s is the requested output format.
throw new Exception(sprintf(_("Unsupported format: %s"), $this->format)); throw new Exception(sprintf(_("Unsupported format: %s."), $this->format));
} }
} else { } else {
// XXX: Twitter just sets a 404 header and doens't bother // XXX: Twitter just sets a 404 header and doens't bother
@ -224,7 +224,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
{ {
if ($this->format != 'atom') { if ($this->format != 'atom') {
// TRANS: Client error displayed when trying to delete a notice not using the Atom format. // TRANS: Client error displayed when trying to delete a notice not using the Atom format.
$this->clientError(_("Can only delete using the Atom format.")); $this->clientError(_('Can only delete using the Atom format.'));
return; return;
} }

View File

@ -329,7 +329,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
$saved = null; $saved = null;
if (Event::handle('StartAtomPubNewActivity', array(&$activity, $this->user, &$saved))) { if (Event::handle('StartAtomPubNewActivity', array(&$activity, $this->user, &$saved))) {
if ($activity->verb != ActivityVerb::POST) { if ($activity->verb != ActivityVerb::POST) {
// TRANS: Client error displayed when not using the POST verb. Do not translate POST. // TRANS: Client error displayed when not using the POST verb. Do not translate POST.
$this->clientError(_('Can only handle POST activities.')); $this->clientError(_('Can only handle POST activities.'));
@ -405,6 +404,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
if (!empty($notice)) { if (!empty($notice)) {
// TRANS: Client error displayed when using another format than AtomPub. // TRANS: Client error displayed when using another format than AtomPub.
// TRANS: %s is the notice URI.
$this->clientError(sprintf(_('Notice with URI "%s" already exists.'), $this->clientError(sprintf(_('Notice with URI "%s" already exists.'),
$note->id)); $note->id));
return; return;

View File

@ -142,7 +142,6 @@ class AtompubshowmembershipAction extends ApiAuthAction
* *
* @return void * @return void
*/ */
function deleteMembership() function deleteMembership()
{ {
if (empty($this->auth_user) || if (empty($this->auth_user) ||

View File

@ -211,7 +211,7 @@ class AvatarsettingsAction extends AccountSettingsAction
array('id' => 'avatar_original', array('id' => 'avatar_original',
'class' => 'avatar_view')); 'class' => 'avatar_view'));
// TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). // TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2).
$this->element('h2', null, _("Original")); $this->element('h2', null, _('Original'));
$this->elementStart('div', array('id'=>'avatar_original_view')); $this->elementStart('div', array('id'=>'avatar_original_view'));
$this->element('img', array('src' => Avatar::url($this->filedata['filename']), $this->element('img', array('src' => Avatar::url($this->filedata['filename']),
'width' => $this->filedata['width'], 'width' => $this->filedata['width'],
@ -224,7 +224,7 @@ class AvatarsettingsAction extends AccountSettingsAction
array('id' => 'avatar_preview', array('id' => 'avatar_preview',
'class' => 'avatar_view')); 'class' => 'avatar_view'));
// TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). // TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2).
$this->element('h2', null, _("Preview")); $this->element('h2', null, _('Preview'));
$this->elementStart('div', array('id'=>'avatar_preview_view')); $this->elementStart('div', array('id'=>'avatar_preview_view'));
$this->element('img', array('src' => Avatar::url($this->filedata['filename']), $this->element('img', array('src' => Avatar::url($this->filedata['filename']),
'width' => AVATAR_PROFILE_SIZE, 'width' => AVATAR_PROFILE_SIZE,
@ -341,8 +341,8 @@ class AvatarsettingsAction extends AccountSettingsAction
$this->mode = 'crop'; $this->mode = 'crop';
// TRANS: Avatar upload form unstruction after uploading a file. // TRANS: Avatar upload form instruction after uploading a file.
$this->showForm(_('Pick a square area of the image to be your avatar'), $this->showForm(_('Pick a square area of the image to be your avatar.'),
true); true);
} }

View File

@ -58,7 +58,7 @@ class BackupaccountAction extends Action
function title() function title()
{ {
// TRANS: Title for backup account page. // TRANS: Title for backup account page.
return _("Backup account"); return _('Backup account');
} }
/** /**
@ -249,6 +249,6 @@ class BackupAccountForm extends Form
'submit', 'submit',
null, null,
// TRANS: Title for submit button to backup an account on the backup account page. // TRANS: Title for submit button to backup an account on the backup account page.
_('Backup your account')); _('Backup your account.'));
} }
} }

View File

@ -155,14 +155,14 @@ class BlockAction extends ProfileFormAction
'submit form_action-primary', 'submit form_action-primary',
'no', 'no',
// TRANS: Submit button title for 'No' when blocking a user. // TRANS: Submit button title for 'No' when blocking a user.
_('Do not block this user')); _('Do not block this user.'));
$this->submit('form_action-yes', $this->submit('form_action-yes',
// TRANS: Button label on the user block form. // TRANS: Button label on the user block form.
_m('BUTTON','Yes'), _m('BUTTON','Yes'),
'submit form_action-secondary', 'submit form_action-secondary',
'yes', 'yes',
// TRANS: Submit button title for 'Yes' when blocking a user. // TRANS: Submit button title for 'Yes' when blocking a user.
_('Block this user')); _('Block this user.'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }

View File

@ -158,13 +158,13 @@ class DeleteapplicationAction extends Action
'submit form_action-primary', 'submit form_action-primary',
'no', 'no',
// TRANS: Submit button title for 'No' when deleting an application. // TRANS: Submit button title for 'No' when deleting an application.
_('Do not delete this application')); _('Do not delete this application.'));
$this->submit('form_action-yes', $this->submit('form_action-yes',
// TRANS: Button label on the delete application form. // TRANS: Button label on the delete application form.
_m('BUTTON','Yes'), _m('BUTTON','Yes'),
'submit form_action-secondary', 'submit form_action-secondary',
// TRANS: Submit button title for 'Yes' when deleting an application. // TRANS: Submit button title for 'Yes' when deleting an application.
'yes', _('Delete this application')); 'yes', _('Delete this application.'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }

View File

@ -221,14 +221,14 @@ class DeletegroupAction extends RedirectingAction
'submit form_action-primary', 'submit form_action-primary',
'no', 'no',
// TRANS: Submit button title for 'No' when deleting a group. // TRANS: Submit button title for 'No' when deleting a group.
_('Do not delete this group')); _('Do not delete this group.'));
$this->submit('form_action-yes', $this->submit('form_action-yes',
// TRANS: Button label on the delete group form. // TRANS: Button label on the delete group form.
_m('BUTTON','Yes'), _m('BUTTON','Yes'),
'submit form_action-secondary', 'submit form_action-secondary',
'yes', 'yes',
// TRANS: Submit button title for 'Yes' when deleting a group. // TRANS: Submit button title for 'Yes' when deleting a group.
_('Delete this group')); _('Delete this group.'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }

View File

@ -156,14 +156,14 @@ class DeletenoticeAction extends Action
'submit form_action-primary', 'submit form_action-primary',
'no', 'no',
// TRANS: Submit button title for 'No' when deleting a notice. // TRANS: Submit button title for 'No' when deleting a notice.
_("Do not delete this notice")); _('Do not delete this notice.'));
$this->submit('form_action-yes', $this->submit('form_action-yes',
// TRANS: Button label on the delete notice form. // TRANS: Button label on the delete notice form.
_m('BUTTON','Yes'), _m('BUTTON','Yes'),
'submit form_action-secondary', 'submit form_action-secondary',
'yes', 'yes',
// TRANS: Submit button title for 'Yes' when deleting a notice. // TRANS: Submit button title for 'Yes' when deleting a notice.
_('Delete this notice')); _('Delete this notice.'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }

View File

@ -155,14 +155,14 @@ class DeleteuserAction extends ProfileFormAction
'submit form_action-primary', 'submit form_action-primary',
'no', 'no',
// TRANS: Submit button title for 'No' when deleting a user. // TRANS: Submit button title for 'No' when deleting a user.
_('Do not delete this user')); _('Do not delete this user.'));
$this->submit('form_action-yes', $this->submit('form_action-yes',
// TRANS: Button label on the delete user form. // TRANS: Button label on the delete user form.
_m('BUTTON','Yes'), _m('BUTTON','Yes'),
'submit form_action-secondary', 'submit form_action-secondary',
'yes', 'yes',
// TRANS: Submit button title for 'Yes' when deleting a user. // TRANS: Submit button title for 'Yes' when deleting a user.
_('Delete this user')); _('Delete this user.'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }

View File

@ -336,7 +336,7 @@ class DesignadminpanelAction extends AdminPanelAction
if (!in_array($values['theme'], Theme::listAvailable())) { if (!in_array($values['theme'], Theme::listAvailable())) {
// TRANS: Client error displayed when a theme is submitted through the form that is not in the theme list. // TRANS: Client error displayed when a theme is submitted through the form that is not in the theme list.
// TRANS: %s is the chosen unavailable theme. // TRANS: %s is the chosen unavailable theme.
$this->clientError(sprintf(_("Theme not available: %s."), $values['theme'])); $this->clientError(sprintf(_('Theme not available: %s.'), $values['theme']));
} }
} }
@ -443,7 +443,7 @@ class DesignAdminPanelForm extends AdminForm
// TRANS: Field label for StatusNet site logo. // TRANS: Field label for StatusNet site logo.
_('Site logo'), _('Site logo'),
// TRANS: Title for field label for StatusNet site logo. // TRANS: Title for field label for StatusNet site logo.
'Logo for the site (full URL)'); 'Logo for the site (full URL).');
$this->unli(); $this->unli();
$this->li(); $this->li();
@ -451,7 +451,7 @@ class DesignAdminPanelForm extends AdminForm
// TRANS: Field label for SSL StatusNet site logo. // TRANS: Field label for SSL StatusNet site logo.
_('SSL logo'), _('SSL logo'),
// TRANS: Title for field label for SSL StatusNet site logo. // TRANS: Title for field label for SSL StatusNet site logo.
'Logo to show on SSL pages'); 'Logo to show on SSL pages.');
$this->unli(); $this->unli();
$this->out->elementEnd('ul'); $this->out->elementEnd('ul');
@ -717,7 +717,7 @@ class DesignAdminPanelForm extends AdminForm
// TRANS: Button text for resetting theme settings. // TRANS: Button text for resetting theme settings.
$this->out->submit('defaults', _m('BUTTON','Use defaults'), 'submit form_action-default', $this->out->submit('defaults', _m('BUTTON','Use defaults'), 'submit form_action-default',
// TRANS: Title for button for resetting theme settings. // TRANS: Title for button for resetting theme settings.
'defaults', _('Restore default designs')); 'defaults', _('Restore default designs.'));
$this->out->element('input', array('id' => 'settings_design_reset', $this->out->element('input', array('id' => 'settings_design_reset',
'type' => 'reset', 'type' => 'reset',
@ -725,7 +725,7 @@ class DesignAdminPanelForm extends AdminForm
'value' => 'Reset', 'value' => 'Reset',
'class' => 'submit form_action-primary', 'class' => 'submit form_action-primary',
// TRANS: Title for button for resetting theme settings. // TRANS: Title for button for resetting theme settings.
'title' => _('Reset back to default'))); 'title' => _('Reset back to default.')));
$this->out->submit('save', $this->out->submit('save',
// TRANS: Button text for saving theme settings. // TRANS: Button text for saving theme settings.
@ -733,6 +733,6 @@ class DesignAdminPanelForm extends AdminForm
'submit form_action-secondary', 'submit form_action-secondary',
'save', 'save',
// TRANS: Title for button for saving theme settings. // TRANS: Title for button for saving theme settings.
_('Save design')); _('Save design.'));
} }
} }

View File

@ -527,7 +527,7 @@ class EmailsettingsAction extends AccountSettingsAction
if (!$user->updateKeys($orig)) { if (!$user->updateKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown on database error removing incoming e-mail address. // TRANS: Server error thrown on database error removing incoming e-mail address.
$this->serverError(_("Could not update user record.")); $this->serverError(_('Could not update user record.'));
} }
// TRANS: Message given after successfully removing an incoming e-mail address. // TRANS: Message given after successfully removing an incoming e-mail address.
@ -551,7 +551,7 @@ class EmailsettingsAction extends AccountSettingsAction
if (!$user->updateKeys($orig)) { if (!$user->updateKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown on database error adding incoming e-mail address. // TRANS: Server error thrown on database error adding incoming e-mail address.
$this->serverError(_("Could not update user record.")); $this->serverError(_('Could not update user record.'));
} }
// TRANS: Message given after successfully adding an incoming e-mail address. // TRANS: Message given after successfully adding an incoming e-mail address.

View File

@ -92,7 +92,7 @@ class FavorAction extends Action
$this->startHTML('text/xml;charset=utf-8'); $this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head'); $this->elementStart('head');
// TRANS: Page title for page on which favorite notices can be unfavourited. // TRANS: Page title for page on which favorite notices can be unfavourited.
$this->element('title', null, _('Disfavor favorite')); $this->element('title', null, _('Disfavor favorite.'));
$this->elementEnd('head'); $this->elementEnd('head');
$this->elementStart('body'); $this->elementStart('body');
$disfavor = new DisFavorForm($this, $notice); $disfavor = new DisFavorForm($this, $notice);

View File

@ -188,14 +188,14 @@ class GroupblockAction extends RedirectingAction
'submit form_action-primary', 'submit form_action-primary',
'no', 'no',
// TRANS: Submit button title for 'No' when blocking a user from a group. // TRANS: Submit button title for 'No' when blocking a user from a group.
_('Do not block this user from this group')); _('Do not block this user from this group.'));
$this->submit('form_action-yes', $this->submit('form_action-yes',
// TRANS: Button label on the form to block a user from a group. // TRANS: Button label on the form to block a user from a group.
_m('BUTTON','Yes'), _m('BUTTON','Yes'),
'submit form_action-secondary', 'submit form_action-secondary',
'yes', 'yes',
// TRANS: Submit button title for 'Yes' when blocking a user from a group. // TRANS: Submit button title for 'Yes' when blocking a user from a group.
_('Block this user from this group')); _('Block this user from this group.'));
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }

View File

@ -204,7 +204,7 @@ class GrouplogoAction extends GroupDesignAction
$this->elementStart('li', array('id' => 'avatar_original', $this->elementStart('li', array('id' => 'avatar_original',
'class' => 'avatar_view')); 'class' => 'avatar_view'));
// TRANS: Uploaded original file in group logo form. // TRANS: Uploaded original file in group logo form.
$this->element('h2', null, _("Original")); $this->element('h2', null, _('Original'));
$this->elementStart('div', array('id'=>'avatar_original_view')); $this->elementStart('div', array('id'=>'avatar_original_view'));
$this->element('img', array('src' => $this->group->original_logo, $this->element('img', array('src' => $this->group->original_logo,
'alt' => $this->group->nickname)); 'alt' => $this->group->nickname));
@ -216,7 +216,7 @@ class GrouplogoAction extends GroupDesignAction
$this->elementStart('li', array('id' => 'avatar_preview', $this->elementStart('li', array('id' => 'avatar_preview',
'class' => 'avatar_view')); 'class' => 'avatar_view'));
// TRANS: Header for preview of to be displayed group logo. // TRANS: Header for preview of to be displayed group logo.
$this->element('h2', null, _("Preview")); $this->element('h2', null, _('Preview'));
$this->elementStart('div', array('id'=>'avatar_preview_view')); $this->elementStart('div', array('id'=>'avatar_preview_view'));
$this->element('img', array('src' => $this->group->homepage_logo, $this->element('img', array('src' => $this->group->homepage_logo,
'width' => AVATAR_PROFILE_SIZE, 'width' => AVATAR_PROFILE_SIZE,
@ -267,7 +267,7 @@ class GrouplogoAction extends GroupDesignAction
array('id' => 'avatar_original', array('id' => 'avatar_original',
'class' => 'avatar_view')); 'class' => 'avatar_view'));
// TRANS: Header for originally uploaded file before a crop on the group logo page. // TRANS: Header for originally uploaded file before a crop on the group logo page.
$this->element('h2', null, _("Original")); $this->element('h2', null, _('Original'));
$this->elementStart('div', array('id'=>'avatar_original_view')); $this->elementStart('div', array('id'=>'avatar_original_view'));
$this->element('img', array('src' => Avatar::url($this->filedata['filename']), $this->element('img', array('src' => Avatar::url($this->filedata['filename']),
'width' => $this->filedata['width'], 'width' => $this->filedata['width'],
@ -280,7 +280,7 @@ class GrouplogoAction extends GroupDesignAction
array('id' => 'avatar_preview', array('id' => 'avatar_preview',
'class' => 'avatar_view')); 'class' => 'avatar_view'));
// TRANS: Header for the cropped group logo on the group logo page. // TRANS: Header for the cropped group logo on the group logo page.
$this->element('h2', null, _("Preview")); $this->element('h2', null, _('Preview'));
$this->elementStart('div', array('id'=>'avatar_preview_view')); $this->elementStart('div', array('id'=>'avatar_preview_view'));
$this->element('img', array('src' => Avatar::url($this->filedata['filename']), $this->element('img', array('src' => Avatar::url($this->filedata['filename']),
'width' => AVATAR_PROFILE_SIZE, 'width' => AVATAR_PROFILE_SIZE,

View File

@ -126,4 +126,4 @@ class InboxMessageListItem extends MessageListItem
{ {
return $this->message->getFrom(); return $this->message->getFrom();
} }
} }

View File

@ -42,13 +42,11 @@ 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 LoginAction extends Action class LoginAction extends Action
{ {
/** /**
* Has there been an error? * Has there been an error?
*/ */
var $error = null; var $error = null;
/** /**
@ -56,7 +54,6 @@ class LoginAction extends Action
* *
* @return boolean false * @return boolean false
*/ */
function isReadOnly($args) function isReadOnly($args)
{ {
return false; return false;
@ -69,7 +66,6 @@ class LoginAction extends Action
* @param $args * @param $args
* @return string title * @return string title
*/ */
function prepare($args) function prepare($args)
{ {
parent::prepare($args); parent::prepare($args);
@ -93,7 +89,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function handle($args) function handle($args)
{ {
parent::handle($args); parent::handle($args);
@ -117,7 +112,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function checkLogin($user_id=null, $token=null) function checkLogin($user_id=null, $token=null)
{ {
// XXX: login throttle // XXX: login throttle
@ -186,7 +180,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function showForm($error=null) function showForm($error=null)
{ {
$this->error = $error; $this->error = $error;
@ -204,7 +197,6 @@ class LoginAction extends Action
* *
* @return string title of the page * @return string title of the page
*/ */
function title() function title()
{ {
return _('Login'); return _('Login');
@ -218,7 +210,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function showPageNotice() function showPageNotice()
{ {
if ($this->error) { if ($this->error) {
@ -238,7 +229,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function showContent() function showContent()
{ {
$this->elementStart('form', array('method' => 'post', $this->elementStart('form', array('method' => 'post',
@ -278,7 +268,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function getInstructions() function getInstructions()
{ {
if (common_logged_in() && !common_is_real_login() && if (common_logged_in() && !common_is_real_login() &&
@ -306,7 +295,6 @@ class LoginAction extends Action
* *
* @return void * @return void
*/ */
function showLocalNav() function showLocalNav()
{ {
$nav = new LoginGroupNav($this); $nav = new LoginGroupNav($this);

View File

@ -166,6 +166,5 @@ class OauthappssettingsAction extends SettingsAction
'Try again, please.')); 'Try again, please.'));
return; return;
} }
} }
} }

View File

@ -64,7 +64,6 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction
* *
* @return string Title of the page * @return string Title of the page
*/ */
function title() function title()
{ {
// TRANS: Title for OAuth connection settings. // TRANS: Title for OAuth connection settings.
@ -76,7 +75,6 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction
* *
* @return instructions for use * @return instructions for use
*/ */
function getInstructions() function getInstructions()
{ {
// TRANS: Instructions for OAuth connection settings. // TRANS: Instructions for OAuth connection settings.

View File

@ -61,7 +61,7 @@ class OembedAction extends Action
$proxy_args = $r->map($path); $proxy_args = $r->map($path);
if (!$proxy_args) { if (!$proxy_args) {
$this->serverError(_("$path not found."), 404); $this->serverError(sprintf(_('"%s" not found.'),$path), 404);
} }
$oembed=array(); $oembed=array();
$oembed['version']='1.0'; $oembed['version']='1.0';
@ -73,7 +73,7 @@ class OembedAction extends Action
$id = $proxy_args['notice']; $id = $proxy_args['notice'];
$notice = Notice::staticGet($id); $notice = Notice::staticGet($id);
if(empty($notice)){ if(empty($notice)){
$this->serverError(_("Notice $id not found."), 404); $this->serverError(sprintf(_("Notice %s not found."),$id), 404);
} }
$profile = $notice->getProfile(); $profile = $notice->getProfile();
if (empty($profile)) { if (empty($profile)) {
@ -92,7 +92,7 @@ class OembedAction extends Action
$id = $proxy_args['attachment']; $id = $proxy_args['attachment'];
$attachment = File::staticGet($id); $attachment = File::staticGet($id);
if(empty($attachment)){ if(empty($attachment)){
$this->serverError(_("Attachment $id not found."), 404); $this->serverError(sprintf(_('Attachment %s not found.'),$id), 404);
} }
if(empty($attachment->filename) && $file_oembed = File_oembed::staticGet('file_id', $attachment->id)){ if(empty($attachment->filename) && $file_oembed = File_oembed::staticGet('file_id', $attachment->id)){
// Proxy the existing oembed information // Proxy the existing oembed information
@ -133,7 +133,7 @@ class OembedAction extends Action
if($attachment->title) $oembed['title']=$attachment->title; if($attachment->title) $oembed['title']=$attachment->title;
break; break;
default: default:
$this->serverError(_("$path not supported for oembed requests."), 501); $this->serverError(sprintf(_('"%s" not supported for oembed requests.'),$path), 501);
} }
switch($args['format']){ switch($args['format']){
case 'xml': case 'xml':

View File

@ -189,6 +189,7 @@ class OthersettingsAction extends AccountSettingsAction
$user->query('COMMIT'); $user->query('COMMIT');
// TRANS: Confirmation message after saving preferences.
$this->showForm(_('Preferences saved.'), true); $this->showForm(_('Preferences saved.'), true);
} }
} }

View File

@ -26,7 +26,6 @@
* @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/
*/ */
if (!defined('STATUSNET') && !defined('LACONICA')) { if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1); exit(1);
} }
@ -43,7 +42,6 @@ require_once INSTALLDIR.'/lib/mailbox.php';
* @link http://status.net/ * @link http://status.net/
* @see MailboxAction * @see MailboxAction
*/ */
class OutboxAction extends MailboxAction class OutboxAction extends MailboxAction
{ {
/** /**
@ -51,13 +49,15 @@ class OutboxAction extends MailboxAction
* *
* @return string page title * @return string page title
*/ */
function title() function title()
{ {
if ($this->page > 1) { if ($this->page > 1) {
// TRANS: Title for outbox for any but the fist page.
// TRANS: %1$s is the user nickname, %2$d is the page number.
return sprintf(_('Outbox for %1$s - page %2$d'), return sprintf(_('Outbox for %1$s - page %2$d'),
$this->user->nickname, $page); $this->user->nickname, $page);
} else { } else {
// TRANS: Title for first page of outbox.
return sprintf(_('Outbox for %s'), $this->user->nickname); return sprintf(_('Outbox for %s'), $this->user->nickname);
} }
} }
@ -71,7 +71,6 @@ class OutboxAction extends MailboxAction
* *
* @see MailboxAction::getMessages() * @see MailboxAction::getMessages()
*/ */
function getMessages() function getMessages()
{ {
$message = new Message(); $message = new Message();
@ -98,9 +97,9 @@ class OutboxAction extends MailboxAction
* *
* @return string localised instructions for using the page * @return string localised instructions for using the page
*/ */
function getInstructions() function getInstructions()
{ {
// TRANS: Instructions for outbox.
return _('This is your outbox, which lists private messages you have sent.'); return _('This is your outbox, which lists private messages you have sent.');
} }
} }
@ -124,4 +123,4 @@ class OutboxMessageListItem extends MessageListItem
{ {
return $this->message->getTo(); return $this->message->getTo();
} }
} }

View File

@ -106,11 +106,11 @@ class PasswordsettingsAction extends AccountSettingsAction
} }
$this->elementStart('li'); $this->elementStart('li');
$this->password('newpassword', _('New password'), $this->password('newpassword', _('New password'),
_('6 or more characters')); _('6 or more characters.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
$this->password('confirm', _('Confirm'), $this->password('confirm', _('Confirm'),
_('Same as password above')); _('Same as password above.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
@ -128,7 +128,6 @@ class PasswordsettingsAction extends AccountSettingsAction
* *
* @return void * @return void
*/ */
function handlePost() function handlePost()
{ {
// CSRF protection // CSRF protection
@ -183,7 +182,7 @@ class PasswordsettingsAction extends AccountSettingsAction
} }
if (!$user->update($original)) { if (!$user->update($original)) {
$this->serverError(_('Can\'t save new password.')); $this->serverError(_('Cannot save new password.'));
return; return;
} }
Event::handle('EndChangePassword', array($user)); Event::handle('EndChangePassword', array($user));

View File

@ -161,14 +161,14 @@ class ProfilesettingsAction extends AccountSettingsAction
$this->input('tags', _('Tags'), $this->input('tags', _('Tags'),
($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()), ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
// TRANS: Tooltip for field label in form for profile settings. // TRANS: Tooltip for field label in form for profile settings.
_('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated')); _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
$language = common_language(); $language = common_language();
// TRANS: Dropdownlist label in form for profile settings. // TRANS: Dropdownlist label in form for profile settings.
$this->dropdown('language', _('Language'), $this->dropdown('language', _('Language'),
// TRANS: Tooltip for dropdown list label in form for profile settings. // TRANS: Tooltip for dropdown list label in form for profile settings.
get_nice_language_list(), _('Preferred language'), get_nice_language_list(), _('Preferred language.'),
false, $language); false, $language);
$this->elementEnd('li'); $this->elementEnd('li');
$timezone = common_timezone(); $timezone = common_timezone();
@ -187,7 +187,7 @@ class ProfilesettingsAction extends AccountSettingsAction
$this->checkbox('autosubscribe', $this->checkbox('autosubscribe',
// TRANS: Checkbox label in form for profile settings. // TRANS: Checkbox label in form for profile settings.
_('Automatically subscribe to whoever '. _('Automatically subscribe to whoever '.
'subscribes to me (best for non-humans)'), 'subscribes to me (best for non-humans).'),
($this->arg('autosubscribe')) ? ($this->arg('autosubscribe')) ?
$this->boolean('autosubscribe') : $user->autosubscribe); $this->boolean('autosubscribe') : $user->autosubscribe);
$this->elementEnd('li'); $this->elementEnd('li');
@ -288,7 +288,7 @@ class ProfilesettingsAction extends AccountSettingsAction
if (!common_valid_profile_tag($tag)) { if (!common_valid_profile_tag($tag)) {
// TRANS: Validation error in form for profile settings. // TRANS: Validation error in form for profile settings.
// TRANS: %s is an invalid tag. // TRANS: %s is an invalid tag.
$this->showForm(sprintf(_('Invalid tag: "%s"'), $tag)); $this->showForm(sprintf(_('Invalid tag: "%s".'), $tag));
return; return;
} }
} }

View File

@ -226,7 +226,7 @@ class RecoverpasswordAction extends Action
// TRANS: Title for password recovery page in email sent mode. // TRANS: Title for password recovery page in email sent mode.
case 'sent': return _('Password recovery requested'); case 'sent': return _('Password recovery requested');
// TRANS: Title for password recovery page in password saved mode. // TRANS: Title for password recovery page in password saved mode.
case 'saved': return _('Password saved.'); case 'saved': return _('Password saved');
default: default:
// TRANS: Title for password recovery page when an unknown action has been specified. // TRANS: Title for password recovery page when an unknown action has been specified.
return _('Unknown action'); return _('Unknown action');

View File

@ -40,25 +40,21 @@ 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 RegisterAction extends Action class RegisterAction extends Action
{ {
/** /**
* Has there been an error? * Has there been an error?
*/ */
var $error = null; var $error = null;
/** /**
* Have we registered? * Have we registered?
*/ */
var $registered = false; var $registered = false;
/** /**
* Are we processing an invite? * Are we processing an invite?
*/ */
var $invite = null; var $invite = null;
/** /**
@ -68,7 +64,6 @@ class RegisterAction extends Action
* @param $args * @param $args
* @return string title * @return string title
*/ */
function prepare($args) function prepare($args)
{ {
parent::prepare($args); parent::prepare($args);
@ -112,7 +107,6 @@ class RegisterAction extends Action
* *
* @return string title * @return string title
*/ */
function title() function title()
{ {
if ($this->registered) { if ($this->registered) {
@ -133,7 +127,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function handle($args) function handle($args)
{ {
parent::handle($args); parent::handle($args);
@ -163,7 +156,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function tryRegister() function tryRegister()
{ {
if (Event::handle('StartRegistrationTry', array($this))) { if (Event::handle('StartRegistrationTry', array($this))) {
@ -206,7 +198,7 @@ class RegisterAction extends Action
$email = common_canonical_email($email); $email = common_canonical_email($email);
if (!$this->boolean('license')) { if (!$this->boolean('license')) {
$this->showForm(_('You can\'t register if you don\'t '. $this->showForm(_('You cannot register if you don\'t '.
'agree to the license.')); 'agree to the license.'));
} else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) { } else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) {
$this->showForm(_('Not a valid email address.')); $this->showForm(_('Not a valid email address.'));
@ -284,7 +276,6 @@ class RegisterAction extends Action
* *
* @return boolean true if the nickname already exists * @return boolean true if the nickname already exists
*/ */
function nicknameExists($nickname) function nicknameExists($nickname)
{ {
$user = User::staticGet('nickname', $nickname); $user = User::staticGet('nickname', $nickname);
@ -300,7 +291,6 @@ class RegisterAction extends Action
* *
* @return boolean true if the address already exists * @return boolean true if the address already exists
*/ */
function emailExists($email) function emailExists($email)
{ {
$email = common_canonical_email($email); $email = common_canonical_email($email);
@ -339,7 +329,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showPageNotice() function showPageNotice()
{ {
if ($this->registered) { if ($this->registered) {
@ -351,7 +340,7 @@ class RegisterAction extends Action
common_markup_to_html(_('With this form you can create '. common_markup_to_html(_('With this form you can create '.
'a new account. ' . 'a new account. ' .
'You can then post notices and '. 'You can then post notices and '.
'link up to friends and colleagues. ')); 'link up to friends and colleagues.'));
$this->elementStart('div', 'instructions'); $this->elementStart('div', 'instructions');
$this->raw($instr); $this->raw($instr);
@ -368,7 +357,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showForm($error=null) function showForm($error=null)
{ {
$this->error = $error; $this->error = $error;
@ -383,7 +371,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showContent() function showContent()
{ {
if ($this->registered) { if ($this->registered) {
@ -398,7 +385,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showFormContent() function showFormContent()
{ {
$code = $this->trimmed('code'); $code = $this->trimmed('code');
@ -444,23 +430,23 @@ class RegisterAction extends Action
if ($this->invite && $this->invite->address_type == 'email') { if ($this->invite && $this->invite->address_type == 'email') {
$this->input('email', _('Email'), $this->invite->address, $this->input('email', _('Email'), $this->invite->address,
_('Used only for updates, announcements, '. _('Used only for updates, announcements, '.
'and password recovery')); 'and password recovery.'));
} else { } else {
$this->input('email', _('Email'), $this->trimmed('email'), $this->input('email', _('Email'), $this->trimmed('email'),
_('Used only for updates, announcements, '. _('Used only for updates, announcements, '.
'and password recovery')); 'and password recovery.'));
} }
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
$this->input('fullname', _('Full name'), $this->input('fullname', _('Full name'),
$this->trimmed('fullname'), $this->trimmed('fullname'),
_('Longer name, preferably your "real" name')); _('Longer name, preferably your "real" name.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
$this->input('homepage', _('Homepage'), $this->input('homepage', _('Homepage'),
$this->trimmed('homepage'), $this->trimmed('homepage'),
_('URL of your homepage, blog, '. _('URL of your homepage, blog, '.
'or profile on another site')); 'or profile on another site.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
$maxBio = Profile::maxBio(); $maxBio = Profile::maxBio();
@ -483,7 +469,7 @@ class RegisterAction extends Action
$this->input('location', _('Location'), $this->input('location', _('Location'),
$this->trimmed('location'), $this->trimmed('location'),
_('Where you are, like "City, '. _('Where you are, like "City, '.
'State (or Region), Country"')); 'State (or Region), Country".'));
$this->elementEnd('li'); $this->elementEnd('li');
Event::handle('EndRegistrationFormData', array($this)); Event::handle('EndRegistrationFormData', array($this));
$this->elementStart('li', array('id' => 'settings_rememberme')); $this->elementStart('li', array('id' => 'settings_rememberme'));
@ -519,6 +505,7 @@ class RegisterAction extends Action
switch (common_config('license', 'type')) { switch (common_config('license', 'type')) {
case 'private': case 'private':
// TRANS: Copyright checkbox label in registration dialog, for private sites. // TRANS: Copyright checkbox label in registration dialog, for private sites.
// TRANS: %1$s is the StatusNet sitename.
$out .= htmlspecialchars(sprintf( $out .= htmlspecialchars(sprintf(
_('I understand that content and data of %1$s are private and confidential.'), _('I understand that content and data of %1$s are private and confidential.'),
common_config('site', 'name'))); common_config('site', 'name')));
@ -562,7 +549,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showSuccess() function showSuccess()
{ {
$this->registered = true; $this->registered = true;
@ -576,7 +562,6 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showSuccessContent() function showSuccessContent()
{ {
$nickname = $this->arg('nickname'); $nickname = $this->arg('nickname');
@ -623,11 +608,9 @@ class RegisterAction extends Action
* *
* @return void * @return void
*/ */
function showLocalNav() function showLocalNav()
{ {
$nav = new LoginGroupNav($this); $nav = new LoginGroupNav($this);
$nav->show(); $nav->show();
} }
} }

View File

@ -126,11 +126,11 @@ class RemotesubscribeAction extends Action
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$this->elementStart('li'); $this->elementStart('li');
$this->input('nickname', _('User nickname'), $this->nickname, $this->input('nickname', _('User nickname'), $this->nickname,
_('Nickname of the user you want to follow')); _('Nickname of the user you want to follow.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
$this->input('profile_url', _('Profile URL'), $this->profile_url, $this->input('profile_url', _('Profile URL'), $this->profile_url,
_('URL of your profile on another compatible microblogging service')); _('URL of your profile on another compatible microblogging service.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
$this->submit('submit', _('Subscribe')); $this->submit('submit', _('Subscribe'));
@ -155,7 +155,7 @@ class RemotesubscribeAction extends Action
} }
if (!common_valid_http_url($this->profile_url)) { if (!common_valid_http_url($this->profile_url)) {
$this->showForm(_('Invalid profile URL (bad format)')); $this->showForm(_('Invalid profile URL (bad format).'));
return; return;
} }

View File

@ -57,7 +57,7 @@ class RestoreaccountAction extends Action
function title() function title()
{ {
// TRANS: Page title for page where a user account can be restored from backup. // TRANS: Page title for page where a user account can be restored from backup.
return _("Restore account"); return _('Restore account');
} }
/** /**

View File

@ -68,13 +68,11 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://status.net/ * @link http://status.net/
*/ */
class RsdAction extends Action class RsdAction extends Action
{ {
/** /**
* Optional attribute for the personal rsd.xml file. * Optional attribute for the personal rsd.xml file.
*/ */
var $user = null; var $user = null;
/** /**
@ -87,7 +85,6 @@ class RsdAction extends Action
* *
* @return boolean success flag * @return boolean success flag
*/ */
function prepare($args) function prepare($args)
{ {
parent::prepare($args); parent::prepare($args);
@ -132,7 +129,6 @@ class RsdAction extends Action
* *
* @return nothing * @return nothing
*/ */
function handle($args) function handle($args)
{ {
header('Content-Type: application/rsd+xml'); header('Content-Type: application/rsd+xml');
@ -195,7 +191,6 @@ class RsdAction extends Action
* *
* @return string date of last change of this page * @return string date of last change of this page
*/ */
function lastModified() function lastModified()
{ {
if (!empty($this->user)) { if (!empty($this->user)) {
@ -214,7 +209,6 @@ class RsdAction extends Action
* *
* @return boolean true * @return boolean true
*/ */
function isReadOnly($args) function isReadOnly($args)
{ {
return true; return true;
@ -228,7 +222,6 @@ class RsdAction extends Action
* *
* @return string API root URI for this site * @return string API root URI for this site
*/ */
private function _apiRoot() private function _apiRoot()
{ {
if (common_config('site', 'fancy')) { if (common_config('site', 'fancy')) {

View File

@ -40,19 +40,16 @@ 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 ShowApplicationAction extends OwnerDesignAction class ShowApplicationAction extends OwnerDesignAction
{ {
/** /**
* Application to show * Application to show
*/ */
var $application = null; var $application = null;
/** /**
* User who owns the app * User who owns the app
*/ */
var $owner = null; var $owner = null;
var $msg = null; var $msg = null;
@ -68,7 +65,6 @@ class ShowApplicationAction extends OwnerDesignAction
* *
* @return success flag * @return success flag
*/ */
function prepare($args) function prepare($args)
{ {
parent::prepare($args); parent::prepare($args);
@ -105,7 +101,6 @@ class ShowApplicationAction extends OwnerDesignAction
* *
* @return void * @return void
*/ */
function handle($args) function handle($args)
{ {
parent::handle($args); parent::handle($args);
@ -132,7 +127,6 @@ class ShowApplicationAction extends OwnerDesignAction
* *
* @return string title of the page * @return string title of the page
*/ */
function title() function title()
{ {
if (!empty($this->application->name)) { if (!empty($this->application->name)) {
@ -301,7 +295,6 @@ class ShowApplicationAction extends OwnerDesignAction
* *
* @return void * @return void
*/ */
function showScripts() function showScripts()
{ {
parent::showScripts(); parent::showScripts();
@ -322,7 +315,6 @@ class ShowApplicationAction extends OwnerDesignAction
* XXX: Should this be moved to its own page with a confirm? * XXX: Should this be moved to its own page with a confirm?
* *
*/ */
function resetKey() function resetKey()
{ {
$this->application->query('BEGIN'); $this->application->query('BEGIN');
@ -382,5 +374,4 @@ class ShowApplicationAction extends OwnerDesignAction
$this->msg = ('Consumer key and secret reset.'); $this->msg = ('Consumer key and secret reset.');
$this->showPage(); $this->showPage();
} }
} }

View File

@ -344,7 +344,7 @@ class SingleNoticeItem extends DoFollowListItem
* show the avatar of the notice's author * show the avatar of the notice's author
* *
* We use the larger size for single notice page. * We use the larger size for single notice page.
* *
* @return void * @return void
*/ */

View File

@ -70,7 +70,7 @@ class ShowstreamAction extends ProfileAction
return sprintf(_('%1$s tagged %2$s'), $base, $this->tag); return sprintf(_('%1$s tagged %2$s'), $base, $this->tag);
} else { } else {
// TRANS: Page title showing tagged notices in one user's stream. // TRANS: Page title showing tagged notices in one user's stream.
// TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. // TRANS: %1$s is the username, %2$s is the hash tag, %3$d is the page number.
return sprintf(_('%1$s tagged %2$s, page %3$d'), $base, $this->tag, $this->page); return sprintf(_('%1$s tagged %2$s, page %3$d'), $base, $this->tag, $this->page);
} }
} else { } else {

View File

@ -98,7 +98,7 @@ class SitenoticeadminpanelAction extends AdminPanelAction
if (!$result) { if (!$result) {
// TRANS: Server error displayed when saving a site-wide notice was impossible. // TRANS: Server error displayed when saving a site-wide notice was impossible.
$this->ServerError(_("Unable to save site notice.")); $this->ServerError(_('Unable to save site notice.'));
} }
} }
@ -198,7 +198,7 @@ class SiteNoticeAdminPanelForm extends AdminForm
'submit', 'submit',
null, null,
// TRANS: Title for button to save site notice in admin panel. // TRANS: Title for button to save site notice in admin panel.
_('Save site notice') _('Save site notice.')
); );
} }
} }

View File

@ -150,7 +150,7 @@ class SmssettingsAction extends ConnectSettingsAction
($this->arg('sms')) ? $this->arg('sms') : null, ($this->arg('sms')) ? $this->arg('sms') : null,
// TRANS: SMS phone number input field instructions in SMS settings form. // TRANS: SMS phone number input field instructions in SMS settings form.
_('Phone number, no punctuation or spaces, '. _('Phone number, no punctuation or spaces, '.
'with area code')); 'with area code.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
$this->carrierSelect(); $this->carrierSelect();
@ -562,9 +562,11 @@ class SmssettingsAction extends ConnectSettingsAction
if (!$user->updateKeys($orig)) { if (!$user->updateKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
$this->serverError(_("Could not update user record.")); // TRANS: Server error displayed when the user could not be updated in SMS settings.
$this->serverError(_('Could not update user record.'));
} }
// TRANS: Confirmation text after updating SMS settings.
$this->showForm(_('Incoming email address removed.'), true); $this->showForm(_('Incoming email address removed.'), true);
} }
@ -585,9 +587,11 @@ class SmssettingsAction extends ConnectSettingsAction
if (!$user->updateKeys($orig)) { if (!$user->updateKeys($orig)) {
common_log_db_error($user, 'UPDATE', __FILE__); common_log_db_error($user, 'UPDATE', __FILE__);
$this->serverError(_("Could not update user record.")); // TRANS: Server error displayed when the user could not be updated in SMS settings.
$this->serverError(_('Could not update user record.'));
} }
// TRANS: Confirmation text after updating SMS settings.
$this->showForm(_('New incoming email address added.'), true); $this->showForm(_('New incoming email address added.'), true);
} }
} }

View File

@ -163,7 +163,7 @@ class UseradminpanelAction extends AdminPanelAction
sprintf( sprintf(
// TRANS: Client error displayed when trying to set a non-existing user as default subscription for new // TRANS: Client error displayed when trying to set a non-existing user as default subscription for new
// TRANS: users in user admin panel. %1$s is the invalid nickname. // TRANS: users in user admin panel. %1$s is the invalid nickname.
_('Invalid default subscripton: \'%1$s\' is not a user.'), _('Invalid default subscripton: "%1$s" is not a user.'),
$values['newuser']['default'] $values['newuser']['default']
) )
); );
@ -299,6 +299,6 @@ class UserAdminPanelForm extends AdminForm
'submit', 'submit',
null, null,
// TRANS: Title for button to save user settings in user admin panel. // TRANS: Title for button to save user settings in user admin panel.
_('Save user settings')); _('Save user settings.'));
} }
} }

View File

@ -35,6 +35,7 @@ require_once INSTALLDIR.'/extlib/libomb/service_provider.php';
require_once INSTALLDIR.'/extlib/libomb/profile.php'; require_once INSTALLDIR.'/extlib/libomb/profile.php';
define('TIMESTAMP_THRESHOLD', 300); define('TIMESTAMP_THRESHOLD', 300);
// @todo FIXME: Missing documentation.
class UserauthorizationAction extends Action class UserauthorizationAction extends Action
{ {
var $error; var $error;
@ -69,6 +70,8 @@ class UserauthorizationAction extends Action
$profile = $user->getProfile(); $profile = $user->getProfile();
if (!$profile) { if (!$profile) {
common_log_db_error($user, 'SELECT', __FILE__); common_log_db_error($user, 'SELECT', __FILE__);
// TRANS: Server error displayed when trying to authorise a remote subscription request
// TRANS: while the user has no profile.
$this->serverError(_('User without matching profile.')); $this->serverError(_('User without matching profile.'));
return; return;
} }
@ -102,16 +105,18 @@ class UserauthorizationAction extends Action
function title() function title()
{ {
// TRANS: Page title.
return _('Authorize subscription'); return _('Authorize subscription');
} }
function showPageNotice() function showPageNotice()
{ {
// TRANS: Page notice on "Auhtorize subscription" page.
$this->element('p', null, _('Please check these details to make sure '. $this->element('p', null, _('Please check these details to make sure '.
'that you want to subscribe to this ' . 'that you want to subscribe to this ' .
'users notices. If you didnt just ask ' . 'users notices. If you didnt just ask ' .
'to subscribe to someones notices, '. 'to subscribe to someones notices, '.
'click “Reject”.')); 'click "Reject".'));
} }
function showContent() function showContent()
@ -129,6 +134,7 @@ class UserauthorizationAction extends Action
$this->elementStart('div', 'entity_profile vcard'); $this->elementStart('div', 'entity_profile vcard');
$this->elementStart('dl', 'entity_depiction'); $this->elementStart('dl', 'entity_depiction');
// TRANS: DT element on Authorise Subscription page.
$this->element('dt', null, _('Photo')); $this->element('dt', null, _('Photo'));
$this->elementStart('dd'); $this->elementStart('dd');
if ($avatar) { if ($avatar) {
@ -142,6 +148,7 @@ class UserauthorizationAction extends Action
$this->elementEnd('dl'); $this->elementEnd('dl');
$this->elementStart('dl', 'entity_nickname'); $this->elementStart('dl', 'entity_nickname');
// TRANS: DT element on Authorise Subscription page.
$this->element('dt', null, _('Nickname')); $this->element('dt', null, _('Nickname'));
$this->elementStart('dd'); $this->elementStart('dd');
$hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname'; $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
@ -163,6 +170,7 @@ class UserauthorizationAction extends Action
} }
if (!is_null($location)) { if (!is_null($location)) {
$this->elementStart('dl', 'entity_location'); $this->elementStart('dl', 'entity_location');
// TRANS: DT element on Authorise Subscription page.
$this->element('dt', null, _('Location')); $this->element('dt', null, _('Location'));
$this->elementStart('dd', 'label'); $this->elementStart('dd', 'label');
$this->raw($location); $this->raw($location);
@ -172,6 +180,7 @@ class UserauthorizationAction extends Action
if (!is_null($homepage)) { if (!is_null($homepage)) {
$this->elementStart('dl', 'entity_url'); $this->elementStart('dl', 'entity_url');
// TRANS: DT element on Authorise Subscription page.
$this->element('dt', null, _('URL')); $this->element('dt', null, _('URL'));
$this->elementStart('dd'); $this->elementStart('dd');
$this->elementStart('a', array('href' => $homepage, $this->elementStart('a', array('href' => $homepage,
@ -184,6 +193,7 @@ class UserauthorizationAction extends Action
if (!is_null($bio)) { if (!is_null($bio)) {
$this->elementStart('dl', 'entity_note'); $this->elementStart('dl', 'entity_note');
// TRANS: DT element on Authorise Subscription page where bio is displayed.
$this->element('dt', null, _('Note')); $this->element('dt', null, _('Note'));
$this->elementStart('dd', 'note'); $this->elementStart('dd', 'note');
$this->raw($bio); $this->raw($bio);
@ -193,6 +203,7 @@ class UserauthorizationAction extends Action
if (!is_null($license)) { if (!is_null($license)) {
$this->elementStart('dl', 'entity_license'); $this->elementStart('dl', 'entity_license');
// TRANS: DT element on Authorise Subscription page where license is displayed.
$this->element('dt', null, _('License')); $this->element('dt', null, _('License'));
$this->elementStart('dd', 'license'); $this->elementStart('dd', 'license');
$this->element('a', array('href' => $license, $this->element('a', array('href' => $license,
@ -214,10 +225,14 @@ class UserauthorizationAction extends Action
'userauthorization'))); 'userauthorization')));
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->submit('accept', _('Accept'), 'submit accept', null, // TRANS: Button text on Authorise Subscription page.
_('Subscribe to this user')); $this->submit('accept', _m('BUTTON','Accept'), 'submit accept', null,
$this->submit('reject', _('Reject'), 'submit reject', null, // TRANS: Title for button on Authorise Subscription page.
_('Reject this subscription')); _('Subscribe to this user.'));
// TRANS: Button text on Authorise Subscription page.
$this->submit('reject', _m('BUTTON','Reject'), 'submit reject', null,
// TRANS: Title for button on Authorise Subscription page.
_('Reject this subscription.'));
$this->elementEnd('form'); $this->elementEnd('form');
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
@ -229,6 +244,7 @@ class UserauthorizationAction extends Action
$srv = $this->getStoredParams(); $srv = $this->getStoredParams();
if (is_null($srv)) { if (is_null($srv)) {
// TRANS: Client error displayed for an empty authorisation request.
$this->clientError(_('No authorization request!')); $this->clientError(_('No authorization request!'));
return; return;
} }
@ -251,7 +267,9 @@ class UserauthorizationAction extends Action
function showAcceptMessage($tok) function showAcceptMessage($tok)
{ {
// TRANS: Accept message header from Authorise subscription page.
common_show_header(_('Subscription authorized')); common_show_header(_('Subscription authorized'));
// TRANS: Accept message text from Authorise subscription page.
$this->element('p', null, $this->element('p', null,
_('The subscription has been authorized, but no '. _('The subscription has been authorized, but no '.
'callback URL was passed. Check with the sites ' . 'callback URL was passed. Check with the sites ' .
@ -263,7 +281,9 @@ class UserauthorizationAction extends Action
function showRejectMessage() function showRejectMessage()
{ {
// TRANS: Reject message header from Authorise subscription page.
common_show_header(_('Subscription rejected')); common_show_header(_('Subscription rejected'));
// TRANS: Reject message from Authorise subscription page.
$this->element('p', null, $this->element('p', null,
_('The subscription has been rejected, but no '. _('The subscription has been rejected, but no '.
'callback URL was passed. Check with the sites ' . 'callback URL was passed. Check with the sites ' .
@ -300,18 +320,24 @@ class UserauthorizationAction extends Action
$user = User::staticGet('uri', $listener); $user = User::staticGet('uri', $listener);
if (!$user) { if (!$user) {
throw new Exception(sprintf(_('Listener URI %s not found here.'), // TRANS: Exception thrown when no valid user is found for an authorisation request.
// TRANS: %s is a listener URI.
throw new Exception(sprintf(_('Listener URI "%s" not found here.'),
$listener)); $listener));
} }
if (strlen($listenee) > 255) { if (strlen($listenee) > 255) {
throw new Exception(sprintf(_('Listenee URI %s is too long.'), // TRANS: Exception thrown when listenee URI is too long for an authorisation request.
// TRANS: %s is a listenee URI.
throw new Exception(sprintf(_('Listenee URI "%s" is too long.'),
$listenee)); $listenee));
} }
$other = User::staticGet('uri', $listenee); $other = User::staticGet('uri', $listenee);
if ($other) { if ($other) {
throw new Exception(sprintf(_('Listenee URI %s is a local user.'), // TRANS: Exception thrown when listenee URI is a local user for an authorisation request.
// TRANS: %s is a listenee URI.
throw new Exception(sprintf(_('Listenee URI "%s" is a local user.'),
$listenee)); $listenee));
} }
@ -321,12 +347,15 @@ class UserauthorizationAction extends Action
$sub->subscriber = $user->id; $sub->subscriber = $user->id;
$sub->subscribed = $remote->id; $sub->subscribed = $remote->id;
if ($sub->find(true)) { if ($sub->find(true)) {
// TRANS: Exception thrown when already subscribed.
throw new Exception('You are already subscribed to this user.'); throw new Exception('You are already subscribed to this user.');
} }
} }
if ($profile == common_profile_url($nickname)) { if ($profile == common_profile_url($nickname)) {
throw new Exception(sprintf(_('Profile URL %s is for a local user.'), // TRANS: Exception thrown when profile URL is a local user for an authorisation request.
// TRANS: %s is a profile URL.
throw new Exception(sprintf(_('Profile URL "%s" is for a local user.'),
$profile)); $profile));
} }
@ -334,26 +363,34 @@ class UserauthorizationAction extends Action
$license = $_GET['omb_listenee_license']; $license = $_GET['omb_listenee_license'];
$site_license = common_config('license', 'url'); $site_license = common_config('license', 'url');
if (!common_compatible_license($license, $site_license)) { if (!common_compatible_license($license, $site_license)) {
throw new Exception(sprintf(_('Listenee stream license %1$s is not ' . // TRANS: Exception thrown when licenses are not compatible for an authorisation request.
'compatible with site license %2$s.'), // TRANS: %1$s is the license for the listenee, %2$s is the license for "this" StatusNet site.
throw new Exception(sprintf(_('Listenee stream license "%1$s" is not ' .
'compatible with site license "%2$s".'),
$license, $site_license)); $license, $site_license));
} }
$avatar = $_GET['omb_listenee_avatar']; $avatar = $_GET['omb_listenee_avatar'];
if ($avatar) { if ($avatar) {
if (!common_valid_http_url($avatar) || strlen($avatar) > 255) { if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
throw new Exception(sprintf(_('Avatar URL %s is not valid.'), // TRANS: Exception thrown when avatar URL is invalid for an authorisation request.
// TRANS: %s is an avatar URL.
throw new Exception(sprintf(_('Avatar URL "%s" is not valid.'),
$avatar)); $avatar));
} }
$size = @getimagesize($avatar); $size = @getimagesize($avatar);
if (!$size) { if (!$size) {
throw new Exception(sprintf(_('Cant read avatar URL %s.'), // TRANS: Exception thrown when avatar URL could not be read for an authorisation request.
// TRANS: %s is an avatar URL.
throw new Exception(sprintf(_('Cannot read avatar URL "%s".'),
$avatar)); $avatar));
} }
if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
IMAGETYPE_PNG))) { IMAGETYPE_PNG))) {
// TRANS: Exception thrown when avatar URL return an invalid image type for an authorisation request.
// TRANS: %s is an avatar URL.
throw new Exception(sprintf(_('Wrong image type for avatar URL '. throw new Exception(sprintf(_('Wrong image type for avatar URL '.
'%s.'), $avatar)); '"%s".'), $avatar));
} }
} }
} }

View File

@ -56,7 +56,7 @@ class UserxrdAction extends XrdAction
} }
if (!$this->user) { if (!$this->user) {
$this->clientError(_m('No such user.'), 404); $this->clientError(_('No such user.'), 404);
return false; return false;
} }