diff options
Diffstat (limited to 'actions')
27 files changed, 288 insertions, 189 deletions
diff --git a/actions/attachment.php b/actions/attachment.php index 6981354d1..45aa78728 100644 --- a/actions/attachment.php +++ b/actions/attachment.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/lib/attachmentlist.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AttachmentAction extends Action { /** @@ -70,6 +69,7 @@ class AttachmentAction extends Action } if (empty($this->attachment)) { + // TRANS: Client error displayed trying to get a non-existing attachment. $this->clientError(_('No such attachment.'), 404); return false; } @@ -81,7 +81,6 @@ class AttachmentAction extends Action * * @return boolean true */ - function isReadOnly($args) { return true; @@ -129,7 +128,6 @@ class AttachmentAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -150,7 +148,6 @@ class AttachmentAction extends Action * * @return void */ - function showLocalNavBlock() { } @@ -162,7 +159,6 @@ class AttachmentAction extends Action * * @return void */ - function showContent() { $ali = new Attachment($this->attachment, $this); @@ -174,7 +170,6 @@ class AttachmentAction extends Action * * @return void */ - function showPageNoticeBlock() { } @@ -191,4 +186,3 @@ class AttachmentAction extends Action $atcs->show(); } } - diff --git a/actions/attachment_ajax.php b/actions/attachment_ajax.php index 1e0728075..fb7d15f8a 100644 --- a/actions/attachment_ajax.php +++ b/actions/attachment_ajax.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/actions/attachment.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Attachment_ajaxAction extends AttachmentAction { /** @@ -80,4 +79,3 @@ class Attachment_ajaxAction extends AttachmentAction $this->elementEnd('div'); } } - diff --git a/actions/attachment_thumbnail.php b/actions/attachment_thumbnail.php index 7d0ac97a6..38648b8be 100644 --- a/actions/attachment_thumbnail.php +++ b/actions/attachment_thumbnail.php @@ -42,10 +42,8 @@ require_once INSTALLDIR.'/actions/attachment.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Attachment_thumbnailAction extends AttachmentAction { - function handle($args) { $this->showPage(); @@ -79,6 +77,4 @@ class Attachment_thumbnailAction extends AttachmentAction } $this->element('img', array('src' => $file_thumbnail->url, 'alt' => 'Thumbnail')); } - } - diff --git a/actions/avatarbynickname.php b/actions/avatarbynickname.php index 537950792..fa97a86eb 100644 --- a/actions/avatarbynickname.php +++ b/actions/avatarbynickname.php @@ -48,7 +48,7 @@ class AvatarbynicknameAction extends Action * Class handler. * * @param array $args query arguments - * + * * @return boolean false if nickname or user isn't found */ function handle($args) @@ -56,27 +56,32 @@ class AvatarbynicknameAction extends Action parent::handle($args); $nickname = $this->trimmed('nickname'); if (!$nickname) { + // TRANS: Client error displayed trying to get an avatar without providing a nickname. $this->clientError(_('No nickname.')); return; } $size = $this->trimmed('size'); if (!$size) { + // TRANS: Client error displayed trying to get an avatar without providing an avatar size. $this->clientError(_('No size.')); return; } $size = strtolower($size); if (!in_array($size, array('original', '96', '48', '24'))) { + // TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. $this->clientError(_('Invalid size.')); return; } $user = User::staticGet('nickname', $nickname); if (!$user) { + // TRANS: Client error displayed trying to get an avatar for a non-existing user. $this->clientError(_('No such user.')); return; } $profile = $user->getProfile(); if (!$profile) { + // TRANS: Client error displayed trying to get an avatar for a user without a profile. $this->clientError(_('User has no profile.')); return; } @@ -103,4 +108,3 @@ class AvatarbynicknameAction extends Action return true; } } - diff --git a/actions/avatarsettings.php b/actions/avatarsettings.php index 9d4040e75..375420c5c 100644 --- a/actions/avatarsettings.php +++ b/actions/avatarsettings.php @@ -49,7 +49,6 @@ define('MAX_ORIGINAL', 480); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AvatarsettingsAction extends AccountSettingsAction { var $mode = null; @@ -61,9 +60,9 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return string Title of the page */ - function title() { + // TRANS: Title for avatar upload page. return _('Avatar'); } @@ -72,10 +71,12 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return instructions for use */ - function getInstructions() { - return sprintf(_('You can upload your personal avatar. The maximum file size is %s.'), ImageFile::maxFileSize()); + // TRANS: Instruction for avatar upload page. + // TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". + return sprintf(_('You can upload your personal avatar. The maximum file size is %s.'), + ImageFile::maxFileSize()); } /** @@ -103,6 +104,7 @@ class AvatarsettingsAction extends AccountSettingsAction if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); + // TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. $this->serverError(_('User without matching profile.')); return; } @@ -116,14 +118,16 @@ class AvatarsettingsAction extends AccountSettingsAction 'action' => common_local_url('avatarsettings'))); $this->elementStart('fieldset'); + // TRANS: Avatar upload page form legend. $this->element('legend', null, _('Avatar settings')); $this->hidden('token', common_session_token()); - + if (Event::handle('StartAvatarFormData', array($this))) { $this->elementStart('ul', 'form_data'); if ($original) { $this->elementStart('li', array('id' => 'avatar_original', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). $this->element('h2', null, _("Original")); $this->elementStart('div', array('id'=>'avatar_original_view')); $this->element('img', array('src' => $original->url, @@ -139,6 +143,7 @@ class AvatarsettingsAction extends AccountSettingsAction if ($avatar) { $this->elementStart('li', array('id' => 'avatar_preview', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). $this->element('h2', null, _("Preview")); $this->elementStart('div', array('id'=>'avatar_preview_view')); $this->element('img', array('src' => $original->url, @@ -146,7 +151,8 @@ class AvatarsettingsAction extends AccountSettingsAction 'height' => AVATAR_PROFILE_SIZE, 'alt' => $user->nickname)); $this->elementEnd('div'); - $this->submit('delete', _('Delete')); + // TRANS: Button on avatar upload page to delete current avatar. + $this->submit('delete', _m('BUTTON','Delete')); $this->elementEnd('li'); } @@ -163,7 +169,8 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementStart('ul', 'form_actions'); $this->elementStart('li'); - $this->submit('upload', _('Upload')); + // TRANS: Button on avatar upload page to upload an avatar. + $this->submit('upload', _m('BUTTON','Upload')); $this->elementEnd('li'); $this->elementEnd('ul'); } @@ -171,7 +178,6 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementEnd('fieldset'); $this->elementEnd('form'); - } function showCropForm() @@ -182,6 +188,7 @@ class AvatarsettingsAction extends AccountSettingsAction if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); + // TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. $this->serverError(_('User without matching profile.')); return; } @@ -194,6 +201,7 @@ class AvatarsettingsAction extends AccountSettingsAction 'action' => common_local_url('avatarsettings'))); $this->elementStart('fieldset'); + // TRANS: Avatar upload page crop form legend. $this->element('legend', null, _('Avatar settings')); $this->hidden('token', common_session_token()); @@ -202,6 +210,7 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementStart('li', array('id' => 'avatar_original', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). $this->element('h2', null, _("Original")); $this->elementStart('div', array('id'=>'avatar_original_view')); $this->element('img', array('src' => Avatar::url($this->filedata['filename']), @@ -214,6 +223,7 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementStart('li', array('id' => 'avatar_preview', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). $this->element('h2', null, _("Preview")); $this->elementStart('div', array('id'=>'avatar_preview_view')); $this->element('img', array('src' => Avatar::url($this->filedata['filename']), @@ -228,13 +238,14 @@ class AvatarsettingsAction extends AccountSettingsAction 'type' => 'hidden', 'id' => $crop_info)); } - $this->submit('crop', _('Crop')); + + // TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. + $this->submit('crop', _m('BUTTON','Crop')); $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('fieldset'); $this->elementEnd('form'); - } /** @@ -244,7 +255,6 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function handlePost() { // Workaround for PHP returning empty $_POST and $_FILES when POST @@ -271,7 +281,7 @@ class AvatarsettingsAction extends AccountSettingsAction 'Try again, please.')); return; } - + if (Event::handle('StartAvatarSaveForm', array($this))) { if ($this->arg('upload')) { $this->uploadAvatar(); @@ -280,6 +290,7 @@ class AvatarsettingsAction extends AccountSettingsAction } else if ($this->arg('delete')) { $this->deleteAvatar(); } else { + // TRANS: Unexpected validation error on avatar upload form. $this->showForm(_('Unexpected form submission.')); } Event::handle('EndAvatarSaveForm', array($this)); @@ -294,7 +305,6 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function uploadAvatar() { try { @@ -304,6 +314,7 @@ class AvatarsettingsAction extends AccountSettingsAction return; } if ($imagefile === null) { + // TRANS: Validation error on avatar upload form when no file was uploaded. $this->showForm(_('No file uploaded.')); return; } @@ -331,6 +342,7 @@ class AvatarsettingsAction extends AccountSettingsAction $this->mode = 'crop'; + // TRANS: Avatar upload form unstruction after uploading a file. $this->showForm(_('Pick a square area of the image to be your avatar'), true); } @@ -340,12 +352,12 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function cropAvatar() { $filedata = $_SESSION['FILEDATA']; if (!$filedata) { + // TRANS: Server error displayed if an avatar upload went wrong somehow server side. $this->serverError(_('Lost our file data.')); return; } @@ -369,24 +381,25 @@ class AvatarsettingsAction extends AccountSettingsAction @unlink($filedata['filepath']); unset($_SESSION['FILEDATA']); $this->mode = 'upload'; + // TRANS: Success message for having updated a user avatar. $this->showForm(_('Avatar updated.'), true); common_broadcast_profile($profile); } else { + // TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. $this->showForm(_('Failed updating avatar.')); } } - + /** * Get rid of the current avatar. * * @return void */ - function deleteAvatar() { $user = common_current_user(); $profile = $user->getProfile(); - + $avatar = $profile->getOriginalAvatar(); if($avatar) $avatar->delete(); $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); @@ -396,6 +409,7 @@ class AvatarsettingsAction extends AccountSettingsAction $avatar = $profile->getAvatar(AVATAR_MINI_SIZE); if($avatar) $avatar->delete(); + // TRANS: Success message for deleting a user avatar. $this->showForm(_('Avatar deleted.'), true); } @@ -416,7 +430,6 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function showScripts() { parent::showScripts(); diff --git a/actions/block.php b/actions/block.php index 93f8ec937..e87353b4e 100644 --- a/actions/block.php +++ b/actions/block.php @@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class BlockAction extends ProfileFormAction { var $profile = null; @@ -54,7 +53,6 @@ class BlockAction extends ProfileFormAction * * @return boolean success flag */ - function prepare($args) { if (!parent::prepare($args)) { @@ -66,6 +64,7 @@ class BlockAction extends ProfileFormAction assert(!empty($cur)); // checked by parent if ($cur->hasBlocked($this->profile)) { + // TRANS: Client error displayed when blocking a user that has already been blocked. $this->clientError(_('You already blocked that user.')); return false; } @@ -82,7 +81,6 @@ class BlockAction extends ProfileFormAction * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -104,6 +102,7 @@ class BlockAction extends ProfileFormAction } function title() { + // TRANS: Title for block user page. return _('Block user'); } @@ -133,8 +132,10 @@ class BlockAction extends ProfileFormAction 'action' => common_local_url('block'))); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); + // TRANS: Legend for block user form. $this->element('legend', _('Block user')); $this->element('p', null, + // TRANS: Explanation of consequences when blocking a user on the block user page. _('Are you sure you want to block this user? '. 'Afterwards, they will be unsubscribed from you, '. 'unable to subscribe to you in the future, and '. @@ -184,6 +185,7 @@ class BlockAction extends ProfileFormAction } if (!$result) { + // TRANS: Server error displayed when blocking a user fails. $this->serverError(_('Failed to save block information.')); return; } @@ -199,7 +201,7 @@ class BlockAction extends ProfileFormAction * Override for form session token checks; on our first hit we're just * requesting confirmation, which doesn't need a token. We need to be * able to take regular GET requests from email! - * + * * @throws ClientException if token is bad on POST request or if we have * confirmation parameters which could trigger something. */ @@ -216,7 +218,7 @@ class BlockAction extends ProfileFormAction /** * If we reached this form without returnto arguments, return to the * current user's subscription list. - * + * * @return string URL */ function defaultReturnTo() diff --git a/actions/blockedfromgroup.php b/actions/blockedfromgroup.php index a0598db27..6ff572c05 100644 --- a/actions/blockedfromgroup.php +++ b/actions/blockedfromgroup.php @@ -40,7 +40,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 * @link http://status.net/ */ - class BlockedfromgroupAction extends GroupDesignAction { var $page = null; @@ -70,6 +69,7 @@ class BlockedfromgroupAction extends GroupDesignAction } if (!$nickname) { + // TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. $this->clientError(_('No nickname.'), 404); return false; } @@ -77,6 +77,7 @@ class BlockedfromgroupAction extends GroupDesignAction $local = Local_group::staticGet('nickname', $nickname); if (!$local) { + // TRANS: Client error displayed when requesting a list of blocked users for a non-local group. $this->clientError(_('No such group.'), 404); return false; } @@ -84,6 +85,7 @@ class BlockedfromgroupAction extends GroupDesignAction $this->group = User_group::staticGet('id', $local->group_id); if (!$this->group) { + // TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. $this->clientError(_('No such group.'), 404); return false; } @@ -94,9 +96,13 @@ class BlockedfromgroupAction extends GroupDesignAction function title() { if ($this->page == 1) { + // TRANS: Title for first page with list of users blocked from a group. + // TRANS: %s is a group nickname. return sprintf(_('%s blocked profiles'), $this->group->nickname); } else { + // TRANS: Title for any but the first page with list of users blocked from a group. + // TRANS: %1$s is a group nickname, %2$d is a page number. return sprintf(_('%1$s blocked profiles, page %2$d'), $this->group->nickname, $this->page); @@ -112,6 +118,7 @@ class BlockedfromgroupAction extends GroupDesignAction function showPageNotice() { $this->element('p', 'instructions', + // TRANS: Instructions for list of users blocked from a group. _('A list of the users blocked from joining this group.')); } @@ -205,7 +212,6 @@ class GroupBlockListItem extends ProfileListItem * * @see UnblockForm */ - class GroupUnblockForm extends Form { /** @@ -234,7 +240,6 @@ class GroupUnblockForm extends Form * @param User_group $group group to block user from * @param array $args return-to args */ - function __construct($out=null, $profile=null, $group=null, $args=null) { parent::__construct($out); @@ -249,7 +254,6 @@ class GroupUnblockForm extends Form * * @return int ID of the form */ - function id() { // This should be unique for the page. @@ -261,7 +265,6 @@ class GroupUnblockForm extends Form * * @return string class of the form */ - function formClass() { return 'form_group_unblock'; @@ -272,7 +275,6 @@ class GroupUnblockForm extends Form * * @return string URL of the action */ - function action() { return common_local_url('groupunblock'); @@ -285,6 +287,7 @@ class GroupUnblockForm extends Form */ function formLegend() { + // TRANS: Form legend for unblocking a user from a group. $this->out->element('legend', null, _('Unblock user from group')); } @@ -293,7 +296,6 @@ class GroupUnblockForm extends Form * * @return void */ - function formData() { $this->out->hidden('unblockto-' . $this->profile->id, @@ -314,9 +316,14 @@ class GroupUnblockForm extends Form * * @return void */ - function formActions() { - $this->out->submit('submit', _('Unblock'), 'submit', null, _('Unblock this user')); + $this->out->submit('submit', + // TRANS: Button text for unblocking a user from a group. + _m('BUTTON','Unblock'), + 'submit', + null, + // TRANS: Tooltip for button for unblocking a user from a group. + _('Unblock this user')); } } diff --git a/actions/bookmarklet.php b/actions/bookmarklet.php index 041c2e894..9cf4e58f8 100644 --- a/actions/bookmarklet.php +++ b/actions/bookmarklet.php @@ -34,7 +34,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { require_once INSTALLDIR . '/actions/newnotice.php'; /** - * Action for posting a notice + * Action for posting a notice * * @category Bookmarklet * @package StatusNet @@ -42,12 +42,12 @@ require_once INSTALLDIR . '/actions/newnotice.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class BookmarkletAction extends NewnoticeAction { function showTitle() { // TRANS: Title for mini-posting window loaded from bookmarklet. + // TRANS: %s is the StatusNet site name. $this->element('title', null, sprintf(_('Post to %s'), common_config('site', 'name'))); } @@ -73,4 +73,3 @@ class BookmarkletAction extends NewnoticeAction { } } - diff --git a/actions/confirmaddress.php b/actions/confirmaddress.php index 8bf8c8c4d..5617c5339 100644 --- a/actions/confirmaddress.php +++ b/actions/confirmaddress.php @@ -44,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 * @link http://status.net/ */ - class ConfirmaddressAction extends Action { /** type of confirmation. */ @@ -61,7 +60,6 @@ class ConfirmaddressAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -72,27 +70,30 @@ class ConfirmaddressAction extends Action } $code = $this->trimmed('code'); if (!$code) { + // TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. $this->clientError(_('No confirmation code.')); return; } $confirm = Confirm_address::staticGet('code', $code); if (!$confirm) { + // TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. $this->clientError(_('Confirmation code not found.')); return; } $cur = common_current_user(); if ($cur->id != $confirm->user_id) { + // TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. $this->clientError(_('That confirmation code is not for you!')); return; } $type = $confirm->address_type; if (!in_array($type, array('email', 'jabber', 'sms'))) { - // TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. + // TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. $this->serverError(sprintf(_('Unrecognized address type %s.'), $type)); return; } if ($cur->$type == $confirm->address) { - // TRANS: Client error for an already confirmed email/jabbel/sms address. + // TRANS: Client error for an already confirmed email/jabber/sms address. $this->clientError(_('That address has already been confirmed.')); return; } @@ -113,6 +114,7 @@ class ConfirmaddressAction extends Action if (!$result) { common_log_db_error($cur, 'UPDATE', __FILE__); + // TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. $this->serverError(_('Couldn\'t update user.')); return; } @@ -125,7 +127,9 @@ class ConfirmaddressAction extends Action if (!$result) { common_log_db_error($confirm, 'DELETE', __FILE__); - $this->serverError(_('Couldn\'t delete email confirmation.')); + // TRANS: Server error displayed when an address confirmation code deletion from the + // TRANS: database fails in the contact address confirmation action. + $this->serverError(_('Could not delete address confirmation.')); return; } @@ -140,9 +144,9 @@ class ConfirmaddressAction extends Action * * @return string title */ - function title() { + // TRANS: Title for the contact address confirmation action. return _('Confirm address'); } @@ -151,13 +155,14 @@ class ConfirmaddressAction extends Action * * @return void */ - function showContent() { $cur = common_current_user(); $type = $this->type; $this->element('p', null, + // TRANS: Success message for the contact address confirmation action. + // TRANS: %s can be 'email', 'jabber', or 'sms'. sprintf(_('The address "%s" has been '. 'confirmed for your account.'), $cur->$type)); diff --git a/actions/conversation.php b/actions/conversation.php index 900a724ef..8d11df37b 100644 --- a/actions/conversation.php +++ b/actions/conversation.php @@ -45,7 +45,6 @@ require_once INSTALLDIR.'/lib/noticelist.php'; * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ConversationAction extends Action { var $id = null; @@ -58,7 +57,6 @@ class ConversationAction extends Action * * @return boolean false if id not passed in */ - function prepare($args) { parent::prepare($args); @@ -81,7 +79,6 @@ class ConversationAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -93,10 +90,10 @@ class ConversationAction extends Action * * @return string page title */ - function title() { - return _("Conversation"); + // TRANS: Title for page with a conversion (multiple notices in context). + return _('Conversation'); } /** @@ -107,7 +104,6 @@ class ConversationAction extends Action * * @return void */ - function showContent() { $notices = Notice::conversationStream($this->id, null, null); @@ -134,7 +130,6 @@ class ConversationAction extends Action * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ConversationTree extends NoticeList { var $tree = null; @@ -145,12 +140,12 @@ class ConversationTree extends NoticeList * * @return void */ - function show() { $cnt = $this->_buildTree(); $this->out->elementStart('div', array('id' =>'notices_primary')); + // TRANS: Header on conversation page. Hidden by default (h2). $this->out->element('h2', null, _('Notices')); $this->out->elementStart('ol', array('class' => 'notices xoxo')); @@ -200,7 +195,6 @@ class ConversationTree extends NoticeList * * @return void */ - function showNoticePlus($id) { $notice = $this->table[$id]; @@ -237,7 +231,6 @@ class ConversationTree extends NoticeList * * @return NoticeListItem a list item to show */ - function newListItem($notice) { return new ConversationTreeItem($notice, $this->out); @@ -255,7 +248,6 @@ class ConversationTree extends NoticeList * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ConversationTreeItem extends NoticeListItem { /** @@ -266,7 +258,6 @@ class ConversationTreeItem extends NoticeListItem * * @return void */ - function showStart() { return; @@ -280,7 +271,6 @@ class ConversationTreeItem extends NoticeListItem * * @return void */ - function showEnd() { return; @@ -293,7 +283,6 @@ class ConversationTreeItem extends NoticeListItem * * @return void */ - function showContext() { return; diff --git a/actions/deleteapplication.php b/actions/deleteapplication.php index 806de0be6..272a91762 100644 --- a/actions/deleteapplication.php +++ b/actions/deleteapplication.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class DeleteapplicationAction extends Action { var $app = null; @@ -52,7 +51,6 @@ class DeleteapplicationAction extends Action * * @return boolean success flag */ - function prepare($args) { if (!parent::prepare($args)) { @@ -60,6 +58,7 @@ class DeleteapplicationAction extends Action } if (!common_logged_in()) { + // TRANS: Client error displayed trying to delete an application while not logged in. $this->clientError(_('You must be logged in to delete an application.')); return false; } @@ -68,6 +67,7 @@ class DeleteapplicationAction extends Action $this->app = Oauth_application::staticGet('id', $id); if (empty($this->app)) { + // TRANS: Client error displayed trying to delete an application that does not exist. $this->clientError(_('Application not found.')); return false; } @@ -75,6 +75,7 @@ class DeleteapplicationAction extends Action $cur = common_current_user(); if ($cur->id != $this->app->owner) { + // TRANS: Client error displayed trying to delete an application the current user does not own. $this->clientError(_('You are not the owner of this application.'), 401); return false; } @@ -91,7 +92,6 @@ class DeleteapplicationAction extends Action * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -120,6 +120,7 @@ class DeleteapplicationAction extends Action } function title() { + // TRANS: Title for delete application page. return _('Delete application'); } @@ -144,8 +145,10 @@ class DeleteapplicationAction extends Action array('id' => $this->app->id)))); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); + // TRANS: Fieldset legend on delete application page. $this->element('legend', _('Delete application')); $this->element('p', null, + // TRANS: Confirmation text on delete application page. _('Are you sure you want to delete this application? '. 'This will clear all data about the application from the '. 'database, including all existing user connections.')); @@ -171,10 +174,8 @@ class DeleteapplicationAction extends Action * * @return void */ - function handlePost() { $this->app->delete(); } } - diff --git a/actions/deletegroup.php b/actions/deletegroup.php index 62fff00c4..4e9b9851f 100644 --- a/actions/deletegroup.php +++ b/actions/deletegroup.php @@ -172,7 +172,7 @@ class DeletegroupAction extends RedirectingAction } function title() { - // TRANS: Title. + // TRANS: Title of delete group page. return _('Delete group'); } @@ -201,8 +201,8 @@ class DeletegroupAction extends RedirectingAction // TRANS: Form legend for deleting a group. $this->element('legend', _('Delete group')); if (Event::handle('StartDeleteGroupForm', array($this, $this->group))) { - // TRANS: Warning in form for deleleting a group. $this->element('p', null, + // TRANS: Warning in form for deleleting a group. _('Are you sure you want to delete this group? '. 'This will clear all data about the group from the '. 'database, without a backup. ' . diff --git a/actions/deletenotice.php b/actions/deletenotice.php index 2879faa5d..a7ac28e19 100644 --- a/actions/deletenotice.php +++ b/actions/deletenotice.php @@ -32,6 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +// @todo FIXME: documentation needed. class DeletenoticeAction extends Action { var $error = null; @@ -47,6 +48,7 @@ class DeletenoticeAction extends Action $this->user = common_current_user(); if (!$this->user) { + // TRANS: Error message displayed trying to delete a notice while not logged in. common_user_error(_('Not logged in.')); exit; } @@ -55,6 +57,7 @@ class DeletenoticeAction extends Action $this->notice = Notice::staticGet($notice_id); if (!$this->notice) { + // TRANS: Error message displayed trying to delete a non-existing notice. common_user_error(_('No such notice.')); exit; } @@ -71,6 +74,7 @@ class DeletenoticeAction extends Action if ($this->notice->profile_id != $this->user_profile->id && !$this->user->hasRight(Right::DELETEOTHERSNOTICE)) { + // TRANS: Error message displayed trying to delete a notice that was not made by the current user. common_user_error(_('Can\'t delete this notice.')); exit; } @@ -90,7 +94,6 @@ class DeletenoticeAction extends Action * * @return void */ - function showPageNotice() { $instr = $this->getInstructions(); @@ -103,12 +106,14 @@ class DeletenoticeAction extends Action function getInstructions() { + // TRANS: Instructions for deleting a notice. return _('You are about to permanently delete a notice. ' . 'Once this is done, it cannot be undone.'); } function title() { + // TRANS: Page title when deleting a notice. return _('Delete notice'); } @@ -121,7 +126,6 @@ class DeletenoticeAction extends Action * * @return void */ - function showForm($error = null) { $this->error = $error; @@ -133,7 +137,6 @@ class DeletenoticeAction extends Action * * @return void */ - function showContent() { $this->elementStart('form', array('id' => 'form_notice_delete', @@ -141,9 +144,11 @@ class DeletenoticeAction extends Action 'method' => 'post', 'action' => common_local_url('deletenotice'))); $this->elementStart('fieldset'); + // TRANS: Fieldset legend for the delete notice form. $this->element('legend', null, _('Delete notice')); $this->hidden('token', common_session_token()); $this->hidden('notice', $this->trimmed('notice')); + // TRANS: Message for the delete notice form. $this->element('p', null, _('Are you sure you want to delete this notice?')); $this->submit('form_action-no', // TRANS: Button label on the delete notice form. diff --git a/actions/editapplication.php b/actions/editapplication.php index d1c7a5c3d..760b1d284 100644 --- a/actions/editapplication.php +++ b/actions/editapplication.php @@ -185,7 +185,7 @@ class EditApplicationAction extends OwnerDesignAction return; } elseif (mb_strlen($name) > 255) { // TRANS: Validation error shown when providing too long a name in the "Edit application" form. - $this->showForm(_('Name is too long (max 255 characters).')); + $this->showForm(_('Name is too long (maximum 255 characters).')); return; } else if ($this->nameExists($name)) { // TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. diff --git a/actions/editgroup.php b/actions/editgroup.php index eaadbabe4..4d3af34c7 100644 --- a/actions/editgroup.php +++ b/actions/editgroup.php @@ -45,14 +45,13 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class EditgroupAction extends GroupDesignAction { - var $msg; function title() { + // TRANS: Title for form to edit a group. %s is a group nickname. return sprintf(_('Edit %s group'), $this->group->nickname); } @@ -65,6 +64,7 @@ class EditgroupAction extends GroupDesignAction parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to edit a group while not logged in. $this->clientError(_('You must be logged in to create a group.')); return false; } @@ -81,6 +81,7 @@ class EditgroupAction extends GroupDesignAction } if (!$nickname) { + // TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. $this->clientError(_('No nickname.'), 404); return false; } @@ -97,6 +98,7 @@ class EditgroupAction extends GroupDesignAction } if (!$this->group) { + // TRANS: Client error displayed trying to edit a non-existing group. $this->clientError(_('No such group.'), 404); return false; } @@ -104,6 +106,7 @@ class EditgroupAction extends GroupDesignAction $cur = common_current_user(); if (!$cur->isAdmin($this->group)) { + // TRANS: Client error displayed trying to edit a group while not being a group admin. $this->clientError(_('You must be an admin to edit the group.'), 403); return false; } @@ -120,7 +123,6 @@ class EditgroupAction extends GroupDesignAction * * @return void */ - function handle($args) { parent::handle($args); @@ -155,6 +157,7 @@ class EditgroupAction extends GroupDesignAction $this->element('p', 'error', $this->msg); } else { $this->element('p', 'instructions', + // TRANS: Form instructions for group edit form. _('Use this form to edit the group.')); } } @@ -169,6 +172,7 @@ class EditgroupAction extends GroupDesignAction { $cur = common_current_user(); if (!$cur->isAdmin($this->group)) { + // TRANS: Client error displayed trying to edit a group while not being a group admin. $this->clientError(_('You must be an admin to edit the group.'), 403); return; } @@ -183,28 +187,39 @@ class EditgroupAction extends GroupDesignAction if (!Validate::string($nickname, array('min_length' => 1, 'max_length' => 64, 'format' => NICKNAME_FMT))) { + // TRANS: Group edit form validation error. $this->showForm(_('Nickname must have only lowercase letters '. 'and numbers and no spaces.')); return; } else if ($this->nicknameExists($nickname)) { + // TRANS: Group edit form validation error. $this->showForm(_('Nickname already in use. Try another one.')); return; } else if (!User_group::allowedNickname($nickname)) { + // TRANS: Group edit form validation error. $this->showForm(_('Not a valid nickname.')); return; } else if (!is_null($homepage) && (strlen($homepage) > 0) && !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Group edit form validation error. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { + // TRANS: Group edit form validation error. $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (User_group::descriptionTooLong($description)) { - $this->showForm(sprintf(_('Description is too long (max %d chars).'), User_group::maxDescription())); + $this->showForm(sprintf( + // TRANS: Group edit form validation error. + _m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + User_group::maxDescription()), + User_group::maxDescription())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { + // TRANS: Group edit form validation error. $this->showForm(_('Location is too long (maximum 255 characters).')); return; } @@ -216,7 +231,11 @@ class EditgroupAction extends GroupDesignAction } if (count($aliases) > common_config('group', 'maxaliases')) { - $this->showForm(sprintf(_('Too many aliases! Maximum %d.'), + // TRANS: Group edit form validation error. + // TRANS: %d is the maximum number of allowed aliases. + $this->showForm(sprintf(_m('Too many aliases! Maximum %d allowed.', + 'Too many aliases! Maximum %d allowed.', + common_config('group', 'maxaliases')), common_config('group', 'maxaliases'))); return; } @@ -225,16 +244,19 @@ class EditgroupAction extends GroupDesignAction if (!Validate::string($alias, array('min_length' => 1, 'max_length' => 64, 'format' => NICKNAME_FMT))) { + // TRANS: Group edit form validation error. $this->showForm(sprintf(_('Invalid alias: "%s"'), $alias)); return; } if ($this->nicknameExists($alias)) { + // TRANS: Group edit form validation error. $this->showForm(sprintf(_('Alias "%s" already in use. Try another one.'), $alias)); return; } // XXX assumes alphanum nicknames if (strcmp($alias, $nickname) == 0) { + // TRANS: Group edit form validation error. $this->showForm(_('Alias can\'t be the same as nickname.')); return; } @@ -255,12 +277,14 @@ class EditgroupAction extends GroupDesignAction if (!$result) { common_log_db_error($this->group, 'UPDATE', __FILE__); + // TRANS: Server error displayed when editing a group fails. $this->serverError(_('Could not update group.')); } $result = $this->group->setAliases($aliases); if (!$result) { + // TRANS: Server error displayed when group aliases could not be added. $this->serverError(_('Could not create aliases.')); } @@ -277,6 +301,7 @@ class EditgroupAction extends GroupDesignAction array('nickname' => $nickname)), 303); } else { + // TRANS: Group edit form success message. $this->showForm(_('Options saved.')); } } @@ -300,4 +325,3 @@ class EditgroupAction extends GroupDesignAction return false; } } - diff --git a/actions/groupunblock.php b/actions/groupunblock.php index dd6b15c26..ef2380725 100644 --- a/actions/groupunblock.php +++ b/actions/groupunblock.php @@ -32,7 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { } /** - * Unlock a user from a group + * Unblock a user from a group * * @category Action * @package StatusNet @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class GroupunblockAction extends Action { var $profile = null; @@ -53,11 +52,11 @@ class GroupunblockAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed when trying to unblock a user from a group while not logged in. $this->clientError(_('Not logged in.')); return false; } @@ -68,11 +67,13 @@ class GroupunblockAction extends Action } $id = $this->trimmed('unblockto'); if (empty($id)) { + // TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. $this->clientError(_('No profile specified.')); return false; } $this->profile = Profile::staticGet('id', $id); if (empty($this->profile)) { + // TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. $this->clientError(_('No profile with that ID.')); return false; } @@ -83,15 +84,18 @@ class GroupunblockAction extends Action } $this->group = User_group::staticGet('id', $group_id); if (empty($this->group)) { + // TRANS: Client error displayed when trying to unblock a user from a non-existing group. $this->clientError(_('No such group.')); return false; } $user = common_current_user(); if (!$user->isAdmin($this->group)) { + // TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. $this->clientError(_('Only an admin can unblock group members.'), 401); return false; } if (!Group_block::isBlocked($this->group, $this->profile)) { + // TRANS: Client error displayed when trying to unblock a non-blocked user from a group. $this->clientError(_('User is not blocked from group.')); return false; } @@ -105,7 +109,6 @@ class GroupunblockAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -119,12 +122,12 @@ class GroupunblockAction extends Action * * @return void */ - function unblockProfile() { $result = Group_block::unblockProfile($this->group, $this->profile); if (!$result) { + // TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. $this->serverError(_('Error removing the block.')); return; } @@ -146,4 +149,3 @@ class GroupunblockAction extends Action } } } - diff --git a/actions/licenseadminpanel.php b/actions/licenseadminpanel.php index 9165ca19d..95ac48cc8 100644 --- a/actions/licenseadminpanel.php +++ b/actions/licenseadminpanel.php @@ -153,7 +153,7 @@ class LicenseadminpanelAction extends AdminPanelAction // Make sure the license title is not too long if (mb_strlen($values['license']['type']) > 255) { $this->clientError( - _("Invalid license title. Max length is 255 characters.") + _('Invalid license title. Maximum length is 255 characters.') ); } diff --git a/actions/newapplication.php b/actions/newapplication.php index 033c0852d..ae1754558 100644 --- a/actions/newapplication.php +++ b/actions/newapplication.php @@ -166,7 +166,7 @@ class NewApplicationAction extends OwnerDesignAction $this->showForm(_('Name already in use. Try another one.')); return; } elseif (mb_strlen($name) > 255) { - $this->showForm(_('Name is too long (maximum 255 chars).')); + $this->showForm(_('Name is too long (maximum 255 characters).')); return; } elseif (empty($description)) { $this->showForm(_('Description is required.')); @@ -196,7 +196,7 @@ class NewApplicationAction extends OwnerDesignAction $this->showForm(_('Organization is required.')); return; } elseif (mb_strlen($organization) > 255) { - $this->showForm(_('Organization is too long (maximum 255 chars).')); + $this->showForm(_('Organization is too long (maximum 255 characters).')); return; } elseif (empty($homepage)) { $this->showForm(_('Organization homepage is required.')); diff --git a/actions/newgroup.php b/actions/newgroup.php index 295192036..9c1870b1c 100644 --- a/actions/newgroup.php +++ b/actions/newgroup.php @@ -43,25 +43,25 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class NewgroupAction extends Action { var $msg; function title() { + // TRANS: Title for form to create a group. return _('New group'); } /** * Prepare to run */ - function prepare($args) { parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to create a group while not logged in. $this->clientError(_('You must be logged in to create a group.')); return false; } @@ -78,7 +78,6 @@ class NewgroupAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -107,6 +106,7 @@ class NewgroupAction extends Action $this->element('p', 'error', $this->msg); } else { $this->element('p', 'instructions', + // TRANS: Form instructions for group create form. _('Use this form to create a new group.')); } } @@ -123,26 +123,31 @@ class NewgroupAction extends Action if (!Validate::string($nickname, array('min_length' => 1, 'max_length' => 64, 'format' => NICKNAME_FMT))) { + // TRANS: Group create form validation error. $this->showForm(_('Nickname must have only lowercase letters '. 'and numbers and no spaces.')); return; } else if ($this->nicknameExists($nickname)) { + // TRANS: Group create form validation error. $this->showForm(_('Nickname already in use. Try another one.')); return; } else if (!User_group::allowedNickname($nickname)) { + // TRANS: Group create form validation error. $this->showForm(_('Not a valid nickname.')); return; } else if (!is_null($homepage) && (strlen($homepage) > 0) && !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Group create form validation error. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { + // TRANS: Group create form validation error. $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (User_group::descriptionTooLong($description)) { - // TRANS: Form validation error creating a new group because the description is too long. + // TRANS: Group create form validation error. // TRANS: %d is the maximum number of allowed characters. $this->showForm(sprintf(_m('Description is too long (maximum %d character).', 'Description is too long (maximum %d characters).', @@ -150,6 +155,7 @@ class NewgroupAction extends Action User_group::maxDescription())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { + // TRANS: Group create form validation error. $this->showForm(_('Location is too long (maximum 255 characters).')); return; } @@ -161,7 +167,7 @@ class NewgroupAction extends Action } if (count($aliases) > common_config('group', 'maxaliases')) { - // TRANS: Client error shown when providing too many aliases during group creation. + // TRANS: Group create form validation error. // TRANS: %d is the maximum number of allowed aliases. $this->showForm(sprintf(_m('Too many aliases! Maximum %d allowed.', 'Too many aliases! Maximum %d allowed.', @@ -174,16 +180,19 @@ class NewgroupAction extends Action if (!Validate::string($alias, array('min_length' => 1, 'max_length' => 64, 'format' => NICKNAME_FMT))) { + // TRANS: Group create form validation error. $this->showForm(sprintf(_('Invalid alias: "%s"'), $alias)); return; } if ($this->nicknameExists($alias)) { + // TRANS: Group create form validation error. $this->showForm(sprintf(_('Alias "%s" already in use. Try another one.'), $alias)); return; } // XXX assumes alphanum nicknames if (strcmp($alias, $nickname) == 0) { + // TRANS: Group create form validation error. $this->showForm(_('Alias can\'t be the same as nickname.')); return; } @@ -227,4 +236,3 @@ class NewgroupAction extends Action return false; } } - diff --git a/actions/newnotice.php b/actions/newnotice.php index 57cd847c6..0d4dcfccd 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -156,8 +156,11 @@ class NewnoticeAction extends Action $content_shortened = common_shorten_links($content); if (Notice::contentTooLong($content_shortened)) { - $this->clientError(sprintf(_('That\'s too long. '. - 'Max notice size is %d chars.'), + // TRANS: Client error displayed when the parameter "status" is missing. + // TRANS: %d is the maximum number of character for a notice. + $this->clientError(sprintf(_m('That\'s too long. Maximum notice size is %d character.', + 'That\'s too long. Maximum notice size is %d characters.', + Notice::maxContent()), Notice::maxContent())); } @@ -178,12 +181,10 @@ class NewnoticeAction extends Action if (Notice::contentTooLong($content_shortened)) { $upload->delete(); - $this->clientError( - sprintf( - _('Max notice size is %d chars, including attachment URL.'), - Notice::maxContent() - ) - ); + $this->clientError(sprintf(_m('Maximum notice size is %d character, including attachment URL.', + 'Maximum notice size is %d characters, including attachment URL.', + Notice::maxContent()), + Notice::maxContent())); } } diff --git a/actions/othersettings.php b/actions/othersettings.php index 10e9873b3..13460a4bf 100644 --- a/actions/othersettings.php +++ b/actions/othersettings.php @@ -46,7 +46,6 @@ require_once INSTALLDIR.'/lib/accountsettingsaction.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class OthersettingsAction extends AccountSettingsAction { /** @@ -54,9 +53,9 @@ class OthersettingsAction extends AccountSettingsAction * * @return string Title of the page */ - function title() { + // Page title for a tab in user profile settings. return _('Other settings'); } @@ -68,6 +67,7 @@ class OthersettingsAction extends AccountSettingsAction function getInstructions() { + // TRANS: Instructions for tab "Other" in user profile settings. return _('Manage various other options.'); } @@ -105,6 +105,9 @@ class OthersettingsAction extends AccountSettingsAction { $services[$name]=$name; if($value['freeService']){ + // TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a + // TRANS: user's profile settings. This message has one space at the beginning. Use your + // TRANS: language's word separator here if it has one (most likely a single space). $services[$name].=_(' (free service)'); } } @@ -113,17 +116,22 @@ class OthersettingsAction extends AccountSettingsAction asort($services); $this->elementStart('li'); + // TRANS: Label for dropdown with URL shortener services. $this->dropdown('urlshorteningservice', _('Shorten URLs with'), + // TRANS: Tooltip for for dropdown with URL shortener services. $services, _('Automatic shortening service to use.'), false, $user->urlshorteningservice); $this->elementEnd('li'); } $this->elementStart('li'); + // TRANS: Label for checkbox. $this->checkbox('viewdesigns', _('View profile designs'), + // TRANS: Tooltip for checkbox. $user->viewdesigns, _('Show or hide profile designs.')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('save', _('Save')); + // TRANS: Button text for saving "Other settings" in profile. + $this->submit('save', _m('BUTTON','Save')); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -150,7 +158,8 @@ class OthersettingsAction extends AccountSettingsAction $urlshorteningservice = $this->trimmed('urlshorteningservice'); if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) { - $this->showForm(_('URL shortening service is too long (max 50 chars).')); + // TRANS: Form validation error for form "Other settings" in user profile. + $this->showForm(_('URL shortening service is too long (maximum 50 characters).')); return; } @@ -171,6 +180,7 @@ class OthersettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); + // TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. $this->serverError(_('Couldn\'t update user.')); return; } diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index f9956897f..33b0440e4 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -362,7 +362,7 @@ class RecoverpasswordAction extends Action $confirm = $this->trimmed('confirm'); if (!$newpassword || strlen($newpassword) < 6) { - $this->showPasswordForm(_('Password must be 6 chars or more.')); + $this->showPasswordForm(_('Password must be 6 characters or more.')); return; } if ($newpassword != $confirm) { diff --git a/actions/showgroup.php b/actions/showgroup.php index 8e8ff717c..c87282844 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -46,10 +46,8 @@ define('MEMBERS_PER_SECTION', 27); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ShowgroupAction extends GroupDesignAction { - /** page we're viewing. */ var $page = null; @@ -58,7 +56,6 @@ class ShowgroupAction extends GroupDesignAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -69,18 +66,21 @@ class ShowgroupAction extends GroupDesignAction * * @return string page title, with page number */ - function title() { if (!empty($this->group->fullname)) { + // @todo FIXME: Needs proper i18n. Maybe use a generic method for this? $base = $this->group->fullname . ' (' . $this->group->nickname . ')'; } else { $base = $this->group->nickname; } if ($this->page == 1) { + // TRANS: Page title for first group page. %s is a group name. return sprintf(_('%s group'), $base); } else { + // TRANS: Page title for any but first group page. + // TRANS: %1$s is a group name, $2$s is a page number. return sprintf(_('%1$s group, page %2$d'), $base, $this->page); @@ -96,7 +96,6 @@ class ShowgroupAction extends GroupDesignAction * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -118,6 +117,7 @@ class ShowgroupAction extends GroupDesignAction } if (!$nickname) { + // TRANS: Client error displayed if no nickname argument was given requesting a group page. $this->clientError(_('No nickname.'), 404); return false; } @@ -135,6 +135,7 @@ class ShowgroupAction extends GroupDesignAction return false; } else { common_log(LOG_NOTICE, "Couldn't find local group for nickname '$nickname'"); + // TRANS: Client error displayed if no remote group with a given name was found requesting group page. $this->clientError(_('No such group.'), 404); return false; } @@ -143,6 +144,7 @@ class ShowgroupAction extends GroupDesignAction $this->group = User_group::staticGet('id', $local->group_id); if (!$this->group) { + // TRANS: Client error displayed if no local group with a given name was found requesting group page. $this->clientError(_('No such group.'), 404); return false; } @@ -160,7 +162,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function handle($args) { $this->showPage(); @@ -171,7 +172,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showLocalNav() { $nav = new GroupNav($this, $this->group); @@ -183,7 +183,6 @@ class ShowgroupAction extends GroupDesignAction * * Shows a group profile and a list of group notices */ - function showContent() { $this->showGroupProfile(); @@ -195,7 +194,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showGroupNotices() { $notice = $this->group->getNotices(($this->page-1)*NOTICES_PER_PAGE, @@ -218,15 +216,16 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showGroupProfile() { $this->elementStart('div', array('id' => 'i', 'class' => 'entity_profile vcard author')); + // TRANS: Group profile header (h2). Text hidden by default. $this->element('h2', null, _('Group profile')); $this->elementStart('dl', 'entity_depiction'); + // TRANS: Label for group avatar (dt). Text hidden by default. $this->element('dt', null, _('Avatar')); $this->elementStart('dd'); @@ -242,6 +241,7 @@ class ShowgroupAction extends GroupDesignAction $this->elementEnd('dl'); $this->elementStart('dl', 'entity_nickname'); + // TRANS: Label for group nickname (dt). Text hidden by default. $this->element('dt', null, _('Nickname')); $this->elementStart('dd'); $hasFN = ($this->group->fullname) ? 'nickname url uid' : 'fn org nickname url uid'; @@ -253,6 +253,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->fullname) { $this->elementStart('dl', 'entity_fn'); + // TRANS: Label for full group name (dt). Text hidden by default. $this->element('dt', null, _('Full name')); $this->elementStart('dd'); $this->element('span', 'fn org', $this->group->fullname); @@ -262,6 +263,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->location) { $this->elementStart('dl', 'entity_location'); + // TRANS: Label for group location (dt). Text hidden by default. $this->element('dt', null, _('Location')); $this->element('dd', 'label', $this->group->location); $this->elementEnd('dl'); @@ -269,6 +271,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->homepage) { $this->elementStart('dl', 'entity_url'); + // TRANS: Label for group URL (dt). Text hidden by default. $this->element('dt', null, _('URL')); $this->elementStart('dd'); $this->element('a', array('href' => $this->group->homepage, @@ -280,6 +283,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->description) { $this->elementStart('dl', 'entity_note'); + // TRANS: Label for group description or group note (dt). Text hidden by default. $this->element('dt', null, _('Note')); $this->element('dd', 'note', $this->group->description); $this->elementEnd('dl'); @@ -290,6 +294,7 @@ class ShowgroupAction extends GroupDesignAction if (!empty($aliases)) { $this->elementStart('dl', 'entity_aliases'); + // TRANS: Label for group aliases (dt). Text hidden by default. $this->element('dt', null, _('Aliases')); $this->element('dd', 'aliases', implode(' ', $aliases)); $this->elementEnd('dl'); @@ -300,6 +305,7 @@ class ShowgroupAction extends GroupDesignAction $cur = common_current_user(); $this->elementStart('div', 'entity_actions'); + // TRANS: Group actions header (h2). Text hidden by default. $this->element('h2', null, _('Group actions')); $this->elementStart('ul'); $this->elementStart('li', 'entity_subscribe'); @@ -331,7 +337,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function getFeeds() { $url = @@ -341,23 +346,27 @@ class ShowgroupAction extends GroupDesignAction return array(new Feed(Feed::RSS1, common_local_url('grouprss', array('nickname' => $this->group->nickname)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('Notice feed for %s group (RSS 1.0)'), $this->group->nickname)), new Feed(Feed::RSS2, common_local_url('ApiTimelineGroup', array('format' => 'rss', 'id' => $this->group->id)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('Notice feed for %s group (RSS 2.0)'), $this->group->nickname)), new Feed(Feed::ATOM, common_local_url('ApiTimelineGroup', array('format' => 'atom', 'id' => $this->group->id)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('Notice feed for %s group (Atom)'), $this->group->nickname)), new Feed(Feed::FOAF, common_local_url('foafgroup', array('nickname' => $this->group->nickname)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('FOAF for %s group'), $this->group->nickname))); } @@ -367,7 +376,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showSections() { $this->showMembers(); @@ -382,7 +390,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showMembers() { $member = $this->group->getMembers(0, MEMBERS_PER_SECTION); @@ -396,17 +403,22 @@ class ShowgroupAction extends GroupDesignAction if (Event::handle('StartShowGroupMembersMiniList', array($this))) { + // TRANS: Header for mini list of group members on a group page (h2). $this->element('h2', null, _('Members')); $gmml = new GroupMembersMiniList($member, $this); $cnt = $gmml->show(); if ($cnt == 0) { + // TRANS: Description for mini list of group members on a group page when the group has no members. $this->element('p', null, _('(None)')); } + // @todo FIXME: Should be shown if a group has more than 27 members, but I do not see it displayed at + // for example http://identi.ca/group/statusnet. Broken? if ($cnt > MEMBERS_PER_SECTION) { $this->element('a', array('href' => common_local_url('groupmembers', array('nickname' => $this->group->nickname))), + // TRANS: Link to all group members from mini list of group members if group has more than n members. _('All members')); } @@ -421,7 +433,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showAdmins() { $adminSection = new GroupAdminSection($this, $this->group); @@ -433,22 +444,26 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showStatistics() { $this->elementStart('div', array('id' => 'entity_statistics', 'class' => 'section')); + // TRANS: Header for group statistics on a group page (h2). $this->element('h2', null, _('Statistics')); $this->elementStart('dl', 'entity_created'); - $this->element('dt', null, _('Created')); + // @todo FIXME: i18n issue. This label gets a colon added from somewhere. Should be part of the message. + // TRANS: Label for creation date in statistics on group page. + $this->element('dt', null, _m('LABEL','Created')); $this->element('dd', null, date('j M Y', strtotime($this->group->created))); $this->elementEnd('dl'); $this->elementStart('dl', 'entity_members'); - $this->element('dt', null, _('Members')); + // @todo FIXME: i18n issue. This label gets a colon added from somewhere. Should be part of the message. + // TRANS: Label for member count in statistics on group page. + $this->element('dt', null, _m('LABEL','Members')); $this->element('dd', null, $this->group->getMemberCount()); $this->elementEnd('dl'); @@ -458,12 +473,21 @@ class ShowgroupAction extends GroupDesignAction function showAnonymousMessage() { if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + // @todo FIXME: use group full name here if available instead of (uglier) primary alias. + // TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. + // TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, + // TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. + // TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). $m = sprintf(_('**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . 'based on the Free Software [StatusNet](http://status.net/) tool. Its members share ' . 'short messages about their life and interests. '. '[Join now](%%%%action.register%%%%) to become part of this group and many more! ([Read more](%%%%doc.help%%%%))'), $this->group->nickname); } else { + // @todo FIXME: use group full name here if available instead of (uglier) primary alias. + // TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. + // TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, + // TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). $m = sprintf(_('**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . 'based on the Free Software [StatusNet](http://status.net/) tool. Its members share ' . 'short messages about their life and interests. '), @@ -492,6 +516,7 @@ class GroupAdminSection extends ProfileSection function title() { + // TRANS: Header for list of group administrators on a group page (h2). return _('Admins'); } @@ -527,4 +552,3 @@ class GroupMembersMiniListItem extends ProfileMiniListItem return $aAttrs; } } - diff --git a/actions/showmessage.php b/actions/showmessage.php index db757948b..d737f85d3 100644 --- a/actions/showmessage.php +++ b/actions/showmessage.php @@ -26,8 +26,8 @@ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); } require_once INSTALLDIR.'/lib/mailbox.php'; @@ -36,26 +36,24 @@ require_once INSTALLDIR.'/lib/mailbox.php'; * Show a single message * * // XXX: It is totally weird how this works! - * + * * @category Personal * @package StatusNet * @author Evan Prodromou <evan@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ShowmessageAction extends MailboxAction { /** * Message object to show */ - var $message = null; - + /** * The current user */ - + var $user = null; /** @@ -67,17 +65,17 @@ class ShowmessageAction extends MailboxAction * * @return success flag */ - function prepare($args) { parent::prepare($args); - + $this->page = 1; - + $id = $this->trimmed('message'); $this->message = Message::staticGet('id', $id); if (!$this->message) { + // TRANS: Client error displayed requesting a single message that does not exist. $this->clientError(_('No such message.'), 404); return false; } @@ -90,40 +88,47 @@ class ShowmessageAction extends MailboxAction function handle($args) { Action::handle($args); - - if ($this->user && ($this->user->id == $this->message->from_profile || + + if ($this->user && ($this->user->id == $this->message->from_profile || $this->user->id == $this->message->to_profile)) { $this->showPage(); } else { + // TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. $this->clientError(_('Only the sender and recipient ' . 'may read this message.'), 403); return; } } - + function title() - { + { if ($this->user->id == $this->message->from_profile) { $to = $this->message->getTo(); - return sprintf(_("Message to %1\$s on %2\$s"), + // @todo FIXME: Might be nice if the timestamp could be localised. + // TRANS: Page title for single direct message display when viewing user is the sender. + // TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. + return sprintf(_('Message to %1$s on %2$s'), $to->nickname, common_exact_date($this->message->created)); } else if ($this->user->id == $this->message->to_profile) { $from = $this->message->getFrom(); - return sprintf(_("Message from %1\$s on %2\$s"), + // @todo FIXME: Might be nice if the timestamp could be localised. + // TRANS: Page title for single message display. + // TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. + return sprintf(_('Message from %1$s on %2$s'), $from->nickname, common_exact_date($this->message->created)); } } - - function getMessages() - { + + function getMessages() + { $message = new Message(); $message->id = $this->message->id; $message->find(); return $message; } - + function getMessageProfile() { if ($this->user->id == $this->message->from_profile) { @@ -135,23 +140,21 @@ class ShowmessageAction extends MailboxAction return null; } } - + /** * Don't show local navigation * * @return void */ - function showLocalNavBlock() { } - + /** * Don't show page notice * * @return void */ - function showPageNoticeBlock() { } @@ -161,17 +164,15 @@ class ShowmessageAction extends MailboxAction * * @return void */ - - function showAside() + function showAside() { } - + /** * Don't show any instructions * * @return string */ - function getInstructions() { return ''; diff --git a/actions/sitenoticeadminpanel.php b/actions/sitenoticeadminpanel.php index bdcaa2355..797a6c4f4 100644 --- a/actions/sitenoticeadminpanel.php +++ b/actions/sitenoticeadminpanel.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class SitenoticeadminpanelAction extends AdminPanelAction { /** @@ -50,9 +49,9 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { + // TRANS: Page title for site-wide notice tab in admin panel. return _('Site Notice'); } @@ -61,9 +60,9 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { + // TRANS: Instructions for site-wide notice tab in admin panel. return _('Edit site-wide message'); } @@ -72,7 +71,6 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new SiteNoticeAdminPanelForm($this); @@ -85,7 +83,6 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { $siteNotice = $this->trimmed('site-notice'); @@ -100,6 +97,7 @@ class SitenoticeadminpanelAction extends AdminPanelAction $result = Config::save('site', 'notice', $siteNotice); if (!$result) { + // TRANS: Server error displayed when saving a site-wide notice was impossible. $this->ServerError(_("Unable to save site notice.")); } } @@ -110,7 +108,8 @@ class SitenoticeadminpanelAction extends AdminPanelAction if (mb_strlen($siteNotice) > 255) { $this->clientError( - _('Max length for the site-wide notice is 255 chars.') + // TRANS: Client error displayed when a site-wide notice was longer than allowed. + _('Maximum length for the site-wide notice is 255 characters.') ); } @@ -173,9 +172,11 @@ class SiteNoticeAdminPanelForm extends AdminForm $this->out->elementStart('li'); $this->out->textarea( 'site-notice', + // TRANS: Label for site-wide notice text field in admin panel. _('Site notice text'), common_config('site', 'notice'), - _('Site-wide notice text (255 chars max; HTML okay)') + // TRANS: Tooltip for site-wide notice text field in admin panel. + _('Site-wide notice text (255 characters maximum; HTML allowed)') ); $this->out->elementEnd('li'); @@ -192,9 +193,11 @@ class SiteNoticeAdminPanelForm extends AdminForm { $this->out->submit( 'submit', - _('Save'), + // TRANS: Button text for saving site notice in admin panel. + _m('BUTTON','Save'), 'submit', null, + // TRANS: Title for button to save site notice in admin panel. _('Save site notice') ); } diff --git a/actions/subedit.php b/actions/subedit.php index cf6589e50..3b77aff58 100644 --- a/actions/subedit.php +++ b/actions/subedit.php @@ -19,6 +19,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +// @todo FIXME: Documentation needed. class SubeditAction extends Action { var $profile = null; @@ -28,6 +29,7 @@ class SubeditAction extends Action parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying a change a subscription while not logged in. $this->clientError(_('Not logged in.')); return false; } @@ -43,6 +45,7 @@ class SubeditAction extends Action $id = $this->trimmed('profile'); if (!$id) { + // TRANS: Client error displayed trying a change a subscription without providing a profile. $this->clientError(_('No profile specified.')); return false; } @@ -50,6 +53,7 @@ class SubeditAction extends Action $this->profile = Profile::staticGet('id', $id); if (!$this->profile) { + // TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. $this->clientError(_('No profile with that ID.')); return false; } @@ -67,6 +71,7 @@ class SubeditAction extends Action 'subscribed' => $this->profile->id)); if (!$sub) { + // TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. $this->clientError(_('You are not subscribed to that profile.')); return false; } @@ -80,6 +85,7 @@ class SubeditAction extends Action if (!$result) { common_log_db_error($sub, 'UPDATE', __FILE__); + // TRANS: Server error displayed when updating a subscription fails with a database error. $this->serverError(_('Could not save subscription.')); return false; } diff --git a/actions/useradminpanel.php b/actions/useradminpanel.php index 04e0ca3e7..fc75e83b2 100644 --- a/actions/useradminpanel.php +++ b/actions/useradminpanel.php @@ -45,7 +45,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class UseradminpanelAction extends AdminPanelAction { /** @@ -53,7 +52,6 @@ class UseradminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { // TRANS: User admin panel title @@ -65,9 +63,9 @@ class UseradminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { + // TRANS: Instruction for user admin panel. return _('User settings for this StatusNet site'); } @@ -76,7 +74,6 @@ class UseradminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new UserAdminPanelForm($this); @@ -89,7 +86,6 @@ class UseradminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array( @@ -147,13 +143,15 @@ class UseradminpanelAction extends AdminPanelAction // Validate biolimit if (!Validate::number($values['profile']['biolimit'])) { - $this->clientError(_("Invalid bio limit. Must be numeric.")); + // TRANS: Form validation error in user admin panel when a non-numeric character limit was set. + $this->clientError(_('Invalid bio limit. Must be numeric.')); } // Validate welcome text if (mb_strlen($values['newuser']['welcome']) > 255) { - $this->clientError(_("Invalid welcome text. Max length is 255 characters.")); + // TRANS: Form validation error in user admin panel when welcome text is too long. + $this->clientError(_('Invalid welcome text. Maximum length is 255 characters.')); } // Validate default subscription @@ -163,7 +161,9 @@ class UseradminpanelAction extends AdminPanelAction if (empty($defuser)) { $this->clientError( sprintf( - _('Invalid default subscripton: \'%1$s\' is not user.'), + // 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. + _('Invalid default subscripton: \'%1$s\' is not a user.'), $values['newuser']['default'] ) ); @@ -179,7 +179,6 @@ class UserAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'useradminpanel'; @@ -190,7 +189,6 @@ class UserAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_settings'; @@ -201,7 +199,6 @@ class UserAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('useradminpanel'); @@ -212,7 +209,6 @@ class UserAdminPanelForm extends AdminForm * * @return void */ - function formData() { $this->out->elementStart('fieldset', array('id' => 'settings_user-profile')); @@ -220,7 +216,9 @@ class UserAdminPanelForm extends AdminForm $this->out->elementStart('ul', 'form_data'); $this->li(); + // TRANS: Field label in user admin panel for setting the character limit for the bio field. $this->input('biolimit', _('Bio Limit'), + // TRANS: Tooltip in user admin panel for setting the character limit for the bio field. _('Maximum length of a profile bio in characters.'), 'profile'); $this->unli(); @@ -229,17 +227,22 @@ class UserAdminPanelForm extends AdminForm $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_user-newusers')); + // TRANS: Form legend in user admin panel. $this->out->element('legend', null, _('New users')); $this->out->elementStart('ul', 'form_data'); $this->li(); + // TRANS: Field label in user admin panel for setting new user welcome text. $this->input('welcome', _('New user welcome'), - _('Welcome text for new users (Max 255 chars).'), + // TRANS: Tooltip in user admin panel for setting new user welcome text. + _('Welcome text for new users (maximum 255 characters).'), 'newuser'); $this->unli(); $this->li(); + // TRANS: Field label in user admin panel for setting default subscription for new users. $this->input('default', _('Default subscription'), + // TRANS: Tooltip in user admin panel for setting default subscription for new users. _('Automatically subscribe new users to this user.'), 'newuser'); $this->unli(); @@ -249,21 +252,21 @@ class UserAdminPanelForm extends AdminForm $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_user-invitations')); + // TRANS: Form legend in user admin panel. $this->out->element('legend', null, _('Invitations')); $this->out->elementStart('ul', 'form_data'); $this->li(); + // TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. $this->out->checkbox('invite-enabled', _('Invitations enabled'), (bool) $this->value('enabled', 'invite'), + // TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. _('Whether to allow users to invite new users.')); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); - - - } /** @@ -278,7 +281,6 @@ class UserAdminPanelForm extends AdminForm * * @return void */ - function input($setting, $title, $instructions, $section='site') { $this->out->input("$section-$setting", $title, $this->value($setting, $section), $instructions); @@ -289,9 +291,14 @@ class UserAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('submit', _('Save'), 'submit', null, _('Save user settings')); + $this->out->submit('submit', + // TRANS: Button text to save user settings in user admin panel. + _m('BUTTON','Save'), + 'submit', + null, + // TRANS: Title for button to save user settings in user admin panel. + _('Save user settings')); } } |