diff --git a/actions/conversationreplies.php b/actions/conversationreplies.php index 8c590aa3af..21780fdf1d 100644 --- a/actions/conversationreplies.php +++ b/actions/conversationreplies.php @@ -47,7 +47,6 @@ require_once INSTALLDIR.'/lib/noticelist.php'; */ class ConversationRepliesAction extends ConversationAction { - function handle($args) { if ($this->boolean('ajax')) { @@ -80,7 +79,8 @@ class ConversationRepliesAction extends ConversationAction $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); $this->elementStart('head'); - $this->element('title', null, _('Notice')); + // TRANS: Title for conversation page. + $this->element('title', null, _m('TITLE','Notice')); $this->elementEnd('head'); $this->elementStart('body'); $this->showContent(); diff --git a/actions/redirecturl.php b/actions/redirecturl.php index 0a959b074f..2aca4fe02b 100644 --- a/actions/redirecturl.php +++ b/actions/redirecturl.php @@ -4,7 +4,7 @@ * Copyright (C) 2010, StatusNet, Inc. * * Redirect to the given URL - * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -59,21 +59,23 @@ class RedirecturlAction extends Action * * @return boolean true */ - function prepare($argarray) { parent::prepare($argarray); $this->id = $this->trimmed('id'); - + if (empty($this->id)) { - throw new ClientException(_('No id parameter')); + // TRANS: Client exception thrown when no ID parameter was provided. + throw new ClientException(_('No id parameter.')); } $this->file = File::staticGet('id', $this->id); - + if (empty($this->file)) { - throw new ClientException(sprintf(_('No such file "%d"'), + // TRANS: Client exception thrown when an invalid ID parameter was provided for a file. + // TRANS: %d is the provided ID for which the file is not present (number). + throw new ClientException(sprintf(_('No such file "%d".'), $this->id), 404); } @@ -88,7 +90,6 @@ class RedirecturlAction extends Action * * @return void */ - function handle($argarray=null) { common_redirect($this->file->url, 307); @@ -104,7 +105,6 @@ class RedirecturlAction extends Action * * @return boolean is read only action? */ - function isReadOnly($args) { return true; @@ -117,7 +117,6 @@ class RedirecturlAction extends Action * * @return string last modified http header */ - function lastModified() { // For comparison with If-Last-Modified @@ -133,7 +132,6 @@ class RedirecturlAction extends Action * * @return string etag http header */ - function etag() { return 'W/"' . implode(':', array($this->arg('action'), diff --git a/actions/register.php b/actions/register.php index 1bcd3edc17..7b3c075156 100644 --- a/actions/register.php +++ b/actions/register.php @@ -77,6 +77,7 @@ class RegisterAction extends Action } if (common_config('site', 'inviteonly') && empty($this->code)) { + // TRANS: Client error displayed when trying to register to an invite-only site without an invitation. $this->clientError(_('Sorry, only invited people can register.')); return false; } @@ -84,6 +85,7 @@ class RegisterAction extends Action if (!empty($this->code)) { $this->invite = Invitation::staticGet('code', $this->code); if (empty($this->invite)) { + // TRANS: Client error displayed when trying to register to an invite-only site without a valid invitation. $this->clientError(_('Sorry, invalid invitation code.')); return false; } @@ -103,9 +105,11 @@ class RegisterAction extends Action function title() { if ($this->registered) { + // TRANS: Title for registration page after a succesful registration. return _('Registration successful'); } else { - return _('Register'); + // TRANS: Title for registration page. + return _m('TITLE','Register'); } } @@ -125,8 +129,10 @@ class RegisterAction extends Action parent::handle($args); if (common_config('site', 'closed')) { + // TRANS: Client error displayed when trying to register to a closed site. $this->clientError(_('Registration not allowed.')); } else if (common_logged_in()) { + // TRANS: Client error displayed when trying to register while already logged in. $this->clientError(_('Already logged in.')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->tryRegister(); @@ -178,6 +184,7 @@ class RegisterAction extends Action } if (common_config('site', 'inviteonly') && !($code && $invite)) { + // TRANS: Client error displayed when trying to register to an invite-only site without an invitation. $this->clientError(_('Sorry, only invited people can register.')); return; } @@ -191,13 +198,17 @@ class RegisterAction extends Action $email = common_canonical_email($email); if (!$this->boolean('license')) { - $this->showForm(_('You cannot register if you don\'t '. + // TRANS: Form validation error displayed when trying to register without agreeing to the site license. + $this->showForm(_('You cannot register if you do not '. 'agree to the license.')); } else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) { + // TRANS: Form validation error displayed when trying to register without a valid e-mail address. $this->showForm(_('Not a valid email address.')); } else if ($this->nicknameExists($nickname)) { + // TRANS: Form validation error displayed when trying to register with an existing nickname. $this->showForm(_('Nickname already in use. Try another one.')); } else if (!User::allowed_nickname($nickname)) { + // TRANS: Form validation error displayed when trying to register with an invalid nickname. $this->showForm(_('Not a valid nickname.')); } else if ($this->emailExists($email)) { $this->showForm(_('Email address already exists.')); @@ -205,25 +216,32 @@ class RegisterAction extends Action !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Form validation error displayed when trying to register with an invalid homepage URL. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { + // TRANS: Form validation error displayed when trying to register with a too long full name. $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (Profile::bioTooLong($bio)) { + // TRANS: Form validation error on registration page when providing too long a bio text. + // TRANS: %d is the maximum number of characters for bio; used for plural. $this->showForm(sprintf(_m('Bio is too long (maximum %d character).', 'Bio is too long (maximum %d characters).', Profile::maxBio()), Profile::maxBio())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { + // TRANS: Form validation error displayed when trying to register with a too long location. $this->showForm(_('Location is too long (maximum 255 characters).')); return; } else if (strlen($password) < 6) { + // TRANS: Form validation error displayed when trying to register with too short a password. $this->showForm(_('Password must be 6 or more characters.')); return; } else if ($password != $confirm) { - $this->showForm(_('Passwords don\'t match.')); + // TRANS: Form validation error displayed when trying to register with non-matching passwords. + $this->showForm(_('Passwords do not match.')); } else if ($user = User::register(array('nickname' => $nickname, 'password' => $password, 'email' => $email, @@ -233,11 +251,13 @@ class RegisterAction extends Action 'location' => $location, 'code' => $code))) { if (!$user) { + // TRANS: Form validation error displayed when trying to register with an invalid username or password. $this->showForm(_('Invalid username or password.')); return; } // success! if (!common_set_user($user)) { + // TRANS: Server error displayed when saving fails during user registration. $this->serverError(_('Error setting user.')); return; } @@ -255,6 +275,7 @@ class RegisterAction extends Action $this->showSuccess(); } else { + // TRANS: Form validation error displayed when trying to register with an invalid username or password. $this->showForm(_('Invalid username or password.')); } } @@ -330,6 +351,7 @@ class RegisterAction extends Action $this->element('p', 'error', $this->error); } else { $instr = + // TRANS: Page notice on registration page. common_markup_to_html(_('With this form you can create '. 'a new account. ' . 'You can then post notices and '. @@ -389,6 +411,7 @@ class RegisterAction extends Action } if (common_config('site', 'inviteonly') && !($code && $invite)) { + // TRANS: Client error displayed when trying to register to an invite-only site without an invitation. $this->clientError(_('Sorry, only invited people can register.')); return; } @@ -398,6 +421,7 @@ class RegisterAction extends Action 'class' => 'form_settings', 'action' => common_local_url('register'))); $this->elementStart('fieldset'); + // TRANS: Fieldset legend on accout registration page. $this->element('legend', null, 'Account settings'); $this->hidden('token', common_session_token()); @@ -408,66 +432,86 @@ class RegisterAction extends Action $this->elementStart('ul', 'form_data'); if (Event::handle('StartRegistrationFormData', array($this))) { $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('nickname', _('Nickname'), $this->trimmed('nickname'), + // TRANS: Field title on account registration page. _('1-64 lowercase letters or numbers, no punctuation or spaces.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->password('password', _('Password'), + // TRANS: Field title on account registration page. _('6 or more characters.')); $this->elementEnd('li'); $this->elementStart('li'); - $this->password('confirm', _('Confirm'), - _('Same as password above.')); + // TRANS: Field label on account registration page. In this field the password has to be entered a second time. + $this->password('confirm', _m('PASSWORD','Confirm'), + // TRANS: Field title on account registration page. + _('Same as password above.')); $this->elementEnd('li'); $this->elementStart('li'); if ($this->invite && $this->invite->address_type == 'email') { - $this->input('email', _('Email'), $this->invite->address, + // TRANS: Field label on account registration page. + $this->input('email', _m('LABEL','Email'), $this->invite->address, + // TRANS: Field title on account registration page. _('Used only for updates, announcements, '. 'and password recovery.')); } else { - $this->input('email', _('Email'), $this->trimmed('email'), + // TRANS: Field label on account registration page. + $this->input('email', _m('LABEL','Email'), $this->trimmed('email'), + // TRANS: Field title on account registration page. _('Used only for updates, announcements, '. 'and password recovery.')); } $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('fullname', _('Full name'), $this->trimmed('fullname'), - _('Longer name, preferably your "real" name.')); + // TRANS: Field title on account registration page. + _('Longer name, preferably your "real" name.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('homepage', _('Homepage'), $this->trimmed('homepage'), + // TRANS: Field title on account registration page. _('URL of your homepage, blog, '. 'or profile on another site.')); $this->elementEnd('li'); $this->elementStart('li'); $maxBio = Profile::maxBio(); if ($maxBio > 0) { - // TRANS: Tooltip for field label in form for profile settings. Plural + // TRANS: Text area title in form for account registration. Plural // TRANS: is decided by the number of characters available for the // TRANS: biography (%d). - $bioInstr = sprintf(_m('Describe yourself and your interests in %d character', - 'Describe yourself and your interests in %d characters', + $bioInstr = sprintf(_m('Describe yourself and your interests in %d character.', + 'Describe yourself and your interests in %d characters.', $maxBio), $maxBio); } else { - $bioInstr = _('Describe yourself and your interests'); + // TRANS: Text area title on account registration page. + $bioInstr = _('Describe yourself and your interests.'); } + // TRANS: Text area label on account registration page. $this->textarea('bio', _('Bio'), $this->trimmed('bio'), $bioInstr); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('location', _('Location'), $this->trimmed('location'), + // TRANS: Field title on account registration page. _('Where you are, like "City, '. 'State (or Region), Country".')); $this->elementEnd('li'); Event::handle('EndRegistrationFormData', array($this)); $this->elementStart('li', array('id' => 'settings_rememberme')); + // TRANS: Checkbox label on account registration page. $this->checkbox('rememberme', _('Remember me'), $this->boolean('rememberme'), + // TRANS: Checkbox title on account registration page. _('Automatically login in the future; '. 'not for shared computers!')); $this->elementEnd('li'); @@ -487,7 +531,8 @@ class RegisterAction extends Action $this->elementEnd('li'); } $this->elementEnd('ul'); - $this->submit('submit', _('Register')); + // TRANS: Field label on account registration page. + $this->submit('submit', _m('BUTTON','Register')); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -497,9 +542,9 @@ class RegisterAction extends Action $out = ''; switch (common_config('license', 'type')) { case 'private': - // TRANS: Copyright checkbox label in registration dialog, for private sites. - // TRANS: %1$s is the StatusNet sitename. $out .= htmlspecialchars(sprintf( + // TRANS: Copyright checkbox label in registration dialog, for private sites. + // TRANS: %1$s is the StatusNet sitename. _('I understand that content and data of %1$s are private and confidential.'), common_config('site', 'name'))); // fall through @@ -508,8 +553,9 @@ class RegisterAction extends Action $out .= ' '; } if (common_config('license', 'owner')) { - // TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner. $out .= htmlspecialchars(sprintf( + // TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner. + // TRANS: %1$s is the license owner. _('My text and files are copyright by %1$s.'), common_config('license', 'owner'))); } else { @@ -563,6 +609,10 @@ class RegisterAction extends Action array('nickname' => $nickname)); $this->elementStart('div', 'success'); + // TRANS: Text displayed after successful account registration. + // TRANS: %1$s is the registered nickname, %2$s is the profile URL. + // TRANS: This message contains Markdown links in the form [link text](link) + // TRANS: and variables in the form %%%%variable%%%%. Please mind the syntax. $instr = sprintf(_('Congratulations, %1$s! And welcome to %%%%site.name%%%%. '. 'From here, you may want to...'. "\n\n" . '* Go to [your profile](%2$s) '. @@ -587,6 +637,7 @@ class RegisterAction extends Action $have_email = $this->trimmed('email'); if ($have_email) { + // TRANS: Instruction text on how to deal with the e-mail address confirmation e-mail. $emailinstr = _('(You should receive a message by email '. 'momentarily, with ' . 'instructions on how to confirm '. diff --git a/actions/remotesubscribe.php b/actions/remotesubscribe.php index 8200659278..66cee65cab 100644 --- a/actions/remotesubscribe.php +++ b/actions/remotesubscribe.php @@ -55,6 +55,7 @@ class RemotesubscribeAction extends Action parent::prepare($args); if (common_logged_in()) { + // TRANS: Client error displayed when using remote subscribe for a local entity. $this->clientError(_('You can use the local subscription!')); return false; } @@ -94,6 +95,8 @@ class RemotesubscribeAction extends Action if ($this->err) { $this->element('div', 'error', $this->err); } else { + // TRANS: Page notice for remote subscribe. This message contains Markdown links. + // TRANS: Ensure to keep the correct markup of [link description](link). $inst = _('To subscribe, you can [login](%%action.login%%),' . ' or [register](%%action.register%%) a new ' . ' account. If you already have an account ' . @@ -108,6 +111,7 @@ class RemotesubscribeAction extends Action function title() { + // TRANS: Page title for Remote subscribe. return _('Remote subscribe'); } @@ -120,20 +124,26 @@ class RemotesubscribeAction extends Action 'class' => 'form_settings', 'action' => common_local_url('remotesubscribe'))); $this->elementStart('fieldset'); + // TRANS: Field legend on page for remote subscribe. $this->element('legend', _('Subscribe to a remote user')); $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + // TRANS: Field label on page for remote subscribe. $this->input('nickname', _('User nickname'), $this->nickname, + // TRANS: Field title on page for remote subscribe. _('Nickname of the user you want to follow.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on page for remote subscribe. $this->input('profile_url', _('Profile URL'), $this->profile_url, + // TRANS: Field title on page for remote subscribe. _('URL of your profile on another compatible microblogging service.')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('submit', _('Subscribe')); + // TRANS: Button text on page for remote subscribe. + $this->submit('submit', _m('BUTTON','Subscribe')); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -141,6 +151,7 @@ class RemotesubscribeAction extends Action function remoteSubscription() { if (!$this->nickname) { + // TRANS: Form validation error on page for remote subscribe when no user was provided. $this->showForm(_('No such user.')); return; } @@ -150,11 +161,13 @@ class RemotesubscribeAction extends Action $this->profile_url = $this->trimmed('profile_url'); if (!$this->profile_url) { + // TRANS: Form validation error on page for remote subscribe when no user profile was found. $this->showForm(_('No such user.')); return; } if (!common_valid_http_url($this->profile_url)) { + // TRANS: Form validation error on page for remote subscribe when an invalid profile URL was provided. $this->showForm(_('Invalid profile URL (bad format).')); return; } @@ -164,6 +177,8 @@ class RemotesubscribeAction extends Action common_root_url(), omb_oauth_datastore()); } catch (OMB_InvalidYadisException $e) { + // TRANS: Form validation error on page for remote subscribe when no the provided profile URL + // TRANS: does not contain expected data. $this->showForm(_('Not a valid profile URL (no YADIS document or ' . 'invalid XRDS defined).')); return; @@ -172,6 +187,7 @@ class RemotesubscribeAction extends Action if ($service->getServiceURI(OAUTH_ENDPOINT_REQUEST) == common_local_url('requesttoken') || User::staticGet('uri', $service->getRemoteUserURI())) { + // TRANS: Form validation error on page for remote subscribe. $this->showForm(_('That is a local profile! Login to subscribe.')); return; } @@ -179,6 +195,7 @@ class RemotesubscribeAction extends Action try { $service->requestToken(); } catch (OMB_RemoteServiceException $e) { + // TRANS: Form validation error on page for remote subscribe when the remote service is not providing a request token. $this->showForm(_('Could not get a request token.')); return; } @@ -187,6 +204,7 @@ class RemotesubscribeAction extends Action $profile = $user->getProfile(); if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); + // TRANS: Server error displayed on page for remote subscribe when user does not have a matching profile. $this->serverError(_('User without matching profile.')); return; } diff --git a/actions/repeat.php b/actions/repeat.php index 2ec641578b..869c2ddd4e 100644 --- a/actions/repeat.php +++ b/actions/repeat.php @@ -1,5 +1,4 @@ user = common_current_user(); if (empty($this->user)) { + // TRANS: Client error displayed when trying to repeat a notice while not logged in. $this->clientError(_('Only logged-in users can repeat notices.')); return false; } @@ -60,6 +60,7 @@ class RepeatAction extends Action $id = $this->trimmed('notice'); if (empty($id)) { + // TRANS: Client error displayed when trying to repeat a notice while not providing a notice ID. $this->clientError(_('No notice specified.')); return false; } @@ -67,11 +68,13 @@ class RepeatAction extends Action $this->notice = Notice::staticGet('id', $id); if (empty($this->notice)) { + // TRANS: Client error displayed when trying to repeat a non-existing notice. $this->clientError(_('No notice specified.')); return false; } if ($this->user->id == $this->notice->profile_id) { + // TRANS: Client error displayed when trying to repeat an own notice. $this->clientError(_('You cannot repeat your own notice.')); return false; } @@ -86,6 +89,7 @@ class RepeatAction extends Action $profile = $this->user->getProfile(); if ($profile->hasRepeated($id)) { + // TRANS: Client error displayed when trying to repeat an already repeated notice. $this->clientError(_('You already repeated that notice.')); return false; } @@ -104,21 +108,21 @@ class RepeatAction extends Action { $repeat = $this->notice->repeat($this->user->id, 'web'); - - if ($this->boolean('ajax')) { $this->startHTML('text/xml;charset=utf-8'); $this->elementStart('head'); + // TRANS: Title after repeating a notice. $this->element('title', null, _('Repeated')); $this->elementEnd('head'); $this->elementStart('body'); $this->element('p', array('id' => 'repeat_response', 'class' => 'repeated'), + // TRANS: Confirmation text after repeating a notice. _('Repeated!')); $this->elementEnd('body'); $this->elementEnd('html'); } else { - // FIXME! + // @todo FIXME! } } }