Commit 621a7cb3 authored by Brion Vibber's avatar Brion Vibber

Merge branch '0.9.x' into testing

parents e35d46b4 4642b024
......@@ -217,7 +217,7 @@ class AtompubmembershipfeedAction extends ApiAuthAction
$this->auth_user->id != $this->_profile->id) {
// TRANS: Client exception thrown when trying subscribe someone else to a group.
throw new ClientException(_("Cannot add someone else's".
" membership"), 403);
" membership."), 403);
}
$xml = file_get_contents('php://input');
......
......@@ -149,7 +149,7 @@ class AtompubshowfavoriteAction extends ApiAuthAction
$this->auth_user->id != $this->_profile->id) {
// TRANS: Client exception thrown when trying to remove a favorite notice of another user.
throw new ClientException(_("Cannot delete someone else's".
" favorite"), 403);
" favorite."), 403);
}
$this->_fave->delete();
......
......@@ -78,7 +78,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
if (empty($this->_group)) {
// TRANS: Client exception thrown when referencing a non-existing group.
throw new ClientException(_('No such group'), 404);
throw new ClientException(_('No such group.'), 404);
}
$kv = array('group_id' => $groupId,
......@@ -88,7 +88,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
if (empty($this->_membership)) {
// TRANS: Client exception thrown when trying to show membership of a non-subscribed group
throw new ClientException(_('Not a member'), 404);
throw new ClientException(_('Not a member.'), 404);
}
return true;
......@@ -113,7 +113,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
break;
default:
// TRANS: Client exception thrown when using an unsupported HTTP method.
throw new ClientException(_('HTTP method not supported'), 405);
throw new ClientException(_('HTTP method not supported.'), 405);
break;
}
return;
......@@ -149,7 +149,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
$this->auth_user->id != $this->_profile->id) {
// TRANS: Client exception thrown when deleting someone else's membership.
throw new ClientException(_("Cannot delete someone else's".
" membership"), 403);
" membership."), 403);
}
if (Event::handle('StartLeaveGroup', array($this->_group, $this->auth_user))) {
......
......@@ -4,7 +4,7 @@
* Copyright (C) 2010, StatusNet, Inc.
*
* Download a backup of your own account to the browser
*
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
......@@ -48,17 +48,16 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class BackupaccountAction extends Action
{
/**
* Returns the title of the page
*
*
* @return string page title
*/
function title()
{
// TRANS: Title for backup account page.
return _("Backup account");
}
......@@ -69,7 +68,6 @@ class BackupaccountAction extends Action
*
* @return boolean true
*/
function prepare($argarray)
{
parent::prepare($argarray);
......@@ -77,10 +75,12 @@ class BackupaccountAction extends Action
$cur = common_current_user();
if (empty($cur)) {
// TRANS: Client exception thrown when trying to backup an account while not logged in.
throw new ClientException(_('Only logged-in users can backup their account.'), 403);
}
if (!$cur->hasRight(Right::BACKUPACCOUNT)) {
// TRANS: Client exception thrown when trying to backup an account without having backup rights.
throw new ClientException(_('You may not backup your account.'), 403);
}
......@@ -94,7 +94,6 @@ class BackupaccountAction extends Action
*
* @return void
*/
function handle($argarray=null)
{
parent::handle($argarray);
......@@ -109,7 +108,7 @@ class BackupaccountAction extends Action
/**
* Send a feed of the user's activities to the browser
*
*
* Uses the UserActivityStream class; may take a long time!
*
* @return void
......@@ -118,7 +117,7 @@ class BackupaccountAction extends Action
function sendFeed()
{
$cur = common_current_user();
$stream = new UserActivityStream($cur);
header('Content-Disposition: attachment; filename='.$cur->nickname.'.atom');
......@@ -132,13 +131,13 @@ class BackupaccountAction extends Action
*
* @return void
*/
function showContent()
{
$form = new BackupAccountForm($this);
$form->show();
}
/**
* Return true if read only.
*
......@@ -148,7 +147,6 @@ class BackupaccountAction extends Action
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return false;
......@@ -161,7 +159,6 @@ class BackupaccountAction extends Action
*
* @return string last modified http header
*/
function lastModified()
{
// For comparison with If-Last-Modified
......@@ -176,7 +173,6 @@ class BackupaccountAction extends Action
*
* @return string etag http header
*/
function etag()
{
return null;
......@@ -193,7 +189,6 @@ class BackupaccountAction extends Action
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class BackupAccountForm extends Form
{
/**
......@@ -201,7 +196,6 @@ class BackupAccountForm extends Form
*
* @return string the form's class
*/
function formClass()
{
return 'form_profile_backup';
......@@ -212,7 +206,6 @@ class BackupAccountForm extends Form
*
* @return string the form's action URL
*/
function action()
{
return common_local_url('backupaccount');
......@@ -220,18 +213,18 @@ class BackupAccountForm extends Form
/**
* Output form data
*
*
* Really, just instructions for doing a backup.
*
* @return void
*/
function formData()
{
$msg =
// TRANS: Information displayed on the backup account page.
_('You can backup your account data in '.
'<a href="http://activitystrea.ms/">Activity Streams</a> '.
'format. This is an experimental feature and provides an '.
'format. This is an experimental feature and provides an '.
'incomplete backup; private account '.
'information like email and IM addresses is not backed up. '.
'Additionally, uploaded files and direct messages are not '.
......@@ -243,18 +236,19 @@ class BackupAccountForm extends Form
/**
* Buttons for the form
*
*
* In this case, a single submit button
*
* @return void
*/
function formActions()
{
$this->out->submit('submit',
// TRANS: Submit button to backup an account on the backup account page.
_m('BUTTON', 'Backup'),
'submit',
null,
// TRANS: Title for submit button to backup an account on the backup account page.
_('Backup your account'));
}
}
......@@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://status.net/
*/
class DeleteuserAction extends ProfileFormAction
{
var $user = null;
......@@ -52,7 +51,6 @@ class DeleteuserAction extends ProfileFormAction
*
* @return boolean success flag
*/
function prepare($args)
{
if (!parent::prepare($args)) {
......@@ -64,6 +62,7 @@ class DeleteuserAction extends ProfileFormAction
assert(!empty($cur)); // checked by parent
if (!$cur->hasRight(Right::DELETEUSER)) {
// TRANS: Client error displayed when trying to delete a user without having the right to delete users.
$this->clientError(_('You cannot delete users.'));
return false;
}
......@@ -71,6 +70,7 @@ class DeleteuserAction extends ProfileFormAction
$this->user = User::staticGet('id', $this->profile->id);
if (empty($this->user)) {
// TRANS: Client error displayed when trying to delete a non-local user.
$this->clientError(_('You can only delete local users.'));
return false;
}
......@@ -87,7 +87,6 @@ class DeleteuserAction extends ProfileFormAction
*
* @return void
*/
function handle($args)
{
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
......@@ -107,7 +106,8 @@ class DeleteuserAction extends ProfileFormAction
}
function title() {
return _('Delete user');
// TRANS: Title of delete user page.
return _m('TITLE','Delete user');
}
function showNoticeForm() {
......@@ -130,9 +130,11 @@ class DeleteuserAction extends ProfileFormAction
'action' => common_local_url('deleteuser')));
$this->elementStart('fieldset');
$this->hidden('token', common_session_token());
// TRANS: Fieldset legend on delete user page.
$this->element('legend', _('Delete user'));
if (Event::handle('StartDeleteUserForm', array($this, $this->user))) {
$this->element('p', null,
// TRANS: Information text to request if a user is certain that the described action has to be performed.
_('Are you sure you want to delete this user? '.
'This will clear all data about the user from the '.
'database, without a backup.'));
......@@ -153,7 +155,7 @@ class DeleteuserAction extends ProfileFormAction
'submit form_action-primary',
'no',
// TRANS: Submit button title for 'No' when deleting a user.
_('Do not block this user'));
_('Do not delete this user'));
$this->submit('form_action-yes',
// TRANS: Button label on the delete user form.
_m('BUTTON','Yes'),
......@@ -170,7 +172,6 @@ class DeleteuserAction extends ProfileFormAction
*
* @return void
*/
function handlePost()
{
if (Event::handle('StartDeleteUser', array($this, $this->user))) {
......
This diff is collapsed.
......@@ -58,6 +58,7 @@ class DisfavorAction extends Action
{
parent::handle($args);
if (!common_logged_in()) {
// TRANS: Client error displayed when trying to remove a favorite while not logged in.
$this->clientError(_('Not logged in.'));
return;
}
......@@ -71,6 +72,7 @@ class DisfavorAction extends Action
$notice = Notice::staticGet($id);
$token = $this->trimmed('token-'.$notice->id);
if (!$token || $token != common_session_token()) {
// TRANS: Client error displayed when the session token does not match or is not given.
$this->clientError(_('There was a problem with your session token. Try again, please.'));
return;
}
......@@ -78,12 +80,14 @@ class DisfavorAction extends Action
$fave->user_id = $user->id;
$fave->notice_id = $notice->id;
if (!$fave->find(true)) {
// TRANS: Client error displayed when trying to remove favorite status for a notice that is not a favorite.
$this->clientError(_('This notice is not a favorite!'));
return;
}
$result = $fave->delete();
if (!$result) {
common_log_db_error($fave, 'DELETE', __FILE__);
// TRANS: Server error displayed when removing a favorite from the database fails.
$this->serverError(_('Could not delete favorite.'));
return;
}
......@@ -91,6 +95,7 @@ class DisfavorAction extends Action
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
// TRANS: Title for page on which favorites can be added.
$this->element('title', null, _('Add to favorites'));
$this->elementEnd('head');
$this->elementStart('body');
......@@ -105,4 +110,3 @@ class DisfavorAction extends Action
}
}
}
<?php
/**
* Documentation action.
*
......@@ -83,7 +82,6 @@ class DocAction extends Action
*
* @return void
*/
function showPageTitle()
{
$this->element('h1', array('class' => 'entry-title'), $this->title());
......@@ -96,7 +94,6 @@ class DocAction extends Action
*
* @return void.
*/
function showContentBlock()
{
$this->elementStart('div', array('id' => 'content', 'class' => 'hentry'));
......@@ -117,7 +114,6 @@ class DocAction extends Action
*
* @return void
*/
function showContent()
{
$this->raw($this->output);
......@@ -142,7 +138,6 @@ class DocAction extends Action
*
* @return boolean read-only flag (false)
*/
function isReadOnly($args)
{
return true;
......@@ -155,7 +150,9 @@ class DocAction extends Action
$this->filename = $this->getFilename();
if (empty($this->filename)) {
throw new ClientException(sprintf(_('No such document "%s"'), $this->title), 404);
// TRANS: Client exception thrown when requesting a document from the documentation that does not exist.
// TRANS: %s is the non-existing document.
throw new ClientException(sprintf(_('No such document "%s".'), $this->title), 404);
}
$c = file_get_contents($this->filename);
......
......@@ -43,7 +43,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 JoingroupAction extends Action
{
var $group = null;
......@@ -51,12 +50,12 @@ class JoingroupAction extends Action
/**
* Prepare to run
*/
function prepare($args)
{
parent::prepare($args);
if (!common_logged_in()) {
// TRANS: Client error displayed when trying to join a group while not logged in.
$this->clientError(_('You must be logged in to join a group.'));
return false;
}
......@@ -79,17 +78,20 @@ class JoingroupAction extends Action
$local = Local_group::staticGet('nickname', $nickname);
if (!$local) {
// TRANS: Client error displayed when trying to join a non-local group.
$this->clientError(_('No such group.'), 404);
return false;
}
$this->group = User_group::staticGet('id', $local->group_id);
} else {
// TRANS: Client error displayed when trying to join a group without providing a group name or group ID.
$this->clientError(_('No nickname or ID.'), 404);
return false;
}
if (!$this->group) {
// TRANS: Client error displayed when trying to join a non-existing group.
$this->clientError(_('No such group.'), 404);
return false;
}
......@@ -97,11 +99,13 @@ class JoingroupAction extends Action
$cur = common_current_user();
if ($cur->isMember($this->group)) {
// TRANS: Client error displayed when trying to join a group while already a member.
$this->clientError(_('You are already a member of that group.'), 403);
return false;
}
if (Group_block::isBlocked($this->group, $cur->getProfile())) {
// TRANS: Client error displayed when trying to join a group while being blocked form joining it.
$this->clientError(_('You have been blocked from that group by the admin.'), 403);
return false;
}
......@@ -118,7 +122,6 @@ class JoingroupAction extends Action
*
* @return void
*/
function handle($args)
{
parent::handle($args);
......@@ -131,6 +134,8 @@ class JoingroupAction extends Action
Event::handle('EndJoinGroup', array($this->group, $cur));
}
} catch (Exception $e) {
// TRANS: Server error displayed when joining a group failed in the database.
// TRANS: %1$s is the joining user's nickname, $2$s is the group nickname for which the join failed.
$this->serverError(sprintf(_('Could not join user %1$s to group %2$s.'),
$cur->nickname, $this->group->nickname));
}
......@@ -138,7 +143,8 @@ class JoingroupAction extends Action
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
$this->element('title', null, sprintf(_('%1$s joined group %2$s'),
// TRANS: Title for join group page after joining.
$this->element('title', null, sprintf(_m('TITLE','%1$s joined group %2$s'),
$cur->nickname,
$this->group->nickname));
$this->elementEnd('head');
......@@ -153,4 +159,4 @@ class JoingroupAction extends Action
303);
}
}
}
\ No newline at end of file
}
......@@ -43,7 +43,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 LeavegroupAction extends Action
{
var $group = null;
......@@ -51,12 +50,12 @@ class LeavegroupAction extends Action
/**
* Prepare to run
*/
function prepare($args)
{
parent::prepare($args);
if (!common_logged_in()) {
// TRANS: Client error displayed when trying to leave a group while not logged in.
$this->clientError(_('You must be logged in to leave a group.'));
return false;
}
......@@ -79,17 +78,20 @@ class LeavegroupAction extends Action
$local = Local_group::staticGet('nickname', $nickname);
if (!$local) {
// TRANS: Client error displayed when trying to leave a non-local group.
$this->clientError(_('No such group.'), 404);
return false;
}
$this->group = User_group::staticGet('id', $local->group_id);
} else {
// TRANS: Client error displayed when trying to leave a group without providing a group name or group ID.
$this->clientError(_('No nickname or ID.'), 404);
return false;
}
if (!$this->group) {
// TRANS: Client error displayed when trying to leave a non-existing group.
$this->clientError(_('No such group.'), 404);
return false;
}
......@@ -97,6 +99,7 @@ class LeavegroupAction extends Action
$cur = common_current_user();
if (!$cur->isMember($this->group)) {
// TRANS: Client error displayed when trying to join a group while already a member.
$this->clientError(_('You are not a member of that group.'), 403);
return false;
}
......@@ -113,7 +116,6 @@ class LeavegroupAction extends Action
*
* @return void
*/
function handle($args)
{
parent::handle($args);
......@@ -126,6 +128,8 @@ class LeavegroupAction extends Action
Event::handle('EndLeaveGroup', array($this->group, $cur));
}
} catch (Exception $e) {
// TRANS: Server error displayed when leaving a group failed in the database.
// TRANS: %1$s is the leaving user's nickname, $2$s is the group nickname for which the leave failed.
$this->serverError(sprintf(_('Could not remove user %1$s from group %2$s.'),
$cur->nickname, $this->group->nickname));
return;
......@@ -134,7 +138,8 @@ class LeavegroupAction extends Action
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
$this->element('title', null, sprintf(_('%1$s left group %2$s'),
// TRANS: Title for leave group page after leaving.
$this->element('title', null, sprintf(_m('TITLE','%1$s left group %2$s'),
$cur->nickname,
$this->group->nickname));
$this->elementEnd('head');
......
......@@ -213,6 +213,7 @@ class ProfilesettingsAction extends AccountSettingsAction
// CSRF protection
$token = $this->trimmed('token');
if (!$token || $token != common_session_token()) {
// TRANS: Form validation error.
$this->showForm(_('There was a problem with your session token. '.
'Try again, please.'));
return;
......@@ -462,6 +463,7 @@ class ProfilesettingsAction extends AccountSettingsAction
$this->elementStart('li');
$this->element('a',
array('href' => common_local_url('backupaccount')),
// TRANS: Option in profile settings to create a backup of the account of the currently logged in user.
_('Backup account'));
$this->elementEnd('li');
}
......@@ -469,6 +471,7 @@ class ProfilesettingsAction extends AccountSettingsAction
$this->elementStart('li');
$this->element('a',
array('href' => common_local_url('deleteaccount')),
// TRANS: Option in profile settings to delete the account of the currently logged in user.
_('Delete account'));
$this->elementEnd('li');
}
......@@ -476,6 +479,7 @@ class ProfilesettingsAction extends AccountSettingsAction
$this->elementStart('li');
$this->element('a',
array('href' => common_local_url('restoreaccount')),
// TRANS: Option in profile settings to restore the account of the currently logged in user from a backup.
_('Restore account'));
$this->elementEnd('li');
}
......
This diff is collapsed.
......@@ -430,16 +430,15 @@ class RegisterAction extends Action
if (Event::handle('StartRegistrationFormData', array($this))) {
$this->elementStart('li');
$this->input('nickname', _('Nickname'), $this->trimmed('nickname'),
_('1-64 lowercase letters or numbers, '.
'no punctuation or spaces. Required.'));
_('1-64 lowercase letters or numbers, no punctuation or spaces.'));
$this->elementEnd('li');
$this->elementStart('li');
$this->password('password', _('Password'),
_('6 or more characters. Required.'));
_('6 or more characters.'));
$this->elementEnd('li');
$this->elementStart('li');
$this->password('confirm', _('Confirm'),
_('Same as password above. Required.'));
_('Same as password above.'));
$this->elementEnd('li');
$this->elementStart('li');
if ($this->invite && $this->invite->address_type == 'email') {
......
......@@ -41,7 +41,6 @@ if (!defined('STATUSNET')) {
* @link http://status.net/
*
*/
class DeleteUserForm extends ProfileActionForm
{
/**
......@@ -49,7 +48,6 @@ class DeleteUserForm extends ProfileActionForm
*
* @return string Name of the action, lowercased.
*/
function target()
{
return 'deleteuser';
......@@ -60,9 +58,9 @@ class DeleteUserForm extends ProfileActionForm
*
* @return string Title of the form, internationalized
*/
function title()
{
// TRANS: Title of form for deleting a user.
return _('Delete');
}
......@@ -71,9 +69,9 @@ class DeleteUserForm extends ProfileActionForm
*
* @return string description of the form, internationalized
*/
function description()
{
// TRANS: Description of form for deleting a user.
return _('Delete this user');
}
}
......@@ -46,13 +46,11 @@ require_once INSTALLDIR.'/lib/form.php';
*
* @see UnsubscribeForm
*/
class GroupEditForm extends Form
{
/**
* group for user to join
*/
var $group = null;
/**
......@@ -61,7 +59,6 @@ class GroupEditForm extends Form
* @param Action $out output channel
* @param User_group $group group to join
*/
function __construct($out=null, $group=null)
{
parent::__construct($out);
......@@ -74,7 +71,6 @@ class GroupEditForm extends Form
*
* @return string ID of the form
*/
function id()
{
if ($this->group) {
......@@ -89,7 +85,6 @@ class GroupEditForm extends Form
*
* @return string of the form class
*/
function formClass()
{
return 'form_settings';
......@@ -100,7 +95,6 @@ class GroupEditForm extends Form
*
* @return string URL of the action
*/
function action()
{
if ($this->group) {
......@@ -116,7 +110,6 @@ class GroupEditForm extends Form
*
* @return void
*/
function formLegend()
{
$this->out->element('legend', null, _('Create a new group'));
......@@ -127,7 +120,6 @@ class GroupEditForm extends Form
*
* @return void
*/
function formData()
{
if ($this->group) {
......@@ -151,7 +143,7 @@ class GroupEditForm extends Form
$this->out->hidden('groupid', $id);
$this->out->input('nickname', _('Nickname'),
($this->out->arg('nickname')) ? $this->out->arg('nickname') : $nickname,
_('1-64 lowercase letters or numbers, no punctuation or spaces'));
_('1-64 lowercase letters or numbers, no punctuation or spaces.'));
$this->out->elementEnd('li');
$this->out->elementStart('li');
$this->out->input('fullname', _('Full name'),
......@@ -167,8 +159,8 @@ class GroupEditForm extends Form
if ($desclimit == 0) {
$descinstr = _('Describe the group or topic');
} else {
$descinstr = sprintf(_m('Describe the group or topic in %d character or less',
'Describe the group or topic in %d characters or less',
$descinstr = sprintf(_m('Describe the group or topic in %d character or less.',