GitHost.io will be shut down on June 1, 2019. At that point this instance will be unreachable and all data will be irrevocably deleted. More details at https://about.gitlab.com/gitlab-hosted/#githost-is-shutting-down-on-june-1st-2019

Commit 7db24c32 authored by Siebrand Mazeland's avatar Siebrand Mazeland

* fix some i18n and L10n issues

* update/add translator documentation
* remove superfluous whitespace
parent c0bb1a57
......@@ -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,14 +263,17 @@ 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'),
$person->id),
// 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;
}
}
......@@ -241,7 +241,7 @@ class Notice extends Memcached_DataObject
* array 'urls' list of attached/referred URLs to save with the
* notice in place of extracting links from content
* boolean 'distribute' whether to distribute the notice, default true
*
*
* @fixme tag override
*
* @return Notice
......@@ -1240,7 +1240,7 @@ class Notice extends Memcached_DataObject
* Convert a notice into an activity for export.
*
* @param User $cur Current user
*
*
* @return Activity activity object representing this Notice.
*/
......@@ -1253,11 +1253,11 @@ class Notice extends Memcached_DataObject
}
$act = new Activity();
if (Event::handle('StartNoticeAsActivity', array($this, &$act))) {
$profile = $this->getProfile();
$act->actor = ActivityObject::fromProfile($profile);
$act->verb = ActivityVerb::POST;
$act->objects[] = ActivityObject::fromNotice($this);
......@@ -1266,7 +1266,7 @@ class Notice extends Memcached_DataObject
$act->time = strtotime($this->created);
$act->link = $this->bestUrl();
$act->content = common_xml_safe_str($this->rendered);
$act->id = $this->uri;
$act->title = common_xml_safe_str($this->content);
......@@ -1293,9 +1293,9 @@ class Notice extends Memcached_DataObject
$act->enclosures[] = $enclosure;
}
}
$ctx = new ActivityContext();
if (!empty($this->reply_to)) {
$reply = Notice::staticGet('id', $this->reply_to);
if (!empty($reply)) {
......@@ -1303,29 +1303,29 @@ class Notice extends Memcached_DataObject
$ctx->replyToUrl = $reply->bestUrl();
}
}
$ctx->location = $this->getLocation();
$conv = null;
if (!empty($this->conversation)) {
$conv = Conversation::staticGet('id', $this->conversation);
if (!empty($conv)) {
$ctx->conversation = $conv->uri;
}
}
$reply_ids = $this->getReplies();
foreach ($reply_ids as $id) {
$profile = Profile::staticGet('id', $id);
if (!empty($profile)) {
$ctx->attention[] = $profile->getUri();
}
}
$groups = $this->getGroups();
foreach ($groups as $group) {
$ctx->attention[] = $group->uri;
}
......@@ -1339,7 +1339,7 @@ class Notice extends Memcached_DataObject
$ctx->forwardID = $repeat->uri;
$ctx->forwardUrl = $repeat->bestUrl();
}
$act->context = $ctx;
// Source
......@@ -1349,7 +1349,7 @@ class Notice extends Memcached_DataObject
if (!empty($atom_feed)) {
$act->source = new ActivitySource();
// XXX: we should store the actual feed ID
$act->source->id = $atom_feed;
......@@ -1362,7 +1362,7 @@ class Notice extends Memcached_DataObject
$act->source->links['self'] = $atom_feed;
$act->source->icon = $profile->avatarUrl(AVATAR_PROFILE_SIZE);
$notice = $profile->getCurrentNotice();
if (!empty($notice)) {
......@@ -1384,7 +1384,7 @@ class Notice extends Memcached_DataObject
Event::handle('EndNoticeAsActivity', array($this, &$act));
}
self::cacheSet(Cache::codeKey('notice:as-activity:'.$this->id), $act);
return $act;
......@@ -1395,7 +1395,7 @@ class Notice extends Memcached_DataObject
function asAtomEntry($namespace=false,
$source=false,
$author=true,
$author=true,
$cur=null)
{
$act = $this->asActivity();
......@@ -1405,7 +1405,7 @@ class Notice extends Memcached_DataObject
/**
* Extra notice info for atom entries
*
*
* Clients use some extra notice info in the atom stream.
* This gives it to them.
*
......
......@@ -4,7 +4,7 @@
* Copyright (C) 2010, StatusNet, Inc.
*
* A class for moving an account to a new server
*
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
......@@ -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,14 +60,16 @@ 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);
$sink = new ActivitySink($svcDocUrl, $username, $password);
$this->log(LOG_INFO,
$this->log(LOG_INFO,
"Moving user {$user->nickname} ".
"to {$remote}.");
......@@ -100,8 +101,10 @@ 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;
$username = 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);
......@@ -131,7 +136,7 @@ class AccountMover extends QueueHandler
/**
* Log some data
*
*
* Add a header for our class so we know who did it.
*
* @param int $level Log level, like LOG_ERR or LOG_INFO
......@@ -139,7 +144,6 @@ class AccountMover extends QueueHandler
*
* @return void
*/
protected function log($level, $message)
{
common_log($level, "AccountMover: " . $message);
......
......@@ -370,11 +370,11 @@ class Activity
$xs->element('title', null, $this->title);
$xs->element('content', array('type' => 'html'), $this->content);
if (!empty($this->summary)) {
$xs->element('summary', null, $this->summary);
}
if (!empty($this->link)) {
$xs->element('link', array('rel' => 'alternate',
'type' => 'text/html'),
......@@ -386,10 +386,10 @@ class Activity
$xs->element('activity:verb', null, $this->verb);
$published = self::iso8601Date($this->time);
$xs->element('published', null, $published);
$xs->element('updated', null, $published);
if ($author) {
$this->actor->outputTo($xs, 'author');
}
......@@ -458,7 +458,7 @@ class Activity
}
// can be either URLs or enclosure objects
foreach ($this->enclosures as $enclosure) {
if (is_string($enclosure)) {
$xs->element('link', array('rel' => 'enclosure',
......@@ -479,7 +479,7 @@ class Activity
if ($source && !empty($this->source)) {
$xs->elementStart('source');
$xs->element('id', null, $this->source->id);
$xs->element('title', null, $this->source->title);
......@@ -488,7 +488,7 @@ class Activity
'type' => 'text/html',
'href' => $this->source->links['alternate']));
}
if (array_key_exists('self', $this->source->links)) {
$xs->element('link', array('rel' => 'self',
'type' => 'application/atom+xml',
......@@ -507,7 +507,7 @@ class Activity
if (!empty($this->source->updated)) {
$xs->element('updated', null, $this->source->updated);
}
$xs->elementEnd('source');
}
......@@ -524,7 +524,7 @@ class Activity
}
// For throwing in extra elements; used for statusnet:notice_info
foreach ($this->extra as $el) {
list($tag, $attrs, $content) = $el;
$xs->element($tag, $attrs, $content);
......
......@@ -4,7 +4,7 @@
* Copyright (C) 2010, StatusNet, Inc.
*
* Title of module
*
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
......@@ -44,14 +44,13 @@ 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()
{
return 'actmove';
}
function handle($data)
{
list ($act, $sink, $userURI, $remoteURI) = $data;
......@@ -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) {
......@@ -152,7 +151,7 @@ class ActivityMover extends QueueHandler
/**
* Log some data
*
*
* Add a header for our class so we know who did it.
*
* @param int $level Log level, like LOG_ERR or LOG_INFO
......@@ -160,7 +159,6 @@ class ActivityMover extends QueueHandler
*
* @return void
*/
protected function log($level, $message)
{
common_log($level, "ActivityMover: " . $message);
......
......@@ -4,7 +4,7 @@
* Copyright (C) 2010, StatusNet, Inc.
*
* A remote, atompub-receiving service
*
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
......@@ -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';
......@@ -72,12 +71,11 @@ class Discovery
/**
* Register a discovery class
*
*
* @param string $class Class name
*
* @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);
......@@ -202,10 +195,9 @@ class Discovery
* Fetch an XRD file and parse
*
* @param string $url URL of the XRD
*
*
* @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
{
/**
......@@ -325,9 +312,8 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD
*
* @return array Links in the XRD file
*
* @todo fail out of Webfinger URIs faster
* @todo fail out of Webfinger URIs faster
*/
public function discover($uri)
{
try {
......@@ -353,10 +339,9 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD
* Given a string or array of headers, returns XRD-like assoc array
*
* @param string|array $header string or array of strings for headers
*
*
* @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
{
/**
......@@ -393,9 +377,8 @@ class Discovery_LRDD_Link_HTML implements Discovery_LRDD
*
* @return array Links in XRD-ish assoc array
*
* @todo fail out of Webfinger URIs faster
* @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);
......@@ -78,7 +76,7 @@ class LinkHeader
$params = explode(';', $str);
foreach ($params as $param) {
if (empty($param)) {
if (empty($param)) {
continue;
}
list($param_name, $param_value) = explode('=', $param, 2);
......@@ -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');
}
......
......@@ -44,7 +44,6 @@ require_once 'Mail.php';
*
* @return Mail backend
*/
function mail_backend()
{
static $backend = null;
......@@ -70,7 +69,6 @@ function mail_backend()