* fix some i18n and L10n issues
* update/add translator documentation * remove superfluous whitespace
This commit is contained in:
parent
c0bb1a5798
commit
7db24c32d6
@ -331,8 +331,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
|
||||
if (Event::handle('StartAtomPubNewActivity', array(&$activity, $this->user, &$saved))) {
|
||||
|
||||
if ($activity->verb != ActivityVerb::POST) {
|
||||
// TRANS: Client error displayed when not using the POST verb.
|
||||
// TRANS: Do not translate POST.
|
||||
// TRANS: Client error displayed when not using the POST verb. Do not translate POST.
|
||||
$this->clientError(_('Can only handle POST activities.'));
|
||||
return;
|
||||
}
|
||||
|
@ -244,8 +244,7 @@ class AtompubsubscriptionfeedAction extends ApiAuthAction
|
||||
if (Event::handle('StartAtomPubNewActivity', array(&$activity))) {
|
||||
|
||||
if ($activity->verb != ActivityVerb::FOLLOW) {
|
||||
// TRANS: Client error displayed when not using the POST verb.
|
||||
// TRANS: Do not translate POST.
|
||||
// TRANS: Client error displayed when not using the follow verb.
|
||||
$this->clientError(_('Can only handle Follow activities.'));
|
||||
return;
|
||||
}
|
||||
@ -264,13 +263,16 @@ class AtompubsubscriptionfeedAction extends ApiAuthAction
|
||||
|
||||
if (empty($profile)) {
|
||||
// TRANS: Client exception thrown when subscribing to a non-existing profile.
|
||||
// TRANS: %s is the unknown profile ID.
|
||||
$this->clientError(sprintf(_('Unknown profile %s.'), $person->id));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Subscription::exists($this->_profile, $profile)) {
|
||||
// 409 Conflict
|
||||
$this->clientError(sprintf(_('Already subscribed to %s'),
|
||||
// TRANS: Client error displayed trying to subscribe to an already subscribed profile.
|
||||
// TRANS: %s is the profile the user already has a subscription on.
|
||||
$this->clientError(sprintf(_('Already subscribed to %s.'),
|
||||
$person->id),
|
||||
409);
|
||||
return;
|
||||
|
@ -183,11 +183,12 @@ class NewgroupAction extends Action
|
||||
foreach ($aliases as $alias) {
|
||||
if (!Nickname::isValid($alias)) {
|
||||
// TRANS: Group create form validation error.
|
||||
// TRANS: %s is the invalid alias.
|
||||
$this->showForm(sprintf(_('Invalid alias: "%s"'), $alias));
|
||||
return;
|
||||
}
|
||||
if ($this->nicknameExists($alias)) {
|
||||
// TRANS: Group create form validation error.
|
||||
// TRANS: Group create form validation error. %s is the already used alias.
|
||||
$this->showForm(sprintf(_('Alias "%s" already in use. Try another one.'),
|
||||
$alias));
|
||||
return;
|
||||
@ -195,7 +196,7 @@ class NewgroupAction extends Action
|
||||
// XXX assumes alphanum nicknames
|
||||
if (strcmp($alias, $nickname) == 0) {
|
||||
// TRANS: Group create form validation error.
|
||||
$this->showForm(_('Alias can\'t be the same as nickname.'));
|
||||
$this->showForm(_('Alias cannot be the same as nickname.'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -167,15 +167,14 @@ class SubscriptionsAction extends GalleryAction
|
||||
*
|
||||
* @return array of Feed objects
|
||||
*/
|
||||
|
||||
function getFeeds()
|
||||
{
|
||||
return array(new Feed(Feed::ATOM,
|
||||
common_local_url('AtomPubSubscriptionFeed',
|
||||
array('subscriber' => $this->profile->id)),
|
||||
// TRANS: Atom feed title. %s is a profile nickname.
|
||||
sprintf(_('Subscription feed for %s (Atom)'),
|
||||
$this->profile->nickname)));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -261,5 +260,4 @@ class SubscriptionsListItem extends SubscriptionListItem
|
||||
$this->out->elementEnd('form');
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class AccountMover extends QueueHandler
|
||||
{
|
||||
function transport()
|
||||
@ -61,7 +60,9 @@ class AccountMover extends QueueHandler
|
||||
$oprofile = Ostatus_profile::ensureProfileURI($remote);
|
||||
|
||||
if (empty($oprofile)) {
|
||||
throw new Exception("Can't locate account {$remote}");
|
||||
// TRANS: Exception thrown when an account could not be located when it should be moved.
|
||||
// TRANS: %s is the remote site.
|
||||
throw new Exception(sprintf(_("Cannot locate account %s."),$remote));
|
||||
}
|
||||
|
||||
list($svcDocUrl, $username) = self::getServiceDocument($remote);
|
||||
@ -100,7 +101,9 @@ class AccountMover extends QueueHandler
|
||||
$xrd = $discovery->lookup($remote);
|
||||
|
||||
if (empty($xrd)) {
|
||||
throw new Exception("Can't find XRD for $remote");
|
||||
// TRANS: Exception thrown when a service document could not be located account move.
|
||||
// TRANS: %s is the remote site.
|
||||
throw new Exception(sprintf(_("Cannot find XRD for %s."),$remote));
|
||||
}
|
||||
|
||||
$svcDocUrl = null;
|
||||
@ -123,7 +126,9 @@ class AccountMover extends QueueHandler
|
||||
}
|
||||
|
||||
if (empty($svcDocUrl)) {
|
||||
throw new Exception("No AtomPub API service for $remote.");
|
||||
// TRANS: Exception thrown when an account could not be located when it should be moved.
|
||||
// TRANS: %s is the remote site.
|
||||
throw new Exception(sprintf(_("No AtomPub API service for %s."),$remote));
|
||||
}
|
||||
|
||||
return array($svcDocUrl, $username);
|
||||
@ -139,7 +144,6 @@ class AccountMover extends QueueHandler
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
protected function log($level, $message)
|
||||
{
|
||||
common_log($level, "AccountMover: " . $message);
|
||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class ActivityMover extends QueueHandler
|
||||
{
|
||||
function transport()
|
||||
@ -82,7 +81,7 @@ class ActivityMover extends QueueHandler
|
||||
function moveActivity($act, $sink, $user, $remote)
|
||||
{
|
||||
if (empty($user)) {
|
||||
throw new Exception("No such user {$act->actor->id}");
|
||||
throw new Exception(sprintf(_("No such user %s."),$act->actor->id));
|
||||
}
|
||||
|
||||
switch ($act->verb) {
|
||||
@ -160,7 +159,6 @@ class ActivityMover extends QueueHandler
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
protected function log($level, $message)
|
||||
{
|
||||
common_log($level, "ActivityMover: " . $message);
|
||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class ActivitySink
|
||||
{
|
||||
protected $svcDocUrl = null;
|
||||
@ -104,6 +103,7 @@ class ActivitySink
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$takesEntries) {
|
||||
continue;
|
||||
}
|
||||
@ -158,12 +158,18 @@ class ActivitySink
|
||||
if ($status >= 200 && $status < 300) {
|
||||
return true;
|
||||
} else if ($status >= 400 && $status < 500) {
|
||||
throw new ClientException("{$url} {$status} {$reason}");
|
||||
// TRANS: Client exception thrown when post to collection fails with a 400 status.
|
||||
// TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
|
||||
throw new ClientException(sprintf(_m('URLSTATUSREASON','%1$s %2$s %3$s'), $url, $status, $reason));
|
||||
} else if ($status >= 500 && $status < 600) {
|
||||
throw new ServerException("{$url} {$status} {$reason}");
|
||||
// TRANS: Server exception thrown when post to collection fails with a 500 status.
|
||||
// TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
|
||||
throw new ServerException(sprintf(_m('URLSTATUSREASON','%1$s %2$s %3$s'), $url, $status, $reason));
|
||||
} else {
|
||||
// That's unexpected.
|
||||
throw new Exception("{$url} {$status} {$reason}");
|
||||
// TRANS: Exception thrown when post to collection fails with a status that is not handled.
|
||||
// TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
|
||||
throw new Exception(sprintf(_m('URLSTATUSREASON','%1$s %2$s %3$s'), $url, $status, $reason));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,6 @@ if (!defined('STATUSNET')) {
|
||||
*
|
||||
* @see http://groups.google.com/group/webfinger/browse_thread/thread/9f3d93a479e91bbf
|
||||
*/
|
||||
|
||||
class Discovery
|
||||
{
|
||||
const LRDD_REL = 'lrdd';
|
||||
@ -77,7 +76,6 @@ class Discovery
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function registerMethod($class)
|
||||
{
|
||||
$this->methods[] = $class;
|
||||
@ -91,7 +89,6 @@ class Discovery
|
||||
*
|
||||
* @return string normalized acct: or http(s)?: URI
|
||||
*/
|
||||
|
||||
public static function normalize($user_id)
|
||||
{
|
||||
if (substr($user_id, 0, 5) == 'http:' ||
|
||||
@ -116,7 +113,6 @@ class Discovery
|
||||
*
|
||||
* @return boolean true if $user_id is a Webfinger, else false
|
||||
*/
|
||||
|
||||
public static function isWebfinger($user_id)
|
||||
{
|
||||
$uri = Discovery::normalize($user_id);
|
||||
@ -131,7 +127,6 @@ class Discovery
|
||||
*
|
||||
* @return XRD XRD object for the user
|
||||
*/
|
||||
|
||||
public function lookup($id)
|
||||
{
|
||||
// Normalize the incoming $id to make sure we have a uri
|
||||
@ -154,7 +149,7 @@ class Discovery
|
||||
}
|
||||
}
|
||||
|
||||
// TRANS: Exception.
|
||||
// TRANS: Exception. %s is an ID.
|
||||
throw new Exception(sprintf(_('Unable to find services for %s.'), $id));
|
||||
}
|
||||
|
||||
@ -166,7 +161,6 @@ class Discovery
|
||||
*
|
||||
* @return array $link assoc array representing the link
|
||||
*/
|
||||
|
||||
public static function getService($links, $service)
|
||||
{
|
||||
if (!is_array($links)) {
|
||||
@ -190,7 +184,6 @@ class Discovery
|
||||
*
|
||||
* @return string replaced values
|
||||
*/
|
||||
|
||||
public static function applyTemplate($template, $id)
|
||||
{
|
||||
$template = str_replace('{uri}', urlencode($id), $template);
|
||||
@ -205,7 +198,6 @@ class Discovery
|
||||
*
|
||||
* @return XRD object representing the XRD file
|
||||
*/
|
||||
|
||||
public static function fetchXrd($url)
|
||||
{
|
||||
try {
|
||||
@ -236,7 +228,6 @@ class Discovery
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
interface Discovery_LRDD
|
||||
{
|
||||
/**
|
||||
@ -246,7 +237,6 @@ interface Discovery_LRDD
|
||||
*
|
||||
* @return array Links in the XRD file
|
||||
*/
|
||||
|
||||
public function discover($uri);
|
||||
}
|
||||
|
||||
@ -263,7 +253,6 @@ interface Discovery_LRDD
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class Discovery_LRDD_Host_Meta implements Discovery_LRDD
|
||||
{
|
||||
/**
|
||||
@ -276,7 +265,6 @@ class Discovery_LRDD_Host_Meta implements Discovery_LRDD
|
||||
*
|
||||
* @return array Links in the XRD file
|
||||
*/
|
||||
|
||||
public function discover($uri)
|
||||
{
|
||||
if (Discovery::isWebfinger($uri)) {
|
||||
@ -313,7 +301,6 @@ class Discovery_LRDD_Host_Meta implements Discovery_LRDD
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class Discovery_LRDD_Link_Header implements Discovery_LRDD
|
||||
{
|
||||
/**
|
||||
@ -327,7 +314,6 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD
|
||||
*
|
||||
* @todo fail out of Webfinger URIs faster
|
||||
*/
|
||||
|
||||
public function discover($uri)
|
||||
{
|
||||
try {
|
||||
@ -356,7 +342,6 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD
|
||||
*
|
||||
* @return array Link header in XRD-like format
|
||||
*/
|
||||
|
||||
protected static function parseHeader($header)
|
||||
{
|
||||
$lh = new LinkHeader($header);
|
||||
@ -380,7 +365,6 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class Discovery_LRDD_Link_HTML implements Discovery_LRDD
|
||||
{
|
||||
/**
|
||||
@ -395,7 +379,6 @@ class Discovery_LRDD_Link_HTML implements Discovery_LRDD
|
||||
*
|
||||
* @todo fail out of Webfinger URIs faster
|
||||
*/
|
||||
|
||||
public function discover($uri)
|
||||
{
|
||||
try {
|
||||
@ -421,7 +404,6 @@ class Discovery_LRDD_Link_HTML implements Discovery_LRDD
|
||||
*
|
||||
* @return array array of associative arrays in XRD-ish format
|
||||
*/
|
||||
|
||||
public function parse($html)
|
||||
{
|
||||
$links = array();
|
||||
|
@ -69,6 +69,7 @@ class ImageFile
|
||||
($info[2] == IMAGETYPE_XBM && function_exists('imagecreatefromxbm')) ||
|
||||
($info[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')))) {
|
||||
|
||||
// TRANS: Exception thrown when trying to upload an unsupported image file format.
|
||||
throw new Exception(_('Unsupported image file format.'));
|
||||
return;
|
||||
}
|
||||
@ -92,6 +93,7 @@ class ImageFile
|
||||
return;
|
||||
case UPLOAD_ERR_PARTIAL:
|
||||
@unlink($_FILES[$param]['tmp_name']);
|
||||
// TRANS: Exception thrown when uploading an image and that action could not be completed.
|
||||
throw new Exception(_('Partial upload.'));
|
||||
return;
|
||||
case UPLOAD_ERR_NO_FILE:
|
||||
@ -100,6 +102,7 @@ class ImageFile
|
||||
default:
|
||||
common_log(LOG_ERR, __METHOD__ . ": Unknown upload error " .
|
||||
$_FILES[$param]['error']);
|
||||
// TRANS: Exception thrown when uploading an image fails for an unknown reason.
|
||||
throw new Exception(_('System error uploading file.'));
|
||||
return;
|
||||
}
|
||||
@ -108,6 +111,7 @@ class ImageFile
|
||||
|
||||
if (!$info) {
|
||||
@unlink($_FILES[$param]['tmp_name']);
|
||||
// TRANS: Exception thrown when uploading a file as image that is not an image or is a corrupt file.
|
||||
throw new Exception(_('Not an image or corrupt file.'));
|
||||
return;
|
||||
}
|
||||
@ -170,6 +174,7 @@ class ImageFile
|
||||
$targetType = $this->preferredType();
|
||||
|
||||
if (!file_exists($this->filepath)) {
|
||||
// TRANS: Exception thrown during resize when image has been registered as present, but is no longer there.
|
||||
throw new Exception(_('Lost our file.'));
|
||||
return;
|
||||
}
|
||||
@ -207,6 +212,7 @@ class ImageFile
|
||||
$image_src = imagecreatefromxbm($this->filepath);
|
||||
break;
|
||||
default:
|
||||
// TRANS: Exception thrown when trying to resize an unknown file type.
|
||||
throw new Exception(_('Unknown file type'));
|
||||
return;
|
||||
}
|
||||
@ -247,6 +253,7 @@ class ImageFile
|
||||
imagepng($image_dest, $outpath);
|
||||
break;
|
||||
default:
|
||||
// TRANS: Exception thrown when trying resize an unknown file type.
|
||||
throw new Exception(_('Unknown file type'));
|
||||
return;
|
||||
}
|
||||
|
@ -47,7 +47,6 @@ if (!defined('STATUSNET')) {
|
||||
*
|
||||
* @see Discovery
|
||||
*/
|
||||
|
||||
class LinkHeader
|
||||
{
|
||||
var $href;
|
||||
@ -61,7 +60,6 @@ class LinkHeader
|
||||
*
|
||||
* @return LinkHeader self
|
||||
*/
|
||||
|
||||
function __construct($str)
|
||||
{
|
||||
preg_match('/^<[^>]+>/', $str, $uri_reference);
|
||||
@ -108,7 +106,6 @@ class LinkHeader
|
||||
*
|
||||
* @return LinkHeader discovered header, or null on failure
|
||||
*/
|
||||
|
||||
static function getLink($response, $rel=null, $type=null)
|
||||
{
|
||||
$headers = $response->getHeader('Link');
|
||||
|
@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/widget.php';
|
||||
*
|
||||
* @see Widget
|
||||
*/
|
||||
|
||||
class LoginGroupNav extends Widget
|
||||
{
|
||||
var $action = null;
|
||||
@ -54,7 +53,6 @@ class LoginGroupNav extends Widget
|
||||
*
|
||||
* @param Action $action current action, used for output
|
||||
*/
|
||||
|
||||
function __construct($action=null)
|
||||
{
|
||||
parent::__construct($action);
|
||||
@ -66,7 +64,6 @@ class LoginGroupNav extends Widget
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function show()
|
||||
{
|
||||
$action_name = $this->action->trimmed('action');
|
||||
@ -76,13 +73,17 @@ class LoginGroupNav extends Widget
|
||||
if (Event::handle('StartLoginGroupNav', array($this->action))) {
|
||||
|
||||
$this->action->menuItem(common_local_url('login'),
|
||||
_('Login'),
|
||||
// TRANS: Menu item for logging in to the StatusNet site.
|
||||
_m('MENU','Login'),
|
||||
// TRANS: Title for menu item for logging in to the StatusNet site.
|
||||
_('Login with a username and password'),
|
||||
$action_name === 'login');
|
||||
|
||||
if (!(common_config('site','closed') || common_config('site','inviteonly'))) {
|
||||
$this->action->menuItem(common_local_url('register'),
|
||||
_('Register'),
|
||||
// TRANS: Menu item for registering with the StatusNet site.
|
||||
_m('MENU','Register'),
|
||||
// TRANS: Title for menu item for registering with the StatusNet site.
|
||||
_('Sign up for a new account'),
|
||||
$action_name === 'register');
|
||||
}
|
||||
|
10
lib/mail.php
10
lib/mail.php
@ -44,7 +44,6 @@ require_once 'Mail.php';
|
||||
*
|
||||
* @return Mail backend
|
||||
*/
|
||||
|
||||
function mail_backend()
|
||||
{
|
||||
static $backend = null;
|
||||
@ -70,7 +69,6 @@ function mail_backend()
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function mail_send($recipients, $headers, $body)
|
||||
{
|
||||
// XXX: use Mail_Queue... maybe
|
||||
@ -94,7 +92,6 @@ function mail_send($recipients, $headers, $body)
|
||||
*
|
||||
* @return string mail domain, suitable for making email addresses.
|
||||
*/
|
||||
|
||||
function mail_domain()
|
||||
{
|
||||
$maildomain = common_config('mail', 'domain');
|
||||
@ -112,7 +109,6 @@ function mail_domain()
|
||||
*
|
||||
* @return string notify from address
|
||||
*/
|
||||
|
||||
function mail_notify_from()
|
||||
{
|
||||
$notifyfrom = common_config('mail', 'notifyfrom');
|
||||
@ -138,7 +134,6 @@ function mail_notify_from()
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function mail_to_user(&$user, $subject, $body, $headers=array(), $address=null)
|
||||
{
|
||||
if (!$address) {
|
||||
@ -167,7 +162,6 @@ function mail_to_user(&$user, $subject, $body, $headers=array(), $address=null)
|
||||
*
|
||||
* @return success flag
|
||||
*/
|
||||
|
||||
function mail_confirm_address($user, $code, $nickname, $address)
|
||||
{
|
||||
// TRANS: Subject for address confirmation email.
|
||||
@ -202,7 +196,6 @@ function mail_confirm_address($user, $code, $nickname, $address)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function mail_subscribe_notify($listenee, $listener)
|
||||
{
|
||||
$other = $listener->getProfile();
|
||||
@ -220,7 +213,6 @@ function mail_subscribe_notify($listenee, $listener)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function mail_subscribe_notify_profile($listenee, $other)
|
||||
{
|
||||
if ($other->hasRight(Right::EMAILONSUBSCRIBE) &&
|
||||
@ -490,7 +482,7 @@ function mail_notify_nudge($from, $to)
|
||||
common_switch_locale($to->language);
|
||||
// TRANS: Subject for 'nudge' notification email.
|
||||
// TRANS: %s is the nudging user.
|
||||
$subject = sprintf(_('You\'ve been nudged by %s'), $from->nickname);
|
||||
$subject = sprintf(_('You have been nudged by %s'), $from->nickname);
|
||||
|
||||
$from_profile = $from->getProfile();
|
||||
|
||||
|
@ -46,7 +46,6 @@ require_once INSTALLDIR.'/lib/groupminilist.php';
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class ProfileAction extends OwnerDesignAction
|
||||
{
|
||||
var $page = null;
|
||||
@ -74,6 +73,7 @@ class ProfileAction extends OwnerDesignAction
|
||||
$this->user = User::staticGet('nickname', $nickname);
|
||||
|
||||
if (!$this->user) {
|
||||
// TRANS: Client error displayed when calling a profile action without specifying a user.
|
||||
$this->clientError(_('No such user.'), 404);
|
||||
return false;
|
||||
}
|
||||
@ -81,6 +81,7 @@ class ProfileAction extends OwnerDesignAction
|
||||
$this->profile = $this->user->getProfile();
|
||||
|
||||
if (!$this->profile) {
|
||||
// TRANS: Server error displayed when calling a profile action while the specified user does not have a profile.
|
||||
$this->serverError(_('User has no profile.'));
|
||||
return false;
|
||||
}
|
||||
@ -122,6 +123,7 @@ class ProfileAction extends OwnerDesignAction
|
||||
'class' => 'section'));
|
||||
if (Event::handle('StartShowSubscriptionsMiniList', array($this))) {
|
||||
$this->elementStart('h2');
|
||||
// TRANS: H2 text for user subscription statistics.
|
||||
$this->statsSectionLink('subscriptions', _('Subscriptions'));
|
||||
$this->elementEnd('h2');
|
||||
|
||||
@ -131,12 +133,14 @@ class ProfileAction extends OwnerDesignAction
|
||||
$pml = new ProfileMiniList($profile, $this);
|
||||
$cnt = $pml->show();
|
||||
if ($cnt == 0) {
|
||||
// TRANS: Text for user subscription statistics if the user has no subscriptions.
|
||||
$this->element('p', null, _('(None)'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($cnt > PROFILES_PER_MINILIST) {
|
||||
$this->elementStart('p');
|
||||
// TRANS: Text for user subscription statistics if user has more subscriptions than displayed.
|
||||
$this->statsSectionLink('subscriptions', _('All subscriptions'), 'more');
|
||||
$this->elementEnd('p');
|
||||
}
|
||||
@ -156,6 +160,7 @@ class ProfileAction extends OwnerDesignAction
|
||||
if (Event::handle('StartShowSubscribersMiniList', array($this))) {
|
||||
|
||||
$this->elementStart('h2');
|
||||
// TRANS: H2 text for user subscriber statistics.
|
||||
$this->statsSectionLink('subscribers', _('Subscribers'));
|
||||
$this->elementEnd('h2');
|
||||
|
||||
@ -165,12 +170,14 @@ class ProfileAction extends OwnerDesignAction
|
||||
$sml = new SubscribersMiniList($profile, $this);
|
||||
$cnt = $sml->show();
|
||||
if ($cnt == 0) {
|
||||
// TRANS: Text for user subscriber statistics if user has no subscribers.
|
||||
$this->element('p', null, _('(None)'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($cnt > PROFILES_PER_MINILIST) {
|
||||
$this->elementStart('p');
|
||||
// TRANS: Text for user subscription statistics if user has more subscribers than displayed.
|
||||
$this->statsSectionLink('subscribers', _('All subscribers'), 'more');
|
||||
$this->elementEnd('p');
|
||||
}
|
||||
@ -194,6 +201,7 @@ class ProfileAction extends OwnerDesignAction
|
||||
$this->elementStart('div', array('id' => 'entity_statistics',
|
||||
'class' => 'section'));
|
||||
|
||||
// TRANS: H2 text for user statistics.
|
||||
$this->element('h2', null, _('Statistics'));
|
||||
|
||||
$profile = $this->profile;
|
||||
@ -201,40 +209,47 @@ class ProfileAction extends OwnerDesignAction
|
||||
$stats = array(
|
||||
array(
|
||||
'id' => 'user-id',
|
||||
// TRANS: Label for user statistics.
|
||||
'label' => _('User ID'),
|
||||
'value' => $profile->id,
|
||||
),
|
||||
array(
|
||||
'id' => 'member-since',
|
||||
// TRANS: Label for user statistics.
|
||||
'label' => _('Member since'),
|
||||
'value' => date('j M Y', strtotime($profile->created))
|
||||
),
|
||||
array(
|
||||
'id' => 'subscriptions',
|
||||
// TRANS: Label for user statistics.
|
||||
'label' => _('Subscriptions'),
|
||||
'link' => common_local_url('subscriptions', $actionParams),
|
||||
'value' => $profile->subscriptionCount(),
|
||||
),
|
||||
array(
|
||||
'id' => 'subscribers',
|
||||
// TRANS: Label for user statistics.
|
||||
'label' => _('Subscribers'),
|
||||
'link' => common_local_url('subscribers', $actionParams),
|
||||
'value' => $profile->subscriberCount(),
|
||||
),
|
||||
array(
|
||||
'id' => 'groups',
|
||||
// TRANS: Label for user statistics.
|
||||
'label' => _('Groups'),
|
||||
'link' => common_local_url('usergroups', $actionParams),
|
||||
'value' => $profile->getGroups()->N,
|
||||
),
|
||||
array(
|
||||
'id' => 'notices',
|
||||
// TRANS: Label for user statistics.
|
||||
'label' => _('Notices'),
|
||||
'value' => $notice_count,
|
||||
),
|
||||
array(
|
||||
'id' => 'daily_notices',
|
||||
// TRANS: Average count of posts made per day since account registration
|
||||
// TRANS: Label for user statistics.
|
||||
// TRANS: Average count of posts made per day since account registration.
|
||||
'label' => _('Daily average'),
|
||||
'value' => $daily_count
|
||||
)
|
||||
@ -271,6 +286,7 @@ class ProfileAction extends OwnerDesignAction
|
||||
'class' => 'section'));
|
||||
if (Event::handle('StartShowGroupsMiniList', array($this))) {
|
||||
$this->elementStart('h2');
|
||||
// TRANS: H2 text for user group membership statistics.
|
||||
$this->statsSectionLink('usergroups', _('Groups'));
|
||||
$this->elementEnd('h2');
|
||||
|
||||
@ -278,12 +294,14 @@ class ProfileAction extends OwnerDesignAction
|
||||
$gml = new GroupMiniList($groups, $this->profile, $this);
|
||||
$cnt = $gml->show();
|
||||
if ($cnt == 0) {
|
||||
// TRANS: Text for user user group membership statistics if user is not a member of any group.
|
||||
$this->element('p', null, _('(None)'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($cnt > GROUPS_PER_MINILIST) {
|
||||
$this->elementStart('p');
|
||||
// TRANS: Text for user group membership statistics if user has more subscriptions than displayed.
|
||||
$this->statsSectionLink('usergroups', _('All groups'), 'more');
|
||||
$this->elementEnd('p');
|
||||
}
|
||||
@ -313,4 +331,3 @@ class SubscribersMiniListItem extends ProfileMiniListItem
|
||||
return $aAttrs;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,6 @@
|
||||
* We extend atomusernoticefeed since it does some nice setup for us.
|
||||
*
|
||||
*/
|
||||
|
||||
class UserActivityStream extends AtomUserNoticeFeed
|
||||
{
|
||||
public $activities = array();
|
||||
|
@ -48,7 +48,6 @@ require_once INSTALLDIR.'/lib/widget.php';
|
||||
*
|
||||
* @see HTMLOutputter
|
||||
*/
|
||||
|
||||
class UserProfile extends Widget
|
||||
{
|
||||
var $user = null;
|
||||
@ -73,6 +72,7 @@ class UserProfile extends Widget
|
||||
|
||||
$this->out->elementStart('div', array('id' => 'i',
|
||||
'class' => 'entity_profile vcard author'));
|
||||
// TRANS: H2 for user profile information.
|
||||
$this->out->element('h2', null, _('User profile'));
|
||||
|
||||
if (Event::handle('StartProfilePageProfileElements', array(&$this->out, $this->profile))) {
|
||||
@ -104,6 +104,7 @@ class UserProfile extends Widget
|
||||
}
|
||||
|
||||
$this->out->elementStart('dl', 'entity_depiction');
|
||||
// TRANS: DT element in area for user avatar.
|
||||
$this->out->element('dt', null, _('Photo'));
|
||||
$this->out->elementStart('dd');
|
||||
$this->out->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
|
||||
@ -116,6 +117,7 @@ class UserProfile extends Widget
|
||||
$cur = common_current_user();
|
||||
if ($cur && $cur->id == $this->profile->id) {
|
||||
$this->out->elementStart('dd');
|
||||
// TRANS: Link text for changeing the avatar of the logged in user.
|
||||
$this->out->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
|
||||
$this->out->elementEnd('dd');
|
||||
}
|
||||
@ -131,6 +133,7 @@ class UserProfile extends Widget
|
||||
if (Event::handle('StartProfilePageNickname', array($this->out, $this->profile))) {
|
||||
|
||||
$this->out->elementStart('dl', 'entity_nickname');
|
||||
// TRANS: DT for nick name in a profile.
|
||||
$this->out->element('dt', null, _('Nickname'));
|
||||
$this->out->elementStart('dd');
|
||||
$hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid';
|
||||
@ -149,6 +152,7 @@ class UserProfile extends Widget
|
||||
if (Event::handle('StartProfilePageFullName', array($this->out, $this->profile))) {
|
||||
if ($this->profile->fullname) {
|
||||
$this->out->elementStart('dl', 'entity_fn');
|
||||
// TRANS: DT for full name in a profile.
|
||||
$this->out->element('dt', null, _('Full name'));
|
||||
$this->out->elementStart('dd');
|
||||
$this->out->element('span', 'fn', $this->profile->fullname);
|
||||
@ -164,6 +168,7 @@ class UserProfile extends Widget
|
||||
if (Event::handle('StartProfilePageLocation', array($this->out, $this->profile))) {
|
||||
if ($this->profile->location) {
|
||||
$this->out->elementStart('dl', 'entity_location');
|
||||
// TRANS: DT for location in a profile.
|
||||
$this->out->element('dt', null, _('Location'));
|
||||
$this->out->element('dd', 'label', $this->profile->location);
|
||||
$this->out->elementEnd('dl');
|
||||
@ -177,6 +182,7 @@ class UserProfile extends Widget
|
||||
if (Event::handle('StartProfilePageHomepage', array($this->out, $this->profile))) {
|
||||
if ($this->profile->homepage) {
|
||||
$this->out->elementStart('dl', 'entity_url');
|
||||
// TRANS: DT for URL in a profile.
|
||||
$this->out->element('dt', null, _('URL'));
|
||||
$this->out->elementStart('dd');
|
||||
$this->out->element('a', array('href' => $this->profile->homepage,
|
||||
@ -194,6 +200,7 @@ class UserProfile extends Widget
|
||||
if (Event::handle('StartProfilePageBio', array($this->out, $this->profile))) {
|
||||
if ($this->profile->bio) {
|
||||
$this->out->elementStart('dl', 'entity_note');
|
||||
// TRANS: DT for note in a profile.
|
||||
$this->out->element('dt', null, _('Note'));
|
||||
$this->out->element('dd', 'note', $this->profile->bio);
|
||||
$this->out->elementEnd('dl');
|
||||
@ -209,6 +216,7 @@ class UserProfile extends Widget
|
||||
|
||||
if (count($tags) > 0) {
|
||||
$this->out->elementStart('dl', 'entity_tags');
|
||||
// TRANS: DT for tags in a profile.
|
||||
$this->out->element('dt', null, _('Tags'));
|
||||
$this->out->elementStart('dd');
|
||||
$this->out->elementStart('ul', 'tags xoxo');
|
||||
@ -233,9 +241,11 @@ class UserProfile extends Widget
|
||||
{
|
||||
if ($this->profile->hasRole(Profile_role::DELETED)) {
|
||||
$this->out->elementStart('div', 'entity_actions');
|
||||
// TRANS: H2 for user actions in a profile.
|
||||
$this->out->element('h2', null, _('User actions'));
|
||||
$this->out->elementStart('ul');
|
||||
$this->out->elementStart('p', array('class' => 'profile_deleted'));
|
||||
// TRANS: Text shown in user profile of not yet compeltely deleted users.
|
||||
$this->out->text(_('User deletion in progress...'));
|
||||
$this->out->elementEnd('p');
|
||||
$this->out->elementEnd('ul');
|
||||
@ -247,6 +257,7 @@ class UserProfile extends Widget
|
||||
$cur = common_current_user();
|
||||
|
||||
$this->out->elementStart('div', 'entity_actions');
|
||||
// TRANS: H2 for entity actions in a profile.
|
||||
$this->out->element('h2', null, _('User actions'));
|
||||
$this->out->elementStart('ul');
|
||||
|
||||
@ -262,7 +273,9 @@ class UserProfile extends Widget
|
||||
if ($cur->id == $this->profile->id) { // your own page
|
||||
$this->out->elementStart('li', 'entity_edit');
|
||||
$this->out->element('a', array('href' => common_local_url('profilesettings'),
|
||||
// TRANS: Link title for link on user profile.
|
||||
'title' => _('Edit profile settings')),
|
||||
// TRANS: Link text for link on user profile.
|
||||
_('Edit'));
|
||||
$this->out->elementEnd('li');
|
||||
} else { // someone else's page
|
||||
@ -286,7 +299,9 @@ class UserProfile extends Widget
|
||||
|
||||
$this->out->elementStart('li', 'entity_send-a-message');
|
||||
$this->out->element('a', array('href' => common_local_url('newmessage', array('to' => $this->user->id)),
|
||||
// TRANS: Link title for link on user profile.
|
||||
'title' => _('Send a direct message to this user')),
|
||||
// TRANS: Link text for link on user profile.
|
||||
_('Message'));
|
||||
$this->out->elementEnd('li');
|
||||
|
||||
@ -328,6 +343,7 @@ class UserProfile extends Widget
|
||||
$cur->hasRight(Right::SILENCEUSER) ||
|
||||
$cur->hasRight(Right::DELETEUSER)) {
|
||||
$this->out->elementStart('li', 'entity_moderation');
|
||||
// TRANS: Label text on user profile to select a user role.
|
||||
$this->out->element('p', null, _('Moderate'));
|
||||
$this->out->elementStart('ul');
|
||||
if ($cur->hasRight(Right::SANDBOXUSER)) {
|
||||
@ -366,9 +382,12 @@ class UserProfile extends Widget
|
||||
|
||||
if ($isLocal && $cur->hasRight(Right::GRANTROLE)) {
|
||||
$this->out->elementStart('li', 'entity_role');
|
||||
// TRANS: Label text on user profile to select a user role.
|
||||
$this->out->element('p', null, _('User role'));
|
||||
$this->out->elementStart('ul');
|
||||
// TRANS: Role that can be set for a user profile.
|
||||
$this->roleButton('administrator', _m('role', 'Administrator'));
|
||||
// TRANS: Role that can be set for a user profile.
|
||||
$this->roleButton('moderator', _m('role', 'Moderator'));
|
||||
$this->out->elementEnd('ul');
|
||||
$this->out->elementEnd('li');
|
||||
@ -408,6 +427,7 @@ class UserProfile extends Widget
|
||||
array('nickname' => $this->profile->nickname));
|
||||
$this->out->element('a', array('href' => $url,
|
||||
'class' => 'entity_remote_subscribe'),
|
||||
// TRANS: Link text for link that will subscribe to a remote profile.
|
||||
_('Subscribe'));
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,6 @@
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class XRD
|
||||
{
|
||||
const XML_NS = 'http://www.w3.org/2000/xmlns/';
|
||||
@ -61,12 +60,12 @@ class XRD
|
||||
|
||||
if (!$ok) {
|
||||
// TRANS: Exception.
|
||||
throw new Exception(_m('Invalid XML.'));
|
||||
throw new Exception(_('Invalid XML.'));
|
||||
}
|
||||
$xrd_element = $dom->getElementsByTagName('XRD')->item(0);
|
||||
if (!$xrd_element) {
|
||||
// TRANS: Exception.
|
||||
throw new Exception(_m('Invalid XML, missing XRD root.'));
|
||||
throw new Exception(_('Invalid XML, missing XRD root.'));
|
||||
}
|
||||
|
||||
// Check for host-meta host
|
||||
|
Loading…
Reference in New Issue
Block a user