forked from GNUsocial/gnu-social
Merge branch '0.9.x' into json-activities
* 0.9.x: * update translator documentation. * remove superfluous whitespace. * tab to spaces. * add FIXME for undocumented class. * update translator documentation. * remove superfluous whitespace. * L10n updates. * small refactoring in publicrss.php. * remove PHP4-isms Localisation updates from http://translatewiki.net. Double quotes to single quotes. * improve L10n consistency for English. For example proper punctuation for all button and label titles. * fix some i18n bugs (in-message variables). * update/add translator documentation. * remove superfluous whitespace. add path separators for Plugin::path() argument to send email summary to all users on all sites fix indentation in siteemailsummaryhandler fix indentation in sendemailsummary.php fix indentation in Email_summary_status.php fix indentation in EmailSummaryPlugin.php fix indentation in usermailsummaryhandler.php
This commit is contained in:
commit
e98e443605
@ -141,7 +141,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
|
||||
} else if (!$this->user->mutuallySubscribed($this->other)) {
|
||||
$this->clientError(
|
||||
// TRANS: Client error displayed trying to direct message another user who's not a friend (403).
|
||||
_('Can\'t send direct messages to users who aren\'t your friend.'),
|
||||
_('Cannot send direct messages to users who aren\'t your friend.'),
|
||||
403,
|
||||
$this->format
|
||||
);
|
||||
|
@ -99,7 +99,7 @@ class ApiOauthAccessTokenAction extends ApiOauthAction
|
||||
|
||||
common_log(LOG_WARNING, $msg);
|
||||
// TRANS: Client error given from the OAuth API when the request token or verifier is invalid.
|
||||
$this->clientError(_("Invalid request token or verifier."), 400, 'text');
|
||||
$this->clientError(_('Invalid request token or verifier.'), 400, 'text');
|
||||
} else {
|
||||
common_log(
|
||||
LOG_INFO,
|
||||
|
@ -141,7 +141,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
|
||||
default:
|
||||
// TRANS: Exception thrown requesting an unsupported notice output format.
|
||||
// TRANS: %s is the requested output format.
|
||||
throw new Exception(sprintf(_("Unsupported format: %s"), $this->format));
|
||||
throw new Exception(sprintf(_("Unsupported format: %s."), $this->format));
|
||||
}
|
||||
} else {
|
||||
// XXX: Twitter just sets a 404 header and doens't bother
|
||||
@ -224,7 +224,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
|
||||
{
|
||||
if ($this->format != 'atom') {
|
||||
// TRANS: Client error displayed when trying to delete a notice not using the Atom format.
|
||||
$this->clientError(_("Can only delete using the Atom format."));
|
||||
$this->clientError(_('Can only delete using the Atom format.'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -329,7 +329,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
|
||||
$saved = null;
|
||||
|
||||
if (Event::handle('StartAtomPubNewActivity', array(&$activity, $this->user, &$saved))) {
|
||||
|
||||
if ($activity->verb != ActivityVerb::POST) {
|
||||
// TRANS: Client error displayed when not using the POST verb. Do not translate POST.
|
||||
$this->clientError(_('Can only handle POST activities.'));
|
||||
@ -405,6 +404,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
|
||||
|
||||
if (!empty($notice)) {
|
||||
// TRANS: Client error displayed when using another format than AtomPub.
|
||||
// TRANS: %s is the notice URI.
|
||||
$this->clientError(sprintf(_('Notice with URI "%s" already exists.'),
|
||||
$note->id));
|
||||
return;
|
||||
|
@ -142,7 +142,6 @@ class AtompubshowmembershipAction extends ApiAuthAction
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function deleteMembership()
|
||||
{
|
||||
if (empty($this->auth_user) ||
|
||||
|
@ -211,7 +211,7 @@ class AvatarsettingsAction extends AccountSettingsAction
|
||||
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->element('h2', null, _('Original'));
|
||||
$this->elementStart('div', array('id'=>'avatar_original_view'));
|
||||
$this->element('img', array('src' => Avatar::url($this->filedata['filename']),
|
||||
'width' => $this->filedata['width'],
|
||||
@ -224,7 +224,7 @@ class AvatarsettingsAction extends AccountSettingsAction
|
||||
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->element('h2', null, _('Preview'));
|
||||
$this->elementStart('div', array('id'=>'avatar_preview_view'));
|
||||
$this->element('img', array('src' => Avatar::url($this->filedata['filename']),
|
||||
'width' => AVATAR_PROFILE_SIZE,
|
||||
@ -341,8 +341,8 @@ 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'),
|
||||
// TRANS: Avatar upload form instruction after uploading a file.
|
||||
$this->showForm(_('Pick a square area of the image to be your avatar.'),
|
||||
true);
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ class BackupaccountAction extends Action
|
||||
function title()
|
||||
{
|
||||
// TRANS: Title for backup account page.
|
||||
return _("Backup account");
|
||||
return _('Backup account');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -249,6 +249,6 @@ class BackupAccountForm extends Form
|
||||
'submit',
|
||||
null,
|
||||
// TRANS: Title for submit button to backup an account on the backup account page.
|
||||
_('Backup your account'));
|
||||
_('Backup your account.'));
|
||||
}
|
||||
}
|
||||
|
@ -155,14 +155,14 @@ class BlockAction extends ProfileFormAction
|
||||
'submit form_action-primary',
|
||||
'no',
|
||||
// TRANS: Submit button title for 'No' when blocking a user.
|
||||
_('Do not block this user'));
|
||||
_('Do not block this user.'));
|
||||
$this->submit('form_action-yes',
|
||||
// TRANS: Button label on the user block form.
|
||||
_m('BUTTON','Yes'),
|
||||
'submit form_action-secondary',
|
||||
'yes',
|
||||
// TRANS: Submit button title for 'Yes' when blocking a user.
|
||||
_('Block this user'));
|
||||
_('Block this user.'));
|
||||
$this->elementEnd('fieldset');
|
||||
$this->elementEnd('form');
|
||||
}
|
||||
|
@ -158,13 +158,13 @@ class DeleteapplicationAction extends Action
|
||||
'submit form_action-primary',
|
||||
'no',
|
||||
// TRANS: Submit button title for 'No' when deleting an application.
|
||||
_('Do not delete this application'));
|
||||
_('Do not delete this application.'));
|
||||
$this->submit('form_action-yes',
|
||||
// TRANS: Button label on the delete application form.
|
||||
_m('BUTTON','Yes'),
|
||||
'submit form_action-secondary',
|
||||
// TRANS: Submit button title for 'Yes' when deleting an application.
|
||||
'yes', _('Delete this application'));
|
||||
'yes', _('Delete this application.'));
|
||||
$this->elementEnd('fieldset');
|
||||
$this->elementEnd('form');
|
||||
}
|
||||
|
@ -221,14 +221,14 @@ class DeletegroupAction extends RedirectingAction
|
||||
'submit form_action-primary',
|
||||
'no',
|
||||
// TRANS: Submit button title for 'No' when deleting a group.
|
||||
_('Do not delete this group'));
|
||||
_('Do not delete this group.'));
|
||||
$this->submit('form_action-yes',
|
||||
// TRANS: Button label on the delete group form.
|
||||
_m('BUTTON','Yes'),
|
||||
'submit form_action-secondary',
|
||||
'yes',
|
||||
// TRANS: Submit button title for 'Yes' when deleting a group.
|
||||
_('Delete this group'));
|
||||
_('Delete this group.'));
|
||||
$this->elementEnd('fieldset');
|
||||
$this->elementEnd('form');
|
||||
}
|
||||
|
@ -156,14 +156,14 @@ class DeletenoticeAction extends Action
|
||||
'submit form_action-primary',
|
||||
'no',
|
||||
// TRANS: Submit button title for 'No' when deleting a notice.
|
||||
_("Do not delete this notice"));
|
||||
_('Do not delete this notice.'));
|
||||
$this->submit('form_action-yes',
|
||||
// TRANS: Button label on the delete notice form.
|
||||
_m('BUTTON','Yes'),
|
||||
'submit form_action-secondary',
|
||||
'yes',
|
||||
// TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||
_('Delete this notice'));
|
||||
_('Delete this notice.'));
|
||||
$this->elementEnd('fieldset');
|
||||
$this->elementEnd('form');
|
||||
}
|
||||
|
@ -155,14 +155,14 @@ class DeleteuserAction extends ProfileFormAction
|
||||
'submit form_action-primary',
|
||||
'no',
|
||||
// TRANS: Submit button title for 'No' when deleting a user.
|
||||
_('Do not delete this user'));
|
||||
_('Do not delete this user.'));
|
||||
$this->submit('form_action-yes',
|
||||
// TRANS: Button label on the delete user form.
|
||||
_m('BUTTON','Yes'),
|
||||
'submit form_action-secondary',
|
||||
'yes',
|
||||
// TRANS: Submit button title for 'Yes' when deleting a user.
|
||||
_('Delete this user'));
|
||||
_('Delete this user.'));
|
||||
$this->elementEnd('fieldset');
|
||||
$this->elementEnd('form');
|
||||
}
|
||||
|
@ -336,7 +336,7 @@ class DesignadminpanelAction extends AdminPanelAction
|
||||
if (!in_array($values['theme'], Theme::listAvailable())) {
|
||||
// TRANS: Client error displayed when a theme is submitted through the form that is not in the theme list.
|
||||
// TRANS: %s is the chosen unavailable theme.
|
||||
$this->clientError(sprintf(_("Theme not available: %s."), $values['theme']));
|
||||
$this->clientError(sprintf(_('Theme not available: %s.'), $values['theme']));
|
||||
}
|
||||
}
|
||||
|
||||
@ -443,7 +443,7 @@ class DesignAdminPanelForm extends AdminForm
|
||||
// TRANS: Field label for StatusNet site logo.
|
||||
_('Site logo'),
|
||||
// TRANS: Title for field label for StatusNet site logo.
|
||||
'Logo for the site (full URL)');
|
||||
'Logo for the site (full URL).');
|
||||
$this->unli();
|
||||
|
||||
$this->li();
|
||||
@ -451,7 +451,7 @@ class DesignAdminPanelForm extends AdminForm
|
||||
// TRANS: Field label for SSL StatusNet site logo.
|
||||
_('SSL logo'),
|
||||
// TRANS: Title for field label for SSL StatusNet site logo.
|
||||
'Logo to show on SSL pages');
|
||||
'Logo to show on SSL pages.');
|
||||
$this->unli();
|
||||
|
||||
$this->out->elementEnd('ul');
|
||||
@ -717,7 +717,7 @@ class DesignAdminPanelForm extends AdminForm
|
||||
// TRANS: Button text for resetting theme settings.
|
||||
$this->out->submit('defaults', _m('BUTTON','Use defaults'), 'submit form_action-default',
|
||||
// TRANS: Title for button for resetting theme settings.
|
||||
'defaults', _('Restore default designs'));
|
||||
'defaults', _('Restore default designs.'));
|
||||
|
||||
$this->out->element('input', array('id' => 'settings_design_reset',
|
||||
'type' => 'reset',
|
||||
@ -725,7 +725,7 @@ class DesignAdminPanelForm extends AdminForm
|
||||
'value' => 'Reset',
|
||||
'class' => 'submit form_action-primary',
|
||||
// TRANS: Title for button for resetting theme settings.
|
||||
'title' => _('Reset back to default')));
|
||||
'title' => _('Reset back to default.')));
|
||||
|
||||
$this->out->submit('save',
|
||||
// TRANS: Button text for saving theme settings.
|
||||
@ -733,6 +733,6 @@ class DesignAdminPanelForm extends AdminForm
|
||||
'submit form_action-secondary',
|
||||
'save',
|
||||
// TRANS: Title for button for saving theme settings.
|
||||
_('Save design'));
|
||||
_('Save design.'));
|
||||
}
|
||||
}
|
||||
|
@ -527,7 +527,7 @@ class EmailsettingsAction extends AccountSettingsAction
|
||||
if (!$user->updateKeys($orig)) {
|
||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||
// TRANS: Server error thrown on database error removing incoming e-mail address.
|
||||
$this->serverError(_("Could not update user record."));
|
||||
$this->serverError(_('Could not update user record.'));
|
||||
}
|
||||
|
||||
// TRANS: Message given after successfully removing an incoming e-mail address.
|
||||
@ -551,7 +551,7 @@ class EmailsettingsAction extends AccountSettingsAction
|
||||
if (!$user->updateKeys($orig)) {
|
||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||
// TRANS: Server error thrown on database error adding incoming e-mail address.
|
||||
$this->serverError(_("Could not update user record."));
|
||||
$this->serverError(_('Could not update user record.'));
|
||||
}
|
||||
|
||||
// TRANS: Message given after successfully adding an incoming e-mail address.
|
||||
|
@ -92,7 +92,7 @@ class FavorAction extends Action
|
||||
$this->startHTML('text/xml;charset=utf-8');
|
||||
$this->elementStart('head');
|
||||
// TRANS: Page title for page on which favorite notices can be unfavourited.
|
||||
$this->element('title', null, _('Disfavor favorite'));
|
||||
$this->element('title', null, _('Disfavor favorite.'));
|
||||
$this->elementEnd('head');
|
||||
$this->elementStart('body');
|
||||
$disfavor = new DisFavorForm($this, $notice);
|
||||
|
@ -188,14 +188,14 @@ class GroupblockAction extends RedirectingAction
|
||||
'submit form_action-primary',
|
||||
'no',
|
||||
// TRANS: Submit button title for 'No' when blocking a user from a group.
|
||||
_('Do not block this user from this group'));
|
||||
_('Do not block this user from this group.'));
|
||||
$this->submit('form_action-yes',
|
||||
// TRANS: Button label on the form to block a user from a group.
|
||||
_m('BUTTON','Yes'),
|
||||
'submit form_action-secondary',
|
||||
'yes',
|
||||
// TRANS: Submit button title for 'Yes' when blocking a user from a group.
|
||||
_('Block this user from this group'));
|
||||
_('Block this user from this group.'));
|
||||
$this->elementEnd('fieldset');
|
||||
$this->elementEnd('form');
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ class GrouplogoAction extends GroupDesignAction
|
||||
$this->elementStart('li', array('id' => 'avatar_original',
|
||||
'class' => 'avatar_view'));
|
||||
// TRANS: Uploaded original file in group logo form.
|
||||
$this->element('h2', null, _("Original"));
|
||||
$this->element('h2', null, _('Original'));
|
||||
$this->elementStart('div', array('id'=>'avatar_original_view'));
|
||||
$this->element('img', array('src' => $this->group->original_logo,
|
||||
'alt' => $this->group->nickname));
|
||||
@ -216,7 +216,7 @@ class GrouplogoAction extends GroupDesignAction
|
||||
$this->elementStart('li', array('id' => 'avatar_preview',
|
||||
'class' => 'avatar_view'));
|
||||
// TRANS: Header for preview of to be displayed group logo.
|
||||
$this->element('h2', null, _("Preview"));
|
||||
$this->element('h2', null, _('Preview'));
|
||||
$this->elementStart('div', array('id'=>'avatar_preview_view'));
|
||||
$this->element('img', array('src' => $this->group->homepage_logo,
|
||||
'width' => AVATAR_PROFILE_SIZE,
|
||||
@ -267,7 +267,7 @@ class GrouplogoAction extends GroupDesignAction
|
||||
array('id' => 'avatar_original',
|
||||
'class' => 'avatar_view'));
|
||||
// TRANS: Header for originally uploaded file before a crop on the group logo page.
|
||||
$this->element('h2', null, _("Original"));
|
||||
$this->element('h2', null, _('Original'));
|
||||
$this->elementStart('div', array('id'=>'avatar_original_view'));
|
||||
$this->element('img', array('src' => Avatar::url($this->filedata['filename']),
|
||||
'width' => $this->filedata['width'],
|
||||
@ -280,7 +280,7 @@ class GrouplogoAction extends GroupDesignAction
|
||||
array('id' => 'avatar_preview',
|
||||
'class' => 'avatar_view'));
|
||||
// TRANS: Header for the cropped group logo on the group logo page.
|
||||
$this->element('h2', null, _("Preview"));
|
||||
$this->element('h2', null, _('Preview'));
|
||||
$this->elementStart('div', array('id'=>'avatar_preview_view'));
|
||||
$this->element('img', array('src' => Avatar::url($this->filedata['filename']),
|
||||
'width' => AVATAR_PROFILE_SIZE,
|
||||
|
@ -42,13 +42,11 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class LoginAction extends Action
|
||||
{
|
||||
/**
|
||||
* Has there been an error?
|
||||
*/
|
||||
|
||||
var $error = null;
|
||||
|
||||
/**
|
||||
@ -56,7 +54,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return boolean false
|
||||
*/
|
||||
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return false;
|
||||
@ -69,7 +66,6 @@ class LoginAction extends Action
|
||||
* @param $args
|
||||
* @return string title
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -93,7 +89,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
@ -117,7 +112,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function checkLogin($user_id=null, $token=null)
|
||||
{
|
||||
// XXX: login throttle
|
||||
@ -186,7 +180,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showForm($error=null)
|
||||
{
|
||||
$this->error = $error;
|
||||
@ -204,7 +197,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return string title of the page
|
||||
*/
|
||||
|
||||
function title()
|
||||
{
|
||||
return _('Login');
|
||||
@ -218,7 +210,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showPageNotice()
|
||||
{
|
||||
if ($this->error) {
|
||||
@ -238,7 +229,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showContent()
|
||||
{
|
||||
$this->elementStart('form', array('method' => 'post',
|
||||
@ -278,7 +268,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function getInstructions()
|
||||
{
|
||||
if (common_logged_in() && !common_is_real_login() &&
|
||||
@ -306,7 +295,6 @@ class LoginAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showLocalNav()
|
||||
{
|
||||
$nav = new LoginGroupNav($this);
|
||||
|
@ -66,6 +66,7 @@ class LogoutAction extends Action
|
||||
{
|
||||
parent::handle($args);
|
||||
if (!common_logged_in()) {
|
||||
// TRANS: Client error displayed trying to log out when not logged in.
|
||||
$this->clientError(_('Not logged in.'));
|
||||
} else {
|
||||
if (Event::handle('StartLogout', array($this))) {
|
||||
@ -83,5 +84,4 @@ class LogoutAction extends Action
|
||||
common_real_login(false); // not logged in
|
||||
common_forgetme(); // don't log back in!
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -48,7 +48,6 @@ require_once INSTALLDIR.'/lib/searchaction.php';
|
||||
*/
|
||||
class NoticesearchAction extends SearchAction
|
||||
{
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -65,6 +64,8 @@ class NoticesearchAction extends SearchAction
|
||||
*/
|
||||
function getInstructions()
|
||||
{
|
||||
// TRANS: Instructions for Notice search page.
|
||||
// TRANS: %%site.name%% is the name of the StatusNet site.
|
||||
return _('Search for notices on %%site.name%% by their contents. Separate search terms by spaces; they must be 3 characters or more.');
|
||||
}
|
||||
|
||||
@ -75,6 +76,7 @@ class NoticesearchAction extends SearchAction
|
||||
*/
|
||||
function title()
|
||||
{
|
||||
// TRANS: Title of the page where users can search for notices.
|
||||
return _('Text search');
|
||||
}
|
||||
|
||||
@ -88,6 +90,8 @@ class NoticesearchAction extends SearchAction
|
||||
|
||||
return array(new Feed(Feed::RSS1, common_local_url('noticesearchrss',
|
||||
array('q' => $q)),
|
||||
// TRANS: Test in RSS notice search.
|
||||
// TRANS: %1$s is the query, %2$s is the StatusNet site name.
|
||||
sprintf(_('Search results for "%1$s" on %2$s'),
|
||||
$q, common_config('site', 'name'))));
|
||||
}
|
||||
@ -114,13 +118,18 @@ class NoticesearchAction extends SearchAction
|
||||
$cnt = $notice->find();
|
||||
}
|
||||
if ($cnt === 0) {
|
||||
// TRANS: Text for notice search results is the query had no results.
|
||||
$this->element('p', 'error', _('No results.'));
|
||||
|
||||
$this->searchSuggestions($q);
|
||||
if (common_logged_in()) {
|
||||
// TRANS: Text for logged in users making a query for notices without results.
|
||||
// TRANS: This message contains a Markdown link.
|
||||
$message = sprintf(_('Be the first to [post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!'), urlencode($q));
|
||||
}
|
||||
else {
|
||||
// TRANS: Text for not logged in users making a query for notices without results.
|
||||
// TRANS: This message contains Markdown links.
|
||||
$message = sprintf(_('Why not [register an account](%%%%action.register%%%%) and be the first to [post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!'), urlencode($q));
|
||||
}
|
||||
|
||||
@ -203,4 +212,3 @@ class SearchNoticeListItem extends NoticeListItem {
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,6 @@ require_once INSTALLDIR.'/lib/rssaction.php';
|
||||
*/
|
||||
class NoticesearchrssAction extends Rss10Action
|
||||
{
|
||||
|
||||
function init()
|
||||
{
|
||||
return true;
|
||||
@ -63,7 +62,6 @@ class NoticesearchrssAction extends Rss10Action
|
||||
|
||||
function getNotices($limit=0)
|
||||
{
|
||||
|
||||
$q = $this->trimmed('q');
|
||||
$notices = array();
|
||||
|
||||
@ -93,9 +91,12 @@ class NoticesearchrssAction extends Rss10Action
|
||||
{
|
||||
$q = $this->trimmed('q');
|
||||
$c = array('url' => common_local_url('noticesearchrss', array('q' => $q)),
|
||||
// TRANS: RSS notice search feed title. %s is the query.
|
||||
'title' => sprintf(_('Updates with "%s"'), $q),
|
||||
'link' => common_local_url('noticesearch', array('q' => $q)),
|
||||
'description' => sprintf(_('Updates matching search term "%1$s" on %2$s!'),
|
||||
// TRANS: RSS notice search feed description.
|
||||
// TRANS: %1$s is the query, %2$s is the StatusNet site name.
|
||||
'description' => sprintf(_('Updates matching search term "%1$s" on %2$s.'),
|
||||
$q, common_config('site', 'name')));
|
||||
return $c;
|
||||
}
|
||||
|
@ -166,6 +166,5 @@ class OauthappssettingsAction extends SettingsAction
|
||||
'Try again, please.'));
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -64,7 +64,6 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction
|
||||
*
|
||||
* @return string Title of the page
|
||||
*/
|
||||
|
||||
function title()
|
||||
{
|
||||
// TRANS: Title for OAuth connection settings.
|
||||
@ -76,7 +75,6 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction
|
||||
*
|
||||
* @return instructions for use
|
||||
*/
|
||||
|
||||
function getInstructions()
|
||||
{
|
||||
// TRANS: Instructions for OAuth connection settings.
|
||||
|
@ -61,7 +61,7 @@ class OembedAction extends Action
|
||||
$proxy_args = $r->map($path);
|
||||
|
||||
if (!$proxy_args) {
|
||||
$this->serverError(_("$path not found."), 404);
|
||||
$this->serverError(sprintf(_('"%s" not found.'),$path), 404);
|
||||
}
|
||||
$oembed=array();
|
||||
$oembed['version']='1.0';
|
||||
@ -73,7 +73,7 @@ class OembedAction extends Action
|
||||
$id = $proxy_args['notice'];
|
||||
$notice = Notice::staticGet($id);
|
||||
if(empty($notice)){
|
||||
$this->serverError(_("Notice $id not found."), 404);
|
||||
$this->serverError(sprintf(_("Notice %s not found."),$id), 404);
|
||||
}
|
||||
$profile = $notice->getProfile();
|
||||
if (empty($profile)) {
|
||||
@ -92,7 +92,7 @@ class OembedAction extends Action
|
||||
$id = $proxy_args['attachment'];
|
||||
$attachment = File::staticGet($id);
|
||||
if(empty($attachment)){
|
||||
$this->serverError(_("Attachment $id not found."), 404);
|
||||
$this->serverError(sprintf(_('Attachment %s not found.'),$id), 404);
|
||||
}
|
||||
if(empty($attachment->filename) && $file_oembed = File_oembed::staticGet('file_id', $attachment->id)){
|
||||
// Proxy the existing oembed information
|
||||
@ -133,7 +133,7 @@ class OembedAction extends Action
|
||||
if($attachment->title) $oembed['title']=$attachment->title;
|
||||
break;
|
||||
default:
|
||||
$this->serverError(_("$path not supported for oembed requests."), 501);
|
||||
$this->serverError(sprintf(_('"%s" not supported for oembed requests.'),$path), 501);
|
||||
}
|
||||
switch($args['format']){
|
||||
case 'xml':
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Opensearch action class.
|
||||
*
|
||||
@ -61,8 +60,10 @@ class OpensearchAction extends Action
|
||||
$short_name = '';
|
||||
if ($type == 'people') {
|
||||
$type = 'peoplesearch';
|
||||
// TRANS: ShortName in the OpenSearch interface when trying to find users.
|
||||
$short_name = _('People Search');
|
||||
} else {
|
||||
// TRANS: ShortName in the OpenSearch interface when trying to find notices.
|
||||
$type = 'noticesearch';
|
||||
$short_name = _('Notice Search');
|
||||
}
|
||||
@ -89,4 +90,3 @@ class OpensearchAction extends Action
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -189,6 +189,7 @@ class OthersettingsAction extends AccountSettingsAction
|
||||
|
||||
$user->query('COMMIT');
|
||||
|
||||
// TRANS: Confirmation message after saving preferences.
|
||||
$this->showForm(_('Preferences saved.'), true);
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class OtpAction extends Action
|
||||
{
|
||||
var $user;
|
||||
@ -59,6 +58,7 @@ class OtpAction extends Action
|
||||
parent::prepare($args);
|
||||
|
||||
if (common_is_real_login()) {
|
||||
// TRANS: Client error displayed trying to use "one time password login" when already logged in.
|
||||
$this->clientError(_('Already logged in.'));
|
||||
return false;
|
||||
}
|
||||
@ -66,6 +66,7 @@ class OtpAction extends Action
|
||||
$id = $this->trimmed('user_id');
|
||||
|
||||
if (empty($id)) {
|
||||
// TRANS: Client error displayed trying to use "one time password login" without specifying a user.
|
||||
$this->clientError(_('No user ID specified.'));
|
||||
return false;
|
||||
}
|
||||
@ -73,6 +74,7 @@ class OtpAction extends Action
|
||||
$this->user = User::staticGet('id', $id);
|
||||
|
||||
if (empty($this->user)) {
|
||||
// TRANS: Client error displayed trying to use "one time password login" without using an existing user.
|
||||
$this->clientError(_('No such user.'));
|
||||
return false;
|
||||
}
|
||||
@ -80,6 +82,7 @@ class OtpAction extends Action
|
||||
$this->token = $this->trimmed('token');
|
||||
|
||||
if (empty($this->token)) {
|
||||
// TRANS: Client error displayed trying to use "one time password login" without specifying a login token.
|
||||
$this->clientError(_('No login token specified.'));
|
||||
return false;
|
||||
}
|
||||
@ -87,11 +90,13 @@ class OtpAction extends Action
|
||||
$this->lt = Login_token::staticGet('user_id', $id);
|
||||
|
||||
if (empty($this->lt)) {
|
||||
// TRANS: Client error displayed trying to use "one time password login" without requesting a login token.
|
||||
$this->clientError(_('No login token requested.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->lt->token != $this->token) {
|
||||
// TRANS: Client error displayed trying to use "one time password login" while specifying an invalid login token.
|
||||
$this->clientError(_('Invalid login token specified.'));
|
||||
return false;
|
||||
}
|
||||
@ -101,6 +106,7 @@ class OtpAction extends Action
|
||||
//delete the token as it is useless
|
||||
$this->lt->delete();
|
||||
$this->lt = null;
|
||||
// TRANS: Client error displayed trying to use "one time password login" while specifying an expired login token.
|
||||
$this->clientError(_('Login token expired.'));
|
||||
return false;
|
||||
}
|
||||
@ -117,6 +123,7 @@ class OtpAction extends Action
|
||||
|
||||
// success!
|
||||
if (!common_set_user($this->user)) {
|
||||
// TRANS: Server error displayed when a user object could not be created trying to login using "one time password login".
|
||||
$this->serverError(_('Error setting user. You are probably not authorized.'));
|
||||
return;
|
||||
}
|
||||
|
@ -26,7 +26,6 @@
|
||||
* @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);
|
||||
}
|
||||
@ -43,7 +42,6 @@ require_once INSTALLDIR.'/lib/mailbox.php';
|
||||
* @link http://status.net/
|
||||
* @see MailboxAction
|
||||
*/
|
||||
|
||||
class OutboxAction extends MailboxAction
|
||||
{
|
||||
/**
|
||||
@ -51,13 +49,15 @@ class OutboxAction extends MailboxAction
|
||||
*
|
||||
* @return string page title
|
||||
*/
|
||||
|
||||
function title()
|
||||
{
|
||||
if ($this->page > 1) {
|
||||
// TRANS: Title for outbox for any but the fist page.
|
||||
// TRANS: %1$s is the user nickname, %2$d is the page number.
|
||||
return sprintf(_('Outbox for %1$s - page %2$d'),
|
||||
$this->user->nickname, $page);
|
||||
} else {
|
||||
// TRANS: Title for first page of outbox.
|
||||
return sprintf(_('Outbox for %s'), $this->user->nickname);
|
||||
}
|
||||
}
|
||||
@ -71,7 +71,6 @@ class OutboxAction extends MailboxAction
|
||||
*
|
||||
* @see MailboxAction::getMessages()
|
||||
*/
|
||||
|
||||
function getMessages()
|
||||
{
|
||||
$message = new Message();
|
||||
@ -98,9 +97,9 @@ class OutboxAction extends MailboxAction
|
||||
*
|
||||
* @return string localised instructions for using the page
|
||||
*/
|
||||
|
||||
function getInstructions()
|
||||
{
|
||||
// TRANS: Instructions for outbox.
|
||||
return _('This is your outbox, which lists private messages you have sent.');
|
||||
}
|
||||
}
|
||||
|
@ -106,11 +106,11 @@ class PasswordsettingsAction extends AccountSettingsAction
|
||||
}
|
||||
$this->elementStart('li');
|
||||
$this->password('newpassword', _('New password'),
|
||||
_('6 or more characters'));
|
||||
_('6 or more characters.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$this->password('confirm', _('Confirm'),
|
||||
_('Same as password above'));
|
||||
_('Same as password above.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementEnd('ul');
|
||||
|
||||
@ -128,7 +128,6 @@ class PasswordsettingsAction extends AccountSettingsAction
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handlePost()
|
||||
{
|
||||
// CSRF protection
|
||||
@ -183,7 +182,7 @@ class PasswordsettingsAction extends AccountSettingsAction
|
||||
}
|
||||
|
||||
if (!$user->update($original)) {
|
||||
$this->serverError(_('Can\'t save new password.'));
|
||||
$this->serverError(_('Cannot save new password.'));
|
||||
return;
|
||||
}
|
||||
Event::handle('EndChangePassword', array($user));
|
||||
|
@ -49,12 +49,15 @@ class PeoplesearchAction extends SearchAction
|
||||
{
|
||||
function getInstructions()
|
||||
{
|
||||
// TRANS: Instructions for the "People search" page.
|
||||
// TRANS: %%site.name%% is the name of the StatusNet site.
|
||||
return _('Search for people on %%site.name%% by their name, location, or interests. ' .
|
||||
'Separate the terms by spaces; they must be 3 characters or more.');
|
||||
}
|
||||
|
||||
function title()
|
||||
{
|
||||
// TRANS: Title of a page where users can search for other users.
|
||||
return _('People search');
|
||||
}
|
||||
|
||||
@ -80,6 +83,7 @@ class PeoplesearchAction extends SearchAction
|
||||
$page, 'peoplesearch', array('q' => $q));
|
||||
|
||||
} else {
|
||||
// TRANS: Message on the "People search" page where a query has no results.
|
||||
$this->element('p', 'error', _('No results.'));
|
||||
$this->searchSuggestions($q);
|
||||
$profile->free();
|
||||
@ -136,4 +140,3 @@ class PeopleSearchResultItem extends ProfileListItem
|
||||
return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,14 +161,14 @@ class ProfilesettingsAction extends AccountSettingsAction
|
||||
$this->input('tags', _('Tags'),
|
||||
($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
|
||||
// TRANS: Tooltip for field label in form for profile settings.
|
||||
_('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
|
||||
_('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$language = common_language();
|
||||
// TRANS: Dropdownlist label in form for profile settings.
|
||||
$this->dropdown('language', _('Language'),
|
||||
// TRANS: Tooltip for dropdown list label in form for profile settings.
|
||||
get_nice_language_list(), _('Preferred language'),
|
||||
get_nice_language_list(), _('Preferred language.'),
|
||||
false, $language);
|
||||
$this->elementEnd('li');
|
||||
$timezone = common_timezone();
|
||||
@ -187,7 +187,7 @@ class ProfilesettingsAction extends AccountSettingsAction
|
||||
$this->checkbox('autosubscribe',
|
||||
// TRANS: Checkbox label in form for profile settings.
|
||||
_('Automatically subscribe to whoever '.
|
||||
'subscribes to me (best for non-humans)'),
|
||||
'subscribes to me (best for non-humans).'),
|
||||
($this->arg('autosubscribe')) ?
|
||||
$this->boolean('autosubscribe') : $user->autosubscribe);
|
||||
$this->elementEnd('li');
|
||||
@ -288,7 +288,7 @@ class ProfilesettingsAction extends AccountSettingsAction
|
||||
if (!common_valid_profile_tag($tag)) {
|
||||
// TRANS: Validation error in form for profile settings.
|
||||
// TRANS: %s is an invalid tag.
|
||||
$this->showForm(sprintf(_('Invalid tag: "%s"'), $tag));
|
||||
$this->showForm(sprintf(_('Invalid tag: "%s".'), $tag));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Public RSS action class.
|
||||
*
|
||||
@ -55,7 +54,6 @@ class PublicrssAction extends Rss10Action
|
||||
* @param array $args Arguments from $_REQUEST
|
||||
* @return boolean success
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -98,11 +96,14 @@ class PublicrssAction extends Rss10Action
|
||||
*/
|
||||
function getChannel()
|
||||
{
|
||||
$sitename = common_config('site', 'name');
|
||||
$c = array(
|
||||
'url' => common_local_url('publicrss')
|
||||
, 'title' => sprintf(_('%s public timeline'), common_config('site', 'name'))
|
||||
, 'link' => common_local_url('public')
|
||||
, 'description' => sprintf(_('%s updates from everyone!'), common_config('site', 'name')));
|
||||
'url' => common_local_url('publicrss'),
|
||||
// TRANS: Public RSS feed title. %s is the StatusNet site name.
|
||||
'title' => sprintf(_('%s public timeline'), $sitename),
|
||||
'link' => common_local_url('public'),
|
||||
// TRANS: Public RSS feed description. %s is the StatusNet site name.
|
||||
'description' => sprintf(_('%s updates from everyone.'), $sitename));
|
||||
return $c;
|
||||
}
|
||||
|
||||
@ -121,4 +122,3 @@ class PublicrssAction extends Rss10Action
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -226,7 +226,7 @@ class RecoverpasswordAction extends Action
|
||||
// TRANS: Title for password recovery page in email sent mode.
|
||||
case 'sent': return _('Password recovery requested');
|
||||
// TRANS: Title for password recovery page in password saved mode.
|
||||
case 'saved': return _('Password saved.');
|
||||
case 'saved': return _('Password saved');
|
||||
default:
|
||||
// TRANS: Title for password recovery page when an unknown action has been specified.
|
||||
return _('Unknown action');
|
||||
|
@ -40,25 +40,21 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class RegisterAction extends Action
|
||||
{
|
||||
/**
|
||||
* Has there been an error?
|
||||
*/
|
||||
|
||||
var $error = null;
|
||||
|
||||
/**
|
||||
* Have we registered?
|
||||
*/
|
||||
|
||||
var $registered = false;
|
||||
|
||||
/**
|
||||
* Are we processing an invite?
|
||||
*/
|
||||
|
||||
var $invite = null;
|
||||
|
||||
/**
|
||||
@ -68,7 +64,6 @@ class RegisterAction extends Action
|
||||
* @param $args
|
||||
* @return string title
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -112,7 +107,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return string title
|
||||
*/
|
||||
|
||||
function title()
|
||||
{
|
||||
if ($this->registered) {
|
||||
@ -133,7 +127,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
@ -163,7 +156,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function tryRegister()
|
||||
{
|
||||
if (Event::handle('StartRegistrationTry', array($this))) {
|
||||
@ -206,7 +198,7 @@ class RegisterAction extends Action
|
||||
$email = common_canonical_email($email);
|
||||
|
||||
if (!$this->boolean('license')) {
|
||||
$this->showForm(_('You can\'t register if you don\'t '.
|
||||
$this->showForm(_('You cannot register if you don\'t '.
|
||||
'agree to the license.'));
|
||||
} else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) {
|
||||
$this->showForm(_('Not a valid email address.'));
|
||||
@ -284,7 +276,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return boolean true if the nickname already exists
|
||||
*/
|
||||
|
||||
function nicknameExists($nickname)
|
||||
{
|
||||
$user = User::staticGet('nickname', $nickname);
|
||||
@ -300,7 +291,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return boolean true if the address already exists
|
||||
*/
|
||||
|
||||
function emailExists($email)
|
||||
{
|
||||
$email = common_canonical_email($email);
|
||||
@ -339,7 +329,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showPageNotice()
|
||||
{
|
||||
if ($this->registered) {
|
||||
@ -351,7 +340,7 @@ class RegisterAction extends Action
|
||||
common_markup_to_html(_('With this form you can create '.
|
||||
'a new account. ' .
|
||||
'You can then post notices and '.
|
||||
'link up to friends and colleagues. '));
|
||||
'link up to friends and colleagues.'));
|
||||
|
||||
$this->elementStart('div', 'instructions');
|
||||
$this->raw($instr);
|
||||
@ -368,7 +357,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showForm($error=null)
|
||||
{
|
||||
$this->error = $error;
|
||||
@ -383,7 +371,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showContent()
|
||||
{
|
||||
if ($this->registered) {
|
||||
@ -398,7 +385,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showFormContent()
|
||||
{
|
||||
$code = $this->trimmed('code');
|
||||
@ -444,23 +430,23 @@ class RegisterAction extends Action
|
||||
if ($this->invite && $this->invite->address_type == 'email') {
|
||||
$this->input('email', _('Email'), $this->invite->address,
|
||||
_('Used only for updates, announcements, '.
|
||||
'and password recovery'));
|
||||
'and password recovery.'));
|
||||
} else {
|
||||
$this->input('email', _('Email'), $this->trimmed('email'),
|
||||
_('Used only for updates, announcements, '.
|
||||
'and password recovery'));
|
||||
'and password recovery.'));
|
||||
}
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$this->input('fullname', _('Full name'),
|
||||
$this->trimmed('fullname'),
|
||||
_('Longer name, preferably your "real" name'));
|
||||
_('Longer name, preferably your "real" name.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$this->input('homepage', _('Homepage'),
|
||||
$this->trimmed('homepage'),
|
||||
_('URL of your homepage, blog, '.
|
||||
'or profile on another site'));
|
||||
'or profile on another site.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$maxBio = Profile::maxBio();
|
||||
@ -483,7 +469,7 @@ class RegisterAction extends Action
|
||||
$this->input('location', _('Location'),
|
||||
$this->trimmed('location'),
|
||||
_('Where you are, like "City, '.
|
||||
'State (or Region), Country"'));
|
||||
'State (or Region), Country".'));
|
||||
$this->elementEnd('li');
|
||||
Event::handle('EndRegistrationFormData', array($this));
|
||||
$this->elementStart('li', array('id' => 'settings_rememberme'));
|
||||
@ -519,6 +505,7 @@ class RegisterAction extends Action
|
||||
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(
|
||||
_('I understand that content and data of %1$s are private and confidential.'),
|
||||
common_config('site', 'name')));
|
||||
@ -562,7 +549,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showSuccess()
|
||||
{
|
||||
$this->registered = true;
|
||||
@ -576,7 +562,6 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showSuccessContent()
|
||||
{
|
||||
$nickname = $this->arg('nickname');
|
||||
@ -623,11 +608,9 @@ class RegisterAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showLocalNav()
|
||||
{
|
||||
$nav = new LoginGroupNav($this);
|
||||
$nav->show();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -126,11 +126,11 @@ class RemotesubscribeAction extends Action
|
||||
$this->elementStart('ul', 'form_data');
|
||||
$this->elementStart('li');
|
||||
$this->input('nickname', _('User nickname'), $this->nickname,
|
||||
_('Nickname of the user you want to follow'));
|
||||
_('Nickname of the user you want to follow.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$this->input('profile_url', _('Profile URL'), $this->profile_url,
|
||||
_('URL of your profile on another compatible microblogging service'));
|
||||
_('URL of your profile on another compatible microblogging service.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementEnd('ul');
|
||||
$this->submit('submit', _('Subscribe'));
|
||||
@ -155,7 +155,7 @@ class RemotesubscribeAction extends Action
|
||||
}
|
||||
|
||||
if (!common_valid_http_url($this->profile_url)) {
|
||||
$this->showForm(_('Invalid profile URL (bad format)'));
|
||||
$this->showForm(_('Invalid profile URL (bad format).'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ class RepeatAction extends Action
|
||||
}
|
||||
|
||||
if ($this->user->id == $this->notice->profile_id) {
|
||||
$this->clientError(_("You cannot repeat your own notice."));
|
||||
$this->clientError(_('You cannot repeat your own notice.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,6 @@ require_once(INSTALLDIR.'/lib/rssaction.php');
|
||||
|
||||
class RepliesrssAction extends Rss10Action
|
||||
{
|
||||
|
||||
var $user = null;
|
||||
|
||||
function prepare($args)
|
||||
@ -35,6 +34,7 @@ class RepliesrssAction extends Rss10Action
|
||||
$this->user = User::staticGet('nickname', $nickname);
|
||||
|
||||
if (!$this->user) {
|
||||
// TRANS: Client error displayed when providing a non-existing nickname in a RSS 1.0 action.
|
||||
$this->clientError(_('No such user.'));
|
||||
return false;
|
||||
} else {
|
||||
@ -45,7 +45,6 @@ class RepliesrssAction extends Rss10Action
|
||||
|
||||
function getNotices($limit=0)
|
||||
{
|
||||
|
||||
$user = $this->user;
|
||||
|
||||
$notice = $user->getReplies(0, ($limit == 0) ? 48 : $limit);
|
||||
@ -65,11 +64,14 @@ class RepliesrssAction extends Rss10Action
|
||||
$c = array('url' => common_local_url('repliesrss',
|
||||
array('nickname' =>
|
||||
$user->nickname)),
|
||||
// TRANS: RSS reply feed title. %s is a user nickname.
|
||||
'title' => sprintf(_("Replies to %s"), $user->nickname),
|
||||
'link' => common_local_url('replies',
|
||||
array('nickname' =>
|
||||
$user->nickname)),
|
||||
'description' => sprintf(_('Replies to %1$s on %2$s!'),
|
||||
// TRANS: RSS reply feed description.
|
||||
// TRANS: %1$s is a user nickname, %2$s is the StatusNet site name.
|
||||
'description' => sprintf(_('Replies to %1$s on %2$s.'),
|
||||
$user->nickname, common_config('site', 'name')));
|
||||
return $c;
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Request token action class.
|
||||
*
|
||||
@ -77,4 +76,3 @@ class RequesttokenAction extends Action
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -57,7 +57,7 @@ class RestoreaccountAction extends Action
|
||||
function title()
|
||||
{
|
||||
// TRANS: Page title for page where a user account can be restored from backup.
|
||||
return _("Restore account");
|
||||
return _('Restore account');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class RobotstxtAction extends Action
|
||||
{
|
||||
/**
|
||||
@ -53,7 +52,6 @@ class RobotstxtAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
if (Event::handle('StartRobotsTxt', array($this))) {
|
||||
@ -65,9 +63,7 @@ class RobotstxtAction extends Action
|
||||
if (common_config('site', 'private')) {
|
||||
|
||||
print "Disallow: /\n";
|
||||
|
||||
} else {
|
||||
|
||||
$disallow = common_config('robotstxt', 'disallow');
|
||||
|
||||
foreach ($disallow as $dir) {
|
||||
@ -92,7 +88,6 @@ class RobotstxtAction extends Action
|
||||
*
|
||||
* @return boolean is read only action?
|
||||
*/
|
||||
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return true;
|
||||
|
@ -68,13 +68,11 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class RsdAction extends Action
|
||||
{
|
||||
/**
|
||||
* Optional attribute for the personal rsd.xml file.
|
||||
*/
|
||||
|
||||
var $user = null;
|
||||
|
||||
/**
|
||||
@ -87,7 +85,6 @@ class RsdAction extends Action
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -132,7 +129,6 @@ class RsdAction extends Action
|
||||
*
|
||||
* @return nothing
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
header('Content-Type: application/rsd+xml');
|
||||
@ -195,7 +191,6 @@ class RsdAction extends Action
|
||||
*
|
||||
* @return string date of last change of this page
|
||||
*/
|
||||
|
||||
function lastModified()
|
||||
{
|
||||
if (!empty($this->user)) {
|
||||
@ -214,7 +209,6 @@ class RsdAction extends Action
|
||||
*
|
||||
* @return boolean true
|
||||
*/
|
||||
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return true;
|
||||
@ -228,7 +222,6 @@ class RsdAction extends Action
|
||||
*
|
||||
* @return string API root URI for this site
|
||||
*/
|
||||
|
||||
private function _apiRoot()
|
||||
{
|
||||
if (common_config('site', 'fancy')) {
|
||||
|
@ -40,19 +40,16 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class ShowApplicationAction extends OwnerDesignAction
|
||||
{
|
||||
/**
|
||||
* Application to show
|
||||
*/
|
||||
|
||||
var $application = null;
|
||||
|
||||
/**
|
||||
* User who owns the app
|
||||
*/
|
||||
|
||||
var $owner = null;
|
||||
|
||||
var $msg = null;
|
||||
@ -68,7 +65,6 @@ class ShowApplicationAction extends OwnerDesignAction
|
||||
*
|
||||
* @return success flag
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -105,7 +101,6 @@ class ShowApplicationAction extends OwnerDesignAction
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
@ -132,7 +127,6 @@ class ShowApplicationAction extends OwnerDesignAction
|
||||
*
|
||||
* @return string title of the page
|
||||
*/
|
||||
|
||||
function title()
|
||||
{
|
||||
if (!empty($this->application->name)) {
|
||||
@ -301,7 +295,6 @@ class ShowApplicationAction extends OwnerDesignAction
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showScripts()
|
||||
{
|
||||
parent::showScripts();
|
||||
@ -322,7 +315,6 @@ class ShowApplicationAction extends OwnerDesignAction
|
||||
* XXX: Should this be moved to its own page with a confirm?
|
||||
*
|
||||
*/
|
||||
|
||||
function resetKey()
|
||||
{
|
||||
$this->application->query('BEGIN');
|
||||
@ -382,5 +374,4 @@ class ShowApplicationAction extends OwnerDesignAction
|
||||
$this->msg = ('Consumer key and secret reset.');
|
||||
$this->showPage();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ class ShowstreamAction extends ProfileAction
|
||||
return sprintf(_('%1$s tagged %2$s'), $base, $this->tag);
|
||||
} else {
|
||||
// TRANS: Page title showing tagged notices in one user's stream.
|
||||
// TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number.
|
||||
// TRANS: %1$s is the username, %2$s is the hash tag, %3$d is the page number.
|
||||
return sprintf(_('%1$s tagged %2$s, page %3$d'), $base, $this->tag, $this->page);
|
||||
}
|
||||
} else {
|
||||
|
@ -98,7 +98,7 @@ class SitenoticeadminpanelAction extends AdminPanelAction
|
||||
|
||||
if (!$result) {
|
||||
// TRANS: Server error displayed when saving a site-wide notice was impossible.
|
||||
$this->ServerError(_("Unable to save site notice."));
|
||||
$this->ServerError(_('Unable to save site notice.'));
|
||||
}
|
||||
}
|
||||
|
||||
@ -198,7 +198,7 @@ class SiteNoticeAdminPanelForm extends AdminForm
|
||||
'submit',
|
||||
null,
|
||||
// TRANS: Title for button to save site notice in admin panel.
|
||||
_('Save site notice')
|
||||
_('Save site notice.')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ class SmssettingsAction extends ConnectSettingsAction
|
||||
($this->arg('sms')) ? $this->arg('sms') : null,
|
||||
// TRANS: SMS phone number input field instructions in SMS settings form.
|
||||
_('Phone number, no punctuation or spaces, '.
|
||||
'with area code'));
|
||||
'with area code.'));
|
||||
$this->elementEnd('li');
|
||||
$this->elementEnd('ul');
|
||||
$this->carrierSelect();
|
||||
@ -562,9 +562,11 @@ class SmssettingsAction extends ConnectSettingsAction
|
||||
|
||||
if (!$user->updateKeys($orig)) {
|
||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||
$this->serverError(_("Could not update user record."));
|
||||
// TRANS: Server error displayed when the user could not be updated in SMS settings.
|
||||
$this->serverError(_('Could not update user record.'));
|
||||
}
|
||||
|
||||
// TRANS: Confirmation text after updating SMS settings.
|
||||
$this->showForm(_('Incoming email address removed.'), true);
|
||||
}
|
||||
|
||||
@ -585,9 +587,11 @@ class SmssettingsAction extends ConnectSettingsAction
|
||||
|
||||
if (!$user->updateKeys($orig)) {
|
||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||
$this->serverError(_("Could not update user record."));
|
||||
// TRANS: Server error displayed when the user could not be updated in SMS settings.
|
||||
$this->serverError(_('Could not update user record.'));
|
||||
}
|
||||
|
||||
// TRANS: Confirmation text after updating SMS settings.
|
||||
$this->showForm(_('New incoming email address added.'), true);
|
||||
}
|
||||
}
|
||||
|
@ -53,7 +53,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class SubscribeAction extends Action
|
||||
{
|
||||
var $user;
|
||||
@ -66,7 +65,6 @@ class SubscribeAction extends Action
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
@ -74,6 +72,8 @@ class SubscribeAction extends Action
|
||||
// Only allow POST requests
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
||||
// TRANS: Client error displayed trying to perform any request method other than POST.
|
||||
// TRANS: Do not translate POST.
|
||||
$this->clientError(_('This action only accepts POST requests.'));
|
||||
return false;
|
||||
}
|
||||
@ -83,6 +83,7 @@ class SubscribeAction extends Action
|
||||
$token = $this->trimmed('token');
|
||||
|
||||
if (!$token || $token != common_session_token()) {
|
||||
// TRANS: Client error displayed when the session token is not okay.
|
||||
$this->clientError(_('There was a problem with your session token.'.
|
||||
' Try again, please.'));
|
||||
return false;
|
||||
@ -93,6 +94,7 @@ class SubscribeAction extends Action
|
||||
$this->user = common_current_user();
|
||||
|
||||
if (empty($this->user)) {
|
||||
// TRANS: Client error displayed trying to subscribe when not logged in.
|
||||
$this->clientError(_('Not logged in.'));
|
||||
return false;
|
||||
}
|
||||
@ -104,6 +106,7 @@ class SubscribeAction extends Action
|
||||
$this->other = Profile::staticGet('id', $other_id);
|
||||
|
||||
if (empty($this->other)) {
|
||||
// TRANS: Client error displayed trying to subscribe to a non-existing profile.
|
||||
$this->clientError(_('No such profile.'));
|
||||
return false;
|
||||
}
|
||||
@ -114,6 +117,7 @@ class SubscribeAction extends Action
|
||||
$omb01 = Remote_profile::staticGet('id', $other_id);
|
||||
|
||||
if (!empty($omb01)) {
|
||||
// TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
|
||||
$this->clientError(_('You cannot subscribe to an OMB 0.1'.
|
||||
' remote profile with this action.'));
|
||||
return false;
|
||||
@ -131,7 +135,6 @@ class SubscribeAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
// Throws exception on error
|
||||
@ -142,6 +145,7 @@ class SubscribeAction extends Action
|
||||
if ($this->boolean('ajax')) {
|
||||
$this->startHTML('text/xml;charset=utf-8');
|
||||
$this->elementStart('head');
|
||||
// TRANS: Page title when subscription succeeded.
|
||||
$this->element('title', null, _('Subscribed'));
|
||||
$this->elementEnd('head');
|
||||
$this->elementStart('body');
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
|
||||
|
||||
// @todo FIXME: documentation needed.
|
||||
class SupAction extends Action
|
||||
{
|
||||
function handle($args)
|
||||
|
@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class UnblockAction extends ProfileFormAction
|
||||
{
|
||||
function prepare($args)
|
||||
@ -56,6 +55,7 @@ class UnblockAction extends ProfileFormAction
|
||||
assert(!empty($cur)); // checked by parent
|
||||
|
||||
if (!$cur->hasBlocked($this->profile)) {
|
||||
// TRANS: Client error displayed when trying to unblock a non-blocked user.
|
||||
$this->clientError(_("You haven't blocked that user."));
|
||||
return false;
|
||||
}
|
||||
@ -68,7 +68,6 @@ class UnblockAction extends ProfileFormAction
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handlePost()
|
||||
{
|
||||
$cur = common_current_user();
|
||||
@ -83,6 +82,7 @@ class UnblockAction extends ProfileFormAction
|
||||
}
|
||||
|
||||
if (!$result) {
|
||||
// TRANS: Server error displayed when removing a user block.
|
||||
$this->serverError(_('Error removing the block.'));
|
||||
return;
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ class UseradminpanelAction extends AdminPanelAction
|
||||
sprintf(
|
||||
// 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.'),
|
||||
_('Invalid default subscripton: "%1$s" is not a user.'),
|
||||
$values['newuser']['default']
|
||||
)
|
||||
);
|
||||
@ -299,6 +299,6 @@ class UserAdminPanelForm extends AdminForm
|
||||
'submit',
|
||||
null,
|
||||
// TRANS: Title for button to save user settings in user admin panel.
|
||||
_('Save user settings'));
|
||||
_('Save user settings.'));
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ require_once INSTALLDIR.'/extlib/libomb/service_provider.php';
|
||||
require_once INSTALLDIR.'/extlib/libomb/profile.php';
|
||||
define('TIMESTAMP_THRESHOLD', 300);
|
||||
|
||||
// @todo FIXME: Missing documentation.
|
||||
class UserauthorizationAction extends Action
|
||||
{
|
||||
var $error;
|
||||
@ -69,6 +70,8 @@ class UserauthorizationAction extends Action
|
||||
$profile = $user->getProfile();
|
||||
if (!$profile) {
|
||||
common_log_db_error($user, 'SELECT', __FILE__);
|
||||
// TRANS: Server error displayed when trying to authorise a remote subscription request
|
||||
// TRANS: while the user has no profile.
|
||||
$this->serverError(_('User without matching profile.'));
|
||||
return;
|
||||
}
|
||||
@ -102,16 +105,18 @@ class UserauthorizationAction extends Action
|
||||
|
||||
function title()
|
||||
{
|
||||
// TRANS: Page title.
|
||||
return _('Authorize subscription');
|
||||
}
|
||||
|
||||
function showPageNotice()
|
||||
{
|
||||
// TRANS: Page notice on "Auhtorize subscription" page.
|
||||
$this->element('p', null, _('Please check these details to make sure '.
|
||||
'that you want to subscribe to this ' .
|
||||
'user’s notices. If you didn’t just ask ' .
|
||||
'to subscribe to someone’s notices, '.
|
||||
'click “Reject”.'));
|
||||
'click "Reject".'));
|
||||
}
|
||||
|
||||
function showContent()
|
||||
@ -129,6 +134,7 @@ class UserauthorizationAction extends Action
|
||||
|
||||
$this->elementStart('div', 'entity_profile vcard');
|
||||
$this->elementStart('dl', 'entity_depiction');
|
||||
// TRANS: DT element on Authorise Subscription page.
|
||||
$this->element('dt', null, _('Photo'));
|
||||
$this->elementStart('dd');
|
||||
if ($avatar) {
|
||||
@ -142,6 +148,7 @@ class UserauthorizationAction extends Action
|
||||
$this->elementEnd('dl');
|
||||
|
||||
$this->elementStart('dl', 'entity_nickname');
|
||||
// TRANS: DT element on Authorise Subscription page.
|
||||
$this->element('dt', null, _('Nickname'));
|
||||
$this->elementStart('dd');
|
||||
$hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
|
||||
@ -163,6 +170,7 @@ class UserauthorizationAction extends Action
|
||||
}
|
||||
if (!is_null($location)) {
|
||||
$this->elementStart('dl', 'entity_location');
|
||||
// TRANS: DT element on Authorise Subscription page.
|
||||
$this->element('dt', null, _('Location'));
|
||||
$this->elementStart('dd', 'label');
|
||||
$this->raw($location);
|
||||
@ -172,6 +180,7 @@ class UserauthorizationAction extends Action
|
||||
|
||||
if (!is_null($homepage)) {
|
||||
$this->elementStart('dl', 'entity_url');
|
||||
// TRANS: DT element on Authorise Subscription page.
|
||||
$this->element('dt', null, _('URL'));
|
||||
$this->elementStart('dd');
|
||||
$this->elementStart('a', array('href' => $homepage,
|
||||
@ -184,6 +193,7 @@ class UserauthorizationAction extends Action
|
||||
|
||||
if (!is_null($bio)) {
|
||||
$this->elementStart('dl', 'entity_note');
|
||||
// TRANS: DT element on Authorise Subscription page where bio is displayed.
|
||||
$this->element('dt', null, _('Note'));
|
||||
$this->elementStart('dd', 'note');
|
||||
$this->raw($bio);
|
||||
@ -193,6 +203,7 @@ class UserauthorizationAction extends Action
|
||||
|
||||
if (!is_null($license)) {
|
||||
$this->elementStart('dl', 'entity_license');
|
||||
// TRANS: DT element on Authorise Subscription page where license is displayed.
|
||||
$this->element('dt', null, _('License'));
|
||||
$this->elementStart('dd', 'license');
|
||||
$this->element('a', array('href' => $license,
|
||||
@ -214,10 +225,14 @@ class UserauthorizationAction extends Action
|
||||
'userauthorization')));
|
||||
$this->hidden('token', common_session_token());
|
||||
|
||||
$this->submit('accept', _('Accept'), 'submit accept', null,
|
||||
_('Subscribe to this user'));
|
||||
$this->submit('reject', _('Reject'), 'submit reject', null,
|
||||
_('Reject this subscription'));
|
||||
// TRANS: Button text on Authorise Subscription page.
|
||||
$this->submit('accept', _m('BUTTON','Accept'), 'submit accept', null,
|
||||
// TRANS: Title for button on Authorise Subscription page.
|
||||
_('Subscribe to this user.'));
|
||||
// TRANS: Button text on Authorise Subscription page.
|
||||
$this->submit('reject', _m('BUTTON','Reject'), 'submit reject', null,
|
||||
// TRANS: Title for button on Authorise Subscription page.
|
||||
_('Reject this subscription.'));
|
||||
$this->elementEnd('form');
|
||||
$this->elementEnd('li');
|
||||
$this->elementEnd('ul');
|
||||
@ -229,6 +244,7 @@ class UserauthorizationAction extends Action
|
||||
$srv = $this->getStoredParams();
|
||||
|
||||
if (is_null($srv)) {
|
||||
// TRANS: Client error displayed for an empty authorisation request.
|
||||
$this->clientError(_('No authorization request!'));
|
||||
return;
|
||||
}
|
||||
@ -251,7 +267,9 @@ class UserauthorizationAction extends Action
|
||||
|
||||
function showAcceptMessage($tok)
|
||||
{
|
||||
// TRANS: Accept message header from Authorise subscription page.
|
||||
common_show_header(_('Subscription authorized'));
|
||||
// TRANS: Accept message text from Authorise subscription page.
|
||||
$this->element('p', null,
|
||||
_('The subscription has been authorized, but no '.
|
||||
'callback URL was passed. Check with the site’s ' .
|
||||
@ -263,7 +281,9 @@ class UserauthorizationAction extends Action
|
||||
|
||||
function showRejectMessage()
|
||||
{
|
||||
// TRANS: Reject message header from Authorise subscription page.
|
||||
common_show_header(_('Subscription rejected'));
|
||||
// TRANS: Reject message from Authorise subscription page.
|
||||
$this->element('p', null,
|
||||
_('The subscription has been rejected, but no '.
|
||||
'callback URL was passed. Check with the site’s ' .
|
||||
@ -300,18 +320,24 @@ class UserauthorizationAction extends Action
|
||||
|
||||
$user = User::staticGet('uri', $listener);
|
||||
if (!$user) {
|
||||
throw new Exception(sprintf(_('Listener URI ‘%s’ not found here.'),
|
||||
// TRANS: Exception thrown when no valid user is found for an authorisation request.
|
||||
// TRANS: %s is a listener URI.
|
||||
throw new Exception(sprintf(_('Listener URI "%s" not found here.'),
|
||||
$listener));
|
||||
}
|
||||
|
||||
if (strlen($listenee) > 255) {
|
||||
throw new Exception(sprintf(_('Listenee URI ‘%s’ is too long.'),
|
||||
// TRANS: Exception thrown when listenee URI is too long for an authorisation request.
|
||||
// TRANS: %s is a listenee URI.
|
||||
throw new Exception(sprintf(_('Listenee URI "%s" is too long.'),
|
||||
$listenee));
|
||||
}
|
||||
|
||||
$other = User::staticGet('uri', $listenee);
|
||||
if ($other) {
|
||||
throw new Exception(sprintf(_('Listenee URI ‘%s’ is a local user.'),
|
||||
// TRANS: Exception thrown when listenee URI is a local user for an authorisation request.
|
||||
// TRANS: %s is a listenee URI.
|
||||
throw new Exception(sprintf(_('Listenee URI "%s" is a local user.'),
|
||||
$listenee));
|
||||
}
|
||||
|
||||
@ -321,12 +347,15 @@ class UserauthorizationAction extends Action
|
||||
$sub->subscriber = $user->id;
|
||||
$sub->subscribed = $remote->id;
|
||||
if ($sub->find(true)) {
|
||||
// TRANS: Exception thrown when already subscribed.
|
||||
throw new Exception('You are already subscribed to this user.');
|
||||
}
|
||||
}
|
||||
|
||||
if ($profile == common_profile_url($nickname)) {
|
||||
throw new Exception(sprintf(_('Profile URL ‘%s’ is for a local user.'),
|
||||
// TRANS: Exception thrown when profile URL is a local user for an authorisation request.
|
||||
// TRANS: %s is a profile URL.
|
||||
throw new Exception(sprintf(_('Profile URL "%s" is for a local user.'),
|
||||
$profile));
|
||||
|
||||
}
|
||||
@ -334,26 +363,34 @@ class UserauthorizationAction extends Action
|
||||
$license = $_GET['omb_listenee_license'];
|
||||
$site_license = common_config('license', 'url');
|
||||
if (!common_compatible_license($license, $site_license)) {
|
||||
throw new Exception(sprintf(_('Listenee stream license ‘%1$s’ is not ' .
|
||||
'compatible with site license ‘%2$s’.'),
|
||||
// TRANS: Exception thrown when licenses are not compatible for an authorisation request.
|
||||
// TRANS: %1$s is the license for the listenee, %2$s is the license for "this" StatusNet site.
|
||||
throw new Exception(sprintf(_('Listenee stream license "%1$s" is not ' .
|
||||
'compatible with site license "%2$s".'),
|
||||
$license, $site_license));
|
||||
}
|
||||
|
||||
$avatar = $_GET['omb_listenee_avatar'];
|
||||
if ($avatar) {
|
||||
if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
|
||||
throw new Exception(sprintf(_('Avatar URL ‘%s’ is not valid.'),
|
||||
// TRANS: Exception thrown when avatar URL is invalid for an authorisation request.
|
||||
// TRANS: %s is an avatar URL.
|
||||
throw new Exception(sprintf(_('Avatar URL "%s" is not valid.'),
|
||||
$avatar));
|
||||
}
|
||||
$size = @getimagesize($avatar);
|
||||
if (!$size) {
|
||||
throw new Exception(sprintf(_('Can’t read avatar URL ‘%s’.'),
|
||||
// TRANS: Exception thrown when avatar URL could not be read for an authorisation request.
|
||||
// TRANS: %s is an avatar URL.
|
||||
throw new Exception(sprintf(_('Cannot read avatar URL "%s".'),
|
||||
$avatar));
|
||||
}
|
||||
if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
|
||||
IMAGETYPE_PNG))) {
|
||||
// TRANS: Exception thrown when avatar URL return an invalid image type for an authorisation request.
|
||||
// TRANS: %s is an avatar URL.
|
||||
throw new Exception(sprintf(_('Wrong image type for avatar URL '.
|
||||
'‘%s’.'), $avatar));
|
||||
'"%s".'), $avatar));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* User by ID action class.
|
||||
*
|
||||
@ -67,10 +66,12 @@ class UserbyidAction extends Action
|
||||
parent::handle($args);
|
||||
$id = $this->trimmed('id');
|
||||
if (!$id) {
|
||||
// TRANS: Client error displayed trying to find a user by ID without providing an ID.
|
||||
$this->clientError(_('No ID.'));
|
||||
}
|
||||
$user = User::staticGet($id);
|
||||
if (!$user) {
|
||||
// TRANS: Client error displayed trying to find a user by ID for a non-existing ID.
|
||||
$this->clientError(_('No such user.'));
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ class UserxrdAction extends XrdAction
|
||||
}
|
||||
|
||||
if (!$this->user) {
|
||||
$this->clientError(_m('No such user.'), 404);
|
||||
$this->clientError(_('No such user.'), 404);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* XRDS for OpenMicroBlogging
|
||||
*
|
||||
@ -68,6 +67,7 @@ class XrdsAction extends Action
|
||||
$nickname = $this->trimmed('nickname');
|
||||
$this->user = User::staticGet('nickname', $nickname);
|
||||
if (!$this->user) {
|
||||
// TRANS: Client error displayed providing a non-existing nickname.
|
||||
$this->clientError(_('No such user.'));
|
||||
return;
|
||||
}
|
||||
@ -135,7 +135,5 @@ class XrdsAction extends Action
|
||||
$xrdsOutputter->elementEnd('XRD');
|
||||
|
||||
$xrdsOutputter->endXRDS();
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -162,6 +162,14 @@ class Plugin
|
||||
$path = common_config('site', 'path') . '/plugins/';
|
||||
}
|
||||
|
||||
if ($path[strlen($path)-1] != '/') {
|
||||
$path .= '/';
|
||||
}
|
||||
|
||||
if ($path[0] != '/') {
|
||||
$path = '/'.$path;
|
||||
}
|
||||
|
||||
$protocol = ($isHTTPS) ? 'https' : 'http';
|
||||
|
||||
return $protocol.'://'.$server.$path.$plugin.'/'.$relative;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
83
plugins/BitlyUrl/locale/ca/LC_MESSAGES/BitlyUrl.po
Normal file
83
plugins/BitlyUrl/locale/ca/LC_MESSAGES/BitlyUrl.po
Normal file
@ -0,0 +1,83 @@
|
||||
# Translation of StatusNet - BitlyUrl to Catalan (Català)
|
||||
# Exported from translatewiki.net
|
||||
#
|
||||
# Author: Toniher
|
||||
# --
|
||||
# This file is distributed under the same license as the StatusNet package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: StatusNet - BitlyUrl\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-02-17 10:25+0000\n"
|
||||
"PO-Revision-Date: 2011-02-17 10:27:59+0000\n"
|
||||
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-POT-Import-Date: 2011-01-29 22:19:24+0000\n"
|
||||
"X-Generator: MediaWiki 1.18alpha (r82325); Translate extension (2011-02-01)\n"
|
||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||
"X-Language-Code: ca\n"
|
||||
"X-Message-Group: #out-statusnet-plugin-bitlyurl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: BitlyUrlPlugin.php:48
|
||||
msgid "You must specify a serviceUrl for bit.ly shortening."
|
||||
msgstr "Heu d'especificar un URL de servei per a l'escurçament de bit.ly"
|
||||
|
||||
#: BitlyUrlPlugin.php:175
|
||||
#, php-format
|
||||
msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service."
|
||||
msgstr ""
|
||||
"Fa servir el servei d'escurçament d'URL <a href=\"http://%1$s/\">%1$s</a>."
|
||||
|
||||
#: BitlyUrlPlugin.php:216
|
||||
msgid "bit.ly"
|
||||
msgstr "bit.ly"
|
||||
|
||||
#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54
|
||||
msgid "bit.ly URL shortening"
|
||||
msgstr "Escurçament d'URL bit.ly"
|
||||
|
||||
#: bitlyadminpanelaction.php:65
|
||||
msgid ""
|
||||
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
|
||||
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
|
||||
"and allow you to use bit.ly's tracking features and custom domains."
|
||||
msgstr ""
|
||||
"L'escurçament d'URL amb bit.ly necessita [un compte i clau API de bit.ly]"
|
||||
"(http://bit.ly/a/your_api_key). Això verifica que és un compte autoritzat, i "
|
||||
"permet fer servir les característiques de seguiment de bit.ly i els dominis "
|
||||
"personalitzats."
|
||||
|
||||
#: bitlyadminpanelaction.php:132
|
||||
msgid "Invalid login. Max length is 255 characters."
|
||||
msgstr "Inici de sessió no vàlid. La longitud màxima és de 255 caràcters."
|
||||
|
||||
#: bitlyadminpanelaction.php:138
|
||||
msgid "Invalid API key. Max length is 255 characters."
|
||||
msgstr "Clau API no vàlida. La longitud màxima és de 255 caràcters."
|
||||
|
||||
#: bitlyadminpanelaction.php:191
|
||||
msgid "Credentials"
|
||||
msgstr "Credencials"
|
||||
|
||||
#: bitlyadminpanelaction.php:199
|
||||
msgid "Leave these empty to use global default credentials."
|
||||
msgstr "Deixa-ho en blanc i fes servir les credencials per defecte globals."
|
||||
|
||||
#: bitlyadminpanelaction.php:202
|
||||
msgid "If you leave these empty, bit.ly will be unavailable to users."
|
||||
msgstr "Si ho deixeu en blanc, el bit.ly no serà disponible per als usuaris."
|
||||
|
||||
#: bitlyadminpanelaction.php:209
|
||||
msgid "Login name"
|
||||
msgstr "Nom de sessió"
|
||||
|
||||
#: bitlyadminpanelaction.php:218
|
||||
msgid "API key"
|
||||
msgstr "Clau API"
|
||||
|
||||
#: bitlyadminpanelaction.php:236
|
||||
msgid "Save bit.ly settings"
|
||||
msgstr "Desa els paràmetres de bit.ly"
|
@ -0,0 +1,30 @@
|
||||
# Translation of StatusNet - EmailAuthentication to Catalan (Català)
|
||||
# Exported from translatewiki.net
|
||||
#
|
||||
# Author: Toniher
|
||||
# --
|
||||
# This file is distributed under the same license as the StatusNet package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: StatusNet - EmailAuthentication\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-02-17 10:25+0000\n"
|
||||
"PO-Revision-Date: 2011-02-17 10:28:10+0000\n"
|
||||
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-POT-Import-Date: 2011-01-29 22:24:10+0000\n"
|
||||
"X-Generator: MediaWiki 1.18alpha (r82325); Translate extension (2011-02-01)\n"
|
||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||
"X-Language-Code: ca\n"
|
||||
"X-Message-Group: #out-statusnet-plugin-emailauthentication\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: EmailAuthenticationPlugin.php:60
|
||||
msgid ""
|
||||
"The Email Authentication plugin allows users to login using their email "
|
||||
"address."
|
||||
msgstr ""
|
||||
"El connector d'autenticació per correu electrònic permet als usuaris a "
|
||||
"iniciar una sessió fent servir l'adreça electrònica."
|
26
plugins/EmailSummary/locale/ca/LC_MESSAGES/EmailSummary.po
Normal file
26
plugins/EmailSummary/locale/ca/LC_MESSAGES/EmailSummary.po
Normal file
@ -0,0 +1,26 @@
|
||||
# Translation of StatusNet - EmailSummary to Catalan (Català)
|
||||
# Exported from translatewiki.net
|
||||
#
|
||||
# Author: Toniher
|
||||
# --
|
||||
# This file is distributed under the same license as the StatusNet package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: StatusNet - EmailSummary\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-02-17 10:25+0000\n"
|
||||
"PO-Revision-Date: 2011-02-17 10:28:10+0000\n"
|
||||
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-POT-Import-Date: 2011-02-14 17:19:17+0000\n"
|
||||
"X-Generator: MediaWiki 1.18alpha (r82325); Translate extension (2011-02-01)\n"
|
||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||
"X-Language-Code: ca\n"
|
||||
"X-Message-Group: #out-statusnet-plugin-emailsummary\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: EmailSummaryPlugin.php:120
|
||||
msgid "Send an email summary of the inbox to users."
|
||||
msgstr "Envia un resum de correu a la safata d'entrada dels usuaris."
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/*
|
||||
<?php
|
||||
/*
|
||||
* StatusNet - a distributed open-source microblogging tool
|
||||
* Copyright (C) 2010, StatusNet, Inc.
|
||||
*
|
||||
@ -20,8 +20,8 @@
|
||||
|
||||
define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..'));
|
||||
|
||||
$shortoptions = 'i:n:a';
|
||||
$longoptions = array('id=', 'nickname=', 'all');
|
||||
$shortoptions = 'i:n:au';
|
||||
$longoptions = array('id=', 'nickname=', 'all', 'universe');
|
||||
|
||||
$helptext = <<<END_OF_SENDEMAILSUMMARY_HELP
|
||||
sendemailsummary.php [options]
|
||||
@ -30,18 +30,30 @@ Send an email summary of the inbox to users
|
||||
-i --id ID of user to send summary to
|
||||
-n --nickname nickname of the user to send summary to
|
||||
-a --all send summary to all users
|
||||
-u --universe send summary to all users on all sites
|
||||
|
||||
END_OF_SENDEMAILSUMMARY_HELP;
|
||||
|
||||
require_once INSTALLDIR.'/scripts/commandline.inc';
|
||||
|
||||
$qm = QueueManager::get();
|
||||
|
||||
// enqueue summary for user or all users
|
||||
|
||||
try {
|
||||
if (have_option('u', 'universe')) {
|
||||
$sn = new Status_network();
|
||||
if ($sn->find()) {
|
||||
while ($sn->fetch()) {
|
||||
$server = $sn->getServerName();
|
||||
StatusNet::init($server);
|
||||
// Different queue manager, maybe!
|
||||
$qm = QueueManager::get();
|
||||
$qm->enqueue(null, 'sitesum');
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$qm = QueueManager::get();
|
||||
// enqueue summary for user or all users
|
||||
try {
|
||||
$user = getUser();
|
||||
$qm->enqueue($user->id, 'usersum');
|
||||
} catch (NoUserArgumentException $nuae) {
|
||||
} catch (NoUserArgumentException $nuae) {
|
||||
$qm->enqueue(null, 'sitesum');
|
||||
}
|
||||
}
|
||||
|
75
plugins/Gravatar/locale/ca/LC_MESSAGES/Gravatar.po
Normal file
75
plugins/Gravatar/locale/ca/LC_MESSAGES/Gravatar.po
Normal file
@ -0,0 +1,75 @@
|
||||
# Translation of StatusNet - Gravatar to Catalan (Català)
|
||||
# Exported from translatewiki.net
|
||||
#
|
||||
# Author: Toniher
|
||||
# --
|
||||
# This file is distributed under the same license as the StatusNet package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: StatusNet - Gravatar\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-02-17 10:25+0000\n"
|
||||
"PO-Revision-Date: 2011-02-17 10:28:24+0000\n"
|
||||
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-POT-Import-Date: 2011-01-29 22:24:27+0000\n"
|
||||
"X-Generator: MediaWiki 1.18alpha (r82325); Translate extension (2011-02-01)\n"
|
||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||
"X-Language-Code: ca\n"
|
||||
"X-Message-Group: #out-statusnet-plugin-gravatar\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: GravatarPlugin.php:60
|
||||
msgid "Set Gravatar"
|
||||
msgstr "Defineix un Gravatar"
|
||||
|
||||
#: GravatarPlugin.php:63
|
||||
msgid "If you want to use your Gravatar image, click \"Add\"."
|
||||
msgstr "Si voleu utilitzar la vostra imatge del Gravatar, feu clic a «Afegeix»."
|
||||
|
||||
#: GravatarPlugin.php:68
|
||||
msgid "Add"
|
||||
msgstr "Afegeix"
|
||||
|
||||
#: GravatarPlugin.php:78
|
||||
msgid "Remove Gravatar"
|
||||
msgstr "Suprimeix el Gravatar"
|
||||
|
||||
#: GravatarPlugin.php:81
|
||||
msgid "If you want to remove your Gravatar image, click \"Remove\"."
|
||||
msgstr ""
|
||||
"Si voleu suprimir la vostra imatge del Gravatar, feu clic a «Suprimeix»."
|
||||
|
||||
#: GravatarPlugin.php:86
|
||||
msgid "Remove"
|
||||
msgstr "Suprimeix"
|
||||
|
||||
#: GravatarPlugin.php:91
|
||||
msgid "To use a Gravatar first enter in an email address."
|
||||
msgstr "Per fer servir un Gravatar, primer introduïu una adreça electrònica."
|
||||
|
||||
#: GravatarPlugin.php:140
|
||||
msgid "You do not have an email address set in your profile."
|
||||
msgstr "No teniu una adreça electrònica definida en el vostre perfil."
|
||||
|
||||
#: GravatarPlugin.php:158
|
||||
msgid "Failed to save Gravatar to the database."
|
||||
msgstr "No s'ha pogut desar el Gravatar a la base de dades."
|
||||
|
||||
#: GravatarPlugin.php:162
|
||||
msgid "Gravatar added."
|
||||
msgstr "S'ha afegit el Gravatar."
|
||||
|
||||
#: GravatarPlugin.php:180
|
||||
msgid "Gravatar removed."
|
||||
msgstr "S'ha suprimit el Gravatar."
|
||||
|
||||
#: GravatarPlugin.php:200
|
||||
msgid ""
|
||||
"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar."
|
||||
"com/\">Gravatar</a> with StatusNet."
|
||||
msgstr ""
|
||||
"El connector del Gravatar permet als usuaris fer servir llur <a href="
|
||||
"\"http://www.gravatar.com/\">Gravatar</a> amb l'StatusNet."
|
@ -1,6 +1,7 @@
|
||||
# Translation of StatusNet - OpenX to German (Deutsch)
|
||||
# Exported from translatewiki.net
|
||||
#
|
||||
# Author: Fujnky
|
||||
# Author: The Evil IP address
|
||||
# --
|
||||
# This file is distributed under the same license as the StatusNet package.
|
||||
@ -9,13 +10,13 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: StatusNet - OpenX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
|
||||
"PO-Revision-Date: 2011-01-29 21:50:47+0000\n"
|
||||
"POT-Creation-Date: 2011-02-17 10:25+0000\n"
|
||||
"PO-Revision-Date: 2011-02-17 10:28:59+0000\n"
|
||||
"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n"
|
||||
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
|
||||
"X-POT-Import-Date: 2011-01-29 22:28:00+0000\n"
|
||||
"X-Generator: MediaWiki 1.18alpha (r82325); Translate extension (2011-02-01)\n"
|
||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||
"X-Language-Code: de\n"
|
||||
"X-Message-Group: #out-statusnet-plugin-openx\n"
|
||||
@ -80,17 +81,17 @@ msgstr ""
|
||||
#. TRANS: Form label in OpenX admin panel. Refers to advertisement format.
|
||||
#: openxadminpanel.php:191
|
||||
msgid "Leaderboard"
|
||||
msgstr ""
|
||||
msgstr "Rangliste"
|
||||
|
||||
#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format.
|
||||
#: openxadminpanel.php:193
|
||||
msgid "Leaderboard zone"
|
||||
msgstr ""
|
||||
msgstr "Ranglisten-Zone"
|
||||
|
||||
#. TRANS: Form label in OpenX admin panel. Refers to advertisement format.
|
||||
#: openxadminpanel.php:199
|
||||
msgid "Skyscraper"
|
||||
msgstr ""
|
||||
msgstr "Skyscraper"
|
||||
|
||||
#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format.
|
||||
#: openxadminpanel.php:201
|
||||
|
Loading…
Reference in New Issue
Block a user