summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-11-02 11:15:57 -0700
committerBrion Vibber <brion@pobox.com>2010-11-02 11:15:57 -0700
commit23f69c80b5c6a8730fc6ff3b9f3cec71840de03b (patch)
treee63517a180c7c1b84ccb31a2285de2250a05c646 /actions
parent62408fef09990a127a58aa8f8a24777bc34d160d (diff)
parent760a1c27bc37a20b70788e5e132c4cf9da1bb579 (diff)
Merge branch '0.9.x' into twitstream
Diffstat (limited to 'actions')
-rw-r--r--actions/attachment.php8
-rw-r--r--actions/attachment_ajax.php2
-rw-r--r--actions/attachment_thumbnail.php4
-rw-r--r--actions/avatarbynickname.php8
-rw-r--r--actions/avatarsettings.php49
-rw-r--r--actions/block.php12
-rw-r--r--actions/blockedfromgroup.php25
-rw-r--r--actions/bookmarklet.php5
-rw-r--r--actions/confirmaddress.php19
-rw-r--r--actions/conversation.php17
-rw-r--r--actions/deleteapplication.php11
-rw-r--r--actions/deletegroup.php4
-rw-r--r--actions/deletenotice.php11
-rw-r--r--actions/editapplication.php2
-rw-r--r--actions/editgroup.php36
-rw-r--r--actions/groupunblock.php14
-rw-r--r--actions/licenseadminpanel.php2
-rw-r--r--actions/newapplication.php4
-rw-r--r--actions/newgroup.php20
-rw-r--r--actions/newnotice.php17
-rw-r--r--actions/othersettings.php18
-rw-r--r--actions/recoverpassword.php2
-rw-r--r--actions/showgroup.php60
-rw-r--r--actions/showmessage.php57
-rw-r--r--actions/sitenoticeadminpanel.php19
-rw-r--r--actions/subedit.php6
-rw-r--r--actions/useradminpanel.php45
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'));
}
}