Merge pull request #8134 from nupplaphil/task/di_l10n

Cleanup L10n namespace
This commit is contained in:
Hypolite Petovan 2020-01-19 11:30:19 -05:00 committed by GitHub
commit 1bc4b2e078
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
206 changed files with 8453 additions and 6111 deletions

View file

@ -136,26 +136,26 @@ namespace Friendica\Addon\samplestorage;
use Friendica\Model\Storage\IStorage;
use Friendica\Core\Config;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\L10n;
class SampleStorageBackend implements IStorage
{
const NAME = 'Sample Storage';
/** @var Config\IConfiguration */
/** @var IConfiguration */
private $config;
/** @var L10n\L10n */
/** @var L10n */
private $l10n;
/**
* SampleStorageBackend constructor.
* @param Config\IConfiguration $config The configuration of Friendica
* @param IConfiguration $config The configuration of Friendica
*
* You can add here every dynamic class as dependency you like and add them to a private field
* Friendica automatically creates these classes and passes them as argument to the constructor
*/
public function __construct(Config\IConfiguration $config, L10n\L10n $l10n)
public function __construct(IConfiguration $config, L10n $l10n)
{
$this->config = $config;
$this->l10n = $l10n;

View file

@ -181,6 +181,8 @@ Put your tpl files in the *templates/* subfolder of your addon.
In your code, like in the function addon_name_content(), load the template file and execute it passing needed values:
```php
use Friendica\Core\Renderer;
# load template file. first argument is the template name,
# second is the addon path relative to friendica top folder
$tpl = Renderer::getMarkupTemplate('mytemplate.tpl', __DIR__);

View file

@ -47,8 +47,10 @@ The code will be something like:
// mod/network.php
<?php
use Friendica\App;
function network_content(App $a) {
$itemsmanager = new Friendica\ItemsManager();
$itemsmanager = new \Friendica\ItemsManager();
$items = $itemsmanager->getAll();
// pass $items to template
@ -117,6 +119,8 @@ If your code is in same namespace as the class you need, you don't need to prepe
namespace Friendica;
use Friendica\Protocol\DFRN;
// this is the same content of current include/delivery.php,
// but has been declared to be in "Friendica" namespace

View file

@ -39,7 +39,7 @@ They are initialized with an array of data, depending on the tyle of the field.
All of these take an array holding the values, e.g. for a one line text input field, which is required and should be used to type email addesses use something along the lines of:
'$adminmail' => array('adminmail', L10n::t('Site administrator email address'), $adminmail, L10n::t('Your account email address must match this in order to use the web admin panel.'), 'required', '', 'email'),
'$adminmail' => array('adminmail', DI::l10n()->t('Site administrator email address'), $adminmail, DI::l10n()->t('Your account email address must match this in order to use the web admin panel.'), 'required', '', 'email'),
To evaluate the input value, you can then use the $_POST array, more precisely the $_POST['adminemail'] variable.

View file

@ -108,17 +108,17 @@ The _post functions handle the processing of the send form, in this case they sa
To make your own variation appear in the menu, all you need to do is to create a new CSS file in the deriv directoy and include it in the array in the config.php:
$colorset = array(
'default'=>L10n::t('default'),
'greenzero'=>L10n::t('greenzero'),
'purplezero'=>L10n::t('purplezero'),
'easterbunny'=>L10n::t('easterbunny'),
'darkzero'=>L10n::t('darkzero'),
'comix'=>L10n::t('comix'),
'slackr'=>L10n::t('slackr'),
'default'=>DI::l10n()->t('default'),
'greenzero'=>DI::l10n()->t('greenzero'),
'purplezero'=>DI::l10n()->t('purplezero'),
'easterbunny'=>DI::l10n()->t('easterbunny'),
'darkzero'=>DI::l10n()->t('darkzero'),
'comix'=>DI::l10n()->t('comix'),
'slackr'=>DI::l10n()->t('slackr'),
);
the 1st part of the line is the name of the CSS file (without the .css) the 2nd part is the common name of the variant.
Calling the L10n::t() function with the common name makes the string translateable.
Calling the DI::l10n()->t() function with the common name makes the string translateable.
The selected 1st part will be saved in the database by the theme_post function.
function theme_post(App $a){

View file

@ -73,14 +73,14 @@ Then run `bin/console po2php view/lang/<language>/messages.po` to update the rel
### Basic usage
- `Friendica\Core\L10n::t('Label')` => `Label`
- `Friendica\Core\L10n::t('Label %s', 'test')` => `Label test`
- `Friendica\DI::l10n()->t('Label')` => `Label`
- `Friendica\DI::l10n()->t('Label %s', 'test')` => `Label test`
### Plural
- `Friendica\Core\L10n::tt('Label', 'Labels', 1)` => `Label`
- `Friendica\Core\L10n::tt('Label', 'Labels', 3)` => `Labels`
- `Friendica\Core\L10n::tt('%d Label', '%d Labels', 1)` => `1 Label`
- `Friendica\Core\L10n::tt('%d Label', '%d Labels', 3)` => `3 Labels`
- `Friendica\Core\L10n::tt('%d Label', 'Labels %2%s %3%s', 1, 'test', 'test2')` => `Label test test2`
- `Friendica\Core\L10n::tt('%d Label', 'Labels %2%s %3%s', 3, 'test', 'test2')` => `Labels test test2`
- `Friendica\DI::l10n()->tt('Label', 'Labels', 1)` => `Label`
- `Friendica\DI::l10n()->tt('Label', 'Labels', 3)` => `Labels`
- `Friendica\DI::l10n()->tt('%d Label', '%d Labels', 1)` => `1 Label`
- `Friendica\DI::l10n()->tt('%d Label', '%d Labels', 3)` => `3 Labels`
- `Friendica\DI::l10n()->tt('%d Label', 'Labels %2%s %3%s', 1, 'test', 'test2')` => `Label test test2`
- `Friendica\DI::l10n()->tt('%d Label', 'Labels %2%s %3%s', 3, 'test', 'test2')` => `Labels test test2`

View file

@ -13,7 +13,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Session;
@ -1106,8 +1105,8 @@ function api_statuses_update($type)
if ($posts_day > $throttle_day) {
Logger::log('Daily posting limit reached for user '.api_user(), Logger::DEBUG);
// die(api_error($type, L10n::t("Daily posting limit of %d posts reached. The post was rejected.", $throttle_day));
throw new TooManyRequestsException(L10n::tt("Daily posting limit of %d post reached. The post was rejected.", "Daily posting limit of %d posts reached. The post was rejected.", $throttle_day));
// die(api_error($type, DI::l10n()->t("Daily posting limit of %d posts reached. The post was rejected.", $throttle_day));
throw new TooManyRequestsException(DI::l10n()->tt("Daily posting limit of %d post reached. The post was rejected.", "Daily posting limit of %d posts reached. The post was rejected.", $throttle_day));
}
}
@ -1120,8 +1119,8 @@ function api_statuses_update($type)
if ($posts_week > $throttle_week) {
Logger::log('Weekly posting limit reached for user '.api_user(), Logger::DEBUG);
// die(api_error($type, L10n::t("Weekly posting limit of %d posts reached. The post was rejected.", $throttle_week)));
throw new TooManyRequestsException(L10n::tt("Weekly posting limit of %d post reached. The post was rejected.", "Weekly posting limit of %d posts reached. The post was rejected.", $throttle_week));
// die(api_error($type, DI::l10n()->t("Weekly posting limit of %d posts reached. The post was rejected.", $throttle_week)));
throw new TooManyRequestsException(DI::l10n()->tt("Weekly posting limit of %d post reached. The post was rejected.", "Weekly posting limit of %d posts reached. The post was rejected.", $throttle_week));
}
}
@ -1134,8 +1133,8 @@ function api_statuses_update($type)
if ($posts_month > $throttle_month) {
Logger::log('Monthly posting limit reached for user '.api_user(), Logger::DEBUG);
// die(api_error($type, L10n::t("Monthly posting limit of %d posts reached. The post was rejected.", $throttle_month));
throw new TooManyRequestsException(L10n::t("Monthly posting limit of %d post reached. The post was rejected.", "Monthly posting limit of %d posts reached. The post was rejected.", $throttle_month));
// die(api_error($type, DI::l10n()->t("Monthly posting limit of %d posts reached. The post was rejected.", $throttle_month));
throw new TooManyRequestsException(DI::l10n()->t("Monthly posting limit of %d post reached. The post was rejected.", "Monthly posting limit of %d posts reached. The post was rejected.", $throttle_month));
}
}
}
@ -4598,7 +4597,7 @@ function api_account_update_profile_image($type)
$media = $_FILES['media'];
}
// save new profile image
$data = save_media_to_database("profileimage", $media, $type, L10n::t('Profile Photos'), "", "", "", "", "", $is_default_profile);
$data = save_media_to_database("profileimage", $media, $type, DI::l10n()->t('Profile Photos'), "", "", "", "", "", $is_default_profile);
// get filetype
if (is_array($media['type'])) {

View file

@ -10,7 +10,6 @@ use Friendica\Content\Pager;
use Friendica\Content\Text\BBCode;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -160,20 +159,20 @@ function localize_item(&$item)
case Activity::POST:
switch ($obj['object-type']) {
case Activity\ObjectType::EVENT:
$post_type = L10n::t('event');
$post_type = DI::l10n()->t('event');
break;
default:
$post_type = L10n::t('status');
$post_type = DI::l10n()->t('status');
}
break;
default:
if ($obj['resource-id']) {
$post_type = L10n::t('photo');
$post_type = DI::l10n()->t('photo');
$m = [];
preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = L10n::t('status');
$post_type = DI::l10n()->t('status');
}
}
@ -181,15 +180,15 @@ function localize_item(&$item)
$bodyverb = '';
if ($activity->match($item['verb'], Activity::LIKE)) {
$bodyverb = L10n::t('%1$s likes %2$s\'s %3$s');
$bodyverb = DI::l10n()->t('%1$s likes %2$s\'s %3$s');
} elseif ($activity->match($item['verb'], Activity::DISLIKE)) {
$bodyverb = L10n::t('%1$s doesn\'t like %2$s\'s %3$s');
$bodyverb = DI::l10n()->t('%1$s doesn\'t like %2$s\'s %3$s');
} elseif ($activity->match($item['verb'], Activity::ATTEND)) {
$bodyverb = L10n::t('%1$s attends %2$s\'s %3$s');
$bodyverb = DI::l10n()->t('%1$s attends %2$s\'s %3$s');
} elseif ($activity->match($item['verb'], Activity::ATTENDNO)) {
$bodyverb = L10n::t('%1$s doesn\'t attend %2$s\'s %3$s');
$bodyverb = DI::l10n()->t('%1$s doesn\'t attend %2$s\'s %3$s');
} elseif ($activity->match($item['verb'], Activity::ATTENDMAYBE)) {
$bodyverb = L10n::t('%1$s attends maybe %2$s\'s %3$s');
$bodyverb = DI::l10n()->t('%1$s attends maybe %2$s\'s %3$s');
}
$item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
@ -224,7 +223,7 @@ function localize_item(&$item)
$Bphoto = '[url=' . Contact::magicLink($Blink) . '][img]' . $Bphoto . '[/img][/url]';
}
$item['body'] = L10n::t('%1$s is now friends with %2$s', $A, $B)."\n\n\n".$Bphoto;
$item['body'] = DI::l10n()->t('%1$s is now friends with %2$s', $A, $B)."\n\n\n".$Bphoto;
}
if (stristr($item['verb'], Activity::POKE)) {
@ -265,11 +264,11 @@ function localize_item(&$item)
* we can't have a translation string with three positions but no distinguishable text
* So here is the translate string.
*/
$txt = L10n::t('%1$s poked %2$s');
$txt = DI::l10n()->t('%1$s poked %2$s');
// now translate the verb
$poked_t = trim(sprintf($txt, "", ""));
$txt = str_replace($poked_t, L10n::t($verb), $txt);
$txt = str_replace($poked_t, DI::l10n()->t($verb), $txt);
// then do the sprintf on the translation string
@ -297,19 +296,19 @@ function localize_item(&$item)
case Activity::POST:
switch ($obj['object-type']) {
case Activity\ObjectType::EVENT:
$post_type = L10n::t('event');
$post_type = DI::l10n()->t('event');
break;
default:
$post_type = L10n::t('status');
$post_type = DI::l10n()->t('status');
}
break;
default:
if ($obj['resource-id']) {
$post_type = L10n::t('photo');
$post_type = DI::l10n()->t('photo');
$m=[]; preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = L10n::t('status');
$post_type = DI::l10n()->t('status');
}
// Let's break everthing ... ;-)
break;
@ -319,7 +318,7 @@ function localize_item(&$item)
$parsedobj = XML::parseString($xmlhead.$item['object']);
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
$item['body'] = L10n::t('%1$s tagged %2$s\'s %3$s with %4$s', $author, $objauthor, $plink, $tag);
$item['body'] = DI::l10n()->t('%1$s tagged %2$s\'s %3$s with %4$s', $author, $objauthor, $plink, $tag);
}
if ($activity->match($item['verb'], Activity::FAVORITE)) {
@ -341,8 +340,8 @@ function localize_item(&$item)
$Blink = $target['author-link'];
$A = '[url=' . Contact::magicLink($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . Contact::magicLink($Blink) . ']' . $Bname . '[/url]';
$P = '[url=' . $target['plink'] . ']' . L10n::t('post/item') . '[/url]';
$item['body'] = L10n::t('%1$s marked %2$s\'s %3$s as favorite', $A, $B, $P)."\n";
$P = '[url=' . $target['plink'] . ']' . DI::l10n()->t('post/item') . '[/url]';
$item['body'] = DI::l10n()->t('%1$s marked %2$s\'s %3$s as favorite', $A, $B, $P)."\n";
}
}
}
@ -566,12 +565,12 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
$items = $cb['items'];
$conv_responses = [
'like' => ['title' => L10n::t('Likes','title')],
'dislike' => ['title' => L10n::t('Dislikes','title')],
'attendyes' => ['title' => L10n::t('Attending','title')],
'attendno' => ['title' => L10n::t('Not attending','title')],
'attendmaybe' => ['title' => L10n::t('Might attend','title')],
'announce' => ['title' => L10n::t('Reshares','title')]
'like' => ['title' => DI::l10n()->t('Likes','title')],
'dislike' => ['title' => DI::l10n()->t('Dislikes','title')],
'attendyes' => ['title' => DI::l10n()->t('Attending','title')],
'attendno' => ['title' => DI::l10n()->t('Not attending','title')],
'attendmaybe' => ['title' => DI::l10n()->t('Might attend','title')],
'announce' => ['title' => DI::l10n()->t('Reshares','title')]
];
// array with html for each thread (parent+comments)
@ -651,8 +650,8 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
$drop = [
'dropping' => $dropping,
'pagedrop' => $page_dropping,
'select' => L10n::t('Select'),
'delete' => L10n::t('Delete'),
'select' => DI::l10n()->t('Select'),
'delete' => DI::l10n()->t('Delete'),
];
$star = false;
@ -678,7 +677,7 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
'network' => $item['network'],
'network_name' => ContactSelector::networkToName($item['author-network'], $item['author-link'], $item['network']),
'network_icon' => ContactSelector::networkToIcon($item['network'], $item['author-link']),
'linktitle' => L10n::t('View %s\'s profile @ %s', $profile_name, $item['author-link']),
'linktitle' => DI::l10n()->t('View %s\'s profile @ %s', $profile_name, $item['author-link']),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $profile_name,
@ -691,15 +690,15 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
'hashtags' => $tags['hashtags'],
'mentions' => $tags['mentions'],
'implicit_mentions' => $tags['implicit_mentions'],
'txt_cats' => L10n::t('Categories:'),
'txt_folders' => L10n::t('Filed under:'),
'txt_cats' => DI::l10n()->t('Categories:'),
'txt_folders' => DI::l10n()->t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories,
'folders' => $folders,
'text' => strip_tags($body),
'localtime' => DateTimeFormat::local($item['created'], 'r'),
'ago' => (($item['app']) ? L10n::t('%s from %s', Temporal::getRelativeDate($item['created']),$item['app']) : Temporal::getRelativeDate($item['created'])),
'ago' => (($item['app']) ? DI::l10n()->t('%s from %s', Temporal::getRelativeDate($item['created']),$item['app']) : Temporal::getRelativeDate($item['created'])),
'location' => $location,
'indent' => '',
'owner_name' => $owner_name,
@ -714,9 +713,9 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
'like' => '',
'dislike' => '',
'comment' => '',
'conv' => (($preview) ? '' : ['href'=> 'display/'.$item['guid'], 'title'=> L10n::t('View in context')]),
'conv' => (($preview) ? '' : ['href'=> 'display/'.$item['guid'], 'title'=> DI::l10n()->t('View in context')]),
'previewing' => $previewing,
'wait' => L10n::t('Please wait'),
'wait' => DI::l10n()->t('Please wait'),
'thread_level' => 1,
];
@ -780,11 +779,11 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
'$baseurl' => DI::baseUrl()->get($ssl_state),
'$return_path' => DI::args()->getQueryString(),
'$live_update' => $live_update_div,
'$remove' => L10n::t('remove'),
'$remove' => DI::l10n()->t('remove'),
'$mode' => $mode,
'$user' => $a->user,
'$threads' => $threads,
'$dropping' => ($page_dropping ? L10n::t('Delete Selected Items') : False),
'$dropping' => ($page_dropping ? DI::l10n()->t('Delete Selected Items') : False),
]);
return $o;
@ -945,27 +944,27 @@ function item_photo_menu($item) {
if (local_user()) {
$menu = [
L10n::t('Follow Thread') => $sub_link,
L10n::t('View Status') => $status_link,
L10n::t('View Profile') => $profile_link,
L10n::t('View Photos') => $photos_link,
L10n::t('Network Posts') => $posts_link,
L10n::t('View Contact') => $contact_url,
L10n::t('Send PM') => $pm_url,
L10n::t('Block') => $block_link,
L10n::t('Ignore') => $ignore_link
DI::l10n()->t('Follow Thread') => $sub_link,
DI::l10n()->t('View Status') => $status_link,
DI::l10n()->t('View Profile') => $profile_link,
DI::l10n()->t('View Photos') => $photos_link,
DI::l10n()->t('Network Posts') => $posts_link,
DI::l10n()->t('View Contact') => $contact_url,
DI::l10n()->t('Send PM') => $pm_url,
DI::l10n()->t('Block') => $block_link,
DI::l10n()->t('Ignore') => $ignore_link
];
if ($network == Protocol::DFRN) {
$menu[L10n::t("Poke")] = $poke_link;
$menu[DI::l10n()->t("Poke")] = $poke_link;
}
if ((($cid == 0) || ($rel == Contact::FOLLOWER)) &&
in_array($item['network'], Protocol::FEDERATED)) {
$menu[L10n::t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
$menu[DI::l10n()->t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
}
} else {
$menu = [L10n::t('View Profile') => $item['author-link']];
$menu = [DI::l10n()->t('View Profile') => $item['author-link']];
}
$args = ['item' => $item, 'menu' => $menu];
@ -1088,22 +1087,22 @@ function format_like($cnt, array $arr, $type, $id) {
// list which show all likers
switch ($type) {
case 'like' :
$phrase = L10n::t('%s likes this.', $likers);
$phrase = DI::l10n()->t('%s likes this.', $likers);
break;
case 'dislike' :
$phrase = L10n::t('%s doesn\'t like this.', $likers);
$phrase = DI::l10n()->t('%s doesn\'t like this.', $likers);
break;
case 'attendyes' :
$phrase = L10n::t('%s attends.', $likers);
$phrase = DI::l10n()->t('%s attends.', $likers);
break;
case 'attendno' :
$phrase = L10n::t('%s doesn\'t attend.', $likers);
$phrase = DI::l10n()->t('%s doesn\'t attend.', $likers);
break;
case 'attendmaybe' :
$phrase = L10n::t('%s attends maybe.', $likers);
$phrase = DI::l10n()->t('%s attends maybe.', $likers);
break;
case 'announce' :
$phrase = L10n::t('%s reshared this.', $likers);
$phrase = DI::l10n()->t('%s reshared this.', $likers);
break;
}
}
@ -1111,13 +1110,13 @@ function format_like($cnt, array $arr, $type, $id) {
if ($cnt > 1) {
$total = count($arr);
if ($total < MAX_LIKERS) {
$last = L10n::t('and') . ' ' . $arr[count($arr)-1];
$last = DI::l10n()->t('and') . ' ' . $arr[count($arr)-1];
$arr2 = array_slice($arr, 0, -1);
$likers = implode(', ', $arr2) . ' ' . $last;
} else {
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
$likers = implode(', ', $arr);
$likers .= L10n::t('and %d other people', $total - MAX_LIKERS);
$likers .= DI::l10n()->t('and %d other people', $total - MAX_LIKERS);
}
$spanatts = "class=\"fakelink\" onclick=\"openClose('{$type}list-$id');\"";
@ -1125,28 +1124,28 @@ function format_like($cnt, array $arr, $type, $id) {
$explikers = '';
switch ($type) {
case 'like':
$phrase = L10n::t('<span %1$s>%2$d people</span> like this', $spanatts, $cnt);
$explikers = L10n::t('%s like this.', $likers);
$phrase = DI::l10n()->t('<span %1$s>%2$d people</span> like this', $spanatts, $cnt);
$explikers = DI::l10n()->t('%s like this.', $likers);
break;
case 'dislike':
$phrase = L10n::t('<span %1$s>%2$d people</span> don\'t like this', $spanatts, $cnt);
$explikers = L10n::t('%s don\'t like this.', $likers);
$phrase = DI::l10n()->t('<span %1$s>%2$d people</span> don\'t like this', $spanatts, $cnt);
$explikers = DI::l10n()->t('%s don\'t like this.', $likers);
break;
case 'attendyes':
$phrase = L10n::t('<span %1$s>%2$d people</span> attend', $spanatts, $cnt);
$explikers = L10n::t('%s attend.', $likers);
$phrase = DI::l10n()->t('<span %1$s>%2$d people</span> attend', $spanatts, $cnt);
$explikers = DI::l10n()->t('%s attend.', $likers);
break;
case 'attendno':
$phrase = L10n::t('<span %1$s>%2$d people</span> don\'t attend', $spanatts, $cnt);
$explikers = L10n::t('%s don\'t attend.', $likers);
$phrase = DI::l10n()->t('<span %1$s>%2$d people</span> don\'t attend', $spanatts, $cnt);
$explikers = DI::l10n()->t('%s don\'t attend.', $likers);
break;
case 'attendmaybe':
$phrase = L10n::t('<span %1$s>%2$d people</span> attend maybe', $spanatts, $cnt);
$explikers = L10n::t('%s attend maybe.', $likers);
$phrase = DI::l10n()->t('<span %1$s>%2$d people</span> attend maybe', $spanatts, $cnt);
$explikers = DI::l10n()->t('%s attend maybe.', $likers);
break;
case 'announce':
$phrase = L10n::t('<span %1$s>%2$d people</span> reshared this', $spanatts, $cnt);
$explikers = L10n::t('%s reshared this.', $likers);
$phrase = DI::l10n()->t('<span %1$s>%2$d people</span> reshared this', $spanatts, $cnt);
$explikers = DI::l10n()->t('%s reshared this.', $likers);
break;
}
@ -1175,12 +1174,12 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$baseurl' => DI::baseUrl()->get(true),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => L10n::t('Visible to <strong>everybody</strong>'),
'$linkurl' => L10n::t('Please enter a image/video/audio/webpage URL:'),
'$term' => L10n::t('Tag term:'),
'$fileas' => L10n::t('Save to Folder:'),
'$whereareu' => L10n::t('Where are you right now?'),
'$delitems' => L10n::t("Delete item\x28s\x29?")
'$ispublic' => DI::l10n()->t('Visible to <strong>everybody</strong>'),
'$linkurl' => DI::l10n()->t('Please enter a image/video/audio/webpage URL:'),
'$term' => DI::l10n()->t('Tag term:'),
'$fileas' => DI::l10n()->t('Save to Folder:'),
'$whereareu' => DI::l10n()->t('Where are you right now?'),
'$delitems' => DI::l10n()->t("Delete item\x28s\x29?")
]);
$jotplugins = '';
@ -1212,33 +1211,33 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
$tpl = Renderer::getMarkupTemplate("jot.tpl");
$o .= Renderer::replaceMacros($tpl,[
'$new_post' => L10n::t('New Post'),
'$new_post' => DI::l10n()->t('New Post'),
'$return_path' => $query_str,
'$action' => 'item',
'$share' => ($x['button'] ?? '') ?: L10n::t('Share'),
'$upload' => L10n::t('Upload photo'),
'$shortupload' => L10n::t('upload photo'),
'$attach' => L10n::t('Attach file'),
'$shortattach' => L10n::t('attach file'),
'$edbold' => L10n::t('Bold'),
'$editalic' => L10n::t('Italic'),
'$eduline' => L10n::t('Underline'),
'$edquote' => L10n::t('Quote'),
'$edcode' => L10n::t('Code'),
'$edimg' => L10n::t('Image'),
'$edurl' => L10n::t('Link'),
'$edattach' => L10n::t('Link or Media'),
'$setloc' => L10n::t('Set your location'),
'$shortsetloc' => L10n::t('set location'),
'$noloc' => L10n::t('Clear browser location'),
'$shortnoloc' => L10n::t('clear location'),
'$share' => ($x['button'] ?? '') ?: DI::l10n()->t('Share'),
'$upload' => DI::l10n()->t('Upload photo'),
'$shortupload' => DI::l10n()->t('upload photo'),
'$attach' => DI::l10n()->t('Attach file'),
'$shortattach' => DI::l10n()->t('attach file'),
'$edbold' => DI::l10n()->t('Bold'),
'$editalic' => DI::l10n()->t('Italic'),
'$eduline' => DI::l10n()->t('Underline'),
'$edquote' => DI::l10n()->t('Quote'),
'$edcode' => DI::l10n()->t('Code'),
'$edimg' => DI::l10n()->t('Image'),
'$edurl' => DI::l10n()->t('Link'),
'$edattach' => DI::l10n()->t('Link or Media'),
'$setloc' => DI::l10n()->t('Set your location'),
'$shortsetloc' => DI::l10n()->t('set location'),
'$noloc' => DI::l10n()->t('Clear browser location'),
'$shortnoloc' => DI::l10n()->t('clear location'),
'$title' => $x['title'] ?? '',
'$placeholdertitle' => L10n::t('Set title'),
'$placeholdertitle' => DI::l10n()->t('Set title'),
'$category' => $x['category'] ?? '',
'$placeholdercategory' => Feature::isEnabled(local_user(), 'categories') ? L10n::t("Categories \x28comma-separated list\x29") : '',
'$wait' => L10n::t('Please wait'),
'$permset' => L10n::t('Permission settings'),
'$shortpermset' => L10n::t('permissions'),
'$placeholdercategory' => Feature::isEnabled(local_user(), 'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : '',
'$wait' => DI::l10n()->t('Please wait'),
'$permset' => DI::l10n()->t('Permission settings'),
'$shortpermset' => DI::l10n()->t('permissions'),
'$wall' => $notes_cid ? 0 : 1,
'$posttype' => $notes_cid ? Item::PT_PERSONAL_NOTE : Item::PT_ARTICLE,
'$content' => $x['content'] ?? '',
@ -1247,28 +1246,28 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$defloc' => $x['default_location'],
'$visitor' => $x['visitor'],
'$pvisit' => $notes_cid ? 'none' : $x['visitor'],
'$public' => L10n::t('Public post'),
'$public' => DI::l10n()->t('Public post'),
'$lockstate' => $x['lockstate'],
'$bang' => $x['bang'],
'$profile_uid' => $x['profile_uid'],
'$preview' => L10n::t('Preview'),
'$preview' => DI::l10n()->t('Preview'),
'$jotplugins' => $jotplugins,
'$notes_cid' => $notes_cid,
'$sourceapp' => L10n::t($a->sourcename),
'$cancel' => L10n::t('Cancel'),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$cancel' => DI::l10n()->t('Cancel'),
'$rand_num' => Crypto::randomDigits(12),
// ACL permissions box
'$acl' => $x['acl'],
'$group_perms' => L10n::t('Post to Groups'),
'$contact_perms' => L10n::t('Post to Contacts'),
'$private' => L10n::t('Private post'),
'$group_perms' => DI::l10n()->t('Post to Groups'),
'$contact_perms' => DI::l10n()->t('Post to Contacts'),
'$private' => DI::l10n()->t('Private post'),
'$is_private' => $private_post,
'$public_link' => $public_post_link,
//jot nav tab (used in some themes)
'$message' => L10n::t('Message'),
'$browser' => L10n::t('Browser'),
'$message' => DI::l10n()->t('Message'),
'$browser' => DI::l10n()->t('Browser'),
]);
@ -1557,7 +1556,7 @@ function get_responses(array $conv_responses, array $response_verbs, array $item
if (count($ret[$v]['list']) > MAX_LIKERS) {
$ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS);
array_push($ret[$v]['list_part'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
. (($ob) ? $ob->getId() : $item['id']) . '"><b>' . L10n::t('View all') . '</b></a>');
. (($ob) ? $ob->getId() : $item['id']) . '"><b>' . DI::l10n()->t('View all') . '</b></a>');
} else {
$ret[$v]['list_part'] = '';
}
@ -1581,19 +1580,19 @@ function get_response_button_text($v, $count)
$return = '';
switch ($v) {
case 'like':
$return = L10n::tt('Like', 'Likes', $count);
$return = DI::l10n()->tt('Like', 'Likes', $count);
break;
case 'dislike':
$return = L10n::tt('Dislike', 'Dislikes', $count);
$return = DI::l10n()->tt('Dislike', 'Dislikes', $count);
break;
case 'attendyes':
$return = L10n::tt('Attending', 'Attending', $count);
$return = DI::l10n()->tt('Attending', 'Attending', $count);
break;
case 'attendno':
$return = L10n::tt('Not Attending', 'Not Attending', $count);
$return = DI::l10n()->tt('Not Attending', 'Not Attending', $count);
break;
case 'attendmaybe':
$return = L10n::tt('Undecided', 'Undecided', $count);
$return = DI::l10n()->tt('Undecided', 'Undecided', $count);
break;
}

View file

@ -6,12 +6,10 @@
use Friendica\Content\Text\BBCode;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\Database\DBA;
use Friendica\Model\Contact;
use Friendica\DI;
use Friendica\Model\Item;
use Friendica\Model\ItemContent;
@ -20,7 +18,6 @@ use Friendica\Model\UserItem;
use Friendica\Protocol\Activity;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Emailer;
use Friendica\Util\Strings;
/**
* Creates a notification entry and possibly sends a mail
@ -57,7 +54,7 @@ function notification($params)
$params['to_email'] = ($params['to_email'] ?? '') ?: $user['email'];
// from here on everything is in the recipients language
$l10n = L10n::withLang($params['language']);
$l10n = DI::l10n()->withLang($params['language']);
$banner = $l10n->t('Friendica Notification');
$product = FRIENDICA_PLATFORM;

View file

@ -5,7 +5,6 @@
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -347,7 +346,7 @@ function drop_item($id, $return = '')
$item = Item::selectFirstForUser(local_user(), $fields, ['id' => $id]);
if (!DBA::isResult($item)) {
notice(L10n::t('Item not found.') . EOL);
notice(DI::l10n()->t('Item not found.') . EOL);
DI::baseUrl()->redirect('network');
}
@ -379,12 +378,12 @@ function drop_item($id, $return = '')
return Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [
'$method' => 'get',
'$message' => L10n::t('Do you really want to delete this item?'),
'$message' => DI::l10n()->t('Do you really want to delete this item?'),
'$extra_inputs' => $inputs,
'$confirm' => L10n::t('Yes'),
'$confirm' => DI::l10n()->t('Yes'),
'$confirm_url' => $query['base'],
'$confirm_name' => 'confirmed',
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
]);
}
// Now check how the user responded to the confirmation query
@ -431,7 +430,7 @@ function drop_item($id, $return = '')
}
}
} else {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
DI::baseUrl()->redirect('display/' . $item['guid']);
//NOTREACHED
}

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -33,12 +32,12 @@ function oauth_get_client(OAuthRequest $request)
function api_post(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
if (count($a->user) && !empty($a->user['uid']) && $a->user['uid'] != local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
}
@ -83,8 +82,8 @@ function api_content(App $a)
$tpl = Renderer::getMarkupTemplate("oauth_authorize_done.tpl");
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Authorize application connection'),
'$info' => L10n::t('Return to your app and insert this Securty Code:'),
'$title' => DI::l10n()->t('Authorize application connection'),
'$info' => DI::l10n()->t('Return to your app and insert this Securty Code:'),
'$code' => $verifier,
]);
@ -93,7 +92,7 @@ function api_content(App $a)
if (!local_user()) {
/// @TODO We need login form to redirect to this page
notice(L10n::t('Please login to continue.') . EOL);
notice(DI::l10n()->t('Please login to continue.') . EOL);
return Login::form(DI::args()->getQueryString(), false, $request->get_parameters());
}
//FKOAuth1::loginUser(4);
@ -105,11 +104,11 @@ function api_content(App $a)
$tpl = Renderer::getMarkupTemplate('oauth_authorize.tpl');
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Authorize application connection'),
'$title' => DI::l10n()->t('Authorize application connection'),
'$app' => $app,
'$authorize' => L10n::t('Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?'),
'$yes' => L10n::t('Yes'),
'$no' => L10n::t('No'),
'$authorize' => DI::l10n()->t('Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?'),
'$yes' => DI::l10n()->t('Yes'),
'$no' => DI::l10n()->t('No'),
]);
return $o;

View file

@ -12,7 +12,6 @@ use Friendica\Content\Feature;
use Friendica\Content\Nav;
use Friendica\Content\Widget;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -27,11 +26,11 @@ use Friendica\Util\Temporal;
function cal_init(App $a)
{
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.'));
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
}
if ($a->argc < 2) {
throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.'));
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
}
Nav::setSelected('events');
@ -126,7 +125,7 @@ function cal_content(App $a)
$is_owner = local_user() == $a->profile['profile_uid'];
if ($a->profile['hidewall'] && !$is_owner && !$remote_contact) {
notice(L10n::t('Access to this profile has been restricted.') . EOL);
notice(DI::l10n()->t('Access to this profile has been restricted.') . EOL);
return;
}
@ -257,17 +256,17 @@ function cal_content(App $a)
$o = Renderer::replaceMacros($tpl, [
'$tabs' => $tabs,
'$title' => L10n::t('Events'),
'$view' => L10n::t('View'),
'$previous' => [DI::baseUrl() . "/events/$prevyear/$prevmonth", L10n::t('Previous'), '', ''],
'$next' => [DI::baseUrl() . "/events/$nextyear/$nextmonth", L10n::t('Next'), '', ''],
'$title' => DI::l10n()->t('Events'),
'$view' => DI::l10n()->t('View'),
'$previous' => [DI::baseUrl() . "/events/$prevyear/$prevmonth", DI::l10n()->t('Previous'), '', ''],
'$next' => [DI::baseUrl() . "/events/$nextyear/$nextmonth", DI::l10n()->t('Next'), '', ''],
'$calendar' => Temporal::getCalendarTable($y, $m, $links, ' eventcal'),
'$events' => $events,
"today" => L10n::t("today"),
"month" => L10n::t("month"),
"week" => L10n::t("week"),
"day" => L10n::t("day"),
"list" => L10n::t("list"),
"today" => DI::l10n()->t("today"),
"month" => DI::l10n()->t("month"),
"week" => DI::l10n()->t("week"),
"day" => DI::l10n()->t("day"),
"list" => DI::l10n()->t("list"),
]);
if (!empty($_GET['id'])) {
@ -280,14 +279,14 @@ function cal_content(App $a)
if ($mode == 'export') {
if (!$owner_uid) {
notice(L10n::t('User not found'));
notice(DI::l10n()->t('User not found'));
return;
}
// Test permissions
// Respect the export feature setting for all other /cal pages if it's not the own profile
if ((local_user() !== $owner_uid) && !Feature::isEnabled($owner_uid, "export_calendar")) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
DI::baseUrl()->redirect('cal/' . $nick);
}
@ -296,9 +295,9 @@ function cal_content(App $a)
if (!$evexport["success"]) {
if ($evexport["content"]) {
notice(L10n::t('This calendar format is not supported'));
notice(DI::l10n()->t('This calendar format is not supported'));
} else {
notice(L10n::t('No exportable data found'));
notice(DI::l10n()->t('No exportable data found'));
}
// If it the own calendar return to the events page
@ -315,7 +314,7 @@ function cal_content(App $a)
// If nothing went wrong we can echo the export content
if ($evexport["success"]) {
header('Content-type: text/calendar');
header('content-disposition: attachment; filename="' . L10n::t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"');
header('content-disposition: attachment; filename="' . DI::l10n()->t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"');
echo $evexport["content"];
exit();
}

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\Content\ContactSelector;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -25,7 +24,7 @@ function common_content(App $a)
$zcid = 0;
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -88,7 +87,7 @@ function common_content(App $a)
}
if ($total < 1) {
notice(L10n::t('No contacts in common.') . EOL);
notice(DI::l10n()->t('No contacts in common.') . EOL);
return $o;
}
@ -139,7 +138,7 @@ function common_content(App $a)
if ($cmd === 'loc' && $cid && local_user() == $uid) {
$tab_str = Module\Contact::getTabsHTML($a, $contact, 5);
} else {
$title = L10n::t('Common Friends');
$title = DI::l10n()->t('Common Friends');
}
$tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl');

View file

@ -10,7 +10,6 @@ use Friendica\Content\Pager;
use Friendica\Content\Widget\TrendingTags;
use Friendica\Core\ACL;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -23,14 +22,14 @@ function community_content(App $a, $update = 0)
$o = '';
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
notice(L10n::t('Public access denied.') . EOL);
notice(DI::l10n()->t('Public access denied.') . EOL);
return;
}
$page_style = Config::get('system', 'community_page_style');
if ($page_style == CP_NO_INTERNAL_COMMUNITY) {
notice(L10n::t('Access denied.') . EOL);
notice(DI::l10n()->t('Access denied.') . EOL);
return;
}
@ -66,7 +65,7 @@ function community_content(App $a, $update = 0)
}
if (!in_array($content, ['local', 'global'])) {
notice(L10n::t('Community option not available.') . EOL);
notice(DI::l10n()->t('Community option not available.') . EOL);
return;
}
@ -83,7 +82,7 @@ function community_content(App $a, $update = 0)
}
if (!$available) {
notice(L10n::t('Not available.') . EOL);
notice(DI::l10n()->t('Not available.') . EOL);
return;
}
}
@ -93,10 +92,10 @@ function community_content(App $a, $update = 0)
if ((local_user() || in_array($page_style, [CP_USERS_AND_GLOBAL, CP_USERS_ON_SERVER])) && empty(Config::get('system', 'singleuser'))) {
$tabs[] = [
'label' => L10n::t('Local Community'),
'label' => DI::l10n()->t('Local Community'),
'url' => 'community/local',
'sel' => $content == 'local' ? 'active' : '',
'title' => L10n::t('Posts from local users on this server'),
'title' => DI::l10n()->t('Posts from local users on this server'),
'id' => 'community-local-tab',
'accesskey' => 'l'
];
@ -104,10 +103,10 @@ function community_content(App $a, $update = 0)
if (local_user() || in_array($page_style, [CP_USERS_AND_GLOBAL, CP_GLOBAL_COMMUNITY])) {
$tabs[] = [
'label' => L10n::t('Global Community'),
'label' => DI::l10n()->t('Global Community'),
'url' => 'community/global',
'sel' => $content == 'global' ? 'active' : '',
'title' => L10n::t('Posts from users of the whole federated network'),
'title' => DI::l10n()->t('Posts from users of the whole federated network'),
'id' => 'community-global-tab',
'accesskey' => 'g'
];
@ -153,7 +152,7 @@ function community_content(App $a, $update = 0)
$r = community_getitems($pager->getStart(), $pager->getItemsPerPage(), $content, $accounttype);
if (!DBA::isResult($r)) {
info(L10n::t('No results.') . EOL);
info(DI::l10n()->t('No results.') . EOL);
return $o;
}
@ -205,7 +204,7 @@ function community_content(App $a, $update = 0)
'$content' => $o,
'$header' => '',
'$show_global_community_hint' => ($content == 'global') && Config::get('system', 'show_global_community_hint'),
'$global_community_hint' => L10n::t("This community stream shows all public posts received by this node. They may not reflect the opinions of this nodes users.")
'$global_community_hint' => DI::l10n()->t("This community stream shows all public posts received by this node. They may not reflect the opinions of this nodes users.")
]);
}

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -77,9 +76,9 @@ function crepair_post(App $a)
}
if ($r) {
info(L10n::t('Contact settings applied.') . EOL);
info(DI::l10n()->t('Contact settings applied.') . EOL);
} else {
notice(L10n::t('Contact update failed.') . EOL);
notice(DI::l10n()->t('Contact update failed.') . EOL);
}
return;
@ -88,7 +87,7 @@ function crepair_post(App $a)
function crepair_content(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -100,7 +99,7 @@ function crepair_content(App $a)
}
if (!DBA::isResult($contact)) {
notice(L10n::t('Contact not found.') . EOL);
notice(DI::l10n()->t('Contact not found.') . EOL);
return;
}
@ -113,8 +112,8 @@ function crepair_content(App $a)
Model\Profile::load($a, "", 0, Model\Contact::getDetailsByURL($contact["url"]));
}
$warning = L10n::t('<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working.');
$info = L10n::t('Please use your browser \'Back\' button <strong>now</strong> if you are uncertain what to do on this page.');
$warning = DI::l10n()->t('<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working.');
$info = DI::l10n()->t('Please use your browser \'Back\' button <strong>now</strong> if you are uncertain what to do on this page.');
$returnaddr = "contact/$cid";
@ -128,9 +127,9 @@ function crepair_content(App $a)
}
if ($contact['network'] == Protocol::FEED) {
$remote_self_options = ['0' => L10n::t('No mirroring'), '1' => L10n::t('Mirror as forwarded posting'), '2' => L10n::t('Mirror as my own posting')];
$remote_self_options = ['0' => DI::l10n()->t('No mirroring'), '1' => DI::l10n()->t('Mirror as forwarded posting'), '2' => DI::l10n()->t('Mirror as my own posting')];
} else {
$remote_self_options = ['0' => L10n::t('No mirroring'), '2' => L10n::t('Mirror as my own posting')];
$remote_self_options = ['0' => DI::l10n()->t('No mirroring'), '2' => DI::l10n()->t('Mirror as my own posting')];
}
$update_profile = in_array($contact['network'], Protocol::FEDERATED);
@ -143,30 +142,30 @@ function crepair_content(App $a)
'$warning' => $warning,
'$info' => $info,
'$returnaddr' => $returnaddr,
'$return' => L10n::t('Return to contact editor'),
'$return' => DI::l10n()->t('Return to contact editor'),
'$update_profile' => $update_profile,
'$udprofilenow' => L10n::t('Refetch contact data'),
'$udprofilenow' => DI::l10n()->t('Refetch contact data'),
'$contact_id' => $contact['id'],
'$lbl_submit' => L10n::t('Submit'),
'$label_remote_self' => L10n::t('Remote Self'),
'$lbl_submit' => DI::l10n()->t('Submit'),
'$label_remote_self' => DI::l10n()->t('Remote Self'),
'$allow_remote_self' => $allow_remote_self,
'$remote_self' => ['remote_self',
L10n::t('Mirror postings from this contact'),
DI::l10n()->t('Mirror postings from this contact'),
$contact['remote_self'],
L10n::t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.'),
DI::l10n()->t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.'),
$remote_self_options
],
'$name' => ['name', L10n::t('Name') , $contact['name']],
'$nick' => ['nick', L10n::t('Account Nickname'), $contact['nick']],
'$attag' => ['attag', L10n::t('@Tagname - overrides Name/Nickname'), $contact['attag']],
'$url' => ['url', L10n::t('Account URL'), $contact['url']],
'$alias' => ['alias', L10n::t('Account URL Alias'), $contact['alias']],
'$request' => ['request', L10n::t('Friend Request URL'), $contact['request']],
'confirm' => ['confirm', L10n::t('Friend Confirm URL'), $contact['confirm']],
'notify' => ['notify', L10n::t('Notification Endpoint URL'), $contact['notify']],
'poll' => ['poll', L10n::t('Poll/Feed URL'), $contact['poll']],
'photo' => ['photo', L10n::t('New photo from this URL'), ''],
'$name' => ['name', DI::l10n()->t('Name') , $contact['name']],
'$nick' => ['nick', DI::l10n()->t('Account Nickname'), $contact['nick']],
'$attag' => ['attag', DI::l10n()->t('@Tagname - overrides Name/Nickname'), $contact['attag']],
'$url' => ['url', DI::l10n()->t('Account URL'), $contact['url']],
'$alias' => ['alias', DI::l10n()->t('Account URL Alias'), $contact['alias']],
'$request' => ['request', DI::l10n()->t('Friend Request URL'), $contact['request']],
'confirm' => ['confirm', DI::l10n()->t('Friend Confirm URL'), $contact['confirm']],
'notify' => ['notify', DI::l10n()->t('Notification Endpoint URL'), $contact['notify']],
'poll' => ['poll', DI::l10n()->t('Poll/Feed URL'), $contact['poll']],
'photo' => ['photo', DI::l10n()->t('New photo from this URL'), ''],
]);
return $o;

View file

@ -20,7 +20,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\System;
@ -29,7 +28,6 @@ use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Group;
use Friendica\Model\User;
use Friendica\Network\Probe;
use Friendica\Protocol\Activity;
use Friendica\Util\Crypto;
use Friendica\Util\DateTimeFormat;
@ -64,13 +62,13 @@ function dfrn_confirm_post(App $a, $handsfree = null)
if (empty($_POST['source_url'])) {
$uid = ($handsfree['uid'] ?? 0) ?: local_user();
if (!$uid) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
$user = DBA::selectFirst('user', [], ['uid' => $uid]);
if (!DBA::isResult($user)) {
notice(L10n::t('Profile not found.') . EOL);
notice(DI::l10n()->t('Profile not found.') . EOL);
return;
}
@ -125,8 +123,8 @@ function dfrn_confirm_post(App $a, $handsfree = null)
);
if (!DBA::isResult($r)) {
Logger::log('Contact not found in DB.');
notice(L10n::t('Contact not found.') . EOL);
notice(L10n::t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL);
notice(DI::l10n()->t('Contact not found.') . EOL);
notice(DI::l10n()->t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL);
return;
}
@ -227,20 +225,20 @@ function dfrn_confirm_post(App $a, $handsfree = null)
// We shouldn't proceed, because the xml parser might choke,
// and $status is going to be zero, which indicates success.
// We can hardly call this a success.
notice(L10n::t('Response from remote site was not understood.') . EOL);
notice(DI::l10n()->t('Response from remote site was not understood.') . EOL);
return;
}
if (strlen($leading_junk) && Config::get('system', 'debugging')) {
// This might be more common. Mixed error text and some XML.
// If we're configured for debugging, show the text. Proceed in either case.
notice(L10n::t('Unexpected response from remote site: ') . EOL . $leading_junk . EOL);
notice(DI::l10n()->t('Unexpected response from remote site: ') . EOL . $leading_junk . EOL);
}
if (stristr($res, "<status") === false) {
// wrong xml! stop here!
Logger::log('Unexpected response posting to ' . $dfrn_confirm);
notice(L10n::t('Unexpected response from remote site: ') . EOL . htmlspecialchars($res) . EOL);
notice(DI::l10n()->t('Unexpected response from remote site: ') . EOL . htmlspecialchars($res) . EOL);
return;
}
@ -249,7 +247,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
$message = XML::unescape($xml->message); // human readable text of what may have gone wrong.
switch ($status) {
case 0:
info(L10n::t("Confirmation completed successfully.") . EOL);
info(DI::l10n()->t("Confirmation completed successfully.") . EOL);
break;
case 1:
// birthday paradox - generate new dfrn-id and fall through.
@ -261,15 +259,15 @@ function dfrn_confirm_post(App $a, $handsfree = null)
);
case 2:
notice(L10n::t("Temporary failure. Please wait and try again.") . EOL);
notice(DI::l10n()->t("Temporary failure. Please wait and try again.") . EOL);
break;
case 3:
notice(L10n::t("Introduction failed or was revoked.") . EOL);
notice(DI::l10n()->t("Introduction failed or was revoked.") . EOL);
break;
}
if (strlen($message)) {
notice(L10n::t('Remote site reported: ') . $message . EOL);
notice(DI::l10n()->t('Remote site reported: ') . $message . EOL);
}
if (($status == 0) && $intro_id) {
@ -374,7 +372,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
// Find our user's account
$user = DBA::selectFirst('user', [], ['nickname' => $node]);
if (!DBA::isResult($user)) {
$message = L10n::t('No user record found for \'%s\' ', $node);
$message = DI::l10n()->t('No user record found for \'%s\' ', $node);
System::xmlExit(3, $message); // failure
// NOTREACHED
}
@ -384,7 +382,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
if (!strstr($my_prvkey, 'PRIVATE KEY')) {
$message = L10n::t('Our site encryption key is apparently messed up.');
$message = DI::l10n()->t('Our site encryption key is apparently messed up.');
System::xmlExit(3, $message);
}
@ -395,7 +393,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
if (!strlen($decrypted_source_url)) {
$message = L10n::t('Empty site URL was provided or URL could not be decrypted by us.');
$message = DI::l10n()->t('Empty site URL was provided or URL could not be decrypted by us.');
System::xmlExit(3, $message);
// NOTREACHED
}
@ -411,7 +409,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
$contact = DBA::selectFirst('contact', [], ['url' => $newurl, 'uid' => $local_uid]);
if (!DBA::isResult($contact)) {
// this is either a bogus confirmation (?) or we deleted the original introduction.
$message = L10n::t('Contact record was not found for you on our site.');
$message = DI::l10n()->t('Contact record was not found for you on our site.');
System::xmlExit(3, $message);
return; // NOTREACHED
}
@ -425,7 +423,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
$dfrn_record = $contact['id'];
if (!$foreign_pubkey) {
$message = L10n::t('Site public key not available in contact record for URL %s.', $decrypted_source_url);
$message = DI::l10n()->t('Site public key not available in contact record for URL %s.', $decrypted_source_url);
System::xmlExit(3, $message);
}
@ -441,7 +439,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
}
if (DBA::exists('contact', ['dfrn-id' => $decrypted_dfrn_id])) {
$message = L10n::t('The ID provided by your system is a duplicate on our system. It should work if you try again.');
$message = DI::l10n()->t('The ID provided by your system is a duplicate on our system. It should work if you try again.');
System::xmlExit(1, $message); // Birthday paradox - duplicate dfrn-id
// NOTREACHED
}
@ -452,7 +450,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
intval($dfrn_record)
);
if (!DBA::isResult($r)) {
$message = L10n::t('Unable to set your contact credentials on our system.');
$message = DI::l10n()->t('Unable to set your contact credentials on our system.');
System::xmlExit(3, $message);
}
@ -508,7 +506,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
intval($dfrn_record)
);
if (!DBA::isResult($r)) { // indicates schema is messed up or total db failure
$message = L10n::t('Unable to update your contact profile details on our system');
$message = DI::l10n()->t('Unable to update your contact profile details on our system');
System::xmlExit(3, $message);
}
@ -538,7 +536,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
'to_email' => $combined['email'],
'uid' => $combined['uid'],
'link' => DI::baseUrl() . '/contact/' . $dfrn_record,
'source_name' => ((strlen(stripslashes($combined['name']))) ? stripslashes($combined['name']) : L10n::t('[Name Withheld]')),
'source_name' => ((strlen(stripslashes($combined['name']))) ? stripslashes($combined['name']) : DI::l10n()->t('[Name Withheld]')),
'source_link' => $combined['url'],
'source_photo' => $combined['photo'],
'verb' => ($mutual ? Activity::FRIEND : Activity::FOLLOW),

View file

@ -6,13 +6,11 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\System;
use Friendica\Core\Session;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Module\Security\Login;
use Friendica\Protocol\DFRN;
use Friendica\Protocol\OStatus;
use Friendica\Util\Network;
@ -121,7 +119,7 @@ function dfrn_poll_init(App $a)
Session::setVisitorsContacts();
if (!$quiet) {
info(L10n::t('%1$s welcomes %2$s', $r[0]['username'], $r[0]['name']) . EOL);
info(DI::l10n()->t('%1$s welcomes %2$s', $r[0]['username'], $r[0]['name']) . EOL);
}
// Visitors get 1 day session.
@ -524,7 +522,7 @@ function dfrn_poll_content(App $a)
Session::setVisitorsContacts();
if (!$quiet) {
info(L10n::t('%1$s welcomes %2$s', $r[0]['username'], $r[0]['name']) . EOL);
info(DI::l10n()->t('%1$s welcomes %2$s', $r[0]['username'], $r[0]['name']) . EOL);
}
// Visitors get 1 day session.

View file

@ -14,7 +14,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -99,7 +98,7 @@ function dfrn_request_post(App $a)
if (DBA::isResult($r)) {
if (strlen($r[0]['dfrn-id'])) {
// We don't need to be here. It has already happened.
notice(L10n::t("This introduction has already been accepted.") . EOL);
notice(DI::l10n()->t("This introduction has already been accepted.") . EOL);
return;
} else {
$contact_record = $r[0];
@ -117,18 +116,18 @@ function dfrn_request_post(App $a)
$parms = Probe::profile($dfrn_url);
if (!count($parms)) {
notice(L10n::t('Profile location is not valid or does not contain profile information.') . EOL);
notice(DI::l10n()->t('Profile location is not valid or does not contain profile information.') . EOL);
return;
} else {
if (empty($parms['fn'])) {
notice(L10n::t('Warning: profile location has no identifiable owner name.') . EOL);
notice(DI::l10n()->t('Warning: profile location has no identifiable owner name.') . EOL);
}
if (empty($parms['photo'])) {
notice(L10n::t('Warning: profile location has no profile photo.') . EOL);
notice(DI::l10n()->t('Warning: profile location has no profile photo.') . EOL);
}
$invalid = Probe::validDfrn($parms);
if ($invalid) {
notice(L10n::tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", $invalid) . EOL);
notice(DI::l10n()->tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", $invalid) . EOL);
return;
}
}
@ -166,7 +165,7 @@ function dfrn_request_post(App $a)
}
if ($r) {
info(L10n::t("Introduction complete.") . EOL);
info(DI::l10n()->t("Introduction complete.") . EOL);
}
$r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `site-pubkey` = '%s' LIMIT 1",
@ -202,7 +201,7 @@ function dfrn_request_post(App $a)
}
// invalid/bogus request
notice(L10n::t('Unrecoverable protocol error.') . EOL);
notice(DI::l10n()->t('Unrecoverable protocol error.') . EOL);
DI::baseUrl()->redirect();
return; // NOTREACHED
}
@ -229,7 +228,7 @@ function dfrn_request_post(App $a)
*
*/
if (!(is_array($a->profile) && count($a->profile))) {
notice(L10n::t('Profile unavailable.') . EOL);
notice(DI::l10n()->t('Profile unavailable.') . EOL);
return;
}
@ -250,9 +249,9 @@ function dfrn_request_post(App $a)
intval($uid)
);
if (DBA::isResult($r) && count($r) > $maxreq) {
notice(L10n::t('%s has received too many connection requests today.', $a->profile['name']) . EOL);
notice(L10n::t('Spam protection measures have been invoked.') . EOL);
notice(L10n::t('Friends are advised to please try again in 24 hours.') . EOL);
notice(DI::l10n()->t('%s has received too many connection requests today.', $a->profile['name']) . EOL);
notice(DI::l10n()->t('Spam protection measures have been invoked.') . EOL);
notice(DI::l10n()->t('Friends are advised to please try again in 24 hours.') . EOL);
return;
}
}
@ -276,7 +275,7 @@ function dfrn_request_post(App $a)
$url = trim($_POST['dfrn_url']);
if (!strlen($url)) {
notice(L10n::t("Invalid locator") . EOL);
notice(DI::l10n()->t("Invalid locator") . EOL);
return;
}
@ -312,10 +311,10 @@ function dfrn_request_post(App $a)
if (DBA::isResult($ret)) {
if (strlen($ret[0]['issued-id'])) {
notice(L10n::t('You have already introduced yourself here.') . EOL);
notice(DI::l10n()->t('You have already introduced yourself here.') . EOL);
return;
} elseif ($ret[0]['rel'] == Contact::FRIEND) {
notice(L10n::t('Apparently you are already friends with %s.', $a->profile['name']) . EOL);
notice(DI::l10n()->t('Apparently you are already friends with %s.', $a->profile['name']) . EOL);
return;
} else {
$contact_record = $ret[0];
@ -335,19 +334,19 @@ function dfrn_request_post(App $a)
} else {
$url = Network::isUrlValid($url);
if (!$url) {
notice(L10n::t('Invalid profile URL.') . EOL);
notice(DI::l10n()->t('Invalid profile URL.') . EOL);
DI::baseUrl()->redirect(DI::args()->getCommand());
return; // NOTREACHED
}
if (!Network::isUrlAllowed($url)) {
notice(L10n::t('Disallowed profile URL.') . EOL);
notice(DI::l10n()->t('Disallowed profile URL.') . EOL);
DI::baseUrl()->redirect(DI::args()->getCommand());
return; // NOTREACHED
}
if (Network::isUrlBlocked($url)) {
notice(L10n::t('Blocked domain') . EOL);
notice(DI::l10n()->t('Blocked domain') . EOL);
DI::baseUrl()->redirect(DI::args()->getCommand());
return; // NOTREACHED
}
@ -355,18 +354,18 @@ function dfrn_request_post(App $a)
$parms = Probe::profile(($hcard) ? $hcard : $url);
if (!count($parms)) {
notice(L10n::t('Profile location is not valid or does not contain profile information.') . EOL);
notice(DI::l10n()->t('Profile location is not valid or does not contain profile information.') . EOL);
DI::baseUrl()->redirect(DI::args()->getCommand());
} else {
if (empty($parms['fn'])) {
notice(L10n::t('Warning: profile location has no identifiable owner name.') . EOL);
notice(DI::l10n()->t('Warning: profile location has no identifiable owner name.') . EOL);
}
if (empty($parms['photo'])) {
notice(L10n::t('Warning: profile location has no profile photo.') . EOL);
notice(DI::l10n()->t('Warning: profile location has no profile photo.') . EOL);
}
$invalid = Probe::validDfrn($parms);
if ($invalid) {
notice(L10n::tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", $invalid) . EOL);
notice(DI::l10n()->tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", $invalid) . EOL);
return;
}
@ -414,7 +413,7 @@ function dfrn_request_post(App $a)
}
}
if ($r === false) {
notice(L10n::t('Failed to update contact record.') . EOL);
notice(DI::l10n()->t('Failed to update contact record.') . EOL);
return;
}
@ -434,7 +433,7 @@ function dfrn_request_post(App $a)
// This notice will only be seen by the requestor if the requestor and requestee are on the same server.
if (!$failed) {
info(L10n::t('Your introduction has been sent.') . EOL);
info(DI::l10n()->t('Your introduction has been sent.') . EOL);
}
// "Homecoming" - send the requestor back to their site to record the introduction.
@ -472,7 +471,7 @@ function dfrn_request_post(App $a)
// NOTREACHED
// END $network != Protocol::PHANTOM
} else {
notice(L10n::t("Remote subscription can't be done for your network. Please subscribe directly on your system.") . EOL);
notice(DI::l10n()->t("Remote subscription can't be done for your network. Please subscribe directly on your system.") . EOL);
return;
}
} return;
@ -488,7 +487,7 @@ function dfrn_request_content(App $a)
// to send us to the post section to record the introduction.
if (!empty($_GET['dfrn_url'])) {
if (!local_user()) {
info(L10n::t("Please login to confirm introduction.") . EOL);
info(DI::l10n()->t("Please login to confirm introduction.") . EOL);
/* setup the return URL to come back to this page if they use openid */
return Login::form();
}
@ -496,7 +495,7 @@ function dfrn_request_content(App $a)
// Edge case, but can easily happen in the wild. This person is authenticated,
// but not as the person who needs to deal with this request.
if ($a->user['nickname'] != $a->argv[1]) {
notice(L10n::t("Incorrect identity currently logged in. Please login to <strong>this</strong> profile.") . EOL);
notice(DI::l10n()->t("Incorrect identity currently logged in. Please login to <strong>this</strong> profile.") . EOL);
return Login::form();
}
@ -510,7 +509,7 @@ function dfrn_request_content(App $a)
$_POST["confirm_key"] = $confirm_key;
$_POST["localconfirm"] = 1;
$_POST["hidden-contact"] = 0;
$_POST["submit"] = L10n::t('Confirm');
$_POST["submit"] = DI::l10n()->t('Confirm');
dfrn_request_post($a);
@ -521,11 +520,11 @@ function dfrn_request_content(App $a)
$o = Renderer::replaceMacros($tpl, [
'$dfrn_url' => $dfrn_url,
'$aes_allow' => (($aes_allow) ? '<input type="hidden" name="aes_allow" value="1" />' : "" ),
'$hidethem' => L10n::t('Hide this contact'),
'$hidethem' => DI::l10n()->t('Hide this contact'),
'$confirm_key' => $confirm_key,
'$welcome' => L10n::t('Welcome home %s.', $a->user['username']),
'$please' => L10n::t('Please confirm your introduction/connection request to %s.', $dfrn_url),
'$submit' => L10n::t('Confirm'),
'$welcome' => DI::l10n()->t('Welcome home %s.', $a->user['username']),
'$please' => DI::l10n()->t('Please confirm your introduction/connection request to %s.', $dfrn_url),
'$submit' => DI::l10n()->t('Confirm'),
'$uid' => $_SESSION['uid'],
'$nickname' => $a->user['nickname'],
'dfrn_rawurl' => $_GET['dfrn_url']
@ -561,7 +560,7 @@ function dfrn_request_content(App $a)
'to_email' => $r[0]['email'],
'uid' => $r[0]['uid'],
'link' => DI::baseUrl() . '/notifications/intros',
'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : L10n::t('[Name Withheld]')),
'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : DI::l10n()->t('[Name Withheld]')),
'source_link' => $r[0]['url'],
'source_photo' => $r[0]['photo'],
'verb' => Activity::REQ_FRIEND,
@ -598,7 +597,7 @@ function dfrn_request_content(App $a)
// Normal web request. Display our user's introduction form.
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
if (!Config::get('system', 'local_block')) {
notice(L10n::t('Public access denied.') . EOL);
notice(DI::l10n()->t('Public access denied.') . EOL);
return;
}
}
@ -633,25 +632,25 @@ function dfrn_request_content(App $a)
$tpl = Renderer::getMarkupTemplate('auto_request.tpl');
}
$page_desc = L10n::t("Please enter your 'Identity Address' from one of the following supported communications networks:");
$page_desc = DI::l10n()->t("Please enter your 'Identity Address' from one of the following supported communications networks:");
$invite_desc = L10n::t('If you are not yet a member of the free social web, <a href="%s">follow this link to find a public Friendica site and join us today</a>.', Search::getGlobalDirectory() . '/servers');
$invite_desc = DI::l10n()->t('If you are not yet a member of the free social web, <a href="%s">follow this link to find a public Friendica site and join us today</a>.', Search::getGlobalDirectory() . '/servers');
$o = Renderer::replaceMacros($tpl, [
'$header' => L10n::t('Friend/Connection Request'),
'$desc' => L10n::t('Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de'),
'$pls_answer' => L10n::t('Please answer the following:'),
'$does_know_you' => ['knowyou', L10n::t('Does %s know you?', $a->profile['name']), false, '', [L10n::t('No'), L10n::t('Yes')]],
'$add_note' => L10n::t('Add a personal note:'),
'$header' => DI::l10n()->t('Friend/Connection Request'),
'$desc' => DI::l10n()->t('Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de'),
'$pls_answer' => DI::l10n()->t('Please answer the following:'),
'$does_know_you' => ['knowyou', DI::l10n()->t('Does %s know you?', $a->profile['name']), false, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
'$add_note' => DI::l10n()->t('Add a personal note:'),
'$page_desc' => $page_desc,
'$friendica' => L10n::t('Friendica'),
'$statusnet' => L10n::t("GNU Social \x28Pleroma, Mastodon\x29"),
'$diaspora' => L10n::t("Diaspora \x28Socialhome, Hubzilla\x29"),
'$diasnote' => L10n::t(' - please do not use this form. Instead, enter %s into your Diaspora search bar.', $target_addr),
'$your_address' => L10n::t('Your Identity Address:'),
'$friendica' => DI::l10n()->t('Friendica'),
'$statusnet' => DI::l10n()->t("GNU Social \x28Pleroma, Mastodon\x29"),
'$diaspora' => DI::l10n()->t("Diaspora \x28Socialhome, Hubzilla\x29"),
'$diasnote' => DI::l10n()->t(' - please do not use this form. Instead, enter %s into your Diaspora search bar.', $target_addr),
'$your_address' => DI::l10n()->t('Your Identity Address:'),
'$invite_desc' => $invite_desc,
'$submit' => L10n::t('Submit Request'),
'$cancel' => L10n::t('Cancel'),
'$submit' => DI::l10n()->t('Submit Request'),
'$cancel' => DI::l10n()->t('Cancel'),
'$nickname' => $a->argv[1],
'$name' => $a->profile['name'],
'$myaddr' => $myaddr

View file

@ -9,7 +9,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\ACL;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -166,7 +165,7 @@ function display_fetchauthor($a, $item)
function display_content(App $a, $update = false, $update_uid = 0)
{
if (Config::get('system','block_public') && !Session::isAuthenticated()) {
throw new HTTPException\ForbiddenException(L10n::t('Public access denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
}
$o = '';
@ -223,7 +222,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
}
if (empty($item)) {
throw new HTTPException\NotFoundException(L10n::t('The requested item doesn\'t exist or has been deleted.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('The requested item doesn\'t exist or has been deleted.'));
}
// We are displaying an "alternate" link if that post was public. See issue 2864
@ -268,7 +267,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
$is_owner = (local_user() && (in_array($a->profile['profile_uid'], [local_user(), 0])) ? true : false);
if (!empty($a->profile['hidewall']) && !$is_owner && !$is_remote_contact) {
throw new HTTPException\ForbiddenException(L10n::t('Access to this profile has been restricted.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.'));
}
// We need the editor here to be able to reshare an item.
@ -304,7 +303,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
$item = Item::selectFirstForUser($a->profile['profile_uid'], $fields, $condition);
if (!DBA::isResult($item)) {
throw new HTTPException\NotFoundException(L10n::t('The requested item doesn\'t exist or has been deleted.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('The requested item doesn\'t exist or has been deleted.'));
}
$item['uri'] = $item['parent-uri'];
@ -384,7 +383,7 @@ function displayShowFeed($item_id, $conversation)
{
$xml = DFRN::itemFeed($item_id, $conversation);
if ($xml == '') {
throw new HTTPException\InternalServerErrorException(L10n::t('The feed for this item is unavailable.'));
throw new HTTPException\InternalServerErrorException(DI::l10n()->t('The feed for this item is unavailable.'));
}
header("Content-type: application/atom+xml");
echo $xml;

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\Content\Feature;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -20,14 +19,14 @@ function editpost_content(App $a)
$o = '';
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
$post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
if (!$post_id) {
notice(L10n::t('Item not found') . EOL);
notice(DI::l10n()->t('Item not found') . EOL);
return;
}
@ -37,19 +36,19 @@ function editpost_content(App $a)
$item = Item::selectFirstForUser(local_user(), $fields, ['id' => $post_id, 'uid' => local_user()]);
if (!DBA::isResult($item)) {
notice(L10n::t('Item not found') . EOL);
notice(DI::l10n()->t('Item not found') . EOL);
return;
}
$geotag = '';
$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate("section_title.tpl"), [
'$title' => L10n::t('Edit post')
'$title' => DI::l10n()->t('Edit post')
]);
$tpl = Renderer::getMarkupTemplate('jot-header.tpl');
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
'$ispublic' => '&nbsp;', // L10n::t('Visible to <strong>everybody</strong>'),
'$ispublic' => '&nbsp;', // DI::l10n()->t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
'$nickname' => $a->user['nickname']
]);
@ -70,23 +69,23 @@ function editpost_content(App $a)
'$is_edit' => true,
'$return_path' => '/display/' . $item['guid'],
'$action' => 'item',
'$share' => L10n::t('Save'),
'$upload' => L10n::t('Upload photo'),
'$shortupload' => L10n::t('upload photo'),
'$attach' => L10n::t('Attach file'),
'$shortattach' => L10n::t('attach file'),
'$weblink' => L10n::t('Insert web link'),
'$shortweblink' => L10n::t('web link'),
'$video' => L10n::t('Insert video link'),
'$shortvideo' => L10n::t('video link'),
'$audio' => L10n::t('Insert audio link'),
'$shortaudio' => L10n::t('audio link'),
'$setloc' => L10n::t('Set your location'),
'$shortsetloc' => L10n::t('set location'),
'$noloc' => L10n::t('Clear browser location'),
'$shortnoloc' => L10n::t('clear location'),
'$wait' => L10n::t('Please wait'),
'$permset' => L10n::t('Permission settings'),
'$share' => DI::l10n()->t('Save'),
'$upload' => DI::l10n()->t('Upload photo'),
'$shortupload' => DI::l10n()->t('upload photo'),
'$attach' => DI::l10n()->t('Attach file'),
'$shortattach' => DI::l10n()->t('attach file'),
'$weblink' => DI::l10n()->t('Insert web link'),
'$shortweblink' => DI::l10n()->t('web link'),
'$video' => DI::l10n()->t('Insert video link'),
'$shortvideo' => DI::l10n()->t('video link'),
'$audio' => DI::l10n()->t('Insert audio link'),
'$shortaudio' => DI::l10n()->t('audio link'),
'$setloc' => DI::l10n()->t('Set your location'),
'$shortsetloc' => DI::l10n()->t('set location'),
'$noloc' => DI::l10n()->t('Clear browser location'),
'$shortnoloc' => DI::l10n()->t('clear location'),
'$wait' => DI::l10n()->t('Please wait'),
'$permset' => DI::l10n()->t('Permission settings'),
'$wall' => $item['wall'],
'$posttype' => $item['post-type'],
'$content' => undo_post_tagging($item['body']),
@ -94,28 +93,28 @@ function editpost_content(App $a)
'$defloc' => $a->user['default-location'],
'$visitor' => 'none',
'$pvisit' => 'none',
'$emailcc' => L10n::t('CC: email addresses'),
'$public' => L10n::t('Public post'),
'$emailcc' => DI::l10n()->t('CC: email addresses'),
'$public' => DI::l10n()->t('Public post'),
'$jotnets' => $jotnets,
'$title' => $item['title'],
'$placeholdertitle' => L10n::t('Set title'),
'$placeholdertitle' => DI::l10n()->t('Set title'),
'$category' => FileTag::fileToList($item['file'], 'category'),
'$placeholdercategory' => (Feature::isEnabled(local_user(),'categories') ? L10n::t("Categories \x28comma-separated list\x29") : ''),
'$emtitle' => L10n::t('Example: bob@example.com, mary@example.com'),
'$placeholdercategory' => (Feature::isEnabled(local_user(),'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : ''),
'$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate,
'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user)),
'$bang' => ($lockstate === 'lock' ? '!' : ''),
'$profile_uid' => $_SESSION['uid'],
'$preview' => L10n::t('Preview'),
'$preview' => DI::l10n()->t('Preview'),
'$jotplugins' => $jotplugins,
'$sourceapp' => L10n::t($a->sourcename),
'$cancel' => L10n::t('Cancel'),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$cancel' => DI::l10n()->t('Cancel'),
'$rand_num' => Crypto::randomDigits(12),
//jot nav tab (used in some themes)
'$message' => L10n::t('Message'),
'$browser' => L10n::t('Browser'),
'$shortpermset' => L10n::t('permissions'),
'$message' => DI::l10n()->t('Message'),
'$browser' => DI::l10n()->t('Browser'),
'$shortpermset' => DI::l10n()->t('permissions'),
]);
return $o;

View file

@ -8,7 +8,6 @@ use Friendica\App;
use Friendica\Content\Nav;
use Friendica\Content\Widget\CalendarExport;
use Friendica\Core\ACL;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Theme;
@ -117,18 +116,18 @@ function events_post(App $a)
$onerror_path = 'events/' . $action . '?' . http_build_query($params, null, null, PHP_QUERY_RFC3986);
if (strcmp($finish, $start) < 0 && !$nofinish) {
notice(L10n::t('Event can not end before it has started.') . EOL);
notice(DI::l10n()->t('Event can not end before it has started.') . EOL);
if (intval($_REQUEST['preview'])) {
echo L10n::t('Event can not end before it has started.');
echo DI::l10n()->t('Event can not end before it has started.');
exit();
}
DI::baseUrl()->redirect($onerror_path);
}
if (!$summary || ($start === DBA::NULL_DATETIME)) {
notice(L10n::t('Event title and start time are required.') . EOL);
notice(DI::l10n()->t('Event title and start time are required.') . EOL);
if (intval($_REQUEST['preview'])) {
echo L10n::t('Event title and start time are required.');
echo DI::l10n()->t('Event title and start time are required.');
exit();
}
DI::baseUrl()->redirect($onerror_path);
@ -210,7 +209,7 @@ function events_post(App $a)
function events_content(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return Login::form();
}
@ -391,20 +390,20 @@ function events_content(App $a)
$o = Renderer::replaceMacros($tpl, [
'$tabs' => $tabs,
'$title' => L10n::t('Events'),
'$view' => L10n::t('View'),
'$new_event' => [DI::baseUrl() . '/events/new', L10n::t('Create New Event'), '', ''],
'$previous' => [DI::baseUrl() . '/events/$prevyear/$prevmonth', L10n::t('Previous'), '', ''],
'$next' => [DI::baseUrl() . '/events/$nextyear/$nextmonth', L10n::t('Next'), '', ''],
'$title' => DI::l10n()->t('Events'),
'$view' => DI::l10n()->t('View'),
'$new_event' => [DI::baseUrl() . '/events/new', DI::l10n()->t('Create New Event'), '', ''],
'$previous' => [DI::baseUrl() . '/events/$prevyear/$prevmonth', DI::l10n()->t('Previous'), '', ''],
'$next' => [DI::baseUrl() . '/events/$nextyear/$nextmonth', DI::l10n()->t('Next'), '', ''],
'$calendar' => Temporal::getCalendarTable($y, $m, $links, ' eventcal'),
'$events' => $events,
'$today' => L10n::t('today'),
'$month' => L10n::t('month'),
'$week' => L10n::t('week'),
'$day' => L10n::t('day'),
'$list' => L10n::t('list'),
'$today' => DI::l10n()->t('today'),
'$month' => DI::l10n()->t('month'),
'$week' => DI::l10n()->t('week'),
'$day' => DI::l10n()->t('day'),
'$list' => DI::l10n()->t('list'),
]);
if (!empty($_GET['id'])) {
@ -505,14 +504,14 @@ function events_content(App $a)
'$cid' => $cid,
'$uri' => $uri,
'$title' => L10n::t('Event details'),
'$desc' => L10n::t('Starting date and Title are required.'),
'$s_text' => L10n::t('Event Starts:') . ' <span class="required" title="' . L10n::t('Required') . '">*</span>',
'$title' => DI::l10n()->t('Event details'),
'$desc' => DI::l10n()->t('Starting date and Title are required.'),
'$s_text' => DI::l10n()->t('Event Starts:') . ' <span class="required" title="' . DI::l10n()->t('Required') . '">*</span>',
'$s_dsel' => Temporal::getDateTimeField(
new DateTime(),
DateTime::createFromFormat('Y', intval($syear) + 5),
DateTime::createFromFormat('Y-m-d H:i', "$syear-$smonth-$sday $shour:$sminute"),
L10n::t('Event Starts:'),
DI::l10n()->t('Event Starts:'),
'start_text',
true,
true,
@ -520,39 +519,39 @@ function events_content(App $a)
'',
true
),
'$n_text' => L10n::t('Finish date/time is not known or not relevant'),
'$n_text' => DI::l10n()->t('Finish date/time is not known or not relevant'),
'$n_checked' => $n_checked,
'$f_text' => L10n::t('Event Finishes:'),
'$f_text' => DI::l10n()->t('Event Finishes:'),
'$f_dsel' => Temporal::getDateTimeField(
new DateTime(),
DateTime::createFromFormat('Y', intval($fyear) + 5),
DateTime::createFromFormat('Y-m-d H:i', "$fyear-$fmonth-$fday $fhour:$fminute"),
L10n::t('Event Finishes:'),
DI::l10n()->t('Event Finishes:'),
'finish_text',
true,
true,
'start_text'
),
'$a_text' => L10n::t('Adjust for viewer timezone'),
'$a_text' => DI::l10n()->t('Adjust for viewer timezone'),
'$a_checked' => $a_checked,
'$d_text' => L10n::t('Description:'),
'$d_text' => DI::l10n()->t('Description:'),
'$d_orig' => $d_orig,
'$l_text' => L10n::t('Location:'),
'$l_text' => DI::l10n()->t('Location:'),
'$l_orig' => $l_orig,
'$t_text' => L10n::t('Title:') . ' <span class="required" title="' . L10n::t('Required') . '">*</span>',
'$t_text' => DI::l10n()->t('Title:') . ' <span class="required" title="' . DI::l10n()->t('Required') . '">*</span>',
'$t_orig' => $t_orig,
'$summary' => ['summary', L10n::t('Title:'), $t_orig, '', '*'],
'$sh_text' => L10n::t('Share this event'),
'$share' => ['share', L10n::t('Share this event'), $share_checked, '', $share_disabled],
'$summary' => ['summary', DI::l10n()->t('Title:'), $t_orig, '', '*'],
'$sh_text' => DI::l10n()->t('Share this event'),
'$share' => ['share', DI::l10n()->t('Share this event'), $share_checked, '', $share_disabled],
'$sh_checked' => $share_checked,
'$nofinish' => ['nofinish', L10n::t('Finish date/time is not known or not relevant'), $n_checked],
'$adjust' => ['adjust', L10n::t('Adjust for viewer timezone'), $a_checked],
'$preview' => L10n::t('Preview'),
'$nofinish' => ['nofinish', DI::l10n()->t('Finish date/time is not known or not relevant'), $n_checked],
'$adjust' => ['adjust', DI::l10n()->t('Adjust for viewer timezone'), $a_checked],
'$preview' => DI::l10n()->t('Preview'),
'$acl' => $acl,
'$submit' => L10n::t('Submit'),
'$basic' => L10n::t('Basic'),
'$advanced' => L10n::t('Advanced'),
'$permissions' => L10n::t('Permissions'),
'$submit' => DI::l10n()->t('Submit'),
'$basic' => DI::l10n()->t('Basic'),
'$advanced' => DI::l10n()->t('Advanced'),
'$permissions' => DI::l10n()->t('Permissions'),
]);
return $o;
@ -568,9 +567,9 @@ function events_content(App $a)
}
if (Item::exists(['id' => $ev[0]['itemid']])) {
notice(L10n::t('Failed to remove event') . EOL);
notice(DI::l10n()->t('Failed to remove event') . EOL);
} else {
info(L10n::t('Event removed') . EOL);
info(DI::l10n()->t('Event removed') . EOL);
}
DI::baseUrl()->redirect('events');

View file

@ -6,7 +6,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -40,7 +39,7 @@ function fbrowser_content(App $a)
switch ($a->argv[1]) {
case "image":
$path = [["", L10n::t("Photos")]];
$path = [["", DI::l10n()->t("Photos")]];
$albums = false;
$sql_extra = "";
$sql_extra2 = " ORDER BY created DESC LIMIT 0, 10";
@ -49,7 +48,7 @@ function fbrowser_content(App $a)
$albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' ",
intval(local_user()),
DBA::escape('Contact Photos'),
DBA::escape(L10n::t('Contact Photos'))
DBA::escape(DI::l10n()->t('Contact Photos'))
);
function _map_folder1($el)
@ -73,7 +72,7 @@ function fbrowser_content(App $a)
GROUP BY `resource-id` $sql_extra2",
intval(local_user()),
DBA::escape('Contact Photos'),
DBA::escape(L10n::t('Contact Photos'))
DBA::escape(DI::l10n()->t('Contact Photos'))
);
function _map_files1($rr)
@ -107,9 +106,9 @@ function fbrowser_content(App $a)
'$path' => $path,
'$folders' => $albums,
'$files' => $files,
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
'$nickname' => $a->user['nickname'],
'$upload' => L10n::t('Upload')
'$upload' => DI::l10n()->t('Upload')
]);
break;
@ -133,12 +132,12 @@ function fbrowser_content(App $a)
$tpl = Renderer::getMarkupTemplate($template_file);
$o = Renderer::replaceMacros($tpl, [
'$type' => 'file',
'$path' => [ [ "", L10n::t("Files")] ],
'$path' => [ [ "", DI::l10n()->t("Files")] ],
'$folders' => false,
'$files' => $files,
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
'$nickname' => $a->user['nickname'],
'$upload' => L10n::t('Upload')
'$upload' => DI::l10n()->t('Upload')
]);
}

View file

@ -4,10 +4,8 @@
*/
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Profile;
@ -18,7 +16,7 @@ use Friendica\Util\Strings;
function follow_post(App $a)
{
if (!local_user()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.'));
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
}
if (isset($_REQUEST['cancel'])) {
@ -44,7 +42,7 @@ function follow_post(App $a)
DI::baseUrl()->redirect('contact/' . $result['cid']);
}
info(L10n::t('The contact could not be added.'));
info(DI::l10n()->t('The contact could not be added.'));
DI::baseUrl()->redirect($return_path);
// NOTREACHED
@ -55,7 +53,7 @@ function follow_content(App $a)
$return_path = 'contact';
if (!local_user()) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect($return_path);
// NOTREACHED
}
@ -74,7 +72,7 @@ function follow_content(App $a)
DI::baseUrl()->redirect($return_path);
}
$submit = L10n::t('Submit Request');
$submit = DI::l10n()->t('Submit Request');
// Don't try to add a pending contact
$r = q("SELECT `pending` FROM `contact` WHERE `uid` = %d AND ((`rel` != %d) OR (`network` = '%s')) AND
@ -85,7 +83,7 @@ function follow_content(App $a)
if ($r) {
if ($r[0]['pending']) {
notice(L10n::t('You already added this contact.'));
notice(DI::l10n()->t('You already added this contact.'));
$submit = '';
//$a->internalRedirect($_SESSION['return_path']);
// NOTREACHED
@ -97,21 +95,21 @@ function follow_content(App $a)
$protocol = Contact::getProtocol($ret['url'], $ret['network']);
if (($protocol == Protocol::DIASPORA) && !Config::get('system', 'diaspora_enabled')) {
notice(L10n::t("Diaspora support isn't enabled. Contact can't be added."));
notice(DI::l10n()->t("Diaspora support isn't enabled. Contact can't be added."));
$submit = '';
//$a->internalRedirect($_SESSION['return_path']);
// NOTREACHED
}
if (($protocol == Protocol::OSTATUS) && Config::get('system', 'ostatus_disabled')) {
notice(L10n::t("OStatus support is disabled. Contact can't be added."));
notice(DI::l10n()->t("OStatus support is disabled. Contact can't be added."));
$submit = '';
//$a->internalRedirect($_SESSION['return_path']);
// NOTREACHED
}
if ($protocol == Protocol::PHANTOM) {
notice(L10n::t("The network type couldn't be detected. Contact can't be added."));
notice(DI::l10n()->t("The network type couldn't be detected. Contact can't be added."));
$submit = '';
//$a->internalRedirect($_SESSION['return_path']);
// NOTREACHED
@ -132,7 +130,7 @@ function follow_content(App $a)
$r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", intval($uid));
if (!$r) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect($return_path);
// NOTREACHED
}
@ -158,30 +156,30 @@ function follow_content(App $a)
}
$o = Renderer::replaceMacros($tpl, [
'$header' => L10n::t('Connect/Follow'),
'$header' => DI::l10n()->t('Connect/Follow'),
'$desc' => '',
'$pls_answer' => L10n::t('Please answer the following:'),
'$does_know_you' => ['knowyou', L10n::t('Does %s know you?', $ret['name']), false, '', [L10n::t('No'), L10n::t('Yes')]],
'$add_note' => L10n::t('Add a personal note:'),
'$pls_answer' => DI::l10n()->t('Please answer the following:'),
'$does_know_you' => ['knowyou', DI::l10n()->t('Does %s know you?', $ret['name']), false, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
'$add_note' => DI::l10n()->t('Add a personal note:'),
'$page_desc' => '',
'$friendica' => '',
'$statusnet' => '',
'$diaspora' => '',
'$diasnote' => '',
'$your_address' => L10n::t('Your Identity Address:'),
'$your_address' => DI::l10n()->t('Your Identity Address:'),
'$invite_desc' => '',
'$emailnet' => '',
'$submit' => $submit,
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
'$nickname' => '',
'$name' => $ret['name'],
'$url' => $ret['url'],
'$zrl' => Profile::zrl($ret['url']),
'$url_label' => L10n::t('Profile URL'),
'$url_label' => DI::l10n()->t('Profile URL'),
'$myaddr' => $myaddr,
'$request' => $request,
'$keywords' => $r[0]['keywords'],
'$keywords_label'=> L10n::t('Tags:')
'$keywords_label'=> DI::l10n()->t('Tags:')
]);
DI::page()['aside'] = '';
@ -193,7 +191,7 @@ function follow_content(App $a)
if ($gcontact_id <> 0) {
$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'),
['$title' => L10n::t('Status Messages and Posts')]
['$title' => DI::l10n()->t('Status Messages and Posts')]
);
// Show last public posts

View file

@ -5,9 +5,9 @@
use Friendica\App;
use Friendica\Core\ACL;
use Friendica\Core\L10n;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Strings;
use Friendica\Worker\Delivery;
@ -29,7 +29,7 @@ function fsuggest_post(App $a)
// We do query the "uid" as well to ensure that it is our contact
if (!DBA::exists('contact', ['id' => $contact_id, 'uid' => local_user()])) {
notice(L10n::t('Contact not found.') . EOL);
notice(DI::l10n()->t('Contact not found.') . EOL);
return;
}
@ -41,7 +41,7 @@ function fsuggest_post(App $a)
// We do query the "uid" as well to ensure that it is our contact
$contact = DBA::selectFirst('contact', ['name', 'url', 'request', 'avatar'], ['id' => $suggest_contact_id, 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
notice(L10n::t('Suggested contact not found.') . EOL);
notice(DI::l10n()->t('Suggested contact not found.') . EOL);
return;
}
@ -54,13 +54,13 @@ function fsuggest_post(App $a)
Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::SUGGESTION, DBA::lastInsertId());
info(L10n::t('Friend suggestion sent.') . EOL);
info(DI::l10n()->t('Friend suggestion sent.') . EOL);
}
function fsuggest_content(App $a)
{
if (! local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -72,13 +72,13 @@ function fsuggest_content(App $a)
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user()]);
if (! DBA::isResult($contact)) {
notice(L10n::t('Contact not found.') . EOL);
notice(DI::l10n()->t('Contact not found.') . EOL);
return;
}
$o = '<h3>' . L10n::t('Suggest Friends') . '</h3>';
$o = '<h3>' . DI::l10n()->t('Suggest Friends') . '</h3>';
$o .= '<div id="fsuggest-desc" >' . L10n::t('Suggest a friend for %s', $contact['name']) . '</div>';
$o .= '<div id="fsuggest-desc" >' . DI::l10n()->t('Suggest a friend for %s', $contact['name']) . '</div>';
$o .= '<form id="fsuggest-form" action="fsuggest/' . $contact_id . '" method="post" >';
@ -89,7 +89,7 @@ function fsuggest_content(App $a)
);
$o .= '<div id="fsuggest-submit-wrapper"><input id="fsuggest-submit" type="submit" name="submit" value="' . L10n::t('Submit') . '" /></div>';
$o .= '<div id="fsuggest-submit-wrapper"><input id="fsuggest-submit" type="submit" name="submit" value="' . DI::l10n()->t('Submit') . '" /></div>';
$o .= '</form>';
return $o;

View file

@ -21,7 +21,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Session;
@ -123,7 +122,7 @@ function item_post(App $a) {
}
if (!DBA::isResult($toplevel_item)) {
notice(L10n::t('Unable to locate original post.') . EOL);
notice(DI::l10n()->t('Unable to locate original post.') . EOL);
if (!empty($_REQUEST['return'])) {
DI::baseUrl()->redirect($return_path);
}
@ -170,7 +169,7 @@ function item_post(App $a) {
// Now check that valid personal details have been provided
if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
if (!empty($_REQUEST['return'])) {
DI::baseUrl()->redirect($return_path);
@ -325,7 +324,7 @@ function item_post(App $a) {
if ($preview) {
exit();
}
info(L10n::t('Empty post discarded.') . EOL);
info(DI::l10n()->t('Empty post discarded.') . EOL);
if (!empty($_REQUEST['return'])) {
DI::baseUrl()->redirect($return_path);
}
@ -797,14 +796,14 @@ function item_post(App $a) {
if (!strlen($addr)) {
continue;
}
$disclaimer = '<hr />' . L10n::t('This message was sent to you by %s, a member of the Friendica social network.', $a->user['username'])
$disclaimer = '<hr />' . DI::l10n()->t('This message was sent to you by %s, a member of the Friendica social network.', $a->user['username'])
. '<br />';
$disclaimer .= L10n::t('You may visit them online at %s', DI::baseUrl() . '/profile/' . $a->user['nickname']) . EOL;
$disclaimer .= L10n::t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
$disclaimer .= DI::l10n()->t('You may visit them online at %s', DI::baseUrl() . '/profile/' . $a->user['nickname']) . EOL;
$disclaimer .= DI::l10n()->t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
if (!$datarray['title']=='') {
$subject = Email::encodeHeader($datarray['title'], 'UTF-8');
} else {
$subject = Email::encodeHeader('[Friendica]' . ' ' . L10n::t('%s posted an update.', $a->user['username']), 'UTF-8');
$subject = Email::encodeHeader('[Friendica]' . ' ' . DI::l10n()->t('%s posted an update.', $a->user['username']), 'UTF-8');
}
$link = '<a href="' . DI::baseUrl() . '/profile/' . $a->user['nickname'] . '"><img src="' . $author['thumb'] . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
$html = Item::prepareBody($datarray);

View file

@ -4,7 +4,6 @@
*/
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Group;
@ -45,7 +44,7 @@ function lockview_content(App $a)
Hook::callAll('lockview_content', $item);
if ($item['uid'] != local_user()) {
echo L10n::t('Remote privacy information not available.') . '<br />';
echo DI::l10n()->t('Remote privacy information not available.') . '<br />';
exit();
}
@ -56,7 +55,7 @@ function lockview_content(App $a)
&& empty($item['deny_cid'])
&& empty($item['deny_gid']))
{
echo L10n::t('Remote privacy information not available.') . '<br />';
echo DI::l10n()->t('Remote privacy information not available.') . '<br />';
exit();
}
@ -67,19 +66,19 @@ function lockview_content(App $a)
$deny_users = $aclFormatter->expand($item['deny_cid']);
$deny_groups = $aclFormatter->expand($item['deny_gid']);
$o = L10n::t('Visible to:') . '<br />';
$o = DI::l10n()->t('Visible to:') . '<br />';
$l = [];
if (count($allowed_groups)) {
$key = array_search(Group::FOLLOWERS, $allowed_groups);
if ($key !== false) {
$l[] = '<b>' . L10n::t('Followers') . '</b>';
$l[] = '<b>' . DI::l10n()->t('Followers') . '</b>';
unset($allowed_groups[$key]);
}
$key = array_search(Group::MUTUALS, $allowed_groups);
if ($key !== false) {
$l[] = '<b>' . L10n::t('Mutuals') . '</b>';
$l[] = '<b>' . DI::l10n()->t('Mutuals') . '</b>';
unset($allowed_groups[$key]);
}
@ -108,13 +107,13 @@ function lockview_content(App $a)
if (count($deny_groups)) {
$key = array_search(Group::FOLLOWERS, $deny_groups);
if ($key !== false) {
$l[] = '<b><strike>' . L10n::t('Followers') . '</strike></b>';
$l[] = '<b><strike>' . DI::l10n()->t('Followers') . '</strike></b>';
unset($deny_groups[$key]);
}
$key = array_search(Group::MUTUALS, $deny_groups);
if ($key !== false) {
$l[] = '<b><strike>' . L10n::t('Mutuals') . '</strike></b>';
$l[] = '<b><strike>' . DI::l10n()->t('Mutuals') . '</strike></b>';
unset($deny_groups[$key]);
}

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -24,7 +23,7 @@ function lostpass_post(App $a)
$condition = ['(`email` = ? OR `nickname` = ?) AND `verified` = 1 AND `blocked` = 0', $loginame, $loginame];
$user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'email', 'language'], $condition);
if (!DBA::isResult($user)) {
notice(L10n::t('No valid account found.') . EOL);
notice(DI::l10n()->t('No valid account found.') . EOL);
DI::baseUrl()->redirect();
}
@ -36,13 +35,13 @@ function lostpass_post(App $a)
];
$result = DBA::update('user', $fields, ['uid' => $user['uid']]);
if ($result) {
info(L10n::t('Password reset request issued. Check your email.') . EOL);
info(DI::l10n()->t('Password reset request issued. Check your email.') . EOL);
}
$sitename = Config::get('config', 'sitename');
$resetlink = DI::baseUrl() . '/lostpass/' . $pwdreset_token;
$preamble = Strings::deindent(L10n::t('
$preamble = Strings::deindent(DI::l10n()->t('
Dear %1$s,
A request was recently received at "%2$s" to reset your account
password. In order to confirm this request, please select the verification link
@ -53,7 +52,7 @@ function lostpass_post(App $a)
Your password will not be changed unless we can verify that you
issued this request.', $user['username'], $sitename));
$body = Strings::deindent(L10n::t('
$body = Strings::deindent(DI::l10n()->t('
Follow this link soon to verify your identity:
%1$s
@ -72,7 +71,7 @@ function lostpass_post(App $a)
'to_name' => $user['username'],
'to_email' => $user['email'],
'uid' => $user['uid'],
'subject' => L10n::t('Password reset requested at %s', $sitename),
'subject' => DI::l10n()->t('Password reset requested at %s', $sitename),
'preamble' => $preamble,
'body' => $body
]);
@ -87,7 +86,7 @@ function lostpass_content(App $a)
$user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'email', 'pwdreset_time', 'language'], ['pwdreset' => $pwdreset_token]);
if (!DBA::isResult($user)) {
notice(L10n::t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed."));
notice(DI::l10n()->t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed."));
return lostpass_form();
}
@ -100,7 +99,7 @@ function lostpass_content(App $a)
];
DBA::update('user', $fields, ['uid' => $user['uid']]);
notice(L10n::t('Request has expired, please make a new one.'));
notice(DI::l10n()->t('Request has expired, please make a new one.'));
return lostpass_form();
}
@ -115,10 +114,10 @@ function lostpass_form()
{
$tpl = Renderer::getMarkupTemplate('lostpass.tpl');
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Forgot your Password?'),
'$desc' => L10n::t('Enter your email address and submit to have your password reset. Then check your email for further instructions.'),
'$name' => L10n::t('Nickname or Email: '),
'$submit' => L10n::t('Reset')
'$title' => DI::l10n()->t('Forgot your Password?'),
'$desc' => DI::l10n()->t('Enter your email address and submit to have your password reset. Then check your email for further instructions.'),
'$name' => DI::l10n()->t('Nickname or Email: '),
'$submit' => DI::l10n()->t('Reset')
]);
return $o;
@ -133,25 +132,25 @@ function lostpass_generate_password($user)
if (DBA::isResult($result)) {
$tpl = Renderer::getMarkupTemplate('pwdreset.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$lbl1' => L10n::t('Password Reset'),
'$lbl2' => L10n::t('Your password has been reset as requested.'),
'$lbl3' => L10n::t('Your new password is'),
'$lbl4' => L10n::t('Save or copy your new password - and then'),
'$lbl5' => '<a href="' . DI::baseUrl() . '">' . L10n::t('click here to login') . '</a>.',
'$lbl6' => L10n::t('Your password may be changed from the <em>Settings</em> page after successful login.'),
'$lbl1' => DI::l10n()->t('Password Reset'),
'$lbl2' => DI::l10n()->t('Your password has been reset as requested.'),
'$lbl3' => DI::l10n()->t('Your new password is'),
'$lbl4' => DI::l10n()->t('Save or copy your new password - and then'),
'$lbl5' => '<a href="' . DI::baseUrl() . '">' . DI::l10n()->t('click here to login') . '</a>.',
'$lbl6' => DI::l10n()->t('Your password may be changed from the <em>Settings</em> page after successful login.'),
'$newpass' => $new_password,
]);
info("Your password has been reset." . EOL);
$sitename = Config::get('config', 'sitename');
$preamble = Strings::deindent(L10n::t('
$preamble = Strings::deindent(DI::l10n()->t('
Dear %1$s,
Your password has been changed as requested. Please retain this
information for your records ' . "\x28" . 'or change your password immediately to
something that you will remember' . "\x29" . '.
', $user['username']));
$body = Strings::deindent(L10n::t('
$body = Strings::deindent(DI::l10n()->t('
Your login details are as follows:
Site Location: %1$s
@ -167,7 +166,7 @@ function lostpass_generate_password($user)
'to_name' => $user['username'],
'to_email' => $user['email'],
'uid' => $user['uid'],
'subject' => L10n::t('Your password has been changed at %s', $sitename),
'subject' => DI::l10n()->t('Your password has been changed at %s', $sitename),
'preamble' => $preamble,
'body' => $body
]);

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\Content\Widget;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\Database\DBA;
@ -46,7 +45,7 @@ function match_content(App $a)
return '';
}
if (!$profile['pub_keywords'] && (!$profile['prv_keywords'])) {
notice(L10n::t('No keywords to match. Please add keywords to your default profile.') . EOL);
notice(DI::l10n()->t('No keywords to match. Please add keywords to your default profile.') . EOL);
return '';
}
@ -84,8 +83,8 @@ function match_content(App $a)
$connlnk = DI::baseUrl() . '/follow/?url=' . $profile->url;
$photo_menu = [
'profile' => [L10n::t("View Profile"), Contact::magicLink($profile->url)],
'follow' => [L10n::t("Connect/Follow"), $connlnk]
'profile' => [DI::l10n()->t("View Profile"), Contact::magicLink($profile->url)],
'follow' => [DI::l10n()->t("Connect/Follow"), $connlnk]
];
$contact_details = Contact::getDetailsByURL($profile->url, 0);
@ -99,7 +98,7 @@ function match_content(App $a)
'about' => $contact_details['about'] ?? '',
'account_type' => Contact::getAccountType($contact_details),
'thumb' => ProxyUtils::proxifyUrl($profile->photo, false, ProxyUtils::SIZE_THUMB),
'conntxt' => L10n::t('Connect'),
'conntxt' => DI::l10n()->t('Connect'),
'connlnk' => $connlnk,
'img_hover' => $profile->tags,
'photo_menu' => $photo_menu,
@ -112,12 +111,12 @@ function match_content(App $a)
'class' => 'pager',
'first' => [
'url' => 'match',
'text' => L10n::t('first'),
'text' => DI::l10n()->t('first'),
'class' => 'previous' . ($start == 0 ? 'disabled' : '')
],
'next' => [
'url' => 'match?start=' . $i,
'text' => L10n::t('next'),
'text' => DI::l10n()->t('next'),
'class' => 'next' . ($i >= $msearch->total ? ' disabled' : '')
]
];
@ -127,12 +126,12 @@ function match_content(App $a)
}
if (empty($entries)) {
info(L10n::t('No matches') . EOL);
info(DI::l10n()->t('No matches') . EOL);
}
$tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl');
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Profile Match'),
'$title' => DI::l10n()->t('Profile Match'),
'$contacts' => $entries,
'$paginate' => $paginate
]);

View file

@ -8,7 +8,6 @@ use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Content\Text\BBCode;
use Friendica\Core\ACL;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -29,7 +28,7 @@ function message_init(App $a)
}
$new = [
'label' => L10n::t('New Message'),
'label' => DI::l10n()->t('New Message'),
'url' => 'message/new',
'sel' => $a->argc > 1 && $a->argv[1] == 'new',
'accesskey' => 'm',
@ -52,7 +51,7 @@ function message_init(App $a)
function message_post(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -66,20 +65,20 @@ function message_post(App $a)
switch ($ret) {
case -1:
notice(L10n::t('No recipient selected.') . EOL);
notice(DI::l10n()->t('No recipient selected.') . EOL);
$norecip = true;
break;
case -2:
notice(L10n::t('Unable to locate contact information.') . EOL);
notice(DI::l10n()->t('Unable to locate contact information.') . EOL);
break;
case -3:
notice(L10n::t('Message could not be sent.') . EOL);
notice(DI::l10n()->t('Message could not be sent.') . EOL);
break;
case -4:
notice(L10n::t('Message collection failure.') . EOL);
notice(DI::l10n()->t('Message collection failure.') . EOL);
break;
default:
info(L10n::t('Message sent.') . EOL);
info(DI::l10n()->t('Message sent.') . EOL);
}
// fake it to go back to the input form if no recipient listed
@ -97,7 +96,7 @@ function message_content(App $a)
Nav::setSelected('messages');
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return Login::form();
}
@ -106,20 +105,20 @@ function message_content(App $a)
$tpl = Renderer::getMarkupTemplate('mail_head.tpl');
if ($a->argc > 1 && $a->argv[1] == 'new') {
$button = [
'label' => L10n::t('Discard'),
'label' => DI::l10n()->t('Discard'),
'url' => '/message',
'sel' => 'close',
];
} else {
$button = [
'label' => L10n::t('New Message'),
'label' => DI::l10n()->t('New Message'),
'url' => '/message/new',
'sel' => 'new',
'accesskey' => 'm',
];
}
$header = Renderer::replaceMacros($tpl, [
'$messages' => L10n::t('Messages'),
'$messages' => DI::l10n()->t('Messages'),
'$button' => $button,
]);
@ -144,12 +143,12 @@ function message_content(App $a)
//DI::page()['aside'] = '';
return Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [
'$method' => 'get',
'$message' => L10n::t('Do you really want to delete this message?'),
'$message' => DI::l10n()->t('Do you really want to delete this message?'),
'$extra_inputs' => $inputs,
'$confirm' => L10n::t('Yes'),
'$confirm' => DI::l10n()->t('Yes'),
'$confirm_url' => $query['base'],
'$confirm_name' => 'confirmed',
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
]);
}
@ -162,17 +161,17 @@ function message_content(App $a)
if ($cmd === 'drop') {
$message = DBA::selectFirst('mail', ['convid'], ['id' => $a->argv[2], 'uid' => local_user()]);
if(!DBA::isResult($message)){
info(L10n::t('Conversation not found.') . EOL);
info(DI::l10n()->t('Conversation not found.') . EOL);
DI::baseUrl()->redirect('message');
}
if (DBA::delete('mail', ['id' => $a->argv[2], 'uid' => local_user()])) {
info(L10n::t('Message deleted.') . EOL);
info(DI::l10n()->t('Message deleted.') . EOL);
}
$conversation = DBA::selectFirst('mail', ['id'], ['convid' => $message['convid'], 'uid' => local_user()]);
if(!DBA::isResult($conversation)){
info(L10n::t('Conversation removed.') . EOL);
info(DI::l10n()->t('Conversation removed.') . EOL);
DI::baseUrl()->redirect('message');
}
@ -186,7 +185,7 @@ function message_content(App $a)
$parent = $r[0]['parent-uri'];
if (DBA::delete('mail', ['parent-uri' => $parent, 'uid' => local_user()])) {
info(L10n::t('Conversation removed.') . EOL);
info(DI::l10n()->t('Conversation removed.') . EOL);
}
}
DI::baseUrl()->redirect('message');
@ -200,7 +199,7 @@ function message_content(App $a)
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
'$baseurl' => DI::baseUrl()->get(true),
'$nickname' => $a->user['nickname'],
'$linkurl' => L10n::t('Please enter a link URL:')
'$linkurl' => DI::l10n()->t('Please enter a link URL:')
]);
$preselect = isset($a->argv[2]) ? [$a->argv[2]] : [];
@ -242,22 +241,22 @@ function message_content(App $a)
$tpl = Renderer::getMarkupTemplate('prv_message.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$header' => L10n::t('Send Private Message'),
'$to' => L10n::t('To:'),
'$header' => DI::l10n()->t('Send Private Message'),
'$to' => DI::l10n()->t('To:'),
'$showinputs' => 'true',
'$prefill' => $prefill,
'$preid' => $preid,
'$subject' => L10n::t('Subject:'),
'$subject' => DI::l10n()->t('Subject:'),
'$subjtxt' => $_REQUEST['subject'] ?? '',
'$text' => $_REQUEST['body'] ?? '',
'$readonly' => '',
'$yourmessage'=> L10n::t('Your message:'),
'$yourmessage'=> DI::l10n()->t('Your message:'),
'$select' => $select,
'$parent' => '',
'$upload' => L10n::t('Upload photo'),
'$insert' => L10n::t('Insert web link'),
'$wait' => L10n::t('Please wait'),
'$submit' => L10n::t('Submit')
'$upload' => DI::l10n()->t('Upload photo'),
'$insert' => DI::l10n()->t('Insert web link'),
'$wait' => DI::l10n()->t('Please wait'),
'$submit' => DI::l10n()->t('Submit')
]);
return $o;
}
@ -285,7 +284,7 @@ function message_content(App $a)
$r = get_messages(local_user(), $pager->getStart(), $pager->getItemsPerPage());
if (!DBA::isResult($r)) {
info(L10n::t('No messages.') . EOL);
info(DI::l10n()->t('No messages.') . EOL);
return $o;
}
@ -348,7 +347,7 @@ function message_content(App $a)
}
if (!DBA::isResult($messages)) {
notice(L10n::t('Message not available.') . EOL);
notice(DI::l10n()->t('Message not available.') . EOL);
return $o;
}
@ -356,7 +355,7 @@ function message_content(App $a)
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
'$baseurl' => DI::baseUrl()->get(true),
'$nickname' => $a->user['nickname'],
'$linkurl' => L10n::t('Please enter a link URL:')
'$linkurl' => DI::l10n()->t('Please enter a link URL:')
]);
$mails = [];
@ -402,9 +401,9 @@ function message_content(App $a)
'from_photo' => ProxyUtils::proxifyUrl($from_photo, false, ProxyUtils::SIZE_THUMB),
'subject' => $subject_e,
'body' => $body_e,
'delete' => L10n::t('Delete message'),
'delete' => DI::l10n()->t('Delete message'),
'to_name' => $to_name_e,
'date' => DateTimeFormat::local($message['created'], L10n::t('D, d M Y - g:i A')),
'date' => DateTimeFormat::local($message['created'], DI::l10n()->t('D, d M Y - g:i A')),
'ago' => Temporal::getRelativeDate($message['created']),
];
@ -419,26 +418,26 @@ function message_content(App $a)
'$thread_id' => $a->argv[1],
'$thread_subject' => $message['title'],
'$thread_seen' => $seen,
'$delete' => L10n::t('Delete conversation'),
'$delete' => DI::l10n()->t('Delete conversation'),
'$canreply' => (($unknown) ? false : '1'),
'$unknown_text' => L10n::t("No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."),
'$unknown_text' => DI::l10n()->t("No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."),
'$mails' => $mails,
// reply
'$header' => L10n::t('Send Reply'),
'$to' => L10n::t('To:'),
'$header' => DI::l10n()->t('Send Reply'),
'$to' => DI::l10n()->t('To:'),
'$showinputs' => '',
'$subject' => L10n::t('Subject:'),
'$subject' => DI::l10n()->t('Subject:'),
'$subjtxt' => $message['title'],
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
'$yourmessage' => L10n::t('Your message:'),
'$yourmessage' => DI::l10n()->t('Your message:'),
'$text' => '',
'$select' => $select,
'$parent' => $parent,
'$upload' => L10n::t('Upload photo'),
'$insert' => L10n::t('Insert web link'),
'$submit' => L10n::t('Submit'),
'$wait' => L10n::t('Please wait')
'$upload' => DI::l10n()->t('Upload photo'),
'$insert' => DI::l10n()->t('Insert web link'),
'$submit' => DI::l10n()->t('Submit'),
'$wait' => DI::l10n()->t('Please wait')
]);
return $o;
@ -508,11 +507,11 @@ function render_messages(array $msg, $t)
foreach ($msg as $rr) {
if ($rr['unknown']) {
$participants = L10n::t("Unknown sender - %s", $rr['from-name']);
$participants = DI::l10n()->t("Unknown sender - %s", $rr['from-name']);
} elseif (Strings::compareLink($rr['from-url'], $myprofile)) {
$participants = L10n::t("You and %s", $rr['name']);
$participants = DI::l10n()->t("You and %s", $rr['name']);
} else {
$participants = L10n::t("%s and You", $rr['from-name']);
$participants = DI::l10n()->t("%s and You", $rr['from-name']);
}
$body_e = $rr['body'];
@ -533,13 +532,13 @@ function render_messages(array $msg, $t)
'$sparkle' => ' sparkle',
'$from_photo' => ProxyUtils::proxifyUrl($from_photo, false, ProxyUtils::SIZE_THUMB),
'$subject' => $rr['title'],
'$delete' => L10n::t('Delete conversation'),
'$delete' => DI::l10n()->t('Delete conversation'),
'$body' => $body_e,
'$to_name' => $to_name_e,
'$date' => DateTimeFormat::local($rr['mailcreated'], L10n::t('D, d M Y - g:i A')),
'$date' => DateTimeFormat::local($rr['mailcreated'], DI::l10n()->t('D, d M Y - g:i A')),
'$ago' => Temporal::getRelativeDate($rr['mailcreated']),
'$seen' => $rr['mailseen'],
'$count' => L10n::tt('%d message', '%d messages', $rr['count']),
'$count' => DI::l10n()->tt('%d message', '%d messages', $rr['count']),
]);
}

View file

@ -14,7 +14,6 @@ use Friendica\Content\Text\HTML;
use Friendica\Core\ACL;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -34,7 +33,7 @@ use Friendica\Util\Strings;
function network_init(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -491,10 +490,10 @@ function networkThreadedView(App $a, $update, $parent)
$o .= $tabs;
if ($gid && ($t = Contact::getOStatusCountByGroupId($gid)) && !DI::pConfig()->get(local_user(), 'system', 'nowarn_insecure')) {
notice(L10n::tt("Warning: This group contains %s member from a network that doesn't allow non public messages.",
notice(DI::l10n()->tt("Warning: This group contains %s member from a network that doesn't allow non public messages.",
"Warning: This group contains %s members from a network that doesn't allow non public messages.",
$t) . EOL);
notice(L10n::t("Messages in this group won't be send to these receivers.").EOL);
notice(DI::l10n()->t("Messages in this group won't be send to these receivers.").EOL);
}
Nav::setSelected('network');
@ -561,7 +560,7 @@ function networkThreadedView(App $a, $update, $parent)
if ($update) {
exit();
}
notice(L10n::t('No such group') . EOL);
notice(DI::l10n()->t('No such group') . EOL);
DI::baseUrl()->redirect('network/0');
// NOTREACHED
}
@ -582,11 +581,11 @@ function networkThreadedView(App $a, $update, $parent)
$sql_extra3 .= " OR (`thread`.`contact-id` = '$contact_str_self' AND `temp1`.`allow_gid` LIKE '" . Strings::protectSprintf('%<' . intval($gid) . '>%') . "' AND `temp1`.`private`))";
} else {
$sql_extra3 .= " AND false ";
info(L10n::t('Group is empty'));
info(DI::l10n()->t('Group is empty'));
}
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'), [
'$title' => L10n::t('Group: %s', $group['name'])
'$title' => DI::l10n()->t('Group: %s', $group['name'])
]) . $o;
} elseif ($cid) {
$fields = ['id', 'name', 'network', 'writable', 'nurl',
@ -612,10 +611,10 @@ function networkThreadedView(App $a, $update, $parent)
]) . $o;
if ($contact['network'] === Protocol::OSTATUS && $contact['writable'] && !DI::pConfig()->get(local_user(),'system','nowarn_insecure')) {
notice(L10n::t('Private messages to this person are at risk of public disclosure.') . EOL);
notice(DI::l10n()->t('Private messages to this person are at risk of public disclosure.') . EOL);
}
} else {
notice(L10n::t('Invalid contact.') . EOL);
notice(DI::l10n()->t('Invalid contact.') . EOL);
DI::baseUrl()->redirect('network');
// NOTREACHED
}
@ -899,38 +898,38 @@ function network_tabs(App $a)
// tabs
$tabs = [
[
'label' => L10n::t('Latest Activity'),
'label' => DI::l10n()->t('Latest Activity'),
'url' => $cmd . '?' . http_build_query(array_merge($def_param, ['order' => 'activity'])),
'sel' => $all_active,
'title' => L10n::t('Sort by latest activity'),
'title' => DI::l10n()->t('Sort by latest activity'),
'id' => 'activity-order-tab',
'accesskey' => 'e',
],
[
'label' => L10n::t('Latest Posts'),
'label' => DI::l10n()->t('Latest Posts'),
'url' => $cmd . '?' . http_build_query(array_merge($def_param, ['order' => 'post'])),
'sel' => $post_active,
'title' => L10n::t('Sort by post received date'),
'title' => DI::l10n()->t('Sort by post received date'),
'id' => 'post-order-tab',
'accesskey' => 't',
],
];
$tabs[] = [
'label' => L10n::t('Personal'),
'label' => DI::l10n()->t('Personal'),
'url' => $cmd . '?' . http_build_query(array_merge($def_param, ['conv' => true])),
'sel' => $conv_active,
'title' => L10n::t('Posts that mention or involve you'),
'title' => DI::l10n()->t('Posts that mention or involve you'),
'id' => 'personal-tab',
'accesskey' => 'r',
];
if (Feature::isEnabled(local_user(), 'new_tab')) {
$tabs[] = [
'label' => L10n::t('New'),
'label' => DI::l10n()->t('New'),
'url' => $cmd . '?' . http_build_query(array_merge($def_param, ['new' => true])),
'sel' => $new_active,
'title' => L10n::t('Activity Stream - by date'),
'title' => DI::l10n()->t('Activity Stream - by date'),
'id' => 'activitiy-by-date-tab',
'accesskey' => 'w',
];
@ -938,20 +937,20 @@ function network_tabs(App $a)
if (Feature::isEnabled(local_user(), 'link_tab')) {
$tabs[] = [
'label' => L10n::t('Shared Links'),
'label' => DI::l10n()->t('Shared Links'),
'url' => $cmd . '?' . http_build_query(array_merge($def_param, ['bmark' => true])),
'sel' => $bookmarked_active,
'title' => L10n::t('Interesting Links'),
'title' => DI::l10n()->t('Interesting Links'),
'id' => 'shared-links-tab',
'accesskey' => 'b',
];
}
$tabs[] = [
'label' => L10n::t('Starred'),
'label' => DI::l10n()->t('Starred'),
'url' => $cmd . '?' . http_build_query(array_merge($def_param, ['star' => true])),
'sel' => $starred_active,
'title' => L10n::t('Favourite Posts'),
'title' => DI::l10n()->t('Favourite Posts'),
'id' => 'starred-posts-tab',
'accesskey' => 'm',
];

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Item;
@ -25,14 +24,14 @@ function notes_init(App $a)
function notes_content(App $a, $update = false)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
$o = Profile::getTabs($a, 'notes', true);
if (!$update) {
$o .= '<h3>' . L10n::t('Personal Notes') . '</h3>';
$o .= '<h3>' . DI::l10n()->t('Personal Notes') . '</h3>';
$x = [
'is_owner' => true,
@ -44,7 +43,7 @@ function notes_content(App $a, $update = false)
'bang' => '',
'visitor' => 'block',
'profile_uid' => local_user(),
'button' => L10n::t('Save'),
'button' => DI::l10n()->t('Save'),
'acl_data' => '',
];

View file

@ -8,15 +8,12 @@ use Friendica\App;
use Friendica\Content\ContactSelector;
use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Module\Security\Login;
use Friendica\Model\Contact;
use Friendica\Model\Introduction;
function notifications_post(App $a)
{
@ -34,10 +31,10 @@ function notifications_post(App $a)
$intro = DI::intro()->selectFirst(['id' => $request_id, 'uid' => local_user()]);
switch ($_POST['submit']) {
case L10n::t('Discard'):
case DI::l10n()->t('Discard'):
$intro->discard();
break;
case L10n::t('Ignore'):
case DI::l10n()->t('Ignore'):
$intro->ignore();
break;
}
@ -49,7 +46,7 @@ function notifications_post(App $a)
function notifications_content(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return Login::form();
}
@ -72,7 +69,7 @@ function notifications_content(App $a)
$perpage = 20;
$startrec = ($page * $perpage) - $perpage;
$notif_header = L10n::t('Notifications');
$notif_header = DI::l10n()->t('Notifications');
$all = false;
@ -91,22 +88,22 @@ function notifications_content(App $a)
// Get the network notifications
} elseif (($a->argc > 1) && ($a->argv[1] == 'network')) {
$notif_header = L10n::t('Network Notifications');
$notif_header = DI::l10n()->t('Network Notifications');
$notifs = $nm->getNetworkList($show, $startrec, $perpage);
// Get the system notifications
} elseif (($a->argc > 1) && ($a->argv[1] == 'system')) {
$notif_header = L10n::t('System Notifications');
$notif_header = DI::l10n()->t('System Notifications');
$notifs = $nm->getSystemList($show, $startrec, $perpage);
// Get the personal notifications
} elseif (($a->argc > 1) && ($a->argv[1] == 'personal')) {
$notif_header = L10n::t('Personal Notifications');
$notif_header = DI::l10n()->t('Personal Notifications');
$notifs = $nm->getPersonalList($show, $startrec, $perpage);
// Get the home notifications
} elseif (($a->argc > 1) && ($a->argv[1] == 'home')) {
$notif_header = L10n::t('Home Notifications');
$notif_header = DI::l10n()->t('Home Notifications');
$notifs = $nm->getHomeList($show, $startrec, $perpage);
// fallback - redirect to main page
} else {
@ -129,7 +126,7 @@ function notifications_content(App $a)
$notif_show_lnk = [
'href' => ($show ? 'notifications/' . $notifs['ident'] : 'notifications/' . $notifs['ident'] . '?show=all' ),
'text' => ($show ? L10n::t('Show unread') : L10n::t('Show all')),
'text' => ($show ? DI::l10n()->t('Show unread') : DI::l10n()->t('Show all')),
];
// Process the data for template creation
@ -140,7 +137,7 @@ function notifications_content(App $a)
// The link to switch between ignored and normal connection requests
$notif_show_lnk = [
'href' => (!$all ? 'notifications/intros/all' : 'notifications/intros' ),
'text' => (!$all ? L10n::t('Show Ignored Requests') : L10n::t('Hide Ignored Requests'))
'text' => (!$all ? DI::l10n()->t('Show Ignored Requests') : DI::l10n()->t('Hide Ignored Requests'))
];
// Loop through all introduction notifications.This creates an array with the output html for each
@ -153,10 +150,10 @@ function notifications_content(App $a)
case 'friend_suggestion':
$notif_content[] = Renderer::replaceMacros($sugg, [
'$type' => $notif['label'],
'$str_notifytype' => L10n::t('Notification type:'),
'$str_notifytype' => DI::l10n()->t('Notification type:'),
'$notify_type'=> $notif['notify_type'],
'$intro_id' => $notif['intro_id'],
'$lbl_madeby' => L10n::t('Suggested by:'),
'$lbl_madeby' => DI::l10n()->t('Suggested by:'),
'$madeby' => $notif['madeby'],
'$madeby_url' => $notif['madeby_url'],
'$madeby_zrl' => $notif['madeby_zrl'],
@ -166,15 +163,15 @@ function notifications_content(App $a)
'$fullname' => $notif['name'],
'$url' => $notif['url'],
'$zrl' => $notif['zrl'],
'$lbl_url' => L10n::t('Profile URL'),
'$lbl_url' => DI::l10n()->t('Profile URL'),
'$addr' => $notif['addr'],
'$hidden' => ['hidden', L10n::t('Hide this contact from others'), ($notif['hidden'] == 1), ''],
'$hidden' => ['hidden', DI::l10n()->t('Hide this contact from others'), ($notif['hidden'] == 1), ''],
'$knowyou' => $notif['knowyou'],
'$approve' => L10n::t('Approve'),
'$approve' => DI::l10n()->t('Approve'),
'$note' => $notif['note'],
'$request' => $notif['request'],
'$ignore' => L10n::t('Ignore'),
'$discard' => L10n::t('Discard'),
'$ignore' => DI::l10n()->t('Ignore'),
'$discard' => DI::l10n()->t('Discard'),
]);
break;
@ -190,15 +187,15 @@ function notifications_content(App $a)
$helptext3 = '';
if ($notif['network'] === Protocol::DFRN) {
$lbl_knowyou = L10n::t('Claims to be known to you: ');
$knowyou = (($notif['knowyou']) ? L10n::t('yes') : L10n::t('no'));
$helptext = L10n::t('Shall your connection be bidirectional or not?');
$helptext2 = L10n::t('Accepting %s as a friend allows %s to subscribe to your posts, and you will also receive updates from them in your news feed.', $notif['name'], $notif['name']);
$helptext3 = L10n::t('Accepting %s as a subscriber allows them to subscribe to your posts, but you will not receive updates from them in your news feed.', $notif['name']);
$lbl_knowyou = DI::l10n()->t('Claims to be known to you: ');
$knowyou = (($notif['knowyou']) ? DI::l10n()->t('yes') : DI::l10n()->t('no'));
$helptext = DI::l10n()->t('Shall your connection be bidirectional or not?');
$helptext2 = DI::l10n()->t('Accepting %s as a friend allows %s to subscribe to your posts, and you will also receive updates from them in your news feed.', $notif['name'], $notif['name']);
$helptext3 = DI::l10n()->t('Accepting %s as a subscriber allows them to subscribe to your posts, but you will not receive updates from them in your news feed.', $notif['name']);
} elseif ($notif['network'] === Protocol::DIASPORA) {
$helptext = L10n::t('Shall your connection be bidirectional or not?');
$helptext2 = L10n::t('Accepting %s as a friend allows %s to subscribe to your posts, and you will also receive updates from them in your news feed.', $notif['name'], $notif['name']);
$helptext3 = L10n::t('Accepting %s as a sharer allows them to subscribe to your posts, but you will not receive updates from them in your news feed.', $notif['name']);
$helptext = DI::l10n()->t('Shall your connection be bidirectional or not?');
$helptext2 = DI::l10n()->t('Accepting %s as a friend allows %s to subscribe to your posts, and you will also receive updates from them in your news feed.', $notif['name'], $notif['name']);
$helptext3 = DI::l10n()->t('Accepting %s as a sharer allows them to subscribe to your posts, but you will not receive updates from them in your news feed.', $notif['name']);
}
$dfrn_tpl = Renderer::getMarkupTemplate('netfriend.tpl');
@ -209,8 +206,8 @@ function notifications_content(App $a)
'$approve_as1' => $helptext,
'$approve_as2' => $helptext2,
'$approve_as3' => $helptext3,
'$as_friend' => L10n::t('Friend'),
'$as_fan' => (($notif['network'] == Protocol::DIASPORA) ? L10n::t('Sharer') : L10n::t('Subscriber'))
'$as_friend' => DI::l10n()->t('Friend'),
'$as_fan' => (($notif['network'] == Protocol::DIASPORA) ? DI::l10n()->t('Sharer') : DI::l10n()->t('Subscriber'))
]);
$contact = DBA::selectFirst('contact', ['network', 'protocol'], ['id' => $notif['contact_id']]);
@ -230,7 +227,7 @@ function notifications_content(App $a)
$header .= ' (' . ContactSelector::networkToName($notif['network'], $notif['url']) . ')';
if ($notif['network'] != Protocol::DIASPORA) {
$discard = L10n::t('Discard');
$discard = DI::l10n()->t('Discard');
} else {
$discard = '';
}
@ -238,7 +235,7 @@ function notifications_content(App $a)
$notif_content[] = Renderer::replaceMacros($tpl, [
'$type' => $notif['label'],
'$header' => $header,
'$str_notifytype' => L10n::t('Notification type:'),
'$str_notifytype' => DI::l10n()->t('Notification type:'),
'$notify_type' => $notif['notify_type'],
'$dfrn_text' => $dfrn_text,
'$dfrn_id' => $notif['dfrn_id'],
@ -248,25 +245,25 @@ function notifications_content(App $a)
'$photo' => $notif['photo'],
'$fullname' => $notif['name'],
'$location' => $notif['location'],
'$lbl_location'=> L10n::t('Location:'),
'$lbl_location'=> DI::l10n()->t('Location:'),
'$about' => $notif['about'],
'$lbl_about' => L10n::t('About:'),
'$lbl_about' => DI::l10n()->t('About:'),
'$keywords' => $notif['keywords'],
'$lbl_keywords'=> L10n::t('Tags:'),
'$lbl_keywords'=> DI::l10n()->t('Tags:'),
'$gender' => $notif['gender'],
'$lbl_gender' => L10n::t('Gender:'),
'$hidden' => ['hidden', L10n::t('Hide this contact from others'), ($notif['hidden'] == 1), ''],
'$lbl_gender' => DI::l10n()->t('Gender:'),
'$hidden' => ['hidden', DI::l10n()->t('Hide this contact from others'), ($notif['hidden'] == 1), ''],
'$url' => $notif['url'],
'$zrl' => $notif['zrl'],
'$lbl_url' => L10n::t('Profile URL'),
'$lbl_url' => DI::l10n()->t('Profile URL'),
'$addr' => $notif['addr'],
'$lbl_knowyou' => $lbl_knowyou,
'$lbl_network' => L10n::t('Network:'),
'$lbl_network' => DI::l10n()->t('Network:'),
'$network' => ContactSelector::networkToName($notif['network'], $notif['url']),
'$knowyou' => $knowyou,
'$approve' => L10n::t('Approve'),
'$approve' => DI::l10n()->t('Approve'),
'$note' => $notif['note'],
'$ignore' => L10n::t('Ignore'),
'$ignore' => DI::l10n()->t('Ignore'),
'$discard' => $discard,
'$action' => $action,
]);
@ -275,7 +272,7 @@ function notifications_content(App $a)
}
if (count($notifs['notifications']) == 0) {
info(L10n::t('No introductions.') . EOL);
info(DI::l10n()->t('No introductions.') . EOL);
}
// Normal notifications (no introductions)
@ -309,7 +306,7 @@ function notifications_content(App $a)
]);
}
} else {
$notif_nocontent = L10n::t('No more %s notifications.', $notifs['ident']);
$notif_nocontent = DI::l10n()->t('No more %s notifications.', $notifs['ident']);
}
$o .= Renderer::replaceMacros($notif_tpl, [

View file

@ -3,7 +3,6 @@
* @file mod/oexchange.php
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\Security\Login;
@ -29,7 +28,7 @@ function oexchange_content(App $a) {
}
if (($a->argc > 1) && $a->argv[1] === 'done') {
info(L10n::t('Post successful.') . EOL);
info(DI::l10n()->t('Post successful.') . EOL);
return;
}

View file

@ -4,7 +4,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\DI;
use Friendica\Model\Contact;
@ -14,12 +13,12 @@ use Friendica\Util\Network;
function ostatus_subscribe_content(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
DI::baseUrl()->redirect('ostatus_subscribe');
// NOTREACHED
}
$o = '<h2>' . L10n::t('Subscribing to OStatus contacts') . '</h2>';
$o = '<h2>' . DI::l10n()->t('Subscribing to OStatus contacts') . '</h2>';
$uid = local_user();
@ -29,14 +28,14 @@ function ostatus_subscribe_content(App $a)
if ($_REQUEST['url'] == '') {
DI::pConfig()->delete($uid, 'ostatus', 'legacy_contact');
return $o . L10n::t('No contact provided.');
return $o . DI::l10n()->t('No contact provided.');
}
$contact = Probe::uri($_REQUEST['url']);
if (!$contact) {
DI::pConfig()->delete($uid, 'ostatus', 'legacy_contact');
return $o . L10n::t('Couldn\'t fetch information for contact.');
return $o . DI::l10n()->t('Couldn\'t fetch information for contact.');
}
$api = $contact['baseurl'] . '/api/';
@ -46,7 +45,7 @@ function ostatus_subscribe_content(App $a)
if (!$curlResult->isSuccess()) {
DI::pConfig()->delete($uid, 'ostatus', 'legacy_contact');
return $o . L10n::t('Couldn\'t fetch friends for contact.');
return $o . DI::l10n()->t('Couldn\'t fetch friends for contact.');
}
DI::pConfig()->set($uid, 'ostatus', 'legacy_friends', $curlResult->getBody());
@ -64,7 +63,7 @@ function ostatus_subscribe_content(App $a)
DI::page()['htmlhead'] = '<meta http-equiv="refresh" content="0; URL=' . DI::baseUrl() . '/settings/connectors">';
DI::pConfig()->delete($uid, 'ostatus', 'legacy_friends');
DI::pConfig()->delete($uid, 'ostatus', 'legacy_contact');
$o .= L10n::t('Done');
$o .= DI::l10n()->t('Done');
return $o;
}
@ -78,17 +77,17 @@ function ostatus_subscribe_content(App $a)
if ($probed['network'] == Protocol::OSTATUS) {
$result = Contact::createFromProbe($uid, $url, true, Protocol::OSTATUS);
if ($result['success']) {
$o .= ' - ' . L10n::t('success');
$o .= ' - ' . DI::l10n()->t('success');
} else {
$o .= ' - ' . L10n::t('failed');
$o .= ' - ' . DI::l10n()->t('failed');
}
} else {
$o .= ' - ' . L10n::t('ignored');
$o .= ' - ' . DI::l10n()->t('ignored');
}
$o .= '</p>';
$o .= '<p>' . L10n::t('Keep this window open until done.') . '</p>';
$o .= '<p>' . DI::l10n()->t('Keep this window open until done.') . '</p>';
DI::page()['htmlhead'] = '<meta http-equiv="refresh" content="0; URL=' . DI::baseUrl() . '/ostatus_subscribe?counter=' . $counter . '">';

View file

@ -11,7 +11,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\ACL;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
@ -86,7 +85,7 @@ function photos_init(App $a) {
$ret['albums'] = [];
foreach ($albums as $k => $album) {
//hide profile photos to others
if (!$is_owner && !Session::getRemoteContactID($a->profile_uid) && ($album['album'] == L10n::t('Profile Photos')))
if (!$is_owner && !Session::getRemoteContactID($a->profile_uid) && ($album['album'] == DI::l10n()->t('Profile Photos')))
continue;
$entry = [
'text' => $album['album'],
@ -108,10 +107,10 @@ function photos_init(App $a) {
if ($ret['success']) {
$photo_albums_widget = Renderer::replaceMacros(Renderer::getMarkupTemplate('photo_albums.tpl'), [
'$nick' => $a->data['user']['nickname'],
'$title' => L10n::t('Photo Albums'),
'$recent' => L10n::t('Recent Photos'),
'$title' => DI::l10n()->t('Photo Albums'),
'$recent' => DI::l10n()->t('Recent Photos'),
'$albums' => $ret['albums'],
'$upload' => [L10n::t('Upload New Photos'), 'photos/' . $a->data['user']['nickname'] . '/upload'],
'$upload' => [DI::l10n()->t('Upload New Photos'), 'photos/' . $a->data['user']['nickname'] . '/upload'],
'$can_post' => $can_post
]);
}
@ -129,7 +128,7 @@ function photos_init(App $a) {
$tpl = Renderer::getMarkupTemplate("photos_head.tpl");
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl,[
'$ispublic' => L10n::t('everybody')
'$ispublic' => DI::l10n()->t('everybody')
]);
}
@ -159,14 +158,14 @@ function photos_post(App $a)
}
if (!$can_post) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
exit();
}
$owner_record = User::getOwnerDataById($page_owner_uid);
if (!$owner_record) {
notice(L10n::t('Contact information unavailable') . EOL);
notice(DI::l10n()->t('Contact information unavailable') . EOL);
Logger::log('photos_post: unable to locate contact record for page owner. uid=' . $page_owner_uid);
exit();
}
@ -177,7 +176,7 @@ function photos_post(App $a)
}
$album = hex2bin($a->argv[3]);
if ($album === L10n::t('Profile Photos') || $album === 'Contact Photos' || $album === L10n::t('Contact Photos')) {
if ($album === DI::l10n()->t('Profile Photos') || $album === 'Contact Photos' || $album === DI::l10n()->t('Contact Photos')) {
DI::baseUrl()->redirect($_SESSION['photo_return']);
return; // NOTREACHED
}
@ -188,7 +187,7 @@ function photos_post(App $a)
);
if (!DBA::isResult($r)) {
notice(L10n::t('Album not found.') . EOL);
notice(DI::l10n()->t('Album not found.') . EOL);
DI::baseUrl()->redirect($_SESSION['photo_return']);
return; // NOTREACHED
}
@ -246,9 +245,9 @@ function photos_post(App $a)
// Update the photo albums cache
Photo::clearAlbumCache($page_owner_uid);
notice(L10n::t('Album successfully deleted'));
notice(DI::l10n()->t('Album successfully deleted'));
} else {
notice(L10n::t('Album was empty.'));
notice(DI::l10n()->t('Album was empty.'));
}
}
@ -573,7 +572,7 @@ function photos_post(App $a)
$arr['tag'] = $tagged[4];
$arr['inform'] = $tagged[2];
$arr['origin'] = 1;
$arr['body'] = L10n::t('%1$s was tagged in %2$s by %3$s', '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]', '[url=' . DI::baseUrl() . '/photos/' . $owner_record['nickname'] . '/image/' . $photo['resource-id'] . ']' . L10n::t('a photo') . '[/url]', '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]') ;
$arr['body'] = DI::l10n()->t('%1$s was tagged in %2$s by %3$s', '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]', '[url=' . DI::baseUrl() . '/photos/' . $owner_record['nickname'] . '/image/' . $photo['resource-id'] . ']' . DI::l10n()->t('a photo') . '[/url]', '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]') ;
$arr['body'] .= "\n\n" . '[url=' . DI::baseUrl() . '/photos/' . $owner_record['nickname'] . '/image/' . $photo['resource-id'] . ']' . '[img]' . DI::baseUrl() . "/photo/" . $photo['resource-id'] . '-' . $best . '.' . $ext . '[/img][/url]' . "\n" ;
$arr['object'] = '<object><type>' . Activity\ObjectType::PERSON . '</type><title>' . $tagged[0] . '</title><id>' . $tagged[1] . '/' . $tagged[0] . '</id>';
@ -623,7 +622,7 @@ function photos_post(App $a)
$r = Photo::selectToArray([], ['`album` = ? AND `uid` = ? AND `created` > UTC_TIMESTAMP() - INTERVAL 3 HOUR', $album, $page_owner_uid]);
if (!DBA::isResult($r) || ($album == L10n::t('Profile Photos'))) {
if (!DBA::isResult($r) || ($album == DI::l10n()->t('Profile Photos'))) {
$visible = 1;
} else {
$visible = 0;
@ -668,21 +667,21 @@ function photos_post(App $a)
if ($error !== UPLOAD_ERR_OK) {
switch ($error) {
case UPLOAD_ERR_INI_SIZE:
notice(L10n::t('Image exceeds size limit of %s', ini_get('upload_max_filesize')) . EOL);
notice(DI::l10n()->t('Image exceeds size limit of %s', ini_get('upload_max_filesize')) . EOL);
break;
case UPLOAD_ERR_FORM_SIZE:
notice(L10n::t('Image exceeds size limit of %s', Strings::formatBytes($_REQUEST['MAX_FILE_SIZE'] ?? 0)) . EOL);
notice(DI::l10n()->t('Image exceeds size limit of %s', Strings::formatBytes($_REQUEST['MAX_FILE_SIZE'] ?? 0)) . EOL);
break;
case UPLOAD_ERR_PARTIAL:
notice(L10n::t('Image upload didn\'t complete, please try again') . EOL);
notice(DI::l10n()->t('Image upload didn\'t complete, please try again') . EOL);
break;
case UPLOAD_ERR_NO_FILE:
notice(L10n::t('Image file is missing') . EOL);
notice(DI::l10n()->t('Image file is missing') . EOL);
break;
case UPLOAD_ERR_NO_TMP_DIR:
case UPLOAD_ERR_CANT_WRITE:
case UPLOAD_ERR_EXTENSION:
notice(L10n::t('Server can\'t accept new file upload at this time, please contact your administrator') . EOL);
notice(DI::l10n()->t('Server can\'t accept new file upload at this time, please contact your administrator') . EOL);
break;
}
@unlink($src);
@ -700,7 +699,7 @@ function photos_post(App $a)
$maximagesize = Config::get('system', 'maximagesize');
if ($maximagesize && ($filesize > $maximagesize)) {
notice(L10n::t('Image exceeds size limit of %s', Strings::formatBytes($maximagesize)) . EOL);
notice(DI::l10n()->t('Image exceeds size limit of %s', Strings::formatBytes($maximagesize)) . EOL);
@unlink($src);
$foo = 0;
Hook::callAll('photo_post_end', $foo);
@ -708,7 +707,7 @@ function photos_post(App $a)
}
if (!$filesize) {
notice(L10n::t('Image file is empty.') . EOL);
notice(DI::l10n()->t('Image file is empty.') . EOL);
@unlink($src);
$foo = 0;
Hook::callAll('photo_post_end', $foo);
@ -723,7 +722,7 @@ function photos_post(App $a)
if (!$image->isValid()) {
Logger::log('mod/photos.php: photos_post(): unable to process image' , Logger::DEBUG);
notice(L10n::t('Unable to process image.') . EOL);
notice(DI::l10n()->t('Unable to process image.') . EOL);
@unlink($src);
$foo = 0;
Hook::callAll('photo_post_end',$foo);
@ -752,7 +751,7 @@ function photos_post(App $a)
if (!$r) {
Logger::log('mod/photos.php: photos_post(): image store failed', Logger::DEBUG);
notice(L10n::t('Image upload failed.') . EOL);
notice(DI::l10n()->t('Image upload failed.') . EOL);
return;
}
@ -835,12 +834,12 @@ function photos_content(App $a)
// photos/name/image/xxxxx/drop
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
notice(L10n::t('Public access denied.') . EOL);
notice(DI::l10n()->t('Public access denied.') . EOL);
return;
}
if (empty($a->data['user'])) {
notice(L10n::t('No photos selected') . EOL);
notice(DI::l10n()->t('No photos selected') . EOL);
return;
}
@ -906,7 +905,7 @@ function photos_content(App $a)
}
if ($a->data['user']['hidewall'] && (local_user() != $owner_uid) && !$remote_contact) {
notice(L10n::t('Access to this item is restricted.') . EOL);
notice(DI::l10n()->t('Access to this item is restricted.') . EOL);
return;
}
@ -921,7 +920,7 @@ function photos_content(App $a)
// Display upload form
if ($datatype === 'upload') {
if (!$can_post) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
return;
}
@ -932,7 +931,7 @@ function photos_content(App $a)
$albumselect .= '<option value="" ' . (!$selname ? ' selected="selected" ' : '') . '>&lt;current year&gt;</option>';
if (!empty($a->data['albums'])) {
foreach ($a->data['albums'] as $album) {
if (($album['album'] === '') || ($album['album'] === 'Contact Photos') || ($album['album'] === L10n::t('Contact Photos'))) {
if (($album['album'] === '') || ($album['album'] === 'Contact Photos') || ($album['album'] === DI::l10n()->t('Contact Photos'))) {
continue;
}
$selected = (($selname === $album['album']) ? ' selected="selected" ' : '');
@ -950,7 +949,7 @@ function photos_content(App $a)
$default_upload_box = Renderer::replaceMacros(Renderer::getMarkupTemplate('photos_default_uploader_box.tpl'), []);
$default_upload_submit = Renderer::replaceMacros(Renderer::getMarkupTemplate('photos_default_uploader_submit.tpl'), [
'$submit' => L10n::t('Submit'),
'$submit' => DI::l10n()->t('Submit'),
]);
$usage_message = '';
@ -960,15 +959,15 @@ function photos_content(App $a)
$aclselect_e = ($visitor ? '' : ACL::getFullSelectorHTML(DI::page(), $a->user));
$o .= Renderer::replaceMacros($tpl,[
'$pagename' => L10n::t('Upload Photos'),
'$pagename' => DI::l10n()->t('Upload Photos'),
'$sessid' => session_id(),
'$usage' => $usage_message,
'$nickname' => $a->data['user']['nickname'],
'$newalbum' => L10n::t('New album name: '),
'$existalbumtext' => L10n::t('or select existing album:'),
'$nosharetext' => L10n::t('Do not show a status post for this upload'),
'$newalbum' => DI::l10n()->t('New album name: '),
'$existalbumtext' => DI::l10n()->t('or select existing album:'),
'$nosharetext' => DI::l10n()->t('Do not show a status post for this upload'),
'$albumselect' => $albumselect,
'$permissions' => L10n::t('Permissions'),
'$permissions' => DI::l10n()->t('Permissions'),
'$aclselect' => $aclselect_e,
'$lockstate' => is_array($a->user)
&& (strlen($a->user['allow_cid'])
@ -982,8 +981,8 @@ function photos_content(App $a)
'$uploadurl' => $ret['post_url'],
// ACL permissions box
'$group_perms' => L10n::t('Show to Groups'),
'$contact_perms' => L10n::t('Show to Contacts'),
'$group_perms' => DI::l10n()->t('Show to Groups'),
'$contact_perms' => DI::l10n()->t('Show to Contacts'),
'$return_path' => DI::args()->getQueryString(),
]);
@ -1034,44 +1033,44 @@ function photos_content(App $a)
return Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [
'$method' => 'post',
'$message' => L10n::t('Do you really want to delete this photo album and all its photos?'),
'$message' => DI::l10n()->t('Do you really want to delete this photo album and all its photos?'),
'$extra_inputs' => [],
'$confirm' => L10n::t('Delete Album'),
'$confirm' => DI::l10n()->t('Delete Album'),
'$confirm_url' => $drop_url,
'$confirm_name' => 'dropalbum',
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
]);
}
// edit album name
if ($cmd === 'edit') {
if (($album !== L10n::t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== L10n::t('Contact Photos'))) {
if (($album !== DI::l10n()->t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== DI::l10n()->t('Contact Photos'))) {
if ($can_post) {
$edit_tpl = Renderer::getMarkupTemplate('album_edit.tpl');
$album_e = $album;
$o .= Renderer::replaceMacros($edit_tpl,[
'$nametext' => L10n::t('New album name: '),
'$nametext' => DI::l10n()->t('New album name: '),
'$nickname' => $a->data['user']['nickname'],
'$album' => $album_e,
'$hexalbum' => bin2hex($album),
'$submit' => L10n::t('Submit'),
'$dropsubmit' => L10n::t('Delete Album')
'$submit' => DI::l10n()->t('Submit'),
'$dropsubmit' => DI::l10n()->t('Delete Album')
]);
}
}
} else {
if (($album !== L10n::t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== L10n::t('Contact Photos')) && $can_post) {
$edit = [L10n::t('Edit Album'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '/edit'];
$drop = [L10n::t('Drop Album'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '/drop'];
if (($album !== DI::l10n()->t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== DI::l10n()->t('Contact Photos')) && $can_post) {
$edit = [DI::l10n()->t('Edit Album'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '/edit'];
$drop = [DI::l10n()->t('Drop Album'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '/drop'];
}
}
if ($order_field === 'posted') {
$order = [L10n::t('Show Newest First'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album), 'oldest'];
$order = [DI::l10n()->t('Show Newest First'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album), 'oldest'];
} else {
$order = [L10n::t('Show Oldest First'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '?order=posted', 'newest'];
$order = [DI::l10n()->t('Show Oldest First'), 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '?order=posted', 'newest'];
}
$photos = [];
@ -1092,7 +1091,7 @@ function photos_content(App $a)
'twist' => ' ' . ($twist ? 'rotleft' : 'rotright') . rand(2,4),
'link' => 'photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id']
. ($order_field === 'posted' ? '?order=posted' : ''),
'title' => L10n::t('View Photo'),
'title' => DI::l10n()->t('View Photo'),
'src' => 'photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.' .$ext,
'alt' => $imgalt_e,
'desc'=> $desc_e,
@ -1107,7 +1106,7 @@ function photos_content(App $a)
'$photos' => $photos,
'$album' => $album,
'$can_post' => $can_post,
'$upload' => [L10n::t('Upload New Photos'), 'photos/' . $a->data['user']['nickname'] . '/upload/' . bin2hex($album)],
'$upload' => [DI::l10n()->t('Upload New Photos'), 'photos/' . $a->data['user']['nickname'] . '/upload/' . bin2hex($album)],
'$order' => $order,
'$edit' => $edit,
'$drop' => $drop,
@ -1129,9 +1128,9 @@ function photos_content(App $a)
if (!DBA::isResult($ph)) {
if (DBA::exists('photo', ['resource-id' => $datum, 'uid' => $owner_uid])) {
notice(L10n::t('Permission denied. Access to this item may be restricted.'));
notice(DI::l10n()->t('Permission denied. Access to this item may be restricted.'));
} else {
notice(L10n::t('Photo not available') . EOL);
notice(DI::l10n()->t('Photo not available') . EOL);
}
return;
}
@ -1141,12 +1140,12 @@ function photos_content(App $a)
return Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [
'$method' => 'post',
'$message' => L10n::t('Do you really want to delete this photo?'),
'$message' => DI::l10n()->t('Do you really want to delete this photo?'),
'$extra_inputs' => [],
'$confirm' => L10n::t('Delete Photo'),
'$confirm' => DI::l10n()->t('Delete Photo'),
'$confirm_url' => $drop_url,
'$confirm_name' => 'delete',
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
]);
}
@ -1234,24 +1233,24 @@ function photos_content(App $a)
if ($can_post && ($ph[0]['uid'] == $owner_uid)) {
$tools = [];
if ($cmd === 'edit') {
$tools['view'] = ['photos/' . $a->data['user']['nickname'] . '/image/' . $datum, L10n::t('View photo')];
$tools['view'] = ['photos/' . $a->data['user']['nickname'] . '/image/' . $datum, DI::l10n()->t('View photo')];
} else {
$tools['edit'] = ['photos/' . $a->data['user']['nickname'] . '/image/' . $datum . '/edit', L10n::t('Edit photo')];
$tools['delete'] = ['photos/' . $a->data['user']['nickname'] . '/image/' . $datum . '/drop', L10n::t('Delete photo')];
$tools['profile'] = ['profile_photo/use/'.$ph[0]['resource-id'], L10n::t('Use as profile photo')];
$tools['edit'] = ['photos/' . $a->data['user']['nickname'] . '/image/' . $datum . '/edit', DI::l10n()->t('Edit photo')];
$tools['delete'] = ['photos/' . $a->data['user']['nickname'] . '/image/' . $datum . '/drop', DI::l10n()->t('Delete photo')];
$tools['profile'] = ['profile_photo/use/'.$ph[0]['resource-id'], DI::l10n()->t('Use as profile photo')];
}
if (
$ph[0]['uid'] == local_user()
&& (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid']) || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid']))
) {
$tools['lock'] = L10n::t('Private Photo');
$tools['lock'] = DI::l10n()->t('Private Photo');
}
}
$photo = [
'href' => 'photo/' . $hires['resource-id'] . '-' . $hires['scale'] . '.' . $phototypes[$hires['type']],
'title'=> L10n::t('View Full Size'),
'title'=> DI::l10n()->t('View Full Size'),
'src' => 'photo/' . $lores['resource-id'] . '-' . $lores['scale'] . '.' . $phototypes[$lores['type']] . '?_u=' . DateTimeFormat::utcNow('ymdhis'),
'height' => $hires['height'],
'width' => $hires['width'],
@ -1311,10 +1310,10 @@ function photos_content(App $a)
'removeurl' => '/tagrm/' . $link_item['id'] . '/' . bin2hex($tag)
];
}
$tags = ['title' => L10n::t('Tags: '), 'tags' => $tag_arr];
$tags = ['title' => DI::l10n()->t('Tags: '), 'tags' => $tag_arr];
if ($cmd === 'edit') {
$tags['removeanyurl'] = 'tagrm/' . $link_item['id'];
$tags['removetitle'] = L10n::t('[Select tags to remove]');
$tags['removetitle'] = DI::l10n()->t('[Select tags to remove]');
}
}
@ -1329,25 +1328,25 @@ function photos_content(App $a)
$edit = Renderer::replaceMacros($edit_tpl, [
'$id' => $ph[0]['id'],
'$album' => ['albname', L10n::t('New album name'), $album_e,''],
'$caption' => ['desc', L10n::t('Caption'), $caption_e, ''],
'$tags' => ['newtag', L10n::t('Add a Tag'), "", L10n::t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping')],
'$rotate_none' => ['rotate', L10n::t('Do not rotate'),0,'', true],
'$rotate_cw' => ['rotate', L10n::t("Rotate CW \x28right\x29"),1,''],
'$rotate_ccw' => ['rotate', L10n::t("Rotate CCW \x28left\x29"),2,''],
'$album' => ['albname', DI::l10n()->t('New album name'), $album_e,''],
'$caption' => ['desc', DI::l10n()->t('Caption'), $caption_e, ''],
'$tags' => ['newtag', DI::l10n()->t('Add a Tag'), "", DI::l10n()->t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping')],
'$rotate_none' => ['rotate', DI::l10n()->t('Do not rotate'),0,'', true],
'$rotate_cw' => ['rotate', DI::l10n()->t("Rotate CW \x28right\x29"),1,''],
'$rotate_ccw' => ['rotate', DI::l10n()->t("Rotate CCW \x28left\x29"),2,''],
'$nickname' => $a->data['user']['nickname'],
'$resource_id' => $ph[0]['resource-id'],
'$permissions' => L10n::t('Permissions'),
'$permissions' => DI::l10n()->t('Permissions'),
'$aclselect' => $aclselect_e,
'$item_id' => $link_item['id'] ?? 0,
'$submit' => L10n::t('Submit'),
'$delete' => L10n::t('Delete Photo'),
'$submit' => DI::l10n()->t('Submit'),
'$delete' => DI::l10n()->t('Delete Photo'),
// ACL permissions box
'$group_perms' => L10n::t('Show to Groups'),
'$contact_perms' => L10n::t('Show to Contacts'),
'$group_perms' => DI::l10n()->t('Show to Groups'),
'$contact_perms' => DI::l10n()->t('Show to Contacts'),
'$return_path' => DI::args()->getQueryString(),
]);
}
@ -1368,9 +1367,9 @@ function photos_content(App $a)
$like_tpl = Renderer::getMarkupTemplate('like_noshare.tpl');
$likebuttons = Renderer::replaceMacros($like_tpl, [
'$id' => $link_item['id'],
'$likethis' => L10n::t("I like this \x28toggle\x29"),
'$nolike' => L10n::t("I don't like this \x28toggle\x29"),
'$wait' => L10n::t('Please wait'),
'$likethis' => DI::l10n()->t("I like this \x28toggle\x29"),
'$nolike' => DI::l10n()->t("I don't like this \x28toggle\x29"),
'$wait' => DI::l10n()->t('Please wait'),
'$return_path' => DI::args()->getQueryString(),
]);
}
@ -1384,12 +1383,12 @@ function photos_content(App $a)
'$parent' => $link_item['id'],
'$profile_uid' => $owner_uid,
'$mylink' => $contact['url'],
'$mytitle' => L10n::t('This is you'),
'$mytitle' => DI::l10n()->t('This is you'),
'$myphoto' => $contact['thumb'],
'$comment' => L10n::t('Comment'),
'$submit' => L10n::t('Submit'),
'$preview' => L10n::t('Preview'),
'$sourceapp' => L10n::t($a->sourcename),
'$comment' => DI::l10n()->t('Comment'),
'$submit' => DI::l10n()->t('Submit'),
'$preview' => DI::l10n()->t('Preview'),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$ww' => '',
'$rand_num' => Crypto::randomDigits(12)
]);
@ -1397,8 +1396,8 @@ function photos_content(App $a)
}
$conv_responses = [
'like' => ['title' => L10n::t('Likes','title')],'dislike' => ['title' => L10n::t('Dislikes','title')],
'attendyes' => ['title' => L10n::t('Attending','title')], 'attendno' => ['title' => L10n::t('Not attending','title')], 'attendmaybe' => ['title' => L10n::t('Might attend','title')]
'like' => ['title' => DI::l10n()->t('Likes','title')],'dislike' => ['title' => DI::l10n()->t('Dislikes','title')],
'attendyes' => ['title' => DI::l10n()->t('Attending','title')], 'attendno' => ['title' => DI::l10n()->t('Not attending','title')], 'attendmaybe' => ['title' => DI::l10n()->t('Might attend','title')]
];
// display comments
@ -1423,12 +1422,12 @@ function photos_content(App $a)
'$parent' => $link_item['id'],
'$profile_uid' => $owner_uid,
'$mylink' => $contact['url'],
'$mytitle' => L10n::t('This is you'),
'$mytitle' => DI::l10n()->t('This is you'),
'$myphoto' => $contact['thumb'],
'$comment' => L10n::t('Comment'),
'$submit' => L10n::t('Submit'),
'$preview' => L10n::t('Preview'),
'$sourceapp' => L10n::t($a->sourcename),
'$comment' => DI::l10n()->t('Comment'),
'$submit' => DI::l10n()->t('Submit'),
'$preview' => DI::l10n()->t('Preview'),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$ww' => '',
'$rand_num' => Crypto::randomDigits(12)
]);
@ -1458,8 +1457,8 @@ function photos_content(App $a)
$drop = [
'dropping' => $dropping,
'pagedrop' => false,
'select' => L10n::t('Select'),
'delete' => L10n::t('Delete'),
'select' => DI::l10n()->t('Select'),
'delete' => DI::l10n()->t('Delete'),
];
$title_e = $item['title'];
@ -1487,12 +1486,12 @@ function photos_content(App $a)
'$parent' => $item['parent'],
'$profile_uid' => $owner_uid,
'$mylink' => $contact['url'],
'$mytitle' => L10n::t('This is you'),
'$mytitle' => DI::l10n()->t('This is you'),
'$myphoto' => $contact['thumb'],
'$comment' => L10n::t('Comment'),
'$submit' => L10n::t('Submit'),
'$preview' => L10n::t('Preview'),
'$sourceapp' => L10n::t($a->sourcename),
'$comment' => DI::l10n()->t('Comment'),
'$submit' => DI::l10n()->t('Submit'),
'$preview' => DI::l10n()->t('Preview'),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$ww' => '',
'$rand_num' => Crypto::randomDigits(12)
]);
@ -1518,7 +1517,7 @@ function photos_content(App $a)
'$tags' => $tags,
'$edit' => $edit,
'$map' => $map,
'$map_text' => L10n::t('Map'),
'$map_text' => DI::l10n()->t('Map'),
'$likebuttons' => $likebuttons,
'$like' => $like,
'$dislike' => $dislike,
@ -1543,7 +1542,7 @@ function photos_content(App $a)
$sql_extra GROUP BY `resource-id`",
intval($a->data['user']['uid']),
DBA::escape('Contact Photos'),
DBA::escape(L10n::t('Contact Photos'))
DBA::escape(DI::l10n()->t('Contact Photos'))
);
if (DBA::isResult($r)) {
$total = count($r);
@ -1558,7 +1557,7 @@ function photos_content(App $a)
$sql_extra GROUP BY `resource-id` ORDER BY `created` DESC LIMIT %d , %d",
intval($a->data['user']['uid']),
DBA::escape('Contact Photos'),
DBA::escape(L10n::t('Contact Photos')),
DBA::escape(DI::l10n()->t('Contact Photos')),
$pager->getStart(),
$pager->getItemsPerPage()
);
@ -1569,7 +1568,7 @@ function photos_content(App $a)
$twist = false;
foreach ($r as $rr) {
//hide profile photos to others
if (!$is_owner && !Session::getRemoteContactID($owner_uid) && ($rr['album'] == L10n::t('Profile Photos'))) {
if (!$is_owner && !Session::getRemoteContactID($owner_uid) && ($rr['album'] == DI::l10n()->t('Profile Photos'))) {
continue;
}
@ -1583,13 +1582,13 @@ function photos_content(App $a)
'id' => $rr['id'],
'twist' => ' ' . ($twist ? 'rotleft' : 'rotright') . rand(2,4),
'link' => 'photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id'],
'title' => L10n::t('View Photo'),
'title' => DI::l10n()->t('View Photo'),
'src' => 'photo/' . $rr['resource-id'] . '-' . ((($rr['scale']) == 6) ? 4 : $rr['scale']) . '.' . $ext,
'alt' => $alt_e,
'album' => [
'link' => 'photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']),
'name' => $name_e,
'alt' => L10n::t('View Album'),
'alt' => DI::l10n()->t('View Album'),
],
];
@ -1598,9 +1597,9 @@ function photos_content(App $a)
$tpl = Renderer::getMarkupTemplate('photos_recent.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Recent Photos'),
'$title' => DI::l10n()->t('Recent Photos'),
'$can_post' => $can_post,
'$upload' => [L10n::t('Upload New Photos'), 'photos/'.$a->data['user']['nickname'].'/upload'],
'$upload' => [DI::l10n()->t('Upload New Photos'), 'photos/'.$a->data['user']['nickname'].'/upload'],
'$photos' => $photos,
'$paginate' => $pager->renderFull($total),
]);

View file

@ -9,7 +9,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
@ -268,7 +267,7 @@ function ping_init(App $a)
'photo' => $intro['photo'],
'date' => $intro['datetime'],
'seen' => false,
'message' => L10n::t('{0} wants to be your friend'),
'message' => DI::l10n()->t('{0} wants to be your friend'),
];
$notifs[] = $notif;
}
@ -284,7 +283,7 @@ function ping_init(App $a)
'photo' => $reg['micro'],
'date' => $reg['created'],
'seen' => false,
'message' => L10n::t('{0} requested registration'),
'message' => DI::l10n()->t('{0} requested registration'),
];
$notifs[] = $notif;
}

View file

@ -15,7 +15,6 @@
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\System;
@ -40,7 +39,7 @@ function poke_init(App $a)
$verb = Strings::escapeTags(trim($_GET['verb']));
$verbs = L10n::getPokeVerbs();
$verbs = DI::l10n()->getPokeVerbs();
if (!array_key_exists($verb, $verbs)) {
return;
@ -122,7 +121,7 @@ function poke_init(App $a)
$arr['object-type'] = Activity\ObjectType::PERSON;
$arr['origin'] = 1;
$arr['body'] = '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' . ' ' . L10n::t($verbs[$verb][0]) . ' ' . '[url=' . $target['url'] . ']' . $target['name'] . '[/url]';
$arr['body'] = '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' . ' ' . DI::l10n()->t($verbs[$verb][0]) . ' ' . '[url=' . $target['url'] . ']' . $target['name'] . '[/url]';
$arr['object'] = '<object><type>' . Activity\ObjectType::PERSON . '</type><title>' . $target['name'] . '</title><id>' . $target['url'] . '</id>';
$arr['object'] .= '<link>' . XML::escape('<link rel="alternate" type="text/html" href="' . $target['url'] . '" />' . "\n");
@ -140,7 +139,7 @@ function poke_init(App $a)
function poke_content(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -164,7 +163,7 @@ function poke_content(App $a)
$parent = (!empty($_GET['parent']) ? intval($_GET['parent']) : '0');
$verbs = L10n::getPokeVerbs();
$verbs = DI::l10n()->getPokeVerbs();
$shortlist = [];
foreach ($verbs as $k => $v) {
@ -176,14 +175,14 @@ function poke_content(App $a)
$tpl = Renderer::getMarkupTemplate('poke_content.tpl');
$o = Renderer::replaceMacros($tpl,[
'$title' => L10n::t('Poke/Prod'),
'$desc' => L10n::t('poke, prod or do other things to somebody'),
'$clabel' => L10n::t('Recipient'),
'$choice' => L10n::t('Choose what you wish to do to recipient'),
'$title' => DI::l10n()->t('Poke/Prod'),
'$desc' => DI::l10n()->t('poke, prod or do other things to somebody'),
'$clabel' => DI::l10n()->t('Recipient'),
'$choice' => DI::l10n()->t('Choose what you wish to do to recipient'),
'$verbs' => $shortlist,
'$parent' => $parent,
'$prv_desc' => L10n::t('Make this post private'),
'$submit' => L10n::t('Submit'),
'$prv_desc' => DI::l10n()->t('Make this post private'),
'$submit' => DI::l10n()->t('Submit'),
'$name' => $name,
'$id' => $id
]);

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\BaseModule;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
@ -29,7 +28,7 @@ function profile_photo_init(App $a)
function profile_photo_post(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -55,7 +54,7 @@ function profile_photo_post(App $a)
// phase 2 - we have finished cropping
if ($a->argc != 2) {
notice(L10n::t('Image uploaded but image cropping failed.') . EOL);
notice(DI::l10n()->t('Image uploaded but image cropping failed.') . EOL);
return;
}
@ -82,28 +81,28 @@ function profile_photo_post(App $a)
$Image->crop(300, $srcX, $srcY, $srcW, $srcH);
$r = Photo::store($Image, local_user(), 0, $base_image['resource-id'], $base_image['filename'],
L10n::t('Profile Photos'), 4, $is_default_profile);
DI::l10n()->t('Profile Photos'), 4, $is_default_profile);
if ($r === false) {
notice(L10n::t('Image size reduction [%s] failed.', "300") . EOL);
notice(DI::l10n()->t('Image size reduction [%s] failed.', "300") . EOL);
}
$Image->scaleDown(80);
$r = Photo::store($Image, local_user(), 0, $base_image['resource-id'], $base_image['filename'],
L10n::t('Profile Photos'), 5, $is_default_profile);
DI::l10n()->t('Profile Photos'), 5, $is_default_profile);
if ($r === false) {
notice(L10n::t('Image size reduction [%s] failed.', "80") . EOL);
notice(DI::l10n()->t('Image size reduction [%s] failed.', "80") . EOL);
}
$Image->scaleDown(48);
$r = Photo::store($Image, local_user(), 0, $base_image['resource-id'], $base_image['filename'],
L10n::t('Profile Photos'), 6, $is_default_profile);
DI::l10n()->t('Profile Photos'), 6, $is_default_profile);
if ($r === false) {
notice(L10n::t('Image size reduction [%s] failed.', "48") . EOL);
notice(DI::l10n()->t('Image size reduction [%s] failed.', "48") . EOL);
}
// If setting for the default profile, unset the profile photo flag from any other photos I own
@ -122,7 +121,7 @@ function profile_photo_post(App $a)
Contact::updateSelfFromUserID(local_user(), true);
info(L10n::t('Shift-reload the page or clear browser cache if the new photo does not display immediately.') . EOL);
info(DI::l10n()->t('Shift-reload the page or clear browser cache if the new photo does not display immediately.') . EOL);
// Update global directory in background
if ($path && strlen(Config::get('system', 'directory'))) {
Worker::add(PRIORITY_LOW, "Directory", DI::baseUrl()->get() . '/' . $path);
@ -130,7 +129,7 @@ function profile_photo_post(App $a)
Worker::add(PRIORITY_LOW, 'ProfileUpdate', local_user());
} else {
notice(L10n::t('Unable to process image') . EOL);
notice(DI::l10n()->t('Unable to process image') . EOL);
}
}
@ -149,7 +148,7 @@ function profile_photo_post(App $a)
$maximagesize = Config::get('system', 'maximagesize');
if (($maximagesize) && ($filesize > $maximagesize)) {
notice(L10n::t('Image exceeds size limit of %s', Strings::formatBytes($maximagesize)) . EOL);
notice(DI::l10n()->t('Image exceeds size limit of %s', Strings::formatBytes($maximagesize)) . EOL);
@unlink($src);
return;
}
@ -158,7 +157,7 @@ function profile_photo_post(App $a)
$ph = new Image($imagedata, $filetype);
if (!$ph->isValid()) {
notice(L10n::t('Unable to process image.') . EOL);
notice(DI::l10n()->t('Unable to process image.') . EOL);
@unlink($src);
return;
}
@ -174,7 +173,7 @@ function profile_photo_content(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -194,7 +193,7 @@ function profile_photo_content(App $a)
$r = Photo::selectToArray([], ["resource-id" => $resource_id, "uid" => local_user()], ["order" => ["scale" => false]]);
if (!DBA::isResult($r)) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -207,7 +206,7 @@ function profile_photo_content(App $a)
// set an already uloaded photo as profile photo
// if photo is in 'Profile Photos', change it in db
if (($r[0]['album'] == L10n::t('Profile Photos')) && ($havescale)) {
if (($r[0]['album'] == DI::l10n()->t('Profile Photos')) && ($havescale)) {
q("UPDATE `photo` SET `profile`=0 WHERE `profile`=1 AND `uid`=%d", intval(local_user()));
q("UPDATE `photo` SET `profile`=1 WHERE `uid` = %d AND `resource-id` = '%s'", intval(local_user()),
@ -241,14 +240,14 @@ function profile_photo_content(App $a)
$o = Renderer::replaceMacros($tpl,
[
'$user' => $a->user['nickname'],
'$lbl_upfile' => L10n::t('Upload File:'),
'$lbl_profiles' => L10n::t('Select a profile:'),
'$title' => L10n::t('Upload Profile Photo'),
'$submit' => L10n::t('Upload'),
'$lbl_upfile' => DI::l10n()->t('Upload File:'),
'$lbl_profiles' => DI::l10n()->t('Select a profile:'),
'$title' => DI::l10n()->t('Upload Profile Photo'),
'$submit' => DI::l10n()->t('Upload'),
'$profiles' => $profiles,
'$form_security_token' => BaseModule::getFormSecurityToken("profile_photo"),
'$select' => sprintf('%s %s', L10n::t('or'),
($newuser) ? '<a href="' . DI::baseUrl() . '">' . L10n::t('skip this step') . '</a>' : '<a href="' . DI::baseUrl() . '/photos/' . $a->user['nickname'] . '">' . L10n::t('select a photo from your photo albums') . '</a>')
'$select' => sprintf('%s %s', DI::l10n()->t('or'),
($newuser) ? '<a href="' . DI::baseUrl() . '">' . DI::l10n()->t('skip this step') . '</a>' : '<a href="' . DI::baseUrl() . '/photos/' . $a->user['nickname'] . '">' . DI::l10n()->t('select a photo from your photo albums') . '</a>')
]);
return $o;
@ -261,10 +260,10 @@ function profile_photo_content(App $a)
'$profile' => (isset($_REQUEST['profile']) ? intval($_REQUEST['profile']) : 0),
'$resource' => $imagecrop['hash'] . '-' . $imagecrop['resolution'],
'$image_url' => DI::baseUrl() . '/photo/' . $filename,
'$title' => L10n::t('Crop Image'),
'$desc' => L10n::t('Please adjust the image cropping for optimum viewing.'),
'$title' => DI::l10n()->t('Crop Image'),
'$desc' => DI::l10n()->t('Please adjust the image cropping for optimum viewing.'),
'$form_security_token' => BaseModule::getFormSecurityToken("profile_photo"),
'$done' => L10n::t('Done Editing')
'$done' => DI::l10n()->t('Done Editing')
]);
return $o;
}
@ -295,20 +294,20 @@ function profile_photo_crop_ui_head(Image $image)
$smallest = 0;
$filename = '';
$r = Photo::store($image, local_user(), 0, $hash, $filename, L10n::t('Profile Photos'), 0);
$r = Photo::store($image, local_user(), 0, $hash, $filename, DI::l10n()->t('Profile Photos'), 0);
if ($r) {
info(L10n::t('Image uploaded successfully.') . EOL);
info(DI::l10n()->t('Image uploaded successfully.') . EOL);
} else {
notice(L10n::t('Image upload failed.') . EOL);
notice(DI::l10n()->t('Image upload failed.') . EOL);
}
if ($width > 640 || $height > 640) {
$image->scaleDown(640);
$r = Photo::store($image, local_user(), 0, $hash, $filename, L10n::t('Profile Photos'), 1);
$r = Photo::store($image, local_user(), 0, $hash, $filename, DI::l10n()->t('Profile Photos'), 1);
if ($r === false) {
notice(L10n::t('Image size reduction [%s] failed.', "640") . EOL);
notice(DI::l10n()->t('Image size reduction [%s] failed.', "640") . EOL);
} else {
$smallest = 1;
}

View file

@ -10,7 +10,6 @@ use Friendica\Content\Feature;
use Friendica\Content\Nav;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
@ -39,7 +38,7 @@ function profiles_init(App $a) {
intval(local_user())
);
if (! DBA::isResult($r)) {
notice(L10n::t('Profile not found.') . EOL);
notice(DI::l10n()->t('Profile not found.') . EOL);
DI::baseUrl()->redirect('profiles');
return; // NOTREACHED
}
@ -58,7 +57,7 @@ function profiles_init(App $a) {
intval(local_user())
);
if (DBA::isResult($r)) {
info(L10n::t('Profile deleted.').EOL);
info(DI::l10n()->t('Profile deleted.').EOL);
}
DI::baseUrl()->redirect('profiles');
@ -74,7 +73,7 @@ function profiles_init(App $a) {
$num_profiles = (DBA::isResult($r0) ? count($r0) : 0);
$name = L10n::t('Profile-') . ($num_profiles + 1);
$name = DI::l10n()->t('Profile-') . ($num_profiles + 1);
$r1 = q("SELECT `name`, `photo`, `thumb` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
intval(local_user()));
@ -93,7 +92,7 @@ function profiles_init(App $a) {
DBA::escape($name)
);
info(L10n::t('New profile created.') . EOL);
info(DI::l10n()->t('New profile created.') . EOL);
if (DBA::isResult($r3) && count($r3) == 1) {
DI::baseUrl()->redirect('profiles/' . $r3[0]['id']);
}
@ -110,13 +109,13 @@ function profiles_init(App $a) {
$num_profiles = (DBA::isResult($r0) ? count($r0) : 0);
$name = L10n::t('Profile-') . ($num_profiles + 1);
$name = DI::l10n()->t('Profile-') . ($num_profiles + 1);
$r1 = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval(local_user()),
intval($a->argv[2])
);
if(! DBA::isResult($r1)) {
notice(L10n::t('Profile unavailable to clone.') . EOL);
notice(DI::l10n()->t('Profile unavailable to clone.') . EOL);
exit();
}
unset($r1[0]['id']);
@ -131,7 +130,7 @@ function profiles_init(App $a) {
intval(local_user()),
DBA::escape($name)
);
info(L10n::t('New profile created.') . EOL);
info(DI::l10n()->t('New profile created.') . EOL);
if ((DBA::isResult($r3)) && (count($r3) == 1)) {
DI::baseUrl()->redirect('profiles/'.$r3[0]['id']);
}
@ -148,7 +147,7 @@ function profiles_init(App $a) {
intval(local_user())
);
if (! DBA::isResult($r)) {
notice(L10n::t('Profile not found.') . EOL);
notice(DI::l10n()->t('Profile not found.') . EOL);
exit();
}
@ -178,7 +177,7 @@ function profile_clean_keywords($keywords)
function profiles_post(App $a) {
if (! local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -192,7 +191,7 @@ function profiles_post(App $a) {
intval(local_user())
);
if (! DBA::isResult($orig)) {
notice(L10n::t('Profile not found.') . EOL);
notice(DI::l10n()->t('Profile not found.') . EOL);
return;
}
@ -202,7 +201,7 @@ function profiles_post(App $a) {
$profile_name = Strings::escapeTags(trim($_POST['profile_name']));
if (! strlen($profile_name)) {
notice(L10n::t('Profile Name is required.') . EOL);
notice(DI::l10n()->t('Profile Name is required.') . EOL);
return;
}
@ -342,50 +341,50 @@ function profiles_post(App $a) {
$changes = [];
if ($is_default) {
if ($marital != $orig[0]['marital']) {
$changes[] = '[color=#ff0000]&hearts;[/color] ' . L10n::t('Marital Status');
$changes[] = '[color=#ff0000]&hearts;[/color] ' . DI::l10n()->t('Marital Status');
}
if ($withchanged) {
$changes[] = '[color=#ff0000]&hearts;[/color] ' . L10n::t('Romantic Partner');
$changes[] = '[color=#ff0000]&hearts;[/color] ' . DI::l10n()->t('Romantic Partner');
}
if ($likes != $orig[0]['likes']) {
$changes[] = L10n::t('Likes');
$changes[] = DI::l10n()->t('Likes');
}
if ($dislikes != $orig[0]['dislikes']) {
$changes[] = L10n::t('Dislikes');
$changes[] = DI::l10n()->t('Dislikes');
}
if ($work != $orig[0]['work']) {
$changes[] = L10n::t('Work/Employment');
$changes[] = DI::l10n()->t('Work/Employment');
}
if ($religion != $orig[0]['religion']) {
$changes[] = L10n::t('Religion');
$changes[] = DI::l10n()->t('Religion');
}
if ($politic != $orig[0]['politic']) {
$changes[] = L10n::t('Political Views');
$changes[] = DI::l10n()->t('Political Views');
}
if ($gender != $orig[0]['gender']) {
$changes[] = L10n::t('Gender');
$changes[] = DI::l10n()->t('Gender');
}
if ($sexual != $orig[0]['sexual']) {
$changes[] = L10n::t('Sexual Preference');
$changes[] = DI::l10n()->t('Sexual Preference');
}
if ($xmpp != $orig[0]['xmpp']) {
$changes[] = L10n::t('XMPP');
$changes[] = DI::l10n()->t('XMPP');
}
if ($homepage != $orig[0]['homepage']) {
$changes[] = L10n::t('Homepage');
$changes[] = DI::l10n()->t('Homepage');
}
if ($interest != $orig[0]['interest']) {
$changes[] = L10n::t('Interests');
$changes[] = DI::l10n()->t('Interests');
}
if ($address != $orig[0]['address']) {
$changes[] = L10n::t('Address');
$changes[] = DI::l10n()->t('Address');
// New address not sent in notifications, potential privacy issues
// in case this leaks to unintended recipients. Yes, it's in the public
// profile but that doesn't mean we have to broadcast it to everybody.
}
if ($locality != $orig[0]['locality'] || $region != $orig[0]['region']
|| $country_name != $orig[0]['country-name']) {
$changes[] = L10n::t('Location');
$changes[] = DI::l10n()->t('Location');
}
}
@ -465,7 +464,7 @@ function profiles_post(App $a) {
/// @TODO decide to use DBA::isResult() here and check $r
if ($r) {
info(L10n::t('Profile updated.') . EOL);
info(DI::l10n()->t('Profile updated.') . EOL);
}
if ($is_default) {
@ -495,7 +494,7 @@ function profiles_post(App $a) {
function profiles_content(App $a) {
if (! local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return Login::form();
}
@ -507,7 +506,7 @@ function profiles_content(App $a) {
intval(local_user())
);
if (! DBA::isResult($r)) {
notice(L10n::t('Profile not found.') . EOL);
notice(DI::l10n()->t('Profile not found.') . EOL);
return;
}
@ -519,14 +518,14 @@ function profiles_content(App $a) {
$hide_friends = Renderer::replaceMacros($opt_tpl,[
'$yesno' => [
'hide-friends', //Name
L10n::t('Hide contacts and friends:'), //Label
DI::l10n()->t('Hide contacts and friends:'), //Label
!!$r[0]['hide-friends'], //Value
'', //Help string
[L10n::t('No'), L10n::t('Yes')] //Off - On strings
[DI::l10n()->t('No'), DI::l10n()->t('Yes')] //Off - On strings
],
'$desc' => L10n::t('Hide your contact/friend list from viewers of this profile?'),
'$yes_str' => L10n::t('Yes'),
'$no_str' => L10n::t('No'),
'$desc' => DI::l10n()->t('Hide your contact/friend list from viewers of this profile?'),
'$yes_str' => DI::l10n()->t('Yes'),
'$no_str' => DI::l10n()->t('No'),
'$yes_selected' => (($r[0]['hide-friends']) ? " checked=\"checked\" " : ""),
'$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "")
]);
@ -544,10 +543,10 @@ function profiles_content(App $a) {
'$details' => [
'detailed_profile', //Name
L10n::t('Show more profile fields:'), //Label
DI::l10n()->t('Show more profile fields:'), //Label
$detailed_profile, //Value
'', //Help string
[L10n::t('No'), L10n::t('Yes')] //Off - On strings
[DI::l10n()->t('No'), DI::l10n()->t('Yes')] //Off - On strings
],
'$multi_profiles' => Feature::isEnabled(local_user(), 'multi_profiles'),
@ -556,75 +555,75 @@ function profiles_content(App $a) {
'$profile_clone_link' => ((Feature::isEnabled(local_user(), 'multi_profiles')) ? 'profiles/clone/' . $r[0]['id'] . '?t=' . BaseModule::getFormSecurityToken("profile_clone") : ""),
'$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t=' . BaseModule::getFormSecurityToken("profile_drop"),
'$profile_action' => L10n::t('Profile Actions'),
'$banner' => L10n::t('Edit Profile Details'),
'$submit' => L10n::t('Submit'),
'$profpic' => L10n::t('Change Profile Photo'),
'$profile_action' => DI::l10n()->t('Profile Actions'),
'$banner' => DI::l10n()->t('Edit Profile Details'),
'$submit' => DI::l10n()->t('Submit'),
'$profpic' => DI::l10n()->t('Change Profile Photo'),
'$profpiclink' => '/photos/' . $a->user['nickname'],
'$viewprof' => L10n::t('View this profile'),
'$viewallprof' => L10n::t('View all profiles'),
'$editvis' => L10n::t('Edit visibility'),
'$cr_prof' => L10n::t('Create a new profile using these settings'),
'$cl_prof' => L10n::t('Clone this profile'),
'$del_prof' => L10n::t('Delete this profile'),
'$viewprof' => DI::l10n()->t('View this profile'),
'$viewallprof' => DI::l10n()->t('View all profiles'),
'$editvis' => DI::l10n()->t('Edit visibility'),
'$cr_prof' => DI::l10n()->t('Create a new profile using these settings'),
'$cl_prof' => DI::l10n()->t('Clone this profile'),
'$del_prof' => DI::l10n()->t('Delete this profile'),
'$lbl_basic_section' => L10n::t('Basic information'),
'$lbl_picture_section' => L10n::t('Profile picture'),
'$lbl_location_section' => L10n::t('Location'),
'$lbl_preferences_section' => L10n::t('Preferences'),
'$lbl_status_section' => L10n::t('Status information'),
'$lbl_about_section' => L10n::t('Additional information'),
'$lbl_interests_section' => L10n::t('Interests'),
'$lbl_personal_section' => L10n::t('Personal'),
'$lbl_relation_section' => L10n::t('Relation'),
'$lbl_miscellaneous_section' => L10n::t('Miscellaneous'),
'$lbl_basic_section' => DI::l10n()->t('Basic information'),
'$lbl_picture_section' => DI::l10n()->t('Profile picture'),
'$lbl_location_section' => DI::l10n()->t('Location'),
'$lbl_preferences_section' => DI::l10n()->t('Preferences'),
'$lbl_status_section' => DI::l10n()->t('Status information'),
'$lbl_about_section' => DI::l10n()->t('Additional information'),
'$lbl_interests_section' => DI::l10n()->t('Interests'),
'$lbl_personal_section' => DI::l10n()->t('Personal'),
'$lbl_relation_section' => DI::l10n()->t('Relation'),
'$lbl_miscellaneous_section' => DI::l10n()->t('Miscellaneous'),
'$lbl_profile_photo' => L10n::t('Upload Profile Photo'),
'$lbl_gender' => L10n::t('Your Gender:'),
'$lbl_marital' => L10n::t('<span class="heart">&hearts;</span> Marital Status:'),
'$lbl_sexual' => L10n::t('Sexual Preference:'),
'$lbl_ex2' => L10n::t('Example: fishing photography software'),
'$lbl_profile_photo' => DI::l10n()->t('Upload Profile Photo'),
'$lbl_gender' => DI::l10n()->t('Your Gender:'),
'$lbl_marital' => DI::l10n()->t('<span class="heart">&hearts;</span> Marital Status:'),
'$lbl_sexual' => DI::l10n()->t('Sexual Preference:'),
'$lbl_ex2' => DI::l10n()->t('Example: fishing photography software'),
'$disabled' => (($is_default) ? 'onclick="return false;" style="color: #BBBBFF;"' : ''),
'$baseurl' => DI::baseUrl()->get(true),
'$profile_id' => $r[0]['id'],
'$profile_name' => ['profile_name', L10n::t('Profile Name:'), $r[0]['profile-name'], L10n::t('Required'), '*'],
'$profile_name' => ['profile_name', DI::l10n()->t('Profile Name:'), $r[0]['profile-name'], DI::l10n()->t('Required'), '*'],
'$is_default' => $is_default,
'$default' => (($is_default) ? '<p id="profile-edit-default-desc">' . L10n::t('This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.') . '</p>' : ""),
'$name' => ['name', L10n::t('Your Full Name:'), $r[0]['name']],
'$pdesc' => ['pdesc', L10n::t('Title/Description:'), $r[0]['pdesc']],
'$default' => (($is_default) ? '<p id="profile-edit-default-desc">' . DI::l10n()->t('This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.') . '</p>' : ""),
'$name' => ['name', DI::l10n()->t('Your Full Name:'), $r[0]['name']],
'$pdesc' => ['pdesc', DI::l10n()->t('Title/Description:'), $r[0]['pdesc']],
'$dob' => Temporal::getDateofBirthField($r[0]['dob'], $a->user['timezone']),
'$hide_friends' => $hide_friends,
'$address' => ['address', L10n::t('Street Address:'), $r[0]['address']],
'$locality' => ['locality', L10n::t('Locality/City:'), $r[0]['locality']],
'$region' => ['region', L10n::t('Region/State:'), $r[0]['region']],
'$postal_code' => ['postal_code', L10n::t('Postal/Zip Code:'), $r[0]['postal-code']],
'$country_name' => ['country_name', L10n::t('Country:'), $r[0]['country-name']],
'$age' => ((intval($r[0]['dob'])) ? '(' . L10n::t('Age: ') . Temporal::getAgeByTimezone($r[0]['dob'],$a->user['timezone'],$a->user['timezone']) . ')' : ''),
'$gender' => L10n::t(ContactSelector::gender($r[0]['gender'])),
'$marital' => ['selector' => ContactSelector::maritalStatus($r[0]['marital']), 'value' => L10n::t($r[0]['marital'])],
'$with' => ['with', L10n::t("Who: \x28if applicable\x29"), strip_tags($r[0]['with']), L10n::t('Examples: cathy123, Cathy Williams, cathy@example.com')],
'$howlong' => ['howlong', L10n::t('Since [date]:'), ($r[0]['howlong'] <= DBA::NULL_DATETIME ? '' : DateTimeFormat::local($r[0]['howlong']))],
'$sexual' => ['selector' => ContactSelector::sexualPreference($r[0]['sexual']), 'value' => L10n::t($r[0]['sexual'])],
'$about' => ['about', L10n::t('Tell us about yourself...'), $r[0]['about']],
'$xmpp' => ['xmpp', L10n::t("XMPP \x28Jabber\x29 address:"), $r[0]['xmpp'], L10n::t("The XMPP address will be propagated to your contacts so that they can follow you.")],
'$homepage' => ['homepage', L10n::t('Homepage URL:'), $r[0]['homepage']],
'$hometown' => ['hometown', L10n::t('Hometown:'), $r[0]['hometown']],
'$politic' => ['politic', L10n::t('Political Views:'), $r[0]['politic']],
'$religion' => ['religion', L10n::t('Religious Views:'), $r[0]['religion']],
'$pub_keywords' => ['pub_keywords', L10n::t('Public Keywords:'), $r[0]['pub_keywords'], L10n::t("\x28Used for suggesting potential friends, can be seen by others\x29")],
'$prv_keywords' => ['prv_keywords', L10n::t('Private Keywords:'), $r[0]['prv_keywords'], L10n::t("\x28Used for searching profiles, never shown to others\x29")],
'$likes' => ['likes', L10n::t('Likes:'), $r[0]['likes']],
'$dislikes' => ['dislikes', L10n::t('Dislikes:'), $r[0]['dislikes']],
'$music' => ['music', L10n::t('Musical interests'), $r[0]['music']],
'$book' => ['book', L10n::t('Books, literature'), $r[0]['book']],
'$tv' => ['tv', L10n::t('Television'), $r[0]['tv']],
'$film' => ['film', L10n::t('Film/dance/culture/entertainment'), $r[0]['film']],
'$interest' => ['interest', L10n::t('Hobbies/Interests'), $r[0]['interest']],
'$romance' => ['romance', L10n::t('Love/romance'), $r[0]['romance']],
'$work' => ['work', L10n::t('Work/employment'), $r[0]['work']],
'$education' => ['education', L10n::t('School/education'), $r[0]['education']],
'$contact' => ['contact', L10n::t('Contact information and Social Networks'), $r[0]['contact']],
'$address' => ['address', DI::l10n()->t('Street Address:'), $r[0]['address']],
'$locality' => ['locality', DI::l10n()->t('Locality/City:'), $r[0]['locality']],
'$region' => ['region', DI::l10n()->t('Region/State:'), $r[0]['region']],
'$postal_code' => ['postal_code', DI::l10n()->t('Postal/Zip Code:'), $r[0]['postal-code']],
'$country_name' => ['country_name', DI::l10n()->t('Country:'), $r[0]['country-name']],
'$age' => ((intval($r[0]['dob'])) ? '(' . DI::l10n()->t('Age: ') . Temporal::getAgeByTimezone($r[0]['dob'],$a->user['timezone'],$a->user['timezone']) . ')' : ''),
'$gender' => DI::l10n()->t(ContactSelector::gender($r[0]['gender'])),
'$marital' => ['selector' => ContactSelector::maritalStatus($r[0]['marital']), 'value' => DI::l10n()->t($r[0]['marital'])],
'$with' => ['with', DI::l10n()->t("Who: \x28if applicable\x29"), strip_tags($r[0]['with']), DI::l10n()->t('Examples: cathy123, Cathy Williams, cathy@example.com')],
'$howlong' => ['howlong', DI::l10n()->t('Since [date]:'), ($r[0]['howlong'] <= DBA::NULL_DATETIME ? '' : DateTimeFormat::local($r[0]['howlong']))],
'$sexual' => ['selector' => ContactSelector::sexualPreference($r[0]['sexual']), 'value' => DI::l10n()->t($r[0]['sexual'])],
'$about' => ['about', DI::l10n()->t('Tell us about yourself...'), $r[0]['about']],
'$xmpp' => ['xmpp', DI::l10n()->t("XMPP \x28Jabber\x29 address:"), $r[0]['xmpp'], DI::l10n()->t("The XMPP address will be propagated to your contacts so that they can follow you.")],
'$homepage' => ['homepage', DI::l10n()->t('Homepage URL:'), $r[0]['homepage']],
'$hometown' => ['hometown', DI::l10n()->t('Hometown:'), $r[0]['hometown']],
'$politic' => ['politic', DI::l10n()->t('Political Views:'), $r[0]['politic']],
'$religion' => ['religion', DI::l10n()->t('Religious Views:'), $r[0]['religion']],
'$pub_keywords' => ['pub_keywords', DI::l10n()->t('Public Keywords:'), $r[0]['pub_keywords'], DI::l10n()->t("\x28Used for suggesting potential friends, can be seen by others\x29")],
'$prv_keywords' => ['prv_keywords', DI::l10n()->t('Private Keywords:'), $r[0]['prv_keywords'], DI::l10n()->t("\x28Used for searching profiles, never shown to others\x29")],
'$likes' => ['likes', DI::l10n()->t('Likes:'), $r[0]['likes']],
'$dislikes' => ['dislikes', DI::l10n()->t('Dislikes:'), $r[0]['dislikes']],
'$music' => ['music', DI::l10n()->t('Musical interests'), $r[0]['music']],
'$book' => ['book', DI::l10n()->t('Books, literature'), $r[0]['book']],
'$tv' => ['tv', DI::l10n()->t('Television'), $r[0]['tv']],
'$film' => ['film', DI::l10n()->t('Film/dance/culture/entertainment'), $r[0]['film']],
'$interest' => ['interest', DI::l10n()->t('Hobbies/Interests'), $r[0]['interest']],
'$romance' => ['romance', DI::l10n()->t('Love/romance'), $r[0]['romance']],
'$work' => ['work', DI::l10n()->t('Work/employment'), $r[0]['work']],
'$education' => ['education', DI::l10n()->t('School/education'), $r[0]['education']],
'$contact' => ['contact', DI::l10n()->t('Contact information and Social Networks'), $r[0]['contact']],
]);
$arr = ['profile' => $r[0], 'entry' => $o];
@ -655,18 +654,18 @@ function profiles_content(App $a) {
$profiles .= Renderer::replaceMacros($tpl, [
'$photo' => DI::baseUrl()->remove($rr['thumb']),
'$id' => $rr['id'],
'$alt' => L10n::t('Profile Image'),
'$alt' => DI::l10n()->t('Profile Image'),
'$profile_name' => $rr['profile-name'],
'$visible' => (($rr['is-default']) ? '<strong>' . L10n::t('visible to everybody') . '</strong>'
: '<a href="'.'profperm/'.$rr['id'].'" />' . L10n::t('Edit visibility') . '</a>')
'$visible' => (($rr['is-default']) ? '<strong>' . DI::l10n()->t('visible to everybody') . '</strong>'
: '<a href="'.'profperm/'.$rr['id'].'" />' . DI::l10n()->t('Edit visibility') . '</a>')
]);
}
$tpl_header = Renderer::getMarkupTemplate('profile_listing_header.tpl');
$o .= Renderer::replaceMacros($tpl_header,[
'$header' => L10n::t('Edit/Manage Profiles'),
'$chg_photo' => L10n::t('Change profile photo'),
'$cr_new' => L10n::t('Create New Profile'),
'$header' => DI::l10n()->t('Edit/Manage Profiles'),
'$chg_photo' => DI::l10n()->t('Change profile photo'),
'$cr_new' => DI::l10n()->t('Create New Profile'),
'$cr_new_link' => 'profiles/new?t=' . BaseModule::getFormSecurityToken("profile_new"),
'$profiles' => $profiles
]);

View file

@ -4,7 +4,6 @@
*/
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Content\Text\HTML;
use Friendica\Database\DBA;
@ -27,13 +26,13 @@ function profperm_init(App $a)
function profperm_content(App $a) {
if (!local_user()) {
notice(L10n::t('Permission denied') . EOL);
notice(DI::l10n()->t('Permission denied') . EOL);
return;
}
if ($a->argc < 2) {
notice(L10n::t('Invalid profile identifier.') . EOL );
notice(DI::l10n()->t('Invalid profile identifier.') . EOL );
return;
}
@ -66,7 +65,7 @@ function profperm_content(App $a) {
intval(local_user())
);
if (!DBA::isResult($r)) {
notice(L10n::t('Invalid profile identifier.') . EOL );
notice(DI::l10n()->t('Invalid profile identifier.') . EOL );
return;
}
$profile = $r[0];
@ -112,11 +111,11 @@ function profperm_content(App $a) {
$ingroup[] = $member['id'];
}
$o .= '<h2>' . L10n::t('Profile Visibility Editor') . '</h2>';
$o .= '<h2>' . DI::l10n()->t('Profile Visibility Editor') . '</h2>';
$o .= '<h3>' . L10n::t('Profile') . ' \'' . $profile['profile-name'] . '\'</h3>';
$o .= '<h3>' . DI::l10n()->t('Profile') . ' \'' . $profile['profile-name'] . '\'</h3>';
$o .= '<div id="prof-edit-desc">' . L10n::t('Click on a contact to add or remove.') . '</div>';
$o .= '<div id="prof-edit-desc">' . DI::l10n()->t('Click on a contact to add or remove.') . '</div>';
}
@ -125,7 +124,7 @@ function profperm_content(App $a) {
$o = '';
$o .= '<div id="prof-members-title">';
$o .= '<h3>' . L10n::t('Visible To') . '</h3>';
$o .= '<h3>' . DI::l10n()->t('Visible To') . '</h3>';
$o .= '</div>';
$o .= '<div id="prof-members">';
@ -141,7 +140,7 @@ function profperm_content(App $a) {
$o .= '<hr id="prof-separator" />';
$o .= '<div id="prof-all-contcts-title">';
$o .= '<h3>' . L10n::t("All Contacts \x28with secure profile access\x29") . '</h3>';
$o .= '<h3>' . DI::l10n()->t("All Contacts \x28with secure profile access\x29") . '</h3>';
$o .= '</div>';
$o .= '<div id="prof-all-contacts">';

View file

@ -1,7 +1,6 @@
<?php
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System;
@ -30,7 +29,7 @@ function redir_init(App $a) {
$fields = ['id', 'uid', 'nurl', 'url', 'addr', 'name', 'network', 'poll', 'issued-id', 'dfrn-id', 'duplex', 'pending'];
$contact = DBA::selectFirst('contact', $fields, ['id' => $cid, 'uid' => [0, local_user()]]);
if (!DBA::isResult($contact)) {
notice(L10n::t('Contact not found.'));
notice(DI::l10n()->t('Contact not found.'));
DI::baseUrl()->redirect();
}
@ -120,7 +119,7 @@ function redir_init(App $a) {
$a->redirect($url);
}
notice(L10n::t('Contact not found.'));
notice(DI::l10n()->t('Contact not found.'));
DI::baseUrl()->redirect();
}
@ -135,7 +134,7 @@ function redir_magic($a, $cid, $url)
if (!DBA::isResult($contact)) {
Logger::info('Contact not found', ['id' => $cid]);
// Shouldn't happen under normal conditions
notice(L10n::t('Contact not found.'));
notice(DI::l10n()->t('Contact not found.'));
if (!empty($url)) {
System::externalRedirect($url);
} else {

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\DI;
@ -36,7 +35,7 @@ function user_allow($hash)
Worker::add(PRIORITY_LOW, "Directory", $url);
}
$l10n = L10n::withLang($register['language']);
$l10n = DI::l10n()->withLang($register['language']);
$res = User::sendRegisterOpenEmail(
$l10n,
@ -47,7 +46,7 @@ function user_allow($hash)
);
if ($res) {
info(L10n::t('Account approved.') . EOL);
info(DI::l10n()->t('Account approved.') . EOL);
return true;
}
}
@ -71,19 +70,19 @@ function user_deny($hash)
Register::deleteByHash($register['hash']);
notice(L10n::t('Registration revoked for %s', $user['username']) . EOL);
notice(DI::l10n()->t('Registration revoked for %s', $user['username']) . EOL);
return true;
}
function regmod_content(App $a)
{
if (!local_user()) {
info(L10n::t('Please login.') . EOL);
info(DI::l10n()->t('Please login.') . EOL);
return Login::form(DI::args()->getQueryString(), intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::CLOSED ? 0 : 1);
}
if (!is_site_admin() || !empty($_SESSION['submanage'])) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return '';
}

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -44,9 +43,9 @@ function removeme_post(App $a)
}
notification([
'type' => SYSTEM_EMAIL,
'subject' => L10n::t('[Friendica System Notify]') . ' ' . L10n::t('User deleted their account'),
'preamble' => L10n::t('On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'),
'body' => L10n::t('The user id is %d', local_user()),
'subject' => DI::l10n()->t('[Friendica System Notify]') . ' ' . DI::l10n()->t('User deleted their account'),
'preamble' => DI::l10n()->t('On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'),
'body' => DI::l10n()->t('The user id is %d', local_user()),
'to_email' => $admin['email'],
'to_name' => $admin['username'],
'uid' => $admin['uid'],
@ -82,10 +81,10 @@ function removeme_content(App $a)
$o = Renderer::replaceMacros($tpl, [
'$basedir' => DI::baseUrl()->get(),
'$hash' => $hash,
'$title' => L10n::t('Remove My Account'),
'$desc' => L10n::t('This will completely remove your account. Once this has been done it is not recoverable.'),
'$passwd' => L10n::t('Please enter your password for verification:'),
'$submit' => L10n::t('Remove My Account')
'$title' => DI::l10n()->t('Remove My Account'),
'$desc' => DI::l10n()->t('This will completely remove your account. Once this has been done it is not recoverable.'),
'$passwd' => DI::l10n()->t('Please enter your password for verification:'),
'$submit' => DI::l10n()->t('Remove My Account')
]);
return $o;

View file

@ -4,7 +4,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Database\DBA;
use Friendica\DI;
@ -13,12 +12,12 @@ use Friendica\Model\Contact;
function repair_ostatus_content(App $a) {
if (! local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
DI::baseUrl()->redirect('ostatus_repair');
// NOTREACHED
}
$o = "<h2>".L10n::t("Resubscribing to OStatus contacts")."</h2>";
$o = "<h2>".DI::l10n()->t("Resubscribing to OStatus contacts")."</h2>";
$uid = local_user();
@ -32,7 +31,7 @@ function repair_ostatus_content(App $a) {
intval(Contact::SHARING));
if (!DBA::isResult($r)) {
return ($o . L10n::t("Error"));
return ($o . DI::l10n()->t("Error"));
}
$total = $r[0]["total"];
@ -47,13 +46,13 @@ function repair_ostatus_content(App $a) {
intval(Contact::SHARING), $counter++);
if (!DBA::isResult($r)) {
$o .= L10n::t("Done");
$o .= DI::l10n()->t("Done");
return $o;
}
$o .= "<p>".$counter."/".$total.": ".$r[0]["url"]."</p>";
$o .= "<p>".L10n::t("Keep this window open until done.")."</p>";
$o .= "<p>".DI::l10n()->t("Keep this window open until done.")."</p>";
Contact::createFromProbe($uid, $r[0]["url"], true);

View file

@ -10,7 +10,6 @@ use Friendica\Content\Nav;
use Friendica\Core\ACL;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
@ -47,7 +46,7 @@ function get_theme_config_file($theme)
function settings_init(App $a)
{
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -55,12 +54,12 @@ function settings_init(App $a)
$tpl = Renderer::getMarkupTemplate('settings/head.tpl');
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
'$ispublic' => L10n::t('everybody')
'$ispublic' => DI::l10n()->t('everybody')
]);
$tabs = [
[
'label' => L10n::t('Account'),
'label' => DI::l10n()->t('Account'),
'url' => 'settings',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'settings')?'active':''),
'accesskey' => 'o',
@ -68,14 +67,14 @@ function settings_init(App $a)
];
$tabs[] = [
'label' => L10n::t('Two-factor authentication'),
'label' => DI::l10n()->t('Two-factor authentication'),
'url' => 'settings/2fa',
'selected' => (($a->argc > 1) && ($a->argv[1] === '2fa') ? 'active' : ''),
'accesskey' => 'o',
];
$tabs[] = [
'label' => L10n::t('Profiles'),
'label' => DI::l10n()->t('Profiles'),
'url' => 'profiles',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'profiles')?'active':''),
'accesskey' => 'p',
@ -83,7 +82,7 @@ function settings_init(App $a)
if (Feature::get()) {
$tabs[] = [
'label' => L10n::t('Additional features'),
'label' => DI::l10n()->t('Additional features'),
'url' => 'settings/features',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'features') ? 'active' : ''),
'accesskey' => 't',
@ -91,49 +90,49 @@ function settings_init(App $a)
}
$tabs[] = [
'label' => L10n::t('Display'),
'label' => DI::l10n()->t('Display'),
'url' => 'settings/display',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
'accesskey' => 'i',
];
$tabs[] = [
'label' => L10n::t('Social Networks'),
'label' => DI::l10n()->t('Social Networks'),
'url' => 'settings/connectors',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
'accesskey' => 'w',
];
$tabs[] = [
'label' => L10n::t('Addons'),
'label' => DI::l10n()->t('Addons'),
'url' => 'settings/addon',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
'accesskey' => 'l',
];
$tabs[] = [
'label' => L10n::t('Delegations'),
'label' => DI::l10n()->t('Delegations'),
'url' => 'settings/delegation',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'delegation')?'active':''),
'accesskey' => 'd',
];
$tabs[] = [
'label' => L10n::t('Connected apps'),
'label' => DI::l10n()->t('Connected apps'),
'url' => 'settings/oauth',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
'accesskey' => 'b',
];
$tabs[] = [
'label' => L10n::t('Export personal data'),
'label' => DI::l10n()->t('Export personal data'),
'url' => 'settings/userexport',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'userexport')?'active':''),
'accesskey' => 'e',
];
$tabs[] = [
'label' => L10n::t('Remove account'),
'label' => DI::l10n()->t('Remove account'),
'url' => 'removeme',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'removeme')?'active':''),
'accesskey' => 'r',
@ -142,7 +141,7 @@ function settings_init(App $a)
$tabtpl = Renderer::getMarkupTemplate("generic_links_widget.tpl");
DI::page()['aside'] = Renderer::replaceMacros($tabtpl, [
'$title' => L10n::t('Settings'),
'$title' => DI::l10n()->t('Settings'),
'$class' => 'settings-widget',
'$items' => $tabs,
]);
@ -160,7 +159,7 @@ function settings_post(App $a)
}
if (count($a->user) && !empty($a->user['uid']) && $a->user['uid'] != local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -185,9 +184,9 @@ function settings_post(App $a)
$icon = $_POST['icon'] ?? '';
if ($name == "" || $key == "" || $secret == "") {
notice(L10n::t("Missing some important data!"));
notice(DI::l10n()->t("Missing some important data!"));
} else {
if ($_POST['submit'] == L10n::t("Update")) {
if ($_POST['submit'] == DI::l10n()->t("Update")) {
q("UPDATE clients SET
client_id='%s',
pw='%s',
@ -295,12 +294,12 @@ function settings_post(App $a)
unset($dcrpass);
if (!$mbox) {
$failed = true;
notice(L10n::t('Failed to connect with email account using the settings provided.') . EOL);
notice(DI::l10n()->t('Failed to connect with email account using the settings provided.') . EOL);
}
}
}
if (!$failed) {
info(L10n::t('Email settings updated.') . EOL);
info(DI::l10n()->t('Email settings updated.') . EOL);
}
}
}
@ -316,7 +315,7 @@ function settings_post(App $a)
DI::pConfig()->set(local_user(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0));
}
}
info(L10n::t('Features updated') . EOL);
info(DI::l10n()->t('Features updated') . EOL);
return;
}
@ -377,7 +376,7 @@ function settings_post(App $a)
DBA::update('user', ['theme' => $theme], ['uid' => local_user()]);
}
} else {
notice(L10n::t('The theme you chose isn\'t available.'));
notice(DI::l10n()->t('The theme you chose isn\'t available.'));
}
Hook::callAll('display_settings_post', $_POST);
@ -393,7 +392,7 @@ function settings_post(App $a)
// was there an error
if ($_FILES['importcontact-filename']['error'] > 0) {
Logger::notice('Contact CSV file upload error');
info(L10n::t('Contact CSV file upload error'));
info(DI::l10n()->t('Contact CSV file upload error'));
} else {
$csvArray = array_map('str_getcsv', file($_FILES['importcontact-filename']['tmp_name']));
// import contacts
@ -407,7 +406,7 @@ function settings_post(App $a)
$arr = Contact::createFromProbe($_SESSION['uid'], $csvRow[0], '', false);
}
}
info(L10n::t('Importing Contacts done'));
info(DI::l10n()->t('Importing Contacts done'));
// delete temp file
unlink($filename);
}
@ -416,7 +415,7 @@ function settings_post(App $a)
if (!empty($_POST['resend_relocate'])) {
Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::RELOCATION, local_user());
info(L10n::t("Relocate message has been send to your contacts"));
info(DI::l10n()->t("Relocate message has been send to your contacts"));
DI::baseUrl()->redirect('settings');
}
@ -428,7 +427,7 @@ function settings_post(App $a)
try {
if ($newpass != $confirm) {
throw new Exception(L10n::t('Passwords do not match.'));
throw new Exception(DI::l10n()->t('Passwords do not match.'));
}
// check if the old password was supplied correctly before changing it to the new value
@ -436,13 +435,13 @@ function settings_post(App $a)
$result = User::updatePassword(local_user(), $newpass);
if (!DBA::isResult($result)) {
throw new Exception(L10n::t('Password update failed. Please try again.'));
throw new Exception(DI::l10n()->t('Password update failed. Please try again.'));
}
info(L10n::t('Password changed.'));
info(DI::l10n()->t('Password changed.'));
} catch (Exception $e) {
notice($e->getMessage());
notice(L10n::t('Password unchanged.'));
notice(DI::l10n()->t('Password unchanged.'));
}
}
@ -524,28 +523,28 @@ function settings_post(App $a)
if ($username != $a->user['username']) {
if (strlen($username) > 40) {
$err .= L10n::t(' Please use a shorter name.');
$err .= DI::l10n()->t(' Please use a shorter name.');
}
if (strlen($username) < 3) {
$err .= L10n::t(' Name too short.');
$err .= DI::l10n()->t(' Name too short.');
}
}
if ($email != $a->user['email']) {
// check for the correct password
if (!User::authenticate(intval(local_user()), $_POST['mpassword'])) {
$err .= L10n::t('Wrong Password') . EOL;
$err .= DI::l10n()->t('Wrong Password') . EOL;
$email = $a->user['email'];
}
// check the email is valid
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$err .= L10n::t('Invalid email.');
$err .= DI::l10n()->t('Invalid email.');
}
// ensure new email is not the admin mail
if (Config::get('config', 'admin_email')) {
$adminlist = explode(",", str_replace(" ", "", strtolower(Config::get('config', 'admin_email'))));
if (in_array(strtolower($email), $adminlist)) {
$err .= L10n::t('Cannot change to that email.');
$err .= DI::l10n()->t('Cannot change to that email.');
$email = $a->user['email'];
}
}
@ -582,10 +581,10 @@ function settings_post(App $a)
$hidewall = 1;
if (!$str_contact_allow && !$str_group_allow && !$str_contact_deny && !$str_group_deny) {
if ($def_gid) {
info(L10n::t('Private forum has no privacy permissions. Using default privacy group.'). EOL);
info(DI::l10n()->t('Private forum has no privacy permissions. Using default privacy group.'). EOL);
$str_group_allow = '<' . $def_gid . '>';
} else {
notice(L10n::t('Private forum has no privacy permissions and no default privacy group.') . EOL);
notice(DI::l10n()->t('Private forum has no privacy permissions and no default privacy group.') . EOL);
}
}
}
@ -602,7 +601,7 @@ function settings_post(App $a)
}
if (DBA::update('user', $fields, ['uid' => local_user()])) {
info(L10n::t('Settings updated.') . EOL);
info(DI::l10n()->t('Settings updated.') . EOL);
}
// clear session language
@ -647,12 +646,12 @@ function settings_content(App $a)
Nav::setSelected('settings');
if (!local_user()) {
//notice(L10n::t('Permission denied.') . EOL);
//notice(DI::l10n()->t('Permission denied.') . EOL);
return Login::form();
}
if (!empty($_SESSION['submanage'])) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -661,14 +660,14 @@ function settings_content(App $a)
$tpl = Renderer::getMarkupTemplate('settings/oauth_edit.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$form_security_token' => BaseModule::getFormSecurityToken("settings_oauth"),
'$title' => L10n::t('Add application'),
'$submit' => L10n::t('Save Settings'),
'$cancel' => L10n::t('Cancel'),
'$name' => ['name', L10n::t('Name'), '', ''],
'$key' => ['key', L10n::t('Consumer Key'), '', ''],
'$secret' => ['secret', L10n::t('Consumer Secret'), '', ''],
'$redirect' => ['redirect', L10n::t('Redirect'), '', ''],
'$icon' => ['icon', L10n::t('Icon url'), '', ''],
'$title' => DI::l10n()->t('Add application'),
'$submit' => DI::l10n()->t('Save Settings'),
'$cancel' => DI::l10n()->t('Cancel'),
'$name' => ['name', DI::l10n()->t('Name'), '', ''],
'$key' => ['key', DI::l10n()->t('Consumer Key'), '', ''],
'$secret' => ['secret', DI::l10n()->t('Consumer Secret'), '', ''],
'$redirect' => ['redirect', DI::l10n()->t('Redirect'), '', ''],
'$icon' => ['icon', DI::l10n()->t('Icon url'), '', ''],
]);
return $o;
}
@ -679,7 +678,7 @@ function settings_content(App $a)
local_user());
if (!DBA::isResult($r)) {
notice(L10n::t("You can't edit this application."));
notice(DI::l10n()->t("You can't edit this application."));
return;
}
$app = $r[0];
@ -687,14 +686,14 @@ function settings_content(App $a)
$tpl = Renderer::getMarkupTemplate('settings/oauth_edit.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$form_security_token' => BaseModule::getFormSecurityToken("settings_oauth"),
'$title' => L10n::t('Add application'),
'$submit' => L10n::t('Update'),
'$cancel' => L10n::t('Cancel'),
'$name' => ['name', L10n::t('Name'), $app['name'] , ''],
'$key' => ['key', L10n::t('Consumer Key'), $app['client_id'], ''],
'$secret' => ['secret', L10n::t('Consumer Secret'), $app['pw'], ''],
'$redirect' => ['redirect', L10n::t('Redirect'), $app['redirect_uri'], ''],
'$icon' => ['icon', L10n::t('Icon url'), $app['icon'], ''],
'$title' => DI::l10n()->t('Add application'),
'$submit' => DI::l10n()->t('Update'),
'$cancel' => DI::l10n()->t('Cancel'),
'$name' => ['name', DI::l10n()->t('Name'), $app['name'] , ''],
'$key' => ['key', DI::l10n()->t('Consumer Key'), $app['client_id'], ''],
'$secret' => ['secret', DI::l10n()->t('Consumer Secret'), $app['pw'], ''],
'$redirect' => ['redirect', DI::l10n()->t('Redirect'), $app['redirect_uri'], ''],
'$icon' => ['icon', DI::l10n()->t('Icon url'), $app['icon'], ''],
]);
return $o;
}
@ -720,13 +719,13 @@ function settings_content(App $a)
$o .= Renderer::replaceMacros($tpl, [
'$form_security_token' => BaseModule::getFormSecurityToken("settings_oauth"),
'$baseurl' => DI::baseUrl()->get(true),
'$title' => L10n::t('Connected Apps'),
'$add' => L10n::t('Add application'),
'$edit' => L10n::t('Edit'),
'$delete' => L10n::t('Delete'),
'$consumerkey' => L10n::t('Client key starts with'),
'$noname' => L10n::t('No name'),
'$remove' => L10n::t('Remove authorization'),
'$title' => DI::l10n()->t('Connected Apps'),
'$add' => DI::l10n()->t('Add application'),
'$edit' => DI::l10n()->t('Edit'),
'$delete' => DI::l10n()->t('Delete'),
'$consumerkey' => DI::l10n()->t('Client key starts with'),
'$noname' => DI::l10n()->t('No name'),
'$remove' => DI::l10n()->t('Remove authorization'),
'$apps' => $r,
]);
return $o;
@ -737,7 +736,7 @@ function settings_content(App $a)
$r = q("SELECT * FROM `hook` WHERE `hook` = 'addon_settings' ");
if (!DBA::isResult($r)) {
$settings_addons = L10n::t('No Addon settings configured');
$settings_addons = DI::l10n()->t('No Addon settings configured');
}
Hook::callAll('addon_settings', $settings_addons);
@ -746,7 +745,7 @@ function settings_content(App $a)
$tpl = Renderer::getMarkupTemplate('settings/addons.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$form_security_token' => BaseModule::getFormSecurityToken("settings_addon"),
'$title' => L10n::t('Addon Settings'),
'$title' => DI::l10n()->t('Addon Settings'),
'$settings_addons' => $settings_addons
]);
return $o;
@ -760,16 +759,16 @@ function settings_content(App $a)
$arr[$fname] = [];
$arr[$fname][0] = $fdata[0];
foreach (array_slice($fdata,1) as $f) {
$arr[$fname][1][] = ['feature_' .$f[0], $f[1],((intval(Feature::isEnabled(local_user(), $f[0]))) ? "1" : ''), $f[2],[L10n::t('Off'), L10n::t('On')]];
$arr[$fname][1][] = ['feature_' .$f[0], $f[1],((intval(Feature::isEnabled(local_user(), $f[0]))) ? "1" : ''), $f[2],[DI::l10n()->t('Off'), DI::l10n()->t('On')]];
}
}
$tpl = Renderer::getMarkupTemplate('settings/features.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$form_security_token' => BaseModule::getFormSecurityToken("settings_features"),
'$title' => L10n::t('Additional Features'),
'$title' => DI::l10n()->t('Additional Features'),
'$features' => $arr,
'$submit' => L10n::t('Save Settings'),
'$submit' => DI::l10n()->t('Save Settings'),
]);
return $o;
}
@ -792,8 +791,8 @@ function settings_content(App $a)
Hook::callAll('connector_settings', $settings_connectors);
if (is_site_admin()) {
$diasp_enabled = L10n::t('Built-in support for %s connectivity is %s', L10n::t('Diaspora'), ((Config::get('system', 'diaspora_enabled')) ? L10n::t('enabled') : L10n::t('disabled')));
$ostat_enabled = L10n::t('Built-in support for %s connectivity is %s', L10n::t("GNU Social \x28OStatus\x29"), ((Config::get('system', 'ostatus_disabled')) ? L10n::t('disabled') : L10n::t('enabled')));
$diasp_enabled = DI::l10n()->t('Built-in support for %s connectivity is %s', DI::l10n()->t('Diaspora'), ((Config::get('system', 'diaspora_enabled')) ? DI::l10n()->t('enabled') : DI::l10n()->t('disabled')));
$ostat_enabled = DI::l10n()->t('Built-in support for %s connectivity is %s', DI::l10n()->t("GNU Social \x28OStatus\x29"), ((Config::get('system', 'ostatus_disabled')) ? DI::l10n()->t('disabled') : DI::l10n()->t('enabled')));
} else {
$diasp_enabled = "";
$ostat_enabled = "";
@ -824,50 +823,50 @@ function settings_content(App $a)
$tpl = Renderer::getMarkupTemplate('settings/connectors.tpl');
$mail_disabled_message = ($mail_disabled ? L10n::t('Email access is disabled on this site.') : '');
$mail_disabled_message = ($mail_disabled ? DI::l10n()->t('Email access is disabled on this site.') : '');
$ssl_options = ['TLS' => 'TLS', 'SSL' => 'SSL'];
if (Config::get('system', 'insecure_imap')) {
$ssl_options['notls'] = L10n::t('None');
$ssl_options['notls'] = DI::l10n()->t('None');
}
$o .= Renderer::replaceMacros($tpl, [
'$form_security_token' => BaseModule::getFormSecurityToken("settings_connectors"),
'$title' => L10n::t('Social Networks'),
'$title' => DI::l10n()->t('Social Networks'),
'$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled,
'$general_settings' => L10n::t('General Social Media Settings'),
'$accept_only_sharer' => ['accept_only_sharer', L10n::t('Accept only top level posts by contacts you follow'), $accept_only_sharer, L10n::t('The system does an auto completion of threads when a comment arrives. This has got the side effect that you can receive posts that had been started by a non-follower but had been commented by someone you follow. This setting deactivates this behaviour. When activated, you strictly only will receive posts from people you really do follow.')],
'$disable_cw' => ['disable_cw', L10n::t('Disable Content Warning'), $disable_cw, L10n::t('Users on networks like Mastodon or Pleroma are able to set a content warning field which collapse their post by default. This disables the automatic collapsing and sets the content warning as the post title. Doesn\'t affect any other content filtering you eventually set up.')],
'$no_intelligent_shortening' => ['no_intelligent_shortening', L10n::t('Disable intelligent shortening'), $no_intelligent_shortening, L10n::t('Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post.')],
'$attach_link_title' => ['attach_link_title', L10n::t('Attach the link title'), $attach_link_title, L10n::t('When activated, the title of the attached link will be added as a title on posts to Diaspora. This is mostly helpful with "remote-self" contacts that share feed content.')],
'$ostatus_autofriend' => ['snautofollow', L10n::t("Automatically follow any GNU Social \x28OStatus\x29 followers/mentioners"), $ostatus_autofriend, L10n::t('If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user.')],
'$default_group' => Group::displayGroupSelection(local_user(), $default_group, L10n::t("Default group for OStatus contacts")),
'$legacy_contact' => ['legacy_contact', L10n::t('Your legacy GNU Social account'), $legacy_contact, L10n::t("If you enter your old GNU Social/Statusnet account name here \x28in the format user@domain.tld\x29, your contacts will be added automatically. The field will be emptied when done.")],
'$general_settings' => DI::l10n()->t('General Social Media Settings'),
'$accept_only_sharer' => ['accept_only_sharer', DI::l10n()->t('Accept only top level posts by contacts you follow'), $accept_only_sharer, DI::l10n()->t('The system does an auto completion of threads when a comment arrives. This has got the side effect that you can receive posts that had been started by a non-follower but had been commented by someone you follow. This setting deactivates this behaviour. When activated, you strictly only will receive posts from people you really do follow.')],
'$disable_cw' => ['disable_cw', DI::l10n()->t('Disable Content Warning'), $disable_cw, DI::l10n()->t('Users on networks like Mastodon or Pleroma are able to set a content warning field which collapse their post by default. This disables the automatic collapsing and sets the content warning as the post title. Doesn\'t affect any other content filtering you eventually set up.')],
'$no_intelligent_shortening' => ['no_intelligent_shortening', DI::l10n()->t('Disable intelligent shortening'), $no_intelligent_shortening, DI::l10n()->t('Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post.')],
'$attach_link_title' => ['attach_link_title', DI::l10n()->t('Attach the link title'), $attach_link_title, DI::l10n()->t('When activated, the title of the attached link will be added as a title on posts to Diaspora. This is mostly helpful with "remote-self" contacts that share feed content.')],
'$ostatus_autofriend' => ['snautofollow', DI::l10n()->t("Automatically follow any GNU Social \x28OStatus\x29 followers/mentioners"), $ostatus_autofriend, DI::l10n()->t('If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user.')],
'$default_group' => Group::displayGroupSelection(local_user(), $default_group, DI::l10n()->t("Default group for OStatus contacts")),
'$legacy_contact' => ['legacy_contact', DI::l10n()->t('Your legacy GNU Social account'), $legacy_contact, DI::l10n()->t("If you enter your old GNU Social/Statusnet account name here \x28in the format user@domain.tld\x29, your contacts will be added automatically. The field will be emptied when done.")],
'$repair_ostatus_url' => DI::baseUrl() . '/repair_ostatus',
'$repair_ostatus_text' => L10n::t('Repair OStatus subscriptions'),
'$repair_ostatus_text' => DI::l10n()->t('Repair OStatus subscriptions'),
'$settings_connectors' => $settings_connectors,
'$h_imap' => L10n::t('Email/Mailbox Setup'),
'$imap_desc' => L10n::t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => ['imap_lastcheck', L10n::t('Last successful email check:'), $mail_chk, ''],
'$h_imap' => DI::l10n()->t('Email/Mailbox Setup'),
'$imap_desc' => DI::l10n()->t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => ['imap_lastcheck', DI::l10n()->t('Last successful email check:'), $mail_chk, ''],
'$mail_disabled' => $mail_disabled_message,
'$mail_server' => ['mail_server', L10n::t('IMAP server name:'), $mail_server, ''],
'$mail_port' => ['mail_port', L10n::t('IMAP port:'), $mail_port, ''],
'$mail_ssl' => ['mail_ssl', L10n::t('Security:'), strtoupper($mail_ssl), '', $ssl_options],
'$mail_user' => ['mail_user', L10n::t('Email login name:'), $mail_user, ''],
'$mail_pass' => ['mail_pass', L10n::t('Email password:'), '', ''],
'$mail_replyto' => ['mail_replyto', L10n::t('Reply-to address:'), $mail_replyto, 'Optional'],
'$mail_pubmail' => ['mail_pubmail', L10n::t('Send public posts to all email contacts:'), $mail_pubmail, ''],
'$mail_action' => ['mail_action', L10n::t('Action after import:'), $mail_action, '', [0 => L10n::t('None'), 1 => L10n::t('Delete'), 2 => L10n::t('Mark as seen'), 3 => L10n::t('Move to folder')]],
'$mail_movetofolder' => ['mail_movetofolder', L10n::t('Move to folder:'), $mail_movetofolder, ''],
'$submit' => L10n::t('Save Settings'),
'$mail_server' => ['mail_server', DI::l10n()->t('IMAP server name:'), $mail_server, ''],
'$mail_port' => ['mail_port', DI::l10n()->t('IMAP port:'), $mail_port, ''],
'$mail_ssl' => ['mail_ssl', DI::l10n()->t('Security:'), strtoupper($mail_ssl), '', $ssl_options],
'$mail_user' => ['mail_user', DI::l10n()->t('Email login name:'), $mail_user, ''],
'$mail_pass' => ['mail_pass', DI::l10n()->t('Email password:'), '', ''],
'$mail_replyto' => ['mail_replyto', DI::l10n()->t('Reply-to address:'), $mail_replyto, 'Optional'],
'$mail_pubmail' => ['mail_pubmail', DI::l10n()->t('Send public posts to all email contacts:'), $mail_pubmail, ''],
'$mail_action' => ['mail_action', DI::l10n()->t('Action after import:'), $mail_action, '', [0 => DI::l10n()->t('None'), 1 => DI::l10n()->t('Delete'), 2 => DI::l10n()->t('Mark as seen'), 3 => DI::l10n()->t('Move to folder')]],
'$mail_movetofolder' => ['mail_movetofolder', DI::l10n()->t('Move to folder:'), $mail_movetofolder, ''],
'$submit' => DI::l10n()->t('Save Settings'),
]);
Hook::callAll('display_settings', $o);
@ -890,7 +889,7 @@ function settings_content(App $a)
$allowed_themes = Theme::getAllowedList();
$themes = [];
$mobile_themes = ["---" => L10n::t('No special theme for mobile devices')];
$mobile_themes = ["---" => DI::l10n()->t('No special theme for mobile devices')];
foreach ($allowed_themes as $theme) {
$is_experimental = file_exists('view/theme/' . $theme . '/experimental');
$is_unsupported = file_exists('view/theme/' . $theme . '/unsupported');
@ -898,9 +897,9 @@ function settings_content(App $a)
if (!$is_experimental || ($is_experimental && (Config::get('experimentals', 'exp_themes')==1 || is_null(Config::get('experimentals', 'exp_themes'))))) {
$theme_name = ucfirst($theme);
if ($is_unsupported) {
$theme_name = L10n::t('%s - (Unsupported)', $theme_name);
$theme_name = DI::l10n()->t('%s - (Unsupported)', $theme_name);
} elseif ($is_experimental) {
$theme_name = L10n::t('%s - (Experimental)', $theme_name);
$theme_name = DI::l10n()->t('%s - (Experimental)', $theme_name);
}
if ($is_mobile) {
@ -928,7 +927,7 @@ function settings_content(App $a)
$nosmile = DI::pConfig()->get(local_user(), 'system', 'no_smilies', 0);
$first_day_of_week = DI::pConfig()->get(local_user(), 'system', 'first_day_of_week', 0);
$weekdays = [0 => L10n::t("Sunday"), 1 => L10n::t("Monday")];
$weekdays = [0 => DI::l10n()->t("Sunday"), 1 => DI::l10n()->t("Monday")];
$noinfo = DI::pConfig()->get(local_user(), 'system', 'ignore_info', 0);
$infinite_scroll = DI::pConfig()->get(local_user(), 'system', 'infinite_scroll', 0);
@ -944,31 +943,31 @@ function settings_content(App $a)
$tpl = Renderer::getMarkupTemplate('settings/display.tpl');
$o = Renderer::replaceMacros($tpl, [
'$ptitle' => L10n::t('Display Settings'),
'$ptitle' => DI::l10n()->t('Display Settings'),
'$form_security_token' => BaseModule::getFormSecurityToken("settings_display"),
'$submit' => L10n::t('Save Settings'),
'$submit' => DI::l10n()->t('Save Settings'),
'$baseurl' => DI::baseUrl()->get(true),
'$uid' => local_user(),
'$theme' => ['theme', L10n::t('Display Theme:'), $theme_selected, '', $themes, true],
'$mobile_theme' => ['mobile_theme', L10n::t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false],
'$nowarn_insecure' => ['nowarn_insecure', L10n::t('Suppress warning of insecure networks'), $nowarn_insecure, L10n::t("Should the system suppress the warning that the current group contains members of networks that can't receive non public postings.")],
'$ajaxint' => ['browser_update', L10n::t("Update browser every xx seconds"), $browser_update, L10n::t('Minimum of 10 seconds. Enter -1 to disable it.')],
'$itemspage_network' => ['itemspage_network', L10n::t("Number of items to display per page:"), $itemspage_network, L10n::t('Maximum of 100 items')],
'$itemspage_mobile_network' => ['itemspage_mobile_network', L10n::t("Number of items to display per page when viewed from mobile device:"), $itemspage_mobile_network, L10n::t('Maximum of 100 items')],
'$nosmile' => ['nosmile', L10n::t("Don't show emoticons"), $nosmile, ''],
'$calendar_title' => L10n::t('Calendar'),
'$first_day_of_week' => ['first_day_of_week', L10n::t('Beginning of week:'), $first_day_of_week, '', $weekdays, false],
'$noinfo' => ['noinfo', L10n::t("Don't show notices"), $noinfo, ''],
'$infinite_scroll' => ['infinite_scroll', L10n::t("Infinite scroll"), $infinite_scroll, ''],
'$no_auto_update' => ['no_auto_update', L10n::t("Automatic updates only at the top of the network page"), $no_auto_update, L10n::t('When disabled, the network page is updated all the time, which could be confusing while reading.')],
'$bandwidth_saver' => ['bandwidth_saver', L10n::t('Bandwidth Saver Mode'), $bandwidth_saver, L10n::t('When enabled, embedded content is not displayed on automatic updates, they only show on page reload.')],
'$no_smart_threading' => ['no_smart_threading', L10n::t('Disable Smart Threading'), $no_smart_threading, L10n::t('Disable the automatic suppression of extraneous thread indentation.')],
'$theme' => ['theme', DI::l10n()->t('Display Theme:'), $theme_selected, '', $themes, true],
'$mobile_theme' => ['mobile_theme', DI::l10n()->t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false],
'$nowarn_insecure' => ['nowarn_insecure', DI::l10n()->t('Suppress warning of insecure networks'), $nowarn_insecure, DI::l10n()->t("Should the system suppress the warning that the current group contains members of networks that can't receive non public postings.")],
'$ajaxint' => ['browser_update', DI::l10n()->t("Update browser every xx seconds"), $browser_update, DI::l10n()->t('Minimum of 10 seconds. Enter -1 to disable it.')],
'$itemspage_network' => ['itemspage_network', DI::l10n()->t("Number of items to display per page:"), $itemspage_network, DI::l10n()->t('Maximum of 100 items')],
'$itemspage_mobile_network' => ['itemspage_mobile_network', DI::l10n()->t("Number of items to display per page when viewed from mobile device:"), $itemspage_mobile_network, DI::l10n()->t('Maximum of 100 items')],
'$nosmile' => ['nosmile', DI::l10n()->t("Don't show emoticons"), $nosmile, ''],
'$calendar_title' => DI::l10n()->t('Calendar'),
'$first_day_of_week' => ['first_day_of_week', DI::l10n()->t('Beginning of week:'), $first_day_of_week, '', $weekdays, false],
'$noinfo' => ['noinfo', DI::l10n()->t("Don't show notices"), $noinfo, ''],
'$infinite_scroll' => ['infinite_scroll', DI::l10n()->t("Infinite scroll"), $infinite_scroll, ''],
'$no_auto_update' => ['no_auto_update', DI::l10n()->t("Automatic updates only at the top of the network page"), $no_auto_update, DI::l10n()->t('When disabled, the network page is updated all the time, which could be confusing while reading.')],
'$bandwidth_saver' => ['bandwidth_saver', DI::l10n()->t('Bandwidth Saver Mode'), $bandwidth_saver, DI::l10n()->t('When enabled, embedded content is not displayed on automatic updates, they only show on page reload.')],
'$no_smart_threading' => ['no_smart_threading', DI::l10n()->t('Disable Smart Threading'), $no_smart_threading, DI::l10n()->t('Disable the automatic suppression of extraneous thread indentation.')],
'$d_tset' => L10n::t('General Theme Settings'),
'$d_ctset' => L10n::t('Custom Theme Settings'),
'$d_cset' => L10n::t('Content Settings'),
'stitle' => L10n::t('Theme settings'),
'$d_tset' => DI::l10n()->t('General Theme Settings'),
'$d_ctset' => DI::l10n()->t('Custom Theme Settings'),
'$d_cset' => DI::l10n()->t('Content Settings'),
'stitle' => DI::l10n()->t('Theme settings'),
'$theme_config' => $theme_config,
]);
@ -982,7 +981,7 @@ function settings_content(App $a)
$profile = DBA::selectFirst('profile', [], ['is-default' => true, 'uid' => local_user()]);
if (!DBA::isResult($profile)) {
notice(L10n::t('Unable to find your profile. Please contact your admin.') . EOL);
notice(DI::l10n()->t('Unable to find your profile. Please contact your admin.') . EOL);
return;
}
@ -1021,49 +1020,49 @@ function settings_content(App $a)
$pageset_tpl = Renderer::getMarkupTemplate('settings/pagetypes.tpl');
$pagetype = Renderer::replaceMacros($pageset_tpl, [
'$account_types' => L10n::t("Account Types"),
'$user' => L10n::t("Personal Page Subtypes"),
'$community' => L10n::t("Community Forum Subtypes"),
'$account_types' => DI::l10n()->t("Account Types"),
'$user' => DI::l10n()->t("Personal Page Subtypes"),
'$community' => DI::l10n()->t("Community Forum Subtypes"),
'$account_type' => $a->user['account-type'],
'$type_person' => User::ACCOUNT_TYPE_PERSON,
'$type_organisation' => User::ACCOUNT_TYPE_ORGANISATION,
'$type_news' => User::ACCOUNT_TYPE_NEWS,
'$type_community' => User::ACCOUNT_TYPE_COMMUNITY,
'$account_person' => ['account-type', L10n::t('Personal Page'), User::ACCOUNT_TYPE_PERSON,
L10n::t('Account for a personal profile.'),
'$account_person' => ['account-type', DI::l10n()->t('Personal Page'), User::ACCOUNT_TYPE_PERSON,
DI::l10n()->t('Account for a personal profile.'),
($a->user['account-type'] == User::ACCOUNT_TYPE_PERSON)],
'$account_organisation' => ['account-type', L10n::t('Organisation Page'), User::ACCOUNT_TYPE_ORGANISATION,
L10n::t('Account for an organisation that automatically approves contact requests as "Followers".'),
'$account_organisation' => ['account-type', DI::l10n()->t('Organisation Page'), User::ACCOUNT_TYPE_ORGANISATION,
DI::l10n()->t('Account for an organisation that automatically approves contact requests as "Followers".'),
($a->user['account-type'] == User::ACCOUNT_TYPE_ORGANISATION)],
'$account_news' => ['account-type', L10n::t('News Page'), User::ACCOUNT_TYPE_NEWS,
L10n::t('Account for a news reflector that automatically approves contact requests as "Followers".'),
'$account_news' => ['account-type', DI::l10n()->t('News Page'), User::ACCOUNT_TYPE_NEWS,
DI::l10n()->t('Account for a news reflector that automatically approves contact requests as "Followers".'),
($a->user['account-type'] == User::ACCOUNT_TYPE_NEWS)],
'$account_community' => ['account-type', L10n::t('Community Forum'), User::ACCOUNT_TYPE_COMMUNITY,
L10n::t('Account for community discussions.'),
'$account_community' => ['account-type', DI::l10n()->t('Community Forum'), User::ACCOUNT_TYPE_COMMUNITY,
DI::l10n()->t('Account for community discussions.'),
($a->user['account-type'] == User::ACCOUNT_TYPE_COMMUNITY)],
'$page_normal' => ['page-flags', L10n::t('Normal Account Page'), User::PAGE_FLAGS_NORMAL,
L10n::t('Account for a regular personal profile that requires manual approval of "Friends" and "Followers".'),
'$page_normal' => ['page-flags', DI::l10n()->t('Normal Account Page'), User::PAGE_FLAGS_NORMAL,
DI::l10n()->t('Account for a regular personal profile that requires manual approval of "Friends" and "Followers".'),
($a->user['page-flags'] == User::PAGE_FLAGS_NORMAL)],
'$page_soapbox' => ['page-flags', L10n::t('Soapbox Page'), User::PAGE_FLAGS_SOAPBOX,
L10n::t('Account for a public profile that automatically approves contact requests as "Followers".'),
'$page_soapbox' => ['page-flags', DI::l10n()->t('Soapbox Page'), User::PAGE_FLAGS_SOAPBOX,
DI::l10n()->t('Account for a public profile that automatically approves contact requests as "Followers".'),
($a->user['page-flags'] == User::PAGE_FLAGS_SOAPBOX)],
'$page_community' => ['page-flags', L10n::t('Public Forum'), User::PAGE_FLAGS_COMMUNITY,
L10n::t('Automatically approves all contact requests.'),
'$page_community' => ['page-flags', DI::l10n()->t('Public Forum'), User::PAGE_FLAGS_COMMUNITY,
DI::l10n()->t('Automatically approves all contact requests.'),
($a->user['page-flags'] == User::PAGE_FLAGS_COMMUNITY)],
'$page_freelove' => ['page-flags', L10n::t('Automatic Friend Page'), User::PAGE_FLAGS_FREELOVE,
L10n::t('Account for a popular profile that automatically approves contact requests as "Friends".'),
'$page_freelove' => ['page-flags', DI::l10n()->t('Automatic Friend Page'), User::PAGE_FLAGS_FREELOVE,
DI::l10n()->t('Account for a popular profile that automatically approves contact requests as "Friends".'),
($a->user['page-flags'] == User::PAGE_FLAGS_FREELOVE)],
'$page_prvgroup' => ['page-flags', L10n::t('Private Forum [Experimental]'), User::PAGE_FLAGS_PRVGROUP,
L10n::t('Requires manual approval of contact requests.'),
'$page_prvgroup' => ['page-flags', DI::l10n()->t('Private Forum [Experimental]'), User::PAGE_FLAGS_PRVGROUP,
DI::l10n()->t('Requires manual approval of contact requests.'),
($a->user['page-flags'] == User::PAGE_FLAGS_PRVGROUP)],
@ -1074,7 +1073,7 @@ function settings_content(App $a)
if ($noid) {
$openid_field = false;
} else {
$openid_field = ['openid_url', L10n::t('OpenID:'), $openid, L10n::t("\x28Optional\x29 Allow this OpenID to login to this account."), "", "readonly", "url"];
$openid_field = ['openid_url', DI::l10n()->t('OpenID:'), $openid, DI::l10n()->t("\x28Optional\x29 Allow this OpenID to login to this account."), "", "readonly", "url"];
}
$opt_tpl = Renderer::getMarkupTemplate("field_yesno.tpl");
@ -1082,64 +1081,64 @@ function settings_content(App $a)
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
} else {
$profile_in_dir = Renderer::replaceMacros($opt_tpl, [
'$field' => ['profile_in_directory', L10n::t('Publish your default profile in your local site directory?'), $profile['publish'], L10n::t('Your profile will be published in this node\'s <a href="%s">local directory</a>. Your profile details may be publicly visible depending on the system settings.', DI::baseUrl().'/directory'), [L10n::t('No'), L10n::t('Yes')]]
'$field' => ['profile_in_directory', DI::l10n()->t('Publish your default profile in your local site directory?'), $profile['publish'], DI::l10n()->t('Your profile will be published in this node\'s <a href="%s">local directory</a>. Your profile details may be publicly visible depending on the system settings.', DI::baseUrl().'/directory'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]]
]);
}
if (strlen(Config::get('system', 'directory'))) {
$profile_in_net_dir = Renderer::replaceMacros($opt_tpl, [
'$field' => ['profile_in_netdirectory', L10n::t('Publish your default profile in the global social directory?'), $profile['net-publish'], L10n::t('Your profile will be published in the global friendica directories (e.g. <a href="%s">%s</a>). Your profile will be visible in public.', Config::get('system', 'directory'), Config::get('system', 'directory')) . " " . L10n::t("This setting also determines whether Friendica will inform search engines that your profile should be indexed or not. Third-party search engines may or may not respect this setting."), [L10n::t('No'), L10n::t('Yes')]]
'$field' => ['profile_in_netdirectory', DI::l10n()->t('Publish your default profile in the global social directory?'), $profile['net-publish'], DI::l10n()->t('Your profile will be published in the global friendica directories (e.g. <a href="%s">%s</a>). Your profile will be visible in public.', Config::get('system', 'directory'), Config::get('system', 'directory')) . " " . DI::l10n()->t("This setting also determines whether Friendica will inform search engines that your profile should be indexed or not. Third-party search engines may or may not respect this setting."), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]]
]);
} else {
$profile_in_net_dir = '';
}
$hide_friends = Renderer::replaceMacros($opt_tpl, [
'$field' => ['hide-friends', L10n::t('Hide your contact/friend list from viewers of your default profile?'), $profile['hide-friends'], L10n::t('Your contact list won\'t be shown in your default profile page. You can decide to show your contact list separately for each additional profile you create'), [L10n::t('No'), L10n::t('Yes')]],
'$field' => ['hide-friends', DI::l10n()->t('Hide your contact/friend list from viewers of your default profile?'), $profile['hide-friends'], DI::l10n()->t('Your contact list won\'t be shown in your default profile page. You can decide to show your contact list separately for each additional profile you create'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
]);
$hide_wall = Renderer::replaceMacros($opt_tpl, [
'$field' => ['hidewall', L10n::t('Hide your profile details from anonymous viewers?'), $a->user['hidewall'], L10n::t('Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies will still be accessible by other means.'), [L10n::t('No'), L10n::t('Yes')]],
'$field' => ['hidewall', DI::l10n()->t('Hide your profile details from anonymous viewers?'), $a->user['hidewall'], DI::l10n()->t('Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies will still be accessible by other means.'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
]);
$blockwall = Renderer::replaceMacros($opt_tpl, [
'$field' => ['blockwall', L10n::t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), L10n::t('Your contacts may write posts on your profile wall. These posts will be distributed to your contacts'), [L10n::t('No'), L10n::t('Yes')]],
'$field' => ['blockwall', DI::l10n()->t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), DI::l10n()->t('Your contacts may write posts on your profile wall. These posts will be distributed to your contacts'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
]);
$blocktags = Renderer::replaceMacros($opt_tpl, [
'$field' => ['blocktags', L10n::t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), L10n::t('Your contacts can add additional tags to your posts.'), [L10n::t('No'), L10n::t('Yes')]],
'$field' => ['blocktags', DI::l10n()->t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), DI::l10n()->t('Your contacts can add additional tags to your posts.'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
]);
$suggestme = Renderer::replaceMacros($opt_tpl, [
'$field' => ['suggestme', L10n::t('Allow us to suggest you as a potential friend to new members?'), $suggestme, L10n::t('If you like, Friendica may suggest new members to add you as a contact.'), [L10n::t('No'), L10n::t('Yes')]],
'$field' => ['suggestme', DI::l10n()->t('Allow us to suggest you as a potential friend to new members?'), $suggestme, DI::l10n()->t('If you like, Friendica may suggest new members to add you as a contact.'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
]);
$unkmail = Renderer::replaceMacros($opt_tpl, [
'$field' => ['unkmail', L10n::t('Permit unknown people to send you private mail?'), $unkmail, L10n::t('Friendica network users may send you private messages even if they are not in your contact list.'), [L10n::t('No'), L10n::t('Yes')]],
'$field' => ['unkmail', DI::l10n()->t('Permit unknown people to send you private mail?'), $unkmail, DI::l10n()->t('Friendica network users may send you private messages even if they are not in your contact list.'), [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
]);
if (!$profile['publish'] && !$profile['net-publish']) {
info(L10n::t('Profile is <strong>not published</strong>.') . EOL);
info(DI::l10n()->t('Profile is <strong>not published</strong>.') . EOL);
}
$tpl_addr = Renderer::getMarkupTemplate('settings/nick_set.tpl');
$prof_addr = Renderer::replaceMacros($tpl_addr,[
'$desc' => L10n::t("Your Identity Address is <strong>'%s'</strong> or '%s'.", $nickname . '@' . DI::baseUrl()->getHostname() . DI::baseUrl()->getUrlPath(), DI::baseUrl() . '/profile/' . $nickname),
'$desc' => DI::l10n()->t("Your Identity Address is <strong>'%s'</strong> or '%s'.", $nickname . '@' . DI::baseUrl()->getHostname() . DI::baseUrl()->getUrlPath(), DI::baseUrl() . '/profile/' . $nickname),
'$basepath' => DI::baseUrl()->getHostname()
]);
$stpl = Renderer::getMarkupTemplate('settings/settings.tpl');
$expire_arr = [
'days' => ['expire', L10n::t("Automatically expire posts after this many days:"), $expire, L10n::t('If empty, posts will not expire. Expired posts will be deleted')],
'advanced' => L10n::t('Advanced expiration settings'),
'label' => L10n::t('Advanced Expiration'),
'items' => ['expire_items', L10n::t("Expire posts:"), $expire_items, '', [L10n::t('No'), L10n::t('Yes')]],
'notes' => ['expire_notes', L10n::t("Expire personal notes:"), $expire_notes, '', [L10n::t('No'), L10n::t('Yes')]],
'starred' => ['expire_starred', L10n::t("Expire starred posts:"), $expire_starred, '', [L10n::t('No'), L10n::t('Yes')]],
'photos' => ['expire_photos', L10n::t("Expire photos:"), $expire_photos, '', [L10n::t('No'), L10n::t('Yes')]],
'network_only' => ['expire_network_only', L10n::t("Only expire posts by others:"), $expire_network_only, '', [L10n::t('No'), L10n::t('Yes')]],
'days' => ['expire', DI::l10n()->t("Automatically expire posts after this many days:"), $expire, DI::l10n()->t('If empty, posts will not expire. Expired posts will be deleted')],
'advanced' => DI::l10n()->t('Advanced expiration settings'),
'label' => DI::l10n()->t('Advanced Expiration'),
'items' => ['expire_items', DI::l10n()->t("Expire posts:"), $expire_items, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
'notes' => ['expire_notes', DI::l10n()->t("Expire personal notes:"), $expire_notes, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
'starred' => ['expire_starred', DI::l10n()->t("Expire starred posts:"), $expire_starred, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
'photos' => ['expire_photos', DI::l10n()->t("Expire photos:"), $expire_photos, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
'network_only' => ['expire_network_only', DI::l10n()->t("Only expire posts by others:"), $expire_network_only, '', [DI::l10n()->t('No'), DI::l10n()->t('Yes')]],
];
$group_select = Group::displayGroupSelection(local_user(), $a->user['def_gid']);
@ -1165,56 +1164,56 @@ function settings_content(App $a)
}
/* Installed langs */
$lang_choices = L10n::getAvailableLanguages();
$lang_choices = DI::l10n()->getAvailableLanguages();
/// @TODO Fix indending (or so)
$o .= Renderer::replaceMacros($stpl, [
'$ptitle' => L10n::t('Account Settings'),
'$ptitle' => DI::l10n()->t('Account Settings'),
'$submit' => L10n::t('Save Settings'),
'$submit' => DI::l10n()->t('Save Settings'),
'$baseurl' => DI::baseUrl()->get(true),
'$uid' => local_user(),
'$form_security_token' => BaseModule::getFormSecurityToken("settings"),
'$nickname_block' => $prof_addr,
'$h_pass' => L10n::t('Password Settings'),
'$password1'=> ['password', L10n::t('New Password:'), '', L10n::t('Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:).')],
'$password2'=> ['confirm', L10n::t('Confirm:'), '', L10n::t('Leave password fields blank unless changing')],
'$password3'=> ['opassword', L10n::t('Current Password:'), '', L10n::t('Your current password to confirm the changes')],
'$password4'=> ['mpassword', L10n::t('Password:'), '', L10n::t('Your current password to confirm the changes')],
'$h_pass' => DI::l10n()->t('Password Settings'),
'$password1'=> ['password', DI::l10n()->t('New Password:'), '', DI::l10n()->t('Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:).')],
'$password2'=> ['confirm', DI::l10n()->t('Confirm:'), '', DI::l10n()->t('Leave password fields blank unless changing')],
'$password3'=> ['opassword', DI::l10n()->t('Current Password:'), '', DI::l10n()->t('Your current password to confirm the changes')],
'$password4'=> ['mpassword', DI::l10n()->t('Password:'), '', DI::l10n()->t('Your current password to confirm the changes')],
'$oid_enable' => (!Config::get('system', 'no_openid')),
'$openid' => $openid_field,
'$delete_openid' => ['delete_openid', L10n::t('Delete OpenID URL'), false, ''],
'$delete_openid' => ['delete_openid', DI::l10n()->t('Delete OpenID URL'), false, ''],
'$h_basic' => L10n::t('Basic Settings'),
'$username' => ['username', L10n::t('Full Name:'), $username, ''],
'$email' => ['email', L10n::t('Email Address:'), $email, '', '', '', 'email'],
'$timezone' => ['timezone_select' , L10n::t('Your Timezone:'), Temporal::getTimezoneSelect($timezone), ''],
'$language' => ['language', L10n::t('Your Language:'), $language, L10n::t('Set the language we use to show you friendica interface and to send you emails'), $lang_choices],
'$defloc' => ['defloc', L10n::t('Default Post Location:'), $defloc, ''],
'$allowloc' => ['allow_location', L10n::t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''],
'$h_basic' => DI::l10n()->t('Basic Settings'),
'$username' => ['username', DI::l10n()->t('Full Name:'), $username, ''],
'$email' => ['email', DI::l10n()->t('Email Address:'), $email, '', '', '', 'email'],
'$timezone' => ['timezone_select' , DI::l10n()->t('Your Timezone:'), Temporal::getTimezoneSelect($timezone), ''],
'$language' => ['language', DI::l10n()->t('Your Language:'), $language, DI::l10n()->t('Set the language we use to show you friendica interface and to send you emails'), $lang_choices],
'$defloc' => ['defloc', DI::l10n()->t('Default Post Location:'), $defloc, ''],
'$allowloc' => ['allow_location', DI::l10n()->t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''],
'$h_prv' => L10n::t('Security and Privacy Settings'),
'$h_prv' => DI::l10n()->t('Security and Privacy Settings'),
'$maxreq' => ['maxreq', L10n::t('Maximum Friend Requests/Day:'), $maxreq , L10n::t("\x28to prevent spam abuse\x29")],
'$permissions' => L10n::t('Default Post Permissions'),
'$permdesc' => L10n::t("\x28click to open/close\x29"),
'$maxreq' => ['maxreq', DI::l10n()->t('Maximum Friend Requests/Day:'), $maxreq , DI::l10n()->t("\x28to prevent spam abuse\x29")],
'$permissions' => DI::l10n()->t('Default Post Permissions'),
'$permdesc' => DI::l10n()->t("\x28click to open/close\x29"),
'$visibility' => $profile['net-publish'],
'$aclselect' => ACL::getFullSelectorHTML(DI::page(), $a->user),
'$suggestme' => $suggestme,
'$blockwall'=> $blockwall, // array('blockwall', L10n::t('Allow friends to post to your profile page:'), !$blockwall, ''),
'$blocktags'=> $blocktags, // array('blocktags', L10n::t('Allow friends to tag your posts:'), !$blocktags, ''),
'$blockwall'=> $blockwall, // array('blockwall', DI::l10n()->t('Allow friends to post to your profile page:'), !$blockwall, ''),
'$blocktags'=> $blocktags, // array('blocktags', DI::l10n()->t('Allow friends to tag your posts:'), !$blocktags, ''),
// ACL permissions box
'$group_perms' => L10n::t('Show to Groups'),
'$contact_perms' => L10n::t('Show to Contacts'),
'$private' => L10n::t('Default Private Post'),
'$public' => L10n::t('Default Public Post'),
'$group_perms' => DI::l10n()->t('Show to Groups'),
'$contact_perms' => DI::l10n()->t('Show to Contacts'),
'$private' => DI::l10n()->t('Default Private Post'),
'$public' => DI::l10n()->t('Default Public Post'),
'$is_private' => $private_post,
'$return_path' => $query_str,
'$public_link' => $public_post_link,
'$settings_perms' => L10n::t('Default Permissions for New Posts'),
'$settings_perms' => DI::l10n()->t('Default Permissions for New Posts'),
'$group_select' => $group_select,
@ -1226,41 +1225,41 @@ function settings_content(App $a)
'$hide_friends' => $hide_friends,
'$hide_wall' => $hide_wall,
'$unkmail' => $unkmail,
'$cntunkmail' => ['cntunkmail', L10n::t('Maximum private messages per day from unknown people:'), $cntunkmail , L10n::t("\x28to prevent spam abuse\x29")],
'$cntunkmail' => ['cntunkmail', DI::l10n()->t('Maximum private messages per day from unknown people:'), $cntunkmail , DI::l10n()->t("\x28to prevent spam abuse\x29")],
'$h_not' => L10n::t('Notification Settings'),
'$lbl_not' => L10n::t('Send a notification email when:'),
'$notify1' => ['notify1', L10n::t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''],
'$notify2' => ['notify2', L10n::t('Your introductions are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, ''],
'$notify3' => ['notify3', L10n::t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, ''],
'$notify4' => ['notify4', L10n::t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''],
'$notify5' => ['notify5', L10n::t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''],
'$notify6' => ['notify6', L10n::t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''],
'$notify7' => ['notify7', L10n::t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''],
'$notify8' => ['notify8', L10n::t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''],
'$h_not' => DI::l10n()->t('Notification Settings'),
'$lbl_not' => DI::l10n()->t('Send a notification email when:'),
'$notify1' => ['notify1', DI::l10n()->t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''],
'$notify2' => ['notify2', DI::l10n()->t('Your introductions are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, ''],
'$notify3' => ['notify3', DI::l10n()->t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, ''],
'$notify4' => ['notify4', DI::l10n()->t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''],
'$notify5' => ['notify5', DI::l10n()->t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''],
'$notify6' => ['notify6', DI::l10n()->t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''],
'$notify7' => ['notify7', DI::l10n()->t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''],
'$notify8' => ['notify8', DI::l10n()->t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''],
'$desktop_notifications' => ['desktop_notifications', L10n::t('Activate desktop notifications') , false, L10n::t('Show desktop popup on new notifications')],
'$desktop_notifications' => ['desktop_notifications', DI::l10n()->t('Activate desktop notifications') , false, DI::l10n()->t('Show desktop popup on new notifications')],
'$email_textonly' => ['email_textonly', L10n::t('Text-only notification emails'),
'$email_textonly' => ['email_textonly', DI::l10n()->t('Text-only notification emails'),
DI::pConfig()->get(local_user(), 'system', 'email_textonly'),
L10n::t('Send text only notification emails, without the html part')],
DI::l10n()->t('Send text only notification emails, without the html part')],
'$detailed_notif' => ['detailed_notif', L10n::t('Show detailled notifications'),
'$detailed_notif' => ['detailed_notif', DI::l10n()->t('Show detailled notifications'),
DI::pConfig()->get(local_user(), 'system', 'detailed_notif'),
L10n::t('Per default, notifications are condensed to a single notification per item. When enabled every notification is displayed.')],
DI::l10n()->t('Per default, notifications are condensed to a single notification per item. When enabled every notification is displayed.')],
'$h_advn' => L10n::t('Advanced Account/Page Type Settings'),
'$h_descadvn' => L10n::t('Change the behaviour of this account for special situations'),
'$h_advn' => DI::l10n()->t('Advanced Account/Page Type Settings'),
'$h_descadvn' => DI::l10n()->t('Change the behaviour of this account for special situations'),
'$pagetype' => $pagetype,
'$importcontact' => L10n::t('Import Contacts'),
'$importcontact_text' => L10n::t('Upload a CSV file that contains the handle of your followed accounts in the first column you exported from the old account.'),
'$importcontact_button' => L10n::t('Upload File'),
'$importcontact' => DI::l10n()->t('Import Contacts'),
'$importcontact_text' => DI::l10n()->t('Upload a CSV file that contains the handle of your followed accounts in the first column you exported from the old account.'),
'$importcontact_button' => DI::l10n()->t('Upload File'),
'$importcontact_maxsize' => Config::get('system', 'max_csv_file_size', 30720),
'$relocate' => L10n::t('Relocate'),
'$relocate_text' => L10n::t("If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."),
'$relocate_button' => L10n::t("Resend relocate message to contacts"),
'$relocate' => DI::l10n()->t('Relocate'),
'$relocate_text' => DI::l10n()->t("If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."),
'$relocate_button' => DI::l10n()->t("Resend relocate message to contacts"),
]);

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System;
@ -89,7 +88,7 @@ function subthread_content(App $a) {
$uri = Item::newURI($owner_uid);
$post_type = (($item['resource-id']) ? L10n::t('photo') : L10n::t('status'));
$post_type = (($item['resource-id']) ? DI::l10n()->t('photo') : DI::l10n()->t('status'));
$objtype = (($item['resource-id']) ? Activity\ObjectType::IMAGE : Activity\ObjectType::NOTE );
$link = XML::escape('<link rel="alternate" type="text/html" href="' . DI::baseUrl() . '/display/' . $item['guid'] . '" />' . "\n");
$body = $item['body'];
@ -105,7 +104,7 @@ function subthread_content(App $a) {
<content>$body</content>
</object>
EOT;
$bodyverb = L10n::t('%1$s is following %2$s\'s %3$s');
$bodyverb = DI::l10n()->t('%1$s is following %2$s\'s %3$s');
if (!isset($bodyverb)) {
return;

View file

@ -6,7 +6,6 @@
use Friendica\App;
use Friendica\Content\ContactSelector;
use Friendica\Content\Widget;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -25,7 +24,7 @@ function suggest_post(App $a)
{
if (!empty($_POST['ignore']) && !empty($_POST['confirm'])) {
DBA::insert('gcign', ['uid' => local_user(), 'gcid' => $_POST['ignore']]);
notice(L10n::t('Contact suggestion successfully ignored.'));
notice(DI::l10n()->t('Contact suggestion successfully ignored.'));
}
DI::baseUrl()->redirect('suggest');
@ -36,7 +35,7 @@ function suggest_content(App $a)
$o = '';
if (! local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -49,7 +48,7 @@ function suggest_content(App $a)
$r = GContact::suggestionQuery(local_user());
if (! DBA::isResult($r)) {
$o .= L10n::t('No suggestions available. If this is a new site, please try again in 24 hours.');
$o .= DI::l10n()->t('No suggestions available. If this is a new site, please try again in 24 hours.');
return $o;
}
@ -68,12 +67,12 @@ function suggest_content(App $a)
return Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [
'$method' => 'post',
'$message' => L10n::t('Do you really want to delete this suggestion?'),
'$message' => DI::l10n()->t('Do you really want to delete this suggestion?'),
'$extra_inputs' => $inputs,
'$confirm' => L10n::t('Yes'),
'$confirm' => DI::l10n()->t('Yes'),
'$confirm_url' => $query['base'],
'$confirm_name' => 'confirm',
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
]);
}
@ -84,9 +83,9 @@ function suggest_content(App $a)
$connlnk = DI::baseUrl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
$ignlnk = DI::baseUrl() . '/suggest?ignore=' . $rr['id'];
$photo_menu = [
'profile' => [L10n::t("View Profile"), Contact::magicLink($rr["url"])],
'follow' => [L10n::t("Connect/Follow"), $connlnk],
'hide' => [L10n::t('Ignore/Hide'), $ignlnk]
'profile' => [DI::l10n()->t("View Profile"), Contact::magicLink($rr["url"])],
'follow' => [DI::l10n()->t("Connect/Follow"), $connlnk],
'hide' => [DI::l10n()->t('Ignore/Hide'), $ignlnk]
];
$contact_details = Contact::getDetailsByURL($rr["url"], local_user(), $rr);
@ -103,10 +102,10 @@ function suggest_content(App $a)
'account_type' => Contact::getAccountType($contact_details),
'ignlnk' => $ignlnk,
'ignid' => $rr['id'],
'conntxt' => L10n::t('Connect'),
'conntxt' => DI::l10n()->t('Connect'),
'connlnk' => $connlnk,
'photo_menu' => $photo_menu,
'ignore' => L10n::t('Ignore/Hide'),
'ignore' => DI::l10n()->t('Ignore/Hide'),
'network' => ContactSelector::networkToName($rr['network'], $rr['url']),
'id' => ++$id,
];
@ -116,7 +115,7 @@ function suggest_content(App $a)
$tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl');
$o .= Renderer::replaceMacros($tpl,[
'$title' => L10n::t('Friend Suggestions'),
'$title' => DI::l10n()->t('Friend Suggestions'),
'$contacts' => $entries,
]);

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System;
@ -70,7 +69,7 @@ function tagger_content(App $a) {
$uri = Item::newURI($owner_uid);
$xterm = XML::escape($term);
$post_type = (($item['resource-id']) ? L10n::t('photo') : L10n::t('status'));
$post_type = (($item['resource-id']) ? DI::l10n()->t('photo') : DI::l10n()->t('status'));
$targettype = (($item['resource-id']) ? Activity\ObjectType::IMAGE : Activity\ObjectType::NOTE );
$href = DI::baseUrl() . '/display/' . $item['guid'];
@ -103,7 +102,7 @@ EOT;
</object>
EOT;
$bodyverb = L10n::t('%1$s tagged %2$s\'s %3$s with %4$s');
$bodyverb = DI::l10n()->t('%1$s tagged %2$s\'s %3$s with %4$s');
if (!isset($bodyverb)) {
return;

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Item;
@ -18,7 +17,7 @@ function tagrm_post(App $a)
DI::baseUrl()->redirect($_SESSION['photo_return']);
}
if (!empty($_POST['submit']) && ($_POST['submit'] === L10n::t('Cancel'))) {
if (!empty($_POST['submit']) && ($_POST['submit'] === DI::l10n()->t('Cancel'))) {
DI::baseUrl()->redirect($_SESSION['photo_return']);
}
@ -29,7 +28,7 @@ function tagrm_post(App $a)
$item_id = $_POST['item'] ?? 0;
update_tags($item_id, $tags);
info(L10n::t('Tag(s) removed') . EOL);
info(DI::l10n()->t('Tag(s) removed') . EOL);
DI::baseUrl()->redirect($_SESSION['photo_return']);
// NOTREACHED
@ -99,9 +98,9 @@ function tagrm_content(App $a)
DI::baseUrl()->redirect($_SESSION['photo_return']);
}
$o .= '<h3>' . L10n::t('Remove Item Tag') . '</h3>';
$o .= '<h3>' . DI::l10n()->t('Remove Item Tag') . '</h3>';
$o .= '<p id="tag-remove-desc">' . L10n::t('Select a tag to remove: ') . '</p>';
$o .= '<p id="tag-remove-desc">' . DI::l10n()->t('Select a tag to remove: ') . '</p>';
$o .= '<form id="tagrm" action="tagrm" method="post" >';
$o .= '<input type="hidden" name="item" value="' . $item_id . '" />';
@ -112,8 +111,8 @@ function tagrm_content(App $a)
}
$o .= '</ul>';
$o .= '<input id="tagrm-submit" type="submit" name="submit" value="' . L10n::t('Remove') .'" />';
$o .= '<input id="tagrm-cancel" type="submit" name="submit" value="' . L10n::t('Cancel') .'" />';
$o .= '<input id="tagrm-submit" type="submit" name="submit" value="' . DI::l10n()->t('Remove') .'" />';
$o .= '<input id="tagrm-cancel" type="submit" name="submit" value="' . DI::l10n()->t('Cancel') .'" />';
$o .= '</form>';
return $o;

View file

@ -6,15 +6,15 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\UserImport;
use Friendica\Core\Renderer;
use Friendica\DI;
function uimport_post(App $a)
{
if ((Config::get('config', 'register_policy') != \Friendica\Module\Register::OPEN) && !is_site_admin()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -27,7 +27,7 @@ function uimport_post(App $a)
function uimport_content(App $a)
{
if ((Config::get('config', 'register_policy') != \Friendica\Module\Register::OPEN) && !is_site_admin()) {
notice(L10n::t('User imports on closed servers can only be done by an administrator.') . EOL);
notice(DI::l10n()->t('User imports on closed servers can only be done by an administrator.') . EOL);
return;
}
@ -36,20 +36,20 @@ function uimport_content(App $a)
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
if ($r && $r[0]['total'] >= $max_dailies) {
Logger::log('max daily registrations exceeded.');
notice(L10n::t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
notice(DI::l10n()->t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
return;
}
}
$tpl = Renderer::getMarkupTemplate("uimport.tpl");
return Renderer::replaceMacros($tpl, [
'$regbutt' => L10n::t('Import'),
'$regbutt' => DI::l10n()->t('Import'),
'$import' => [
'title' => L10n::t("Move account"),
'intro' => L10n::t("You can import an account from another Friendica server."),
'instruct' => L10n::t("You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."),
'warn' => L10n::t("This feature is experimental. We can't import contacts from the OStatus network \x28GNU Social/Statusnet\x29 or from Diaspora"),
'field' => ['accountfile', L10n::t('Account file'), '<input id="id_accountfile" name="accountfile" type="file">', L10n::t('To export your account, go to "Settings->Export your personal data" and select "Export account"')],
'title' => DI::l10n()->t("Move account"),
'intro' => DI::l10n()->t("You can import an account from another Friendica server."),
'instruct' => DI::l10n()->t("You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."),
'warn' => DI::l10n()->t("This feature is experimental. We can't import contacts from the OStatus network \x28GNU Social/Statusnet\x29 or from Diaspora"),
'field' => ['accountfile', DI::l10n()->t('Account file'), '<input id="id_accountfile" name="accountfile" type="file">', DI::l10n()->t('To export your account, go to "Settings->Export your personal data" and select "Export account"')],
],
]);
}

View file

@ -4,7 +4,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
@ -19,7 +18,7 @@ function unfollow_post(App $a)
$base_return_path = 'contact';
if (!local_user()) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('login');
// NOTREACHED
}
@ -33,7 +32,7 @@ function unfollow_post(App $a)
$contact = DBA::selectFirst('contact', [], $condition);
if (!DBA::isResult($contact)) {
notice(L10n::t("You aren't following this contact."));
notice(DI::l10n()->t("You aren't following this contact."));
DI::baseUrl()->redirect($base_return_path);
// NOTREACHED
}
@ -43,7 +42,7 @@ function unfollow_post(App $a)
}
if (!in_array($contact['network'], Protocol::NATIVE_SUPPORT)) {
notice(L10n::t('Unfollowing is currently not supported by your network.'));
notice(DI::l10n()->t('Unfollowing is currently not supported by your network.'));
DI::baseUrl()->redirect($base_return_path . '/' . $contact['id']);
// NOTREACHED
}
@ -64,7 +63,7 @@ function unfollow_post(App $a)
$return_path = $base_return_path . '/' . $contact['id'];
}
info(L10n::t('Contact unfollowed'));
info(DI::l10n()->t('Contact unfollowed'));
DI::baseUrl()->redirect($return_path);
// NOTREACHED
}
@ -74,7 +73,7 @@ function unfollow_content(App $a)
$base_return_path = 'contact';
if (!local_user()) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('login');
// NOTREACHED
}
@ -89,13 +88,13 @@ function unfollow_content(App $a)
$contact = DBA::selectFirst('contact', ['url', 'network', 'addr', 'name'], $condition);
if (!DBA::isResult($contact)) {
notice(L10n::t("You aren't following this contact."));
notice(DI::l10n()->t("You aren't following this contact."));
DI::baseUrl()->redirect($base_return_path);
// NOTREACHED
}
if (!in_array($contact['network'], Protocol::NATIVE_SUPPORT)) {
notice(L10n::t('Unfollowing is currently not supported by your network.'));
notice(DI::l10n()->t('Unfollowing is currently not supported by your network.'));
DI::baseUrl()->redirect($base_return_path . '/' . $contact['id']);
// NOTREACHED
}
@ -106,7 +105,7 @@ function unfollow_content(App $a)
$self = DBA::selectFirst('contact', ['url'], ['uid' => $uid, 'self' => true]);
if (!DBA::isResult($self)) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect($base_return_path);
// NOTREACHED
}
@ -115,7 +114,7 @@ function unfollow_content(App $a)
$_SESSION['fastlane'] = $contact['url'];
$o = Renderer::replaceMacros($tpl, [
'$header' => L10n::t('Disconnect/Unfollow'),
'$header' => DI::l10n()->t('Disconnect/Unfollow'),
'$desc' => '',
'$pls_answer' => '',
'$does_know_you' => '',
@ -125,16 +124,16 @@ function unfollow_content(App $a)
'$statusnet' => '',
'$diaspora' => '',
'$diasnote' => '',
'$your_address' => L10n::t('Your Identity Address:'),
'$your_address' => DI::l10n()->t('Your Identity Address:'),
'$invite_desc' => '',
'$emailnet' => '',
'$submit' => L10n::t('Submit Request'),
'$cancel' => L10n::t('Cancel'),
'$submit' => DI::l10n()->t('Submit Request'),
'$cancel' => DI::l10n()->t('Cancel'),
'$nickname' => '',
'$name' => $contact['name'],
'$url' => $contact['url'],
'$zrl' => Contact::magicLink($contact['url']),
'$url_label' => L10n::t('Profile URL'),
'$url_label' => DI::l10n()->t('Profile URL'),
'$myaddr' => $self['url'],
'$request' => $request,
'$keywords' => '',
@ -144,7 +143,7 @@ function unfollow_content(App $a)
DI::page()['aside'] = '';
Profile::load($a, '', 0, Contact::getDetailsByURL($contact['url']));
$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'), ['$title' => L10n::t('Status Messages and Posts')]);
$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'), ['$title' => DI::l10n()->t('Status Messages and Posts')]);
// Show last public posts
$o .= Contact::getPostsFromUrl($contact['url']);

View file

@ -3,7 +3,6 @@
// See update_profile.php for documentation
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\DI;
require_once 'mod/community.php';
@ -20,7 +19,7 @@ function update_community_content(App $a) {
}
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />".L10n::t("[Embedded content - reload page to view]")."<br />";
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";

View file

@ -3,7 +3,6 @@
// See update_profile.php for documentation
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Module\Contact;
@ -20,7 +19,7 @@ function update_contact_content(App $a)
}
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />".L10n::t("[Embedded content - reload page to view]")."<br />";
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";

View file

@ -5,7 +5,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\DI;
require_once "mod/display.php";
@ -21,7 +20,7 @@ function update_display_content(App $a)
$text = display_content($a, true, $profile_uid);
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />" . L10n::t("[Embedded content - reload page to view]") . "<br />";
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";

View file

@ -5,7 +5,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\DI;
require_once "mod/network.php";
@ -30,7 +29,7 @@ function update_network_content(App $a)
}
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />" . L10n::t("[Embedded content - reload page to view]") . "<br />";
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";

View file

@ -6,7 +6,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\DI;
require_once("mod/notes.php");
@ -33,7 +32,7 @@ function update_notes_content(App $a) {
$text = notes_content($a, $profile_uid);
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />".L10n::t("[Embedded content - reload page to view]")."<br />";
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";

View file

@ -6,7 +6,6 @@
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Module\Profile;
@ -31,7 +30,7 @@ function update_profile_content(App $a) {
$text = Profile::content([], $profile_uid);
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />".L10n::t("[Embedded content - reload page to view]")."<br />";
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";

View file

@ -7,7 +7,6 @@ use Friendica\App;
use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -110,12 +109,12 @@ function videos_content(App $a)
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
notice(L10n::t('Public access denied.') . EOL);
notice(DI::l10n()->t('Public access denied.') . EOL);
return;
}
if (empty($a->data['user'])) {
notice(L10n::t('No videos selected') . EOL );
notice(DI::l10n()->t('No videos selected') . EOL );
return;
}
@ -163,7 +162,7 @@ function videos_content(App $a)
}
if ($a->data['user']['hidewall'] && (local_user() != $owner_uid) && !$remote_contact) {
notice(L10n::t('Access to this item is restricted.') . EOL);
notice(DI::l10n()->t('Access to this item is restricted.') . EOL);
return;
}
@ -233,14 +232,14 @@ function videos_content(App $a)
$videos[] = [
'id' => $rr['id'],
'link' => DI::baseUrl() . '/videos/' . $a->data['user']['nickname'] . '/video/' . $rr['hash'],
'title' => L10n::t('View Video'),
'title' => DI::l10n()->t('View Video'),
'src' => DI::baseUrl() . '/attach/' . $rr['id'] . '?attachment=0',
'alt' => $alt_e,
'mime' => $rr['filetype'],
'album' => [
'link' => DI::baseUrl() . '/videos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']),
'name' => $name_e,
'alt' => L10n::t('View Album'),
'alt' => DI::l10n()->t('View Album'),
],
];
}
@ -248,9 +247,9 @@ function videos_content(App $a)
$tpl = Renderer::getMarkupTemplate('videos_recent.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Recent Videos'),
'$title' => DI::l10n()->t('Recent Videos'),
'$can_post' => $can_post,
'$upload' => [L10n::t('Upload New Videos'), DI::baseUrl() . '/videos/' . $a->data['user']['nickname'] . '/upload'],
'$upload' => [DI::l10n()->t('Upload New Videos'), DI::baseUrl() . '/videos/' . $a->data['user']['nickname'] . '/upload'],
'$videos' => $videos,
'$delete_url' => (($can_post) ? DI::baseUrl() . '/videos/' . $a->data['user']['nickname'] : false)
]);

View file

@ -5,9 +5,9 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Session;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Attach;
use Friendica\Model\User;
use Friendica\Util\Strings;
@ -24,14 +24,14 @@ function wall_attach_post(App $a) {
if (! DBA::isResult($r)) {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
exit();
}
return;
}
} else {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
exit();
}
@ -60,16 +60,16 @@ function wall_attach_post(App $a) {
if (!$can_post) {
if ($r_json) {
echo json_encode(['error' => L10n::t('Permission denied.')]);
echo json_encode(['error' => DI::l10n()->t('Permission denied.')]);
exit();
}
notice(L10n::t('Permission denied.') . EOL );
notice(DI::l10n()->t('Permission denied.') . EOL );
exit();
}
if (empty($_FILES['userfile'])) {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
}
exit();
}
@ -87,7 +87,7 @@ function wall_attach_post(App $a) {
*/
if ($filesize <= 0) {
$msg = L10n::t('Sorry, maybe your upload is bigger than the PHP configuration allows') . EOL .(L10n::t('Or - did you try to upload an empty file?'));
$msg = DI::l10n()->t('Sorry, maybe your upload is bigger than the PHP configuration allows') . EOL .(DI::l10n()->t('Or - did you try to upload an empty file?'));
if ($r_json) {
echo json_encode(['error' => $msg]);
} else {
@ -98,7 +98,7 @@ function wall_attach_post(App $a) {
}
if ($maxfilesize && $filesize > $maxfilesize) {
$msg = L10n::t('File exceeds size limit of %s', Strings::formatBytes($maxfilesize));
$msg = DI::l10n()->t('File exceeds size limit of %s', Strings::formatBytes($maxfilesize));
if ($r_json) {
echo json_encode(['error' => $msg]);
} else {
@ -113,7 +113,7 @@ function wall_attach_post(App $a) {
@unlink($src);
if ($newid === false) {
$msg = L10n::t('File upload failed.');
$msg = DI::l10n()->t('File upload failed.');
if ($r_json) {
echo json_encode(['error' => $msg]);
} else {

View file

@ -10,7 +10,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -40,7 +39,7 @@ function wall_upload_post(App $a, $desktopmode = true)
if (!DBA::isResult($r)) {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
exit();
}
return;
@ -56,7 +55,7 @@ function wall_upload_post(App $a, $desktopmode = true)
}
} else {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
exit();
}
return;
@ -92,16 +91,16 @@ function wall_upload_post(App $a, $desktopmode = true)
if (!$can_post) {
if ($r_json) {
echo json_encode(['error' => L10n::t('Permission denied.')]);
echo json_encode(['error' => DI::l10n()->t('Permission denied.')]);
exit();
}
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
exit();
}
if (empty($_FILES['userfile']) && empty($_FILES['media'])) {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
}
exit();
}
@ -152,10 +151,10 @@ function wall_upload_post(App $a, $desktopmode = true)
if ($src == "") {
if ($r_json) {
echo json_encode(['error' => L10n::t('Invalid request.')]);
echo json_encode(['error' => DI::l10n()->t('Invalid request.')]);
exit();
}
notice(L10n::t('Invalid request.').EOL);
notice(DI::l10n()->t('Invalid request.').EOL);
exit();
}
@ -183,7 +182,7 @@ function wall_upload_post(App $a, $desktopmode = true)
$maximagesize = Config::get('system', 'maximagesize');
if (($maximagesize) && ($filesize > $maximagesize)) {
$msg = L10n::t('Image exceeds size limit of %s', Strings::formatBytes($maximagesize));
$msg = DI::l10n()->t('Image exceeds size limit of %s', Strings::formatBytes($maximagesize));
if ($r_json) {
echo json_encode(['error' => $msg]);
} else {
@ -197,7 +196,7 @@ function wall_upload_post(App $a, $desktopmode = true)
$Image = new Image($imagedata, $filetype);
if (!$Image->isValid()) {
$msg = L10n::t('Unable to process image.');
$msg = DI::l10n()->t('Unable to process image.');
if ($r_json) {
echo json_encode(['error' => $msg]);
} else {
@ -228,7 +227,7 @@ function wall_upload_post(App $a, $desktopmode = true)
// If we don't have an album name use the Wall Photos album
if (!strlen($album)) {
$album = L10n::t('Wall Photos');
$album = DI::l10n()->t('Wall Photos');
}
$defperm = '<' . $default_cid . '>';
@ -236,7 +235,7 @@ function wall_upload_post(App $a, $desktopmode = true)
$r = Photo::store($Image, $page_owner_uid, $visitor, $resource_id, $filename, $album, 0, 0, $defperm);
if (!$r) {
$msg = L10n::t('Image upload failed.');
$msg = DI::l10n()->t('Image upload failed.');
if ($r_json) {
echo json_encode(['error' => $msg]);
} else {

View file

@ -3,7 +3,6 @@
* @file mod/wallmessage.php
*/
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
@ -16,7 +15,7 @@ function wallmessage_post(App $a) {
$replyto = Profile::getMyURL();
if (!$replyto) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -40,7 +39,7 @@ function wallmessage_post(App $a) {
$user = $r[0];
if (! intval($user['unkmail'])) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -49,7 +48,7 @@ function wallmessage_post(App $a) {
);
if ($r[0]['total'] > $user['cntunkmail']) {
notice(L10n::t('Number of daily wall messages for %s exceeded. Message failed.', $user['username']));
notice(DI::l10n()->t('Number of daily wall messages for %s exceeded. Message failed.', $user['username']));
return;
}
@ -57,19 +56,19 @@ function wallmessage_post(App $a) {
switch ($ret) {
case -1:
notice(L10n::t('No recipient selected.') . EOL);
notice(DI::l10n()->t('No recipient selected.') . EOL);
break;
case -2:
notice(L10n::t('Unable to check your home location.') . EOL);
notice(DI::l10n()->t('Unable to check your home location.') . EOL);
break;
case -3:
notice(L10n::t('Message could not be sent.') . EOL);
notice(DI::l10n()->t('Message could not be sent.') . EOL);
break;
case -4:
notice(L10n::t('Message collection failure.') . EOL);
notice(DI::l10n()->t('Message collection failure.') . EOL);
break;
default:
info(L10n::t('Message sent.') . EOL);
info(DI::l10n()->t('Message sent.') . EOL);
}
DI::baseUrl()->redirect('profile/'.$user['nickname']);
@ -79,14 +78,14 @@ function wallmessage_post(App $a) {
function wallmessage_content(App $a) {
if (!Profile::getMyURL()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
$recipient = (($a->argc > 1) ? $a->argv[1] : '');
if (!$recipient) {
notice(L10n::t('No recipient.') . EOL);
notice(DI::l10n()->t('No recipient.') . EOL);
return;
}
@ -95,7 +94,7 @@ function wallmessage_content(App $a) {
);
if (! DBA::isResult($r)) {
notice(L10n::t('No recipient.') . EOL);
notice(DI::l10n()->t('No recipient.') . EOL);
Logger::log('wallmessage: no recipient');
return;
}
@ -103,7 +102,7 @@ function wallmessage_content(App $a) {
$user = $r[0];
if (!intval($user['unkmail'])) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}
@ -112,7 +111,7 @@ function wallmessage_content(App $a) {
);
if ($r[0]['total'] > $user['cntunkmail']) {
notice(L10n::t('Number of daily wall messages for %s exceeded. Message failed.', $user['username']));
notice(DI::l10n()->t('Number of daily wall messages for %s exceeded. Message failed.', $user['username']));
return;
}
@ -120,25 +119,25 @@ function wallmessage_content(App $a) {
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
'$baseurl' => DI::baseUrl()->get(true),
'$nickname' => $user['nickname'],
'$linkurl' => L10n::t('Please enter a link URL:')
'$linkurl' => DI::l10n()->t('Please enter a link URL:')
]);
$tpl = Renderer::getMarkupTemplate('wallmessage.tpl');
$o = Renderer::replaceMacros($tpl, [
'$header' => L10n::t('Send Private Message'),
'$subheader' => L10n::t('If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders.', $user['username']),
'$to' => L10n::t('To:'),
'$subject' => L10n::t('Subject:'),
'$header' => DI::l10n()->t('Send Private Message'),
'$subheader' => DI::l10n()->t('If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders.', $user['username']),
'$to' => DI::l10n()->t('To:'),
'$subject' => DI::l10n()->t('Subject:'),
'$recipname' => $user['username'],
'$nickname' => $user['nickname'],
'$subjtxt' => $_REQUEST['subject'] ?? '',
'$text' => $_REQUEST['body'] ?? '',
'$readonly' => '',
'$yourmessage'=> L10n::t('Your message:'),
'$yourmessage'=> DI::l10n()->t('Your message:'),
'$parent' => '',
'$upload' => L10n::t('Upload photo'),
'$insert' => L10n::t('Insert web link'),
'$wait' => L10n::t('Please wait')
'$upload' => DI::l10n()->t('Upload photo'),
'$insert' => DI::l10n()->t('Insert web link'),
'$wait' => DI::l10n()->t('Please wait')
]);
return $o;

View file

@ -11,7 +11,7 @@ use Friendica\App\Authentication;
use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\Config\IPConfiguration;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Core\Theme;
use Friendica\Database\Database;

View file

@ -22,7 +22,7 @@ use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
use Friendica\Util\Strings;
use LightOpenID;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Psr\Log\LoggerInterface;
/**

View file

@ -207,15 +207,15 @@ class Module
/**
* Run the determined module class and calls all hooks applied to
*
* @param Core\L10n\L10n $l10n The L10n instance
* @param App\BaseURL $baseUrl The Friendica Base URL
* @param LoggerInterface $logger The Friendica logger
* @param array $server The $_SERVER variable
* @param array $post The $_POST variables
* @param \Friendica\Core\L10n $l10n The L10n instance
* @param App\BaseURL $baseUrl The Friendica Base URL
* @param LoggerInterface $logger The Friendica logger
* @param array $server The $_SERVER variable
* @param array $post The $_POST variables
*
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public function run(Core\L10n\L10n $l10n, App\BaseURL $baseUrl, LoggerInterface $logger, array $server, array $post)
public function run(Core\L10n $l10n, App\BaseURL $baseUrl, LoggerInterface $logger, array $server, array $post)
{
if ($this->printNotAllowedAddon) {
info($l10n->t("You must be logged in to use addons. "));

View file

@ -10,7 +10,7 @@ use Friendica\Content\Nav;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\Config\IPConfiguration;
use Friendica\Core\Hook;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Theme;
use Friendica\Module\Special\HTTPException as ModuleHTTPException;

View file

@ -8,7 +8,7 @@ use FastRoute\Dispatcher;
use FastRoute\RouteCollector;
use FastRoute\RouteParser\Std;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Network\HTTPException;
/**
@ -181,9 +181,9 @@ class Router
$moduleClass = $routeInfo[1];
$this->parameters = $routeInfo[2];
} elseif ($routeInfo[0] === Dispatcher::METHOD_NOT_ALLOWED) {
throw new HTTPException\MethodNotAllowedException(L10n::t('Method not allowed for this module. Allowed method(s): %s', implode(', ', $routeInfo[1])));
throw new HTTPException\MethodNotAllowedException(DI::l10n()->t('Method not allowed for this module. Allowed method(s): %s', implode(', ', $routeInfo[1])));
} else {
throw new HTTPException\NotFoundException(L10n::t('Page not found.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('Page not found.'));
}
return $moduleClass;

View file

@ -2,7 +2,6 @@
namespace Friendica;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
/**
@ -130,7 +129,7 @@ abstract class BaseModule
public static function getFormSecurityStandardErrorMessage()
{
return L10n::t("The form security token was not correct. This probably happened because the form has been opened for too long \x28>3 hours\x29 before submitting it.") . EOL;
return DI::l10n()->t("The form security token was not correct. This probably happened because the form has been opened for too long \x28>3 hours\x29 before submitting it.") . EOL;
}
public static function checkFormSecurityTokenRedirectOnError($err_redirect, $typename = '', $formname = 'form_security_token')

View file

@ -3,8 +3,8 @@
namespace Friendica\Console;
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Database\Database;
use Friendica\DI;
use Friendica\Util\Strings;
use RuntimeException;
@ -30,7 +30,7 @@ class ArchiveContact extends \Asika\SimpleConsole\Console
*/
private $dba;
/**
* @var L10n\L10n
* @var \Friendica\Core\L10n
*/
private $l10n;
@ -51,7 +51,7 @@ HELP;
return $help;
}
public function __construct(App\Mode $appMode, Database $dba, L10n\L10n $l10n, array $argv = null)
public function __construct(App\Mode $appMode, Database $dba, \Friendica\Core\L10n $l10n, array $argv = null)
{
parent::__construct($argv);
@ -83,7 +83,7 @@ HELP;
$nurl = Strings::normaliseLink($this->getArgument(0));
if (!$this->dba->exists('contact', ['nurl' => $nurl, 'archive' => false])) {
throw new RuntimeException(L10n::t('Could not find any unarchived contact entry for this URL (%s)', $nurl));
throw new RuntimeException(DI::l10n()->t('Could not find any unarchived contact entry for this URL (%s)', $nurl));
}
if ($this->dba->update('contact', ['archive' => true], ['nurl' => $nurl])) {
$this->out($this->l10n->t('The contact entries have been archived'));

View file

@ -65,8 +65,8 @@ HELP;
foreach ($files as $file) {
$str = file_get_contents($file);
$pat = '|L10n::t\(([^\)]*+)[\)]|';
$patt = '|L10n::tt\(([^\)]*+)[\)]|';
$pat = '|->t\(([^\)]*+)[\)]|';
$patt = '|->tt\(([^\)]*+)[\)]|';
$matches = [];
$matchestt = [];

View file

@ -26,7 +26,7 @@ class GlobalCommunityBlock extends \Asika\SimpleConsole\Console
*/
private $appMode;
/**
* @var L10n\L10n
* @var \Friendica\Core\L10n
*/
private $l10n;

View file

@ -3,7 +3,7 @@
namespace Friendica\Console;
use Friendica\App;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Database\Database;
use Friendica\Model\User;
use RuntimeException;

View file

@ -4,7 +4,7 @@ namespace Friendica\Console;
use Friendica\App;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\Update;
/**

View file

@ -5,9 +5,9 @@
namespace Friendica\Content;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Util\Network;
use Friendica\Util\Strings;
@ -55,12 +55,12 @@ class ContactSelector
$o .= "<select id=\"contact-poll-interval\" name=\"poll\" $dis />" . "\r\n";
$rep = [
0 => L10n::t('Frequently'),
1 => L10n::t('Hourly'),
2 => L10n::t('Twice daily'),
3 => L10n::t('Daily'),
4 => L10n::t('Weekly'),
5 => L10n::t('Monthly')
0 => DI::l10n()->t('Frequently'),
1 => DI::l10n()->t('Hourly'),
2 => DI::l10n()->t('Twice daily'),
3 => DI::l10n()->t('Daily'),
4 => DI::l10n()->t('Weekly'),
5 => DI::l10n()->t('Monthly')
];
foreach ($rep as $k => $v) {
@ -114,23 +114,23 @@ class ContactSelector
public static function networkToName($network, $profile = '', $protocol = '')
{
$nets = [
Protocol::DFRN => L10n::t('DFRN'),
Protocol::OSTATUS => L10n::t('OStatus'),
Protocol::FEED => L10n::t('RSS/Atom'),
Protocol::MAIL => L10n::t('Email'),
Protocol::DIASPORA => L10n::t('Diaspora'),
Protocol::ZOT => L10n::t('Zot!'),
Protocol::LINKEDIN => L10n::t('LinkedIn'),
Protocol::XMPP => L10n::t('XMPP/IM'),
Protocol::MYSPACE => L10n::t('MySpace'),
Protocol::GPLUS => L10n::t('Google+'),
Protocol::PUMPIO => L10n::t('pump.io'),
Protocol::TWITTER => L10n::t('Twitter'),
Protocol::DISCOURSE => L10n::t('Discourse'),
Protocol::DIASPORA2 => L10n::t('Diaspora Connector'),
Protocol::STATUSNET => L10n::t('GNU Social Connector'),
Protocol::ACTIVITYPUB => L10n::t('ActivityPub'),
Protocol::PNUT => L10n::t('pnut'),
Protocol::DFRN => DI::l10n()->t('DFRN'),
Protocol::OSTATUS => DI::l10n()->t('OStatus'),
Protocol::FEED => DI::l10n()->t('RSS/Atom'),
Protocol::MAIL => DI::l10n()->t('Email'),
Protocol::DIASPORA => DI::l10n()->t('Diaspora'),
Protocol::ZOT => DI::l10n()->t('Zot!'),
Protocol::LINKEDIN => DI::l10n()->t('LinkedIn'),
Protocol::XMPP => DI::l10n()->t('XMPP/IM'),
Protocol::MYSPACE => DI::l10n()->t('MySpace'),
Protocol::GPLUS => DI::l10n()->t('Google+'),
Protocol::PUMPIO => DI::l10n()->t('pump.io'),
Protocol::TWITTER => DI::l10n()->t('Twitter'),
Protocol::DISCOURSE => DI::l10n()->t('Discourse'),
Protocol::DIASPORA2 => DI::l10n()->t('Diaspora Connector'),
Protocol::STATUSNET => DI::l10n()->t('GNU Social Connector'),
Protocol::ACTIVITYPUB => DI::l10n()->t('ActivityPub'),
Protocol::PNUT => DI::l10n()->t('pnut'),
];
Hook::callAll('network_to_name', $nets);
@ -164,7 +164,7 @@ class ContactSelector
}
if (!empty($protocol) && ($protocol != $network)) {
$networkname = L10n::t('%s (via %s)', $networkname, self::networkToName($protocol));
$networkname = DI::l10n()->t('%s (via %s)', $networkname, self::networkToName($protocol));
}
return $networkname;
@ -233,21 +233,21 @@ class ContactSelector
{
$o = '';
$select = [
'' => L10n::t('No answer'),
'Male' => L10n::t('Male'),
'Female' => L10n::t('Female'),
'Currently Male' => L10n::t('Currently Male'),
'Currently Female' => L10n::t('Currently Female'),
'Mostly Male' => L10n::t('Mostly Male'),
'Mostly Female' => L10n::t('Mostly Female'),
'Transgender' => L10n::t('Transgender'),
'Intersex' => L10n::t('Intersex'),
'Transsexual' => L10n::t('Transsexual'),
'Hermaphrodite' => L10n::t('Hermaphrodite'),
'Neuter' => L10n::t('Neuter'),
'Non-specific' => L10n::t('Non-specific'),
'Other' => L10n::t('Other'),
'Undecided' => L10n::t('Undecided'),
'' => DI::l10n()->t('No answer'),
'Male' => DI::l10n()->t('Male'),
'Female' => DI::l10n()->t('Female'),
'Currently Male' => DI::l10n()->t('Currently Male'),
'Currently Female' => DI::l10n()->t('Currently Female'),
'Mostly Male' => DI::l10n()->t('Mostly Male'),
'Mostly Female' => DI::l10n()->t('Mostly Female'),
'Transgender' => DI::l10n()->t('Transgender'),
'Intersex' => DI::l10n()->t('Intersex'),
'Transsexual' => DI::l10n()->t('Transsexual'),
'Hermaphrodite' => DI::l10n()->t('Hermaphrodite'),
'Neuter' => DI::l10n()->t('Neuter'),
'Non-specific' => DI::l10n()->t('Non-specific'),
'Other' => DI::l10n()->t('Other'),
'Undecided' => DI::l10n()->t('Undecided'),
];
Hook::callAll('gender_selector', $select);
@ -273,20 +273,20 @@ class ContactSelector
{
$o = '';
$select = [
'' => L10n::t('No answer'),
'Males' => L10n::t('Males'),
'Females' => L10n::t('Females'),
'Gay' => L10n::t('Gay'),
'Lesbian' => L10n::t('Lesbian'),
'No Preference' => L10n::t('No Preference'),
'Bisexual' => L10n::t('Bisexual'),
'Autosexual' => L10n::t('Autosexual'),
'Abstinent' => L10n::t('Abstinent'),
'Virgin' => L10n::t('Virgin'),
'Deviant' => L10n::t('Deviant'),
'Fetish' => L10n::t('Fetish'),
'Oodles' => L10n::t('Oodles'),
'Nonsexual' => L10n::t('Nonsexual'),
'' => DI::l10n()->t('No answer'),
'Males' => DI::l10n()->t('Males'),
'Females' => DI::l10n()->t('Females'),
'Gay' => DI::l10n()->t('Gay'),
'Lesbian' => DI::l10n()->t('Lesbian'),
'No Preference' => DI::l10n()->t('No Preference'),
'Bisexual' => DI::l10n()->t('Bisexual'),
'Autosexual' => DI::l10n()->t('Autosexual'),
'Abstinent' => DI::l10n()->t('Abstinent'),
'Virgin' => DI::l10n()->t('Virgin'),
'Deviant' => DI::l10n()->t('Deviant'),
'Fetish' => DI::l10n()->t('Fetish'),
'Oodles' => DI::l10n()->t('Oodles'),
'Nonsexual' => DI::l10n()->t('Nonsexual'),
];
Hook::callAll('sexpref_selector', $select);
@ -311,37 +311,37 @@ class ContactSelector
{
$o = '';
$select = [
'' => L10n::t('No answer'),
'Single' => L10n::t('Single'),
'Lonely' => L10n::t('Lonely'),
'In a relation' => L10n::t('In a relation'),
'Has crush' => L10n::t('Has crush'),
'Infatuated' => L10n::t('Infatuated'),
'Dating' => L10n::t('Dating'),
'Unfaithful' => L10n::t('Unfaithful'),
'Sex Addict' => L10n::t('Sex Addict'),
'Friends' => L10n::t('Friends'),
'Friends/Benefits' => L10n::t('Friends/Benefits'),
'Casual' => L10n::t('Casual'),
'Engaged' => L10n::t('Engaged'),
'Married' => L10n::t('Married'),
'Imaginarily married' => L10n::t('Imaginarily married'),
'Partners' => L10n::t('Partners'),
'Cohabiting' => L10n::t('Cohabiting'),
'Common law' => L10n::t('Common law'),
'Happy' => L10n::t('Happy'),
'Not looking' => L10n::t('Not looking'),
'Swinger' => L10n::t('Swinger'),
'Betrayed' => L10n::t('Betrayed'),
'Separated' => L10n::t('Separated'),
'Unstable' => L10n::t('Unstable'),
'Divorced' => L10n::t('Divorced'),
'Imaginarily divorced' => L10n::t('Imaginarily divorced'),
'Widowed' => L10n::t('Widowed'),
'Uncertain' => L10n::t('Uncertain'),
'It\'s complicated' => L10n::t('It\'s complicated'),
'Don\'t care' => L10n::t('Don\'t care'),
'Ask me' => L10n::t('Ask me'),
'' => DI::l10n()->t('No answer'),
'Single' => DI::l10n()->t('Single'),
'Lonely' => DI::l10n()->t('Lonely'),
'In a relation' => DI::l10n()->t('In a relation'),
'Has crush' => DI::l10n()->t('Has crush'),
'Infatuated' => DI::l10n()->t('Infatuated'),
'Dating' => DI::l10n()->t('Dating'),
'Unfaithful' => DI::l10n()->t('Unfaithful'),
'Sex Addict' => DI::l10n()->t('Sex Addict'),
'Friends' => DI::l10n()->t('Friends'),
'Friends/Benefits' => DI::l10n()->t('Friends/Benefits'),
'Casual' => DI::l10n()->t('Casual'),
'Engaged' => DI::l10n()->t('Engaged'),
'Married' => DI::l10n()->t('Married'),
'Imaginarily married' => DI::l10n()->t('Imaginarily married'),
'Partners' => DI::l10n()->t('Partners'),
'Cohabiting' => DI::l10n()->t('Cohabiting'),
'Common law' => DI::l10n()->t('Common law'),
'Happy' => DI::l10n()->t('Happy'),
'Not looking' => DI::l10n()->t('Not looking'),
'Swinger' => DI::l10n()->t('Swinger'),
'Betrayed' => DI::l10n()->t('Betrayed'),
'Separated' => DI::l10n()->t('Separated'),
'Unstable' => DI::l10n()->t('Unstable'),
'Divorced' => DI::l10n()->t('Divorced'),
'Imaginarily divorced' => DI::l10n()->t('Imaginarily divorced'),
'Widowed' => DI::l10n()->t('Widowed'),
'Uncertain' => DI::l10n()->t('Uncertain'),
'It\'s complicated' => DI::l10n()->t('It\'s complicated'),
'Don\'t care' => DI::l10n()->t('Don\'t care'),
'Ask me' => DI::l10n()->t('Ask me'),
];
Hook::callAll('marital_selector', $select);

View file

@ -7,7 +7,6 @@ namespace Friendica\Content;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\DI;
class Feature
@ -79,47 +78,47 @@ class Feature
// General
'general' => [
L10n::t('General Features'),
//array('expire', L10n::t('Content Expiration'), L10n::t('Remove old posts/comments after a period of time')),
['multi_profiles', L10n::t('Multiple Profiles'), L10n::t('Ability to create multiple profiles'), false, Config::get('feature_lock', 'multi_profiles', false)],
['photo_location', L10n::t('Photo Location'), L10n::t("Photo metadata is normally stripped. This extracts the location \x28if present\x29 prior to stripping metadata and links it to a map."), false, Config::get('feature_lock', 'photo_location', false)],
['export_calendar', L10n::t('Export Public Calendar'), L10n::t('Ability for visitors to download the public calendar'), false, Config::get('feature_lock', 'export_calendar', false)],
['trending_tags', L10n::t('Trending Tags'), L10n::t('Show a community page widget with a list of the most popular tags in recent public posts.'), false, Config::get('feature_lock', 'trending_tags', false)],
DI::l10n()->t('General Features'),
//array('expire', DI::l10n()->t('Content Expiration'), DI::l10n()->t('Remove old posts/comments after a period of time')),
['multi_profiles', DI::l10n()->t('Multiple Profiles'), DI::l10n()->t('Ability to create multiple profiles'), false, Config::get('feature_lock', 'multi_profiles', false)],
['photo_location', DI::l10n()->t('Photo Location'), DI::l10n()->t("Photo metadata is normally stripped. This extracts the location \x28if present\x29 prior to stripping metadata and links it to a map."), false, Config::get('feature_lock', 'photo_location', false)],
['export_calendar', DI::l10n()->t('Export Public Calendar'), DI::l10n()->t('Ability for visitors to download the public calendar'), false, Config::get('feature_lock', 'export_calendar', false)],
['trending_tags', DI::l10n()->t('Trending Tags'), DI::l10n()->t('Show a community page widget with a list of the most popular tags in recent public posts.'), false, Config::get('feature_lock', 'trending_tags', false)],
],
// Post composition
'composition' => [
L10n::t('Post Composition Features'),
['aclautomention', L10n::t('Auto-mention Forums'), L10n::t('Add/remove mention when a forum page is selected/deselected in ACL window.'), false, Config::get('feature_lock', 'aclautomention', false)],
['explicit_mentions', L10n::t('Explicit Mentions'), L10n::t('Add explicit mentions to comment box for manual control over who gets mentioned in replies.'), false, Config::get('feature_lock', 'explicit_mentions', false)],
DI::l10n()->t('Post Composition Features'),
['aclautomention', DI::l10n()->t('Auto-mention Forums'), DI::l10n()->t('Add/remove mention when a forum page is selected/deselected in ACL window.'), false, Config::get('feature_lock', 'aclautomention', false)],
['explicit_mentions', DI::l10n()->t('Explicit Mentions'), DI::l10n()->t('Add explicit mentions to comment box for manual control over who gets mentioned in replies.'), false, Config::get('feature_lock', 'explicit_mentions', false)],
],
// Network sidebar widgets
'widgets' => [
L10n::t('Network Sidebar'),
['archives', L10n::t('Archives'), L10n::t('Ability to select posts by date ranges'), false, Config::get('feature_lock', 'archives', false)],
['networks', L10n::t('Protocol Filter'), L10n::t('Enable widget to display Network posts only from selected protocols'), false, Config::get('feature_lock', 'networks', false)],
DI::l10n()->t('Network Sidebar'),
['archives', DI::l10n()->t('Archives'), DI::l10n()->t('Ability to select posts by date ranges'), false, Config::get('feature_lock', 'archives', false)],
['networks', DI::l10n()->t('Protocol Filter'), DI::l10n()->t('Enable widget to display Network posts only from selected protocols'), false, Config::get('feature_lock', 'networks', false)],
],
// Network tabs
'net_tabs' => [
L10n::t('Network Tabs'),
['new_tab', L10n::t('Network New Tab'), L10n::t("Enable tab to display only new Network posts \x28from the last 12 hours\x29"), false, Config::get('feature_lock', 'new_tab', false)],
['link_tab', L10n::t('Network Shared Links Tab'), L10n::t('Enable tab to display only Network posts with links in them'), false, Config::get('feature_lock', 'link_tab', false)],
DI::l10n()->t('Network Tabs'),
['new_tab', DI::l10n()->t('Network New Tab'), DI::l10n()->t("Enable tab to display only new Network posts \x28from the last 12 hours\x29"), false, Config::get('feature_lock', 'new_tab', false)],
['link_tab', DI::l10n()->t('Network Shared Links Tab'), DI::l10n()->t('Enable tab to display only Network posts with links in them'), false, Config::get('feature_lock', 'link_tab', false)],
],
// Item tools
'tools' => [
L10n::t('Post/Comment Tools'),
['categories', L10n::t('Post Categories'), L10n::t('Add categories to your posts'), false, Config::get('feature_lock', 'categories', false)],
DI::l10n()->t('Post/Comment Tools'),
['categories', DI::l10n()->t('Post Categories'), DI::l10n()->t('Add categories to your posts'), false, Config::get('feature_lock', 'categories', false)],
],
// Advanced Profile Settings
'advanced_profile' => [
L10n::t('Advanced Profile Settings'),
['forumlist_profile', L10n::t('List Forums'), L10n::t('Show visitors public community forums at the Advanced Profile Page'), false, Config::get('feature_lock', 'forumlist_profile', false)],
['tagadelic', L10n::t('Tag Cloud'), L10n::t('Provide a personal tag cloud on your profile page'), false, Config::get('feature_lock', 'tagadelic', false)],
['profile_membersince', L10n::t('Display Membership Date'), L10n::t('Display membership date in profile'), false, Config::get('feature_lock', 'profile_membersince', false)],
DI::l10n()->t('Advanced Profile Settings'),
['forumlist_profile', DI::l10n()->t('List Forums'), DI::l10n()->t('Show visitors public community forums at the Advanced Profile Page'), false, Config::get('feature_lock', 'forumlist_profile', false)],
['tagadelic', DI::l10n()->t('Tag Cloud'), DI::l10n()->t('Provide a personal tag cloud on your profile page'), false, Config::get('feature_lock', 'tagadelic', false)],
['profile_membersince', DI::l10n()->t('Display Membership Date'), DI::l10n()->t('Display membership date in profile'), false, Config::get('feature_lock', 'profile_membersince', false)],
],
];

View file

@ -7,7 +7,6 @@ namespace Friendica\Content;
use Friendica\Core\Protocol;
use Friendica\Content\Text\HTML;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -127,12 +126,12 @@ class ForumManager
$o .= Renderer::replaceMacros(
$tpl,
[
'$title' => L10n::t('Forums'),
'$title' => DI::l10n()->t('Forums'),
'$forums' => $entries,
'$link_desc' => L10n::t('External link to forum'),
'$link_desc' => DI::l10n()->t('External link to forum'),
'$total' => $total,
'$visible_forums' => $visible_forums,
'$showmore' => L10n::t('show more')]
'$showmore' => DI::l10n()->t('show more')]
);
}

View file

@ -7,7 +7,6 @@ namespace Friendica\Content;
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -71,12 +70,12 @@ class Nav
'$sitelocation' => $nav_info['sitelocation'],
'$nav' => $nav_info['nav'],
'$banner' => $nav_info['banner'],
'$emptynotifications' => L10n::t('Nothing new here'),
'$emptynotifications' => DI::l10n()->t('Nothing new here'),
'$userinfo' => $nav_info['userinfo'],
'$sel' => self::$selected,
'$apps' => self::getAppMenu(),
'$clear_notifs' => L10n::t('Clear notifications'),
'$search_hint' => L10n::t('@name, !forum, #tags, content')
'$clear_notifs' => DI::l10n()->t('Clear notifications'),
'$search_hint' => DI::l10n()->t('@name, !forum, #tags, content')
]);
Hook::callAll('page_header', $nav);
@ -149,19 +148,19 @@ class Nav
$userinfo = null;
if (Session::isAuthenticated()) {
$nav['logout'] = ['logout', L10n::t('Logout'), '', L10n::t('End this session')];
$nav['logout'] = ['logout', DI::l10n()->t('Logout'), '', DI::l10n()->t('End this session')];
} else {
$nav['login'] = ['login', L10n::t('Login'), (DI::module()->getName() == 'login' ? 'selected' : ''), L10n::t('Sign in')];
$nav['login'] = ['login', DI::l10n()->t('Login'), (DI::module()->getName() == 'login' ? 'selected' : ''), DI::l10n()->t('Sign in')];
}
if (local_user()) {
// user menu
$nav['usermenu'][] = ['profile/' . $a->user['nickname'], L10n::t('Status'), '', L10n::t('Your posts and conversations')];
$nav['usermenu'][] = ['profile/' . $a->user['nickname'] . '?tab=profile', L10n::t('Profile'), '', L10n::t('Your profile page')];
$nav['usermenu'][] = ['photos/' . $a->user['nickname'], L10n::t('Photos'), '', L10n::t('Your photos')];
$nav['usermenu'][] = ['videos/' . $a->user['nickname'], L10n::t('Videos'), '', L10n::t('Your videos')];
$nav['usermenu'][] = ['events/', L10n::t('Events'), '', L10n::t('Your events')];
$nav['usermenu'][] = ['notes/', L10n::t('Personal notes'), '', L10n::t('Your personal notes')];
$nav['usermenu'][] = ['profile/' . $a->user['nickname'], DI::l10n()->t('Status'), '', DI::l10n()->t('Your posts and conversations')];
$nav['usermenu'][] = ['profile/' . $a->user['nickname'] . '?tab=profile', DI::l10n()->t('Profile'), '', DI::l10n()->t('Your profile page')];
$nav['usermenu'][] = ['photos/' . $a->user['nickname'], DI::l10n()->t('Photos'), '', DI::l10n()->t('Your photos')];
$nav['usermenu'][] = ['videos/' . $a->user['nickname'], DI::l10n()->t('Videos'), '', DI::l10n()->t('Your videos')];
$nav['usermenu'][] = ['events/', DI::l10n()->t('Events'), '', DI::l10n()->t('Your events')];
$nav['usermenu'][] = ['notes/', DI::l10n()->t('Personal notes'), '', DI::l10n()->t('Your personal notes')];
// user info
$contact = DBA::selectFirst('contact', ['micro'], ['uid' => $a->user['uid'], 'self' => true]);
@ -178,34 +177,34 @@ class Nav
}
if ((DI::module()->getName() != 'home') && (! (local_user()))) {
$nav['home'] = [$homelink, L10n::t('Home'), '', L10n::t('Home Page')];
$nav['home'] = [$homelink, DI::l10n()->t('Home'), '', DI::l10n()->t('Home Page')];
}
if (intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::OPEN && !Session::isAuthenticated()) {
$nav['register'] = ['register', L10n::t('Register'), '', L10n::t('Create an account')];
$nav['register'] = ['register', DI::l10n()->t('Register'), '', DI::l10n()->t('Create an account')];
}
$help_url = 'help';
if (!Config::get('system', 'hide_help')) {
$nav['help'] = [$help_url, L10n::t('Help'), '', L10n::t('Help and documentation')];
$nav['help'] = [$help_url, DI::l10n()->t('Help'), '', DI::l10n()->t('Help and documentation')];
}
if (count(self::getAppMenu()) > 0) {
$nav['apps'] = ['apps', L10n::t('Apps'), '', L10n::t('Addon applications, utilities, games')];
$nav['apps'] = ['apps', DI::l10n()->t('Apps'), '', DI::l10n()->t('Addon applications, utilities, games')];
}
if (local_user() || !Config::get('system', 'local_search')) {
$nav['search'] = ['search', L10n::t('Search'), '', L10n::t('Search site content')];
$nav['search'] = ['search', DI::l10n()->t('Search'), '', DI::l10n()->t('Search site content')];
$nav['searchoption'] = [
L10n::t('Full Text'),
L10n::t('Tags'),
L10n::t('Contacts')
DI::l10n()->t('Full Text'),
DI::l10n()->t('Tags'),
DI::l10n()->t('Contacts')
];
if (Config::get('system', 'poco_local_search')) {
$nav['searchoption'][] = L10n::t('Forums');
$nav['searchoption'][] = DI::l10n()->t('Forums');
}
}
@ -220,59 +219,59 @@ class Nav
if ((local_user() || Config::get('system', 'community_page_style') != CP_NO_COMMUNITY_PAGE) &&
!(Config::get('system', 'community_page_style') == CP_NO_INTERNAL_COMMUNITY)) {
$nav['community'] = ['community', L10n::t('Community'), '', L10n::t('Conversations on this and other servers')];
$nav['community'] = ['community', DI::l10n()->t('Community'), '', DI::l10n()->t('Conversations on this and other servers')];
}
if (local_user()) {
$nav['events'] = ['events', L10n::t('Events'), '', L10n::t('Events and Calendar')];
$nav['events'] = ['events', DI::l10n()->t('Events'), '', DI::l10n()->t('Events and Calendar')];
}
$nav['directory'] = [$gdirpath, L10n::t('Directory'), '', L10n::t('People directory')];
$nav['directory'] = [$gdirpath, DI::l10n()->t('Directory'), '', DI::l10n()->t('People directory')];
$nav['about'] = ['friendica', L10n::t('Information'), '', L10n::t('Information about this friendica instance')];
$nav['about'] = ['friendica', DI::l10n()->t('Information'), '', DI::l10n()->t('Information about this friendica instance')];
if (Config::get('system', 'tosdisplay')) {
$nav['tos'] = ['tos', L10n::t('Terms of Service'), '', L10n::t('Terms of Service of this Friendica instance')];
$nav['tos'] = ['tos', DI::l10n()->t('Terms of Service'), '', DI::l10n()->t('Terms of Service of this Friendica instance')];
}
// The following nav links are only show to logged in users
if (local_user()) {
$nav['network'] = ['network', L10n::t('Network'), '', L10n::t('Conversations from your friends')];
$nav['network'] = ['network', DI::l10n()->t('Network'), '', DI::l10n()->t('Conversations from your friends')];
$nav['home'] = ['profile/' . $a->user['nickname'], L10n::t('Home'), '', L10n::t('Your posts and conversations')];
$nav['home'] = ['profile/' . $a->user['nickname'], DI::l10n()->t('Home'), '', DI::l10n()->t('Your posts and conversations')];
// Don't show notifications for public communities
if (Session::get('page_flags', '') != User::PAGE_FLAGS_COMMUNITY) {
$nav['introductions'] = ['notifications/intros', L10n::t('Introductions'), '', L10n::t('Friend Requests')];
$nav['notifications'] = ['notifications', L10n::t('Notifications'), '', L10n::t('Notifications')];
$nav['notifications']['all'] = ['notifications/system', L10n::t('See all notifications'), '', ''];
$nav['notifications']['mark'] = ['', L10n::t('Mark as seen'), '', L10n::t('Mark all system notifications seen')];
$nav['introductions'] = ['notifications/intros', DI::l10n()->t('Introductions'), '', DI::l10n()->t('Friend Requests')];
$nav['notifications'] = ['notifications', DI::l10n()->t('Notifications'), '', DI::l10n()->t('Notifications')];
$nav['notifications']['all'] = ['notifications/system', DI::l10n()->t('See all notifications'), '', ''];
$nav['notifications']['mark'] = ['', DI::l10n()->t('Mark as seen'), '', DI::l10n()->t('Mark all system notifications seen')];
}
$nav['messages'] = ['message', L10n::t('Messages'), '', L10n::t('Private mail')];
$nav['messages']['inbox'] = ['message', L10n::t('Inbox'), '', L10n::t('Inbox')];
$nav['messages']['outbox'] = ['message/sent', L10n::t('Outbox'), '', L10n::t('Outbox')];
$nav['messages']['new'] = ['message/new', L10n::t('New Message'), '', L10n::t('New Message')];
$nav['messages'] = ['message', DI::l10n()->t('Messages'), '', DI::l10n()->t('Private mail')];
$nav['messages']['inbox'] = ['message', DI::l10n()->t('Inbox'), '', DI::l10n()->t('Inbox')];
$nav['messages']['outbox'] = ['message/sent', DI::l10n()->t('Outbox'), '', DI::l10n()->t('Outbox')];
$nav['messages']['new'] = ['message/new', DI::l10n()->t('New Message'), '', DI::l10n()->t('New Message')];
if (is_array($a->identities) && count($a->identities) > 1) {
$nav['delegation'] = ['delegation', L10n::t('Delegation'), '', L10n::t('Manage other pages')];
$nav['delegation'] = ['delegation', DI::l10n()->t('Delegation'), '', DI::l10n()->t('Manage other pages')];
}
$nav['settings'] = ['settings', L10n::t('Settings'), '', L10n::t('Account settings')];
$nav['settings'] = ['settings', DI::l10n()->t('Settings'), '', DI::l10n()->t('Account settings')];
if (Feature::isEnabled(local_user(), 'multi_profiles')) {
$nav['profiles'] = ['profiles', L10n::t('Profiles'), '', L10n::t('Manage/Edit Profiles')];
$nav['profiles'] = ['profiles', DI::l10n()->t('Profiles'), '', DI::l10n()->t('Manage/Edit Profiles')];
}
$nav['contacts'] = ['contact', L10n::t('Contacts'), '', L10n::t('Manage/edit friends and contacts')];
$nav['contacts'] = ['contact', DI::l10n()->t('Contacts'), '', DI::l10n()->t('Manage/edit friends and contacts')];
}
// Show the link to the admin configuration page if user is admin
if (is_site_admin()) {
$nav['admin'] = ['admin/', L10n::t('Admin'), '', L10n::t('Site setup and configuration')];
$nav['admin'] = ['admin/', DI::l10n()->t('Admin'), '', DI::l10n()->t('Site setup and configuration')];
}
$nav['navigation'] = ['navigation/', L10n::t('Navigation'), '', L10n::t('Site map')];
$nav['navigation'] = ['navigation/', DI::l10n()->t('Navigation'), '', DI::l10n()->t('Site map')];
// Provide a banner/logo/whatever
$banner = Config::get('system', 'banner');

View file

@ -13,7 +13,6 @@ use Exception;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -251,7 +250,7 @@ class OEmbed
{
$stopoembed = Config::get("system", "no_oembed");
if ($stopoembed == true) {
return preg_replace("/\[embed\](.+?)\[\/embed\]/is", "<!-- oembed $1 --><i>" . L10n::t('Embedding disabled') . " : $1</i><!-- /oembed $1 -->", $text);
return preg_replace("/\[embed\](.+?)\[\/embed\]/is", "<!-- oembed $1 --><i>" . DI::l10n()->t('Embedding disabled') . " : $1</i><!-- /oembed $1 -->", $text);
}
return preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", ['self', 'replaceCallback'], $text);
}
@ -373,7 +372,7 @@ class OEmbed
$width = '100%';
$src = DI::baseUrl() . '/oembed/' . Strings::base64UrlEncode($src);
return '<iframe onload="resizeIframe(this);" class="embed_rich" height="' . $height . '" width="' . $width . '" src="' . $src . '" allowfullscreen scrolling="no" frameborder="no">' . L10n::t('Embedded content') . '</iframe>';
return '<iframe onload="resizeIframe(this);" class="embed_rich" height="' . $height . '" width="' . $width . '" src="' . $src . '" allowfullscreen scrolling="no" frameborder="no">' . DI::l10n()->t('Embedded content') . '</iframe>';
}
/**

View file

@ -2,8 +2,8 @@
namespace Friendica\Content;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Util\Strings;
/**
@ -150,12 +150,12 @@ class Pager
'class' => 'pager',
'prev' => [
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
'text' => L10n::t('newer'),
'text' => DI::l10n()->t('newer'),
'class' => 'previous' . ($this->getPage() == 1 ? ' disabled' : '')
],
'next' => [
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
'text' => L10n::t('older'),
'text' => DI::l10n()->t('older'),
'class' => 'next' . ($displayedItemCount < $this->getItemsPerPage() ? ' disabled' : '')
]
];
@ -195,12 +195,12 @@ class Pager
if ($totalItemCount > $this->getItemsPerPage()) {
$data['first'] = [
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=1'),
'text' => L10n::t('first'),
'text' => DI::l10n()->t('first'),
'class' => $this->getPage() == 1 ? 'disabled' : ''
];
$data['prev'] = [
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
'text' => L10n::t('prev'),
'text' => DI::l10n()->t('prev'),
'class' => $this->getPage() == 1 ? 'disabled' : ''
];
@ -255,12 +255,12 @@ class Pager
$data['next'] = [
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
'text' => L10n::t('next'),
'text' => DI::l10n()->t('next'),
'class' => $this->getPage() == $lastpage ? 'disabled' : ''
];
$data['last'] = [
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . $lastpage),
'text' => L10n::t('last'),
'text' => DI::l10n()->t('last'),
'class' => $this->getPage() == $lastpage ? 'disabled' : ''
];
}

View file

@ -12,7 +12,6 @@ use Friendica\Content\OEmbed;
use Friendica\Content\Smilies;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -907,7 +906,7 @@ class BBCode
// it loops over the array starting from the first element and going sequentially
// to the last element
$newbody = str_replace('[$#saved_image' . $cnt . '#$]',
'<img src="' . self::proxyUrl($image) . '" alt="' . L10n::t('Image/photo') . '" />', $newbody);
'<img src="' . self::proxyUrl($image) . '" alt="' . DI::l10n()->t('Image/photo') . '" />', $newbody);
$cnt++;
}
@ -1024,7 +1023,7 @@ class BBCode
break;
case 4:
$headline = '<p><b>' . html_entity_decode('&#x2672; ', ENT_QUOTES, 'UTF-8');
$headline .= L10n::t('<a href="%1$s" target="_blank">%2$s</a> %3$s', $attributes['link'], $mention, $attributes['posted']);
$headline .= DI::l10n()->t('<a href="%1$s" target="_blank">%2$s</a> %3$s', $attributes['link'], $mention, $attributes['posted']);
$headline .= ':</b></p>' . "\n";
$text = ($is_quote_share? '<hr />' : '') . $headline . '<blockquote class="shared_content">' . trim($content) . '</blockquote>' . "\n";
@ -1521,7 +1520,7 @@ class BBCode
$text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/sm", "<span style=\"font-family: $1;\">$2</span>", $text);
// Declare the format for [spoiler] layout
$SpoilerLayout = '<details class="spoiler"><summary>' . L10n::t('Click to open/close') . '</summary>$1</details>';
$SpoilerLayout = '<details class="spoiler"><summary>' . DI::l10n()->t('Click to open/close') . '</summary>$1</details>';
// Check for [spoiler] text
// handle nested quotes
@ -1552,7 +1551,7 @@ class BBCode
// Check for [quote=Author] text
$t_wrote = L10n::t('$1 wrote:');
$t_wrote = DI::l10n()->t('$1 wrote:');
// handle nested quotes
$endlessloop = 0;
@ -1603,12 +1602,12 @@ class BBCode
$text
);
$text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . L10n::t('Image/photo') . '" />', $text);
$text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . L10n::t('Image/photo') . '" />', $text);
$text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . DI::l10n()->t('Image/photo') . '" />', $text);
$text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . DI::l10n()->t('Image/photo') . '" />', $text);
$text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '<br/><img src="' .DI::baseUrl() . '/images/lock_icon.gif" alt="' . L10n::t('Encrypted content') . '" title="' . L10n::t('Encrypted content') . '" /><br />', $text);
$text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .DI::baseUrl() . '/images/lock_icon.gif" alt="' . L10n::t('Encrypted content') . '" title="' . '$1' . ' ' . L10n::t('Encrypted content') . '" /><br />', $text);
//$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .DI::baseUrl() . '/images/lock_icon.gif" alt="' . L10n::t('Encrypted content') . '" title="' . '$1' . ' ' . L10n::t('Encrypted content') . '" /><br />', $Text);
$text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '<br/><img src="' .DI::baseUrl() . '/images/lock_icon.gif" alt="' . DI::l10n()->t('Encrypted content') . '" title="' . DI::l10n()->t('Encrypted content') . '" /><br />', $text);
$text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .DI::baseUrl() . '/images/lock_icon.gif" alt="' . DI::l10n()->t('Encrypted content') . '" title="' . '$1' . ' ' . DI::l10n()->t('Encrypted content') . '" /><br />', $text);
//$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .DI::baseUrl() . '/images/lock_icon.gif" alt="' . DI::l10n()->t('Encrypted content') . '" title="' . '$1' . ' ' . DI::l10n()->t('Encrypted content') . '" /><br />', $Text);
// Simplify "video" element
$text = preg_replace('(\[video.*?\ssrc\s?=\s?([^\s\]]+).*?\].*?\[/video\])ism', '[video]$1[/video]', $text);
@ -1832,7 +1831,7 @@ class BBCode
array_walk($allowed_src_protocols, function(&$value) { $value = preg_quote($value, '#');});
$text = preg_replace('#<([^>]*?)(src)="(?!' . implode('|', $allowed_src_protocols) . ')(.*?)"(.*?)>#ism',
'<$1$2=""$4 data-original-src="$3" class="invalid-src" title="' . L10n::t('Invalid source protocol') . '">', $text);
'<$1$2=""$4 data-original-src="$3" class="invalid-src" title="' . DI::l10n()->t('Invalid source protocol') . '">', $text);
// sanitize href attributes (only whitelisted protocols URLs)
// default value for backward compatibility
@ -1847,7 +1846,7 @@ class BBCode
array_walk($allowed_link_protocols, function(&$value) { $value = preg_quote($value, '#');});
$regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism';
$text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 data-original-href="$3" class="invalid-href" title="' . L10n::t('Invalid link protocol') . '">', $text);
$text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 data-original-href="$3" class="invalid-href" title="' . DI::l10n()->t('Invalid link protocol') . '">', $text);
// Shared content
$text = self::convertShare(

View file

@ -9,7 +9,6 @@ use DOMDocument;
use DOMXPath;
use Friendica\Content\Widget\ContactBlock;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Config;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -799,8 +798,8 @@ class HTML
{
$tpl = Renderer::getMarkupTemplate("scroll_loader.tpl");
return Renderer::replaceMacros($tpl, [
'wait' => L10n::t('Loading more entries...'),
'end' => L10n::t('The end')
'wait' => DI::l10n()->t('Loading more entries...'),
'end' => DI::l10n()->t('The end')
]);
}
@ -893,28 +892,28 @@ class HTML
if (strpos($s, '#') === 0) {
$mode = 'tag';
}
$save_label = $mode === 'text' ? L10n::t('Save') : L10n::t('Follow');
$save_label = $mode === 'text' ? DI::l10n()->t('Save') : DI::l10n()->t('Follow');
$values = [
'$s' => $s,
'$q' => urlencode($s),
'$id' => $id,
'$search_label' => L10n::t('Search'),
'$search_label' => DI::l10n()->t('Search'),
'$save_label' => $save_label,
'$search_hint' => L10n::t('@name, !forum, #tags, content'),
'$search_hint' => DI::l10n()->t('@name, !forum, #tags, content'),
'$mode' => $mode,
'$return_url' => urlencode('search?q=' . urlencode($s)),
];
if (!$aside) {
$values['$search_options'] = [
'fulltext' => L10n::t('Full Text'),
'tags' => L10n::t('Tags'),
'contacts' => L10n::t('Contacts')
'fulltext' => DI::l10n()->t('Full Text'),
'tags' => DI::l10n()->t('Tags'),
'contacts' => DI::l10n()->t('Contacts')
];
if (Config::get('system', 'poco_local_search')) {
$values['$searchoption']['forums'] = L10n::t('Forums');
$values['$searchoption']['forums'] = DI::l10n()->t('Forums');
}
}
@ -951,7 +950,7 @@ class HTML
$html = Renderer::replaceMacros($tpl, [
'$reasons' => $reasons,
'$rnd' => Strings::getRandomHex(8),
'$openclose' => L10n::t('Click to open/close'),
'$openclose' => DI::l10n()->t('Click to open/close'),
'$html' => $html
]);
}

View file

@ -6,7 +6,6 @@ namespace Friendica\Content;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
@ -34,11 +33,11 @@ class Widget
public static function follow($value = "")
{
return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/follow.tpl'), array(
'$connect' => L10n::t('Add New Contact'),
'$desc' => L10n::t('Enter address or web location'),
'$hint' => L10n::t('Example: bob@example.com, http://example.com/barbara'),
'$connect' => DI::l10n()->t('Add New Contact'),
'$desc' => DI::l10n()->t('Enter address or web location'),
'$hint' => DI::l10n()->t('Example: bob@example.com, http://example.com/barbara'),
'$value' => $value,
'$follow' => L10n::t('Connect')
'$follow' => DI::l10n()->t('Connect')
));
}
@ -53,24 +52,24 @@ class Widget
$x = intval(DI::pConfig()->get(local_user(), 'system', 'invites_remaining'));
if ($x || is_site_admin()) {
DI::page()['aside'] .= '<div class="side-link widget" id="side-invite-remain">'
. L10n::tt('%d invitation available', '%d invitations available', $x)
. DI::l10n()->tt('%d invitation available', '%d invitations available', $x)
. '</div>';
}
}
$nv = [];
$nv['findpeople'] = L10n::t('Find People');
$nv['desc'] = L10n::t('Enter name or interest');
$nv['label'] = L10n::t('Connect/Follow');
$nv['hint'] = L10n::t('Examples: Robert Morgenstein, Fishing');
$nv['findthem'] = L10n::t('Find');
$nv['suggest'] = L10n::t('Friend Suggestions');
$nv['similar'] = L10n::t('Similar Interests');
$nv['random'] = L10n::t('Random Profile');
$nv['inv'] = L10n::t('Invite Friends');
$nv['directory'] = L10n::t('Global Directory');
$nv['findpeople'] = DI::l10n()->t('Find People');
$nv['desc'] = DI::l10n()->t('Enter name or interest');
$nv['label'] = DI::l10n()->t('Connect/Follow');
$nv['hint'] = DI::l10n()->t('Examples: Robert Morgenstein, Fishing');
$nv['findthem'] = DI::l10n()->t('Find');
$nv['suggest'] = DI::l10n()->t('Friend Suggestions');
$nv['similar'] = DI::l10n()->t('Similar Interests');
$nv['random'] = DI::l10n()->t('Random Profile');
$nv['inv'] = DI::l10n()->t('Invite Friends');
$nv['directory'] = DI::l10n()->t('Global Directory');
$nv['global_dir'] = $global_dir;
$nv['local_directory'] = L10n::t('Local Directory');
$nv['local_directory'] = DI::l10n()->t('Local Directory');
$aside = [];
$aside['$nv'] = $nv;
@ -191,16 +190,16 @@ class Widget
}
$options = [
['ref' => 'followers', 'name' => L10n::t('Followers')],
['ref' => 'following', 'name' => L10n::t('Following')],
['ref' => 'mutuals', 'name' => L10n::t('Mutual friends')],
['ref' => 'followers', 'name' => DI::l10n()->t('Followers')],
['ref' => 'following', 'name' => DI::l10n()->t('Following')],
['ref' => 'mutuals', 'name' => DI::l10n()->t('Mutual friends')],
];
return self::filter(
'rel',
L10n::t('Relationships'),
DI::l10n()->t('Relationships'),
'',
L10n::t('All Contacts'),
DI::l10n()->t('All Contacts'),
$baseurl,
$options,
$selected
@ -243,9 +242,9 @@ class Widget
return self::filter(
'nets',
L10n::t('Protocols'),
DI::l10n()->t('Protocols'),
'',
L10n::t('All Protocols'),
DI::l10n()->t('All Protocols'),
$baseurl,
$nets,
$selected
@ -282,9 +281,9 @@ class Widget
return self::filter(
'file',
L10n::t('Saved Folders'),
DI::l10n()->t('Saved Folders'),
'',
L10n::t('Everything'),
DI::l10n()->t('Everything'),
$baseurl,
$terms,
$selected
@ -321,9 +320,9 @@ class Widget
return self::filter(
'category',
L10n::t('Categories'),
DI::l10n()->t('Categories'),
'',
L10n::t('Everything'),
DI::l10n()->t('Everything'),
$baseurl,
$terms,
$selected
@ -398,12 +397,12 @@ class Widget
$tpl = Renderer::getMarkupTemplate('widget/remote_friends_common.tpl');
return Renderer::replaceMacros($tpl, [
'$desc' => L10n::tt("%d contact in common", "%d contacts in common", $t),
'$desc' => DI::l10n()->tt("%d contact in common", "%d contacts in common", $t),
'$base' => DI::baseUrl(),
'$uid' => $profile_uid,
'$cid' => (($cid) ? $cid : '0'),
'$linkmore' => (($t > 5) ? 'true' : ''),
'$more' => L10n::t('show more'),
'$more' => DI::l10n()->t('show more'),
'$items' => $entries
]);
}
@ -476,7 +475,7 @@ class Widget
$dend = substr($dnow, 0, 8) . Temporal::getDaysInMonth(intval($dnow), intval(substr($dnow, 5)));
$start_month = DateTimeFormat::utc($dstart, 'Y-m-d');
$end_month = DateTimeFormat::utc($dend, 'Y-m-d');
$str = L10n::getDay(DateTimeFormat::utc($dnow, 'F'));
$str = DI::l10n()->getDay(DateTimeFormat::utc($dnow, 'F'));
if (empty($ret[$dyear])) {
$ret[$dyear] = [];
@ -496,13 +495,13 @@ class Widget
$cutoff = array_key_exists($cutoff_year, $ret);
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/posted_date.tpl'),[
'$title' => L10n::t('Archives'),
'$title' => DI::l10n()->t('Archives'),
'$size' => $visible_years,
'$cutoff_year' => $cutoff_year,
'$cutoff' => $cutoff,
'$url' => $url,
'$dates' => $ret,
'$showmore' => L10n::t('show more')
'$showmore' => DI::l10n()->t('show more')
]);
return $o;

View file

@ -7,7 +7,6 @@
namespace Friendica\Content\Widget;
use Friendica\Content\Feature;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -62,9 +61,9 @@ class CalendarExport
$tpl = Renderer::getMarkupTemplate("widget/events.tpl");
$return = Renderer::replaceMacros($tpl, [
'$etitle' => L10n::t("Export"),
'$export_ical' => L10n::t("Export calendar as ical"),
'$export_csv' => L10n::t("Export calendar as csv"),
'$etitle' => DI::l10n()->t("Export"),
'$export_ical' => DI::l10n()->t("Export calendar as ical"),
'$export_csv' => DI::l10n()->t("Export calendar as csv"),
'$user' => $user
]);

View file

@ -8,7 +8,6 @@ namespace Friendica\Content\Widget;
use Friendica\Content\Text\HTML;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
@ -55,7 +54,7 @@ class ContactBlock
'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::FEED],
]);
$contacts_title = L10n::t('No contacts');
$contacts_title = DI::l10n()->t('No contacts');
$micropro = [];
@ -87,7 +86,7 @@ class ContactBlock
$contacts_stmt = DBA::select('contact', ['id', 'uid', 'addr', 'url', 'name', 'thumb', 'network'], ['id' => $contact_ids]);
if (DBA::isResult($contacts_stmt)) {
$contacts_title = L10n::tt('%d Contact', '%d Contacts', $total);
$contacts_title = DI::l10n()->tt('%d Contact', '%d Contacts', $total);
$micropro = [];
while ($contact = DBA::fetch($contacts_stmt)) {
@ -106,7 +105,7 @@ class ContactBlock
$o = Renderer::replaceMacros($tpl, [
'$contacts' => $contacts_title,
'$nickname' => $profile['nickname'],
'$viewcontacts' => L10n::t('View Contacts'),
'$viewcontacts' => DI::l10n()->t('View Contacts'),
'$micropro' => $micropro,
]);

View file

@ -2,9 +2,9 @@
namespace Friendica\Content\Widget;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
class SavedSearches
{
@ -26,7 +26,7 @@ class SavedSearches
'id' => $saved_search['id'],
'term' => $saved_search['term'],
'encodedterm' => urlencode($saved_search['term']),
'delete' => L10n::t('Remove term'),
'delete' => DI::l10n()->t('Remove term'),
'selected' => $search == $saved_search['term'],
];
}
@ -34,7 +34,7 @@ class SavedSearches
$tpl = Renderer::getMarkupTemplate('widget/saved_searches.tpl');
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Saved Searches'),
'$title' => DI::l10n()->t('Saved Searches'),
'$add' => '',
'$searchbox' => '',
'$saved' => $saved,

View file

@ -6,7 +6,6 @@
namespace Friendica\Content\Widget;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -50,7 +49,7 @@ class TagCloud
$tpl = Renderer::getMarkupTemplate('widget/tagcloud.tpl');
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Tags'),
'$title' => DI::l10n()->t('Tags'),
'$tags' => $tags
]);
}

View file

@ -2,8 +2,8 @@
namespace Friendica\Content\Widget;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model\Term;
/**
@ -29,8 +29,8 @@ class TrendingTags
$tpl = Renderer::getMarkupTemplate('widget/trending_tags.tpl');
$o = Renderer::replaceMacros($tpl, [
'$title' => L10n::tt('Trending Tags (last %d hour)', 'Trending Tags (last %d hours)', $period),
'$more' => L10n::t('More Trending Tags'),
'$title' => DI::l10n()->tt('Trending Tags (last %d hour)', 'Trending Tags (last %d hours)', $period),
'$more' => DI::l10n()->t('More Trending Tags'),
'$tags' => $tags,
]);

View file

@ -266,14 +266,14 @@ class ACL
$acl_groups = [
[
'id' => Group::FOLLOWERS,
'name' => L10n::t('Followers'),
'name' => DI::l10n()->t('Followers'),
'addr' => '',
'micro' => 'images/twopeople.png',
'type' => 'group',
],
[
'id' => Group::MUTUALS,
'name' => L10n::t('Mutuals'),
'name' => DI::l10n()->t('Mutuals'),
'addr' => '',
'micro' => 'images/twopeople.png',
'type' => 'group',
@ -363,7 +363,7 @@ class ACL
'type' => 'checkbox',
'field' => [
'pubmail_enable',
L10n::t('Post to Email'),
DI::l10n()->t('Post to Email'),
$pubmail_enabled
]
];
@ -381,16 +381,16 @@ class ACL
$tpl = Renderer::getMarkupTemplate('acl_selector.tpl');
$o = Renderer::replaceMacros($tpl, [
'$public_title' => L10n::t('Public'),
'$public_desc' => L10n::t('This content will be shown to all your followers and can be seen in the community pages and by anyone with its link.'),
'$custom_title' => L10n::t('Limited/Private'),
'$custom_desc' => L10n::t('This content will be shown only to the people in the first box, to the exception of the people mentioned in the second box. It won\'t appear anywhere public.'),
'$allow_label' => L10n::t('Show to:'),
'$deny_label' => L10n::t('Except to:'),
'$emailcc' => L10n::t('CC: email addresses'),
'$emtitle' => L10n::t('Example: bob@example.com, mary@example.com'),
'$jotnets_summary' => L10n::t('Connectors'),
'$jotnets_disabled_label' => L10n::t('Connectors disabled, since "%s" is enabled.', L10n::t('Hide your profile details from unknown viewers?')),
'$public_title' => DI::l10n()->t('Public'),
'$public_desc' => DI::l10n()->t('This content will be shown to all your followers and can be seen in the community pages and by anyone with its link.'),
'$custom_title' => DI::l10n()->t('Limited/Private'),
'$custom_desc' => DI::l10n()->t('This content will be shown only to the people in the first box, to the exception of the people mentioned in the second box. It won\'t appear anywhere public.'),
'$allow_label' => DI::l10n()->t('Show to:'),
'$deny_label' => DI::l10n()->t('Except to:'),
'$emailcc' => DI::l10n()->t('CC: email addresses'),
'$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'),
'$jotnets_summary' => DI::l10n()->t('Connectors'),
'$jotnets_disabled_label' => DI::l10n()->t('Connectors disabled, since "%s" is enabled.', DI::l10n()->t('Hide your profile details from unknown viewers?')),
'$visibility' => $visibility,
'$acl_contacts' => $acl_contacts,
'$acl_groups' => $acl_groups,

View file

@ -9,6 +9,7 @@ use Exception;
use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Database\Database;
use Friendica\Database\DBStructure;
use Friendica\DI;
use Friendica\Util\Images;
use Friendica\Util\Network;
use Friendica\Util\Strings;
@ -159,7 +160,7 @@ class Installer
$result = file_put_contents($basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.config.php', $txt);
if (!$result) {
$this->addCheck(L10n::t('The database configuration file "config/local.config.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.'), false, false, htmlentities($txt, ENT_COMPAT, 'UTF-8'));
$this->addCheck(DI::l10n()->t('The database configuration file "config/local.config.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.'), false, false, htmlentities($txt, ENT_COMPAT, 'UTF-8'));
}
return $result;
@ -178,8 +179,8 @@ class Installer
$result = DBStructure::update($basePath, false, true, true);
if ($result) {
$txt = L10n::t('You may need to import the file "database.sql" manually using phpmyadmin or mysql.') . EOL;
$txt .= L10n::t('Please see the file "INSTALL.txt".');
$txt = DI::l10n()->t('You may need to import the file "database.sql" manually using phpmyadmin or mysql.') . EOL;
$txt .= DI::l10n()->t('Please see the file "INSTALL.txt".');
$this->addCheck($txt, false, true, htmlentities($result, ENT_COMPAT, 'UTF-8'));
@ -240,18 +241,18 @@ class Installer
$help = "";
if (!$passed) {
$help .= L10n::t('Could not find a command line version of PHP in the web server PATH.') . EOL;
$help .= L10n::t("If you don't have a command line version of PHP installed on your server, you will not be able to run the background processing. See <a href='https://github.com/friendica/friendica/blob/master/doc/Install.md#set-up-the-worker'>'Setup the worker'</a>") . EOL;
$help .= DI::l10n()->t('Could not find a command line version of PHP in the web server PATH.') . EOL;
$help .= DI::l10n()->t("If you don't have a command line version of PHP installed on your server, you will not be able to run the background processing. See <a href='https://github.com/friendica/friendica/blob/master/doc/Install.md#set-up-the-worker'>'Setup the worker'</a>") . EOL;
$help .= EOL . EOL;
$tpl = Renderer::getMarkupTemplate('field_input.tpl');
/// @todo Separate backend Installer class and presentation layer/view
$help .= Renderer::replaceMacros($tpl, [
'$field' => ['config-php_path', L10n::t('PHP executable path'), $phppath, L10n::t('Enter full path to php executable. You can leave this blank to continue the installation.')],
'$field' => ['config-php_path', DI::l10n()->t('PHP executable path'), $phppath, DI::l10n()->t('Enter full path to php executable. You can leave this blank to continue the installation.')],
]);
$phppath = "";
}
$this->addCheck(L10n::t('Command line PHP') . ($passed ? " (<tt>$phppath</tt>)" : ""), $passed, false, $help);
$this->addCheck(DI::l10n()->t('Command line PHP') . ($passed ? " (<tt>$phppath</tt>)" : ""), $passed, false, $help);
if ($passed) {
$cmd = "$phppath -v";
@ -260,10 +261,10 @@ class Installer
list($result) = explode("\n", $result);
$help = "";
if (!$passed2) {
$help .= L10n::t("PHP executable is not the php cli binary \x28could be cgi-fgci version\x29") . EOL;
$help .= L10n::t('Found PHP version: ') . "<tt>$result</tt>";
$help .= DI::l10n()->t("PHP executable is not the php cli binary \x28could be cgi-fgci version\x29") . EOL;
$help .= DI::l10n()->t('Found PHP version: ') . "<tt>$result</tt>";
}
$this->addCheck(L10n::t('PHP cli binary'), $passed2, true, $help);
$this->addCheck(DI::l10n()->t('PHP cli binary'), $passed2, true, $help);
} else {
// return if it was required
return !$required;
@ -276,13 +277,13 @@ class Installer
$passed3 = $result == $str;
$help = "";
if (!$passed3) {
$help .= L10n::t('The command line version of PHP on your system does not have "register_argc_argv" enabled.') . EOL;
$help .= L10n::t('This is required for message delivery to work.');
$help .= DI::l10n()->t('The command line version of PHP on your system does not have "register_argc_argv" enabled.') . EOL;
$help .= DI::l10n()->t('This is required for message delivery to work.');
} else {
$this->phppath = $phppath;
}
$this->addCheck(L10n::t('PHP register_argc_argv'), $passed3, true, $help);
$this->addCheck(DI::l10n()->t('PHP register_argc_argv'), $passed3, true, $help);
}
// passed2 & passed3 are required if first check passed
@ -314,11 +315,11 @@ class Installer
// Get private key
if (!$res) {
$help .= L10n::t('Error: the "openssl_pkey_new" function on this system is not able to generate encryption keys') . EOL;
$help .= L10n::t('If running under Windows, please see "http://www.php.net/manual/en/openssl.installation.php".');
$help .= DI::l10n()->t('Error: the "openssl_pkey_new" function on this system is not able to generate encryption keys') . EOL;
$help .= DI::l10n()->t('If running under Windows, please see "http://www.php.net/manual/en/openssl.installation.php".');
$status = false;
}
$this->addCheck(L10n::t('Generate encryption keys'), $res, true, $help);
$this->addCheck(DI::l10n()->t('Generate encryption keys'), $res, true, $help);
return $status;
}
@ -370,27 +371,27 @@ class Installer
$status = true;
if (function_exists('apache_get_modules')) {
if (!in_array('mod_rewrite', apache_get_modules())) {
$help = L10n::t('Error: Apache webserver mod-rewrite module is required but not installed.');
$help = DI::l10n()->t('Error: Apache webserver mod-rewrite module is required but not installed.');
$status = false;
$returnVal = false;
}
}
$this->addCheck(L10n::t('Apache mod_rewrite module'), $status, true, $help);
$this->addCheck(DI::l10n()->t('Apache mod_rewrite module'), $status, true, $help);
$help = '';
$status = true;
if (!function_exists('mysqli_connect') && !class_exists('pdo')) {
$status = false;
$help = L10n::t('Error: PDO or MySQLi PHP module required but not installed.');
$help = DI::l10n()->t('Error: PDO or MySQLi PHP module required but not installed.');
$returnVal = false;
} else {
if (!function_exists('mysqli_connect') && class_exists('pdo') && !in_array('mysql', \PDO::getAvailableDrivers())) {
$status = false;
$help = L10n::t('Error: The MySQL driver for PDO is not installed.');
$help = DI::l10n()->t('Error: The MySQL driver for PDO is not installed.');
$returnVal = false;
}
}
$this->addCheck(L10n::t('PDO or MySQLi PHP module'), $status, true, $help);
$this->addCheck(DI::l10n()->t('PDO or MySQLi PHP module'), $status, true, $help);
// check for XML DOM Documents being able to be generated
$help = '';
@ -398,64 +399,64 @@ class Installer
try {
new DOMDocument();
} catch (Exception $e) {
$help = L10n::t('Error, XML PHP module required but not installed.');
$help = DI::l10n()->t('Error, XML PHP module required but not installed.');
$status = false;
$returnVal = false;
}
$this->addCheck(L10n::t('XML PHP module'), $status, true, $help);
$this->addCheck(DI::l10n()->t('XML PHP module'), $status, true, $help);
$status = $this->checkFunction('curl_init',
L10n::t('libCurl PHP module'),
L10n::t('Error: libCURL PHP module required but not installed.'),
DI::l10n()->t('libCurl PHP module'),
DI::l10n()->t('Error: libCURL PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('imagecreatefromjpeg',
L10n::t('GD graphics PHP module'),
L10n::t('Error: GD graphics PHP module with JPEG support required but not installed.'),
DI::l10n()->t('GD graphics PHP module'),
DI::l10n()->t('Error: GD graphics PHP module with JPEG support required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('openssl_public_encrypt',
L10n::t('OpenSSL PHP module'),
L10n::t('Error: openssl PHP module required but not installed.'),
DI::l10n()->t('OpenSSL PHP module'),
DI::l10n()->t('Error: openssl PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('mb_strlen',
L10n::t('mb_string PHP module'),
L10n::t('Error: mb_string PHP module required but not installed.'),
DI::l10n()->t('mb_string PHP module'),
DI::l10n()->t('Error: mb_string PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('iconv_strlen',
L10n::t('iconv PHP module'),
L10n::t('Error: iconv PHP module required but not installed.'),
DI::l10n()->t('iconv PHP module'),
DI::l10n()->t('Error: iconv PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('posix_kill',
L10n::t('POSIX PHP module'),
L10n::t('Error: POSIX PHP module required but not installed.'),
DI::l10n()->t('POSIX PHP module'),
DI::l10n()->t('Error: POSIX PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('json_encode',
L10n::t('JSON PHP module'),
L10n::t('Error: JSON PHP module required but not installed.'),
DI::l10n()->t('JSON PHP module'),
DI::l10n()->t('Error: JSON PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('finfo_open',
L10n::t('File Information PHP module'),
L10n::t('Error: File Information PHP module required but not installed.'),
DI::l10n()->t('File Information PHP module'),
DI::l10n()->t('Error: File Information PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
@ -478,13 +479,13 @@ class Installer
(!file_exists('config/local.config.php') && !is_writable('.'))) {
$status = false;
$help = L10n::t('The web installer needs to be able to create a file called "local.config.php" in the "config" folder of your web server and it is unable to do so.') . EOL;
$help .= L10n::t('This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.') . EOL;
$help .= L10n::t('At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica "config" folder.') . EOL;
$help .= L10n::t('You can alternatively skip this procedure and perform a manual installation. Please see the file "INSTALL.txt" for instructions.') . EOL;
$help = DI::l10n()->t('The web installer needs to be able to create a file called "local.config.php" in the "config" folder of your web server and it is unable to do so.') . EOL;
$help .= DI::l10n()->t('This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.') . EOL;
$help .= DI::l10n()->t('At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica "config" folder.') . EOL;
$help .= DI::l10n()->t('You can alternatively skip this procedure and perform a manual installation. Please see the file "INSTALL.txt" for instructions.') . EOL;
}
$this->addCheck(L10n::t('config/local.config.php is writable'), $status, false, $help);
$this->addCheck(DI::l10n()->t('config/local.config.php is writable'), $status, false, $help);
// Local INI File is not required
return true;
@ -504,13 +505,13 @@ class Installer
if (!is_writable('view/smarty3')) {
$status = false;
$help = L10n::t('Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.') . EOL;
$help .= L10n::t('In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder.') . EOL;
$help .= L10n::t("Please ensure that the user that your web server runs as \x28e.g. www-data\x29 has write access to this folder.") . EOL;
$help .= L10n::t("Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files \x28.tpl\x29 that it contains.") . EOL;
$help = DI::l10n()->t('Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.') . EOL;
$help .= DI::l10n()->t('In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder.') . EOL;
$help .= DI::l10n()->t("Please ensure that the user that your web server runs as \x28e.g. www-data\x29 has write access to this folder.") . EOL;
$help .= DI::l10n()->t("Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files \x28.tpl\x29 that it contains.") . EOL;
}
$this->addCheck(L10n::t('view/smarty3 is writable'), $status, true, $help);
$this->addCheck(DI::l10n()->t('view/smarty3 is writable'), $status, true, $help);
return $status;
}
@ -539,14 +540,14 @@ class Installer
if ($fetchResult->getReturnCode() != 204) {
$status = false;
$help = L10n::t('Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess.');
$help = DI::l10n()->t('Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess.');
$error_msg = [];
$error_msg['head'] = L10n::t('Error message from Curl when fetching');
$error_msg['head'] = DI::l10n()->t('Error message from Curl when fetching');
$error_msg['url'] = $fetchResult->getRedirectUrl();
$error_msg['msg'] = $fetchResult->getError();
}
$this->addCheck(L10n::t('Url rewrite is working'), $status, true, $help, $error_msg);
$this->addCheck(DI::l10n()->t('Url rewrite is working'), $status, true, $help, $error_msg);
} else {
// cannot check modrewrite if libcurl is not installed
/// @TODO Maybe issue warning here?
@ -575,11 +576,11 @@ class Installer
}
}
if (!$imagick) {
$this->addCheck(L10n::t('ImageMagick PHP extension is not installed'), $imagick, false, "");
$this->addCheck(DI::l10n()->t('ImageMagick PHP extension is not installed'), $imagick, false, "");
} else {
$this->addCheck(L10n::t('ImageMagick PHP extension is installed'), $imagick, false, "");
$this->addCheck(DI::l10n()->t('ImageMagick PHP extension is installed'), $imagick, false, "");
if ($imagick) {
$this->addCheck(L10n::t('ImageMagick supports GIF'), $gif, false, "");
$this->addCheck(DI::l10n()->t('ImageMagick supports GIF'), $gif, false, "");
}
}
@ -601,12 +602,12 @@ class Installer
if ($dba->isConnected()) {
if (DBStructure::existsTable('user')) {
$this->addCheck(L10n::t('Database already in use.'), false, true, '');
$this->addCheck(DI::l10n()->t('Database already in use.'), false, true, '');
return false;
}
} else {
$this->addCheck(L10n::t('Could not connect to database.'), false, true, '');
$this->addCheck(DI::l10n()->t('Could not connect to database.'), false, true, '');
return false;
}

View file

@ -1,11 +1,12 @@
<?php
/**
* @file src/Core/L10n.php
*/
namespace Friendica\Core;
use Friendica\Core\L10n\L10n as L10nClass;
use Friendica\DI;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\Session\ISession;
use Friendica\Database\Database;
use Friendica\Util\Strings;
use Psr\Log\LoggerInterface;
/**
* Provide Language, Translation, and Localization functions to the application
@ -13,26 +14,198 @@ use Friendica\DI;
*/
class L10n
{
/**
* A string indicating the current language used for translation:
* - Two-letter ISO 639-1 code.
* - Two-letter ISO 639-1 code + dash + Two-letter ISO 3166-1 alpha-2 country code.
*
* @var string
*/
private $lang = '';
/**
* An array of translation strings whose key is the neutral english message.
*
* @var array
*/
private $strings = [];
/**
* @var Database
*/
private $dba;
/**
* @var LoggerInterface
*/
private $logger;
public function __construct(IConfiguration $config, Database $dba, LoggerInterface $logger, ISession $session, array $server, array $get)
{
$this->dba = $dba;
$this->logger = $logger;
$this->loadTranslationTable(L10n::detectLanguage($server, $get, $config->get('system', 'language', 'en')));
$this->setSessionVariable($session);
$this->setLangFromSession($session);
}
/**
* Returns the current language code
*
* @return string Language code
*/
public static function getCurrentLang()
public function getCurrentLang()
{
return DI::l10n()->getCurrentLang();
return $this->lang;
}
/**
* @param string $lang
*
* @return L10nClass The new L10n class with the new language
*
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* Sets the language session variable
*/
public static function withLang(string $lang)
private function setSessionVariable(ISession $session)
{
return DI::l10n()->withLang($lang);
if ($session->get('authenticated') && !$session->get('language')) {
$session->set('language', $this->lang);
// we haven't loaded user data yet, but we need user language
if ($session->get('uid')) {
$user = $this->dba->selectFirst('user', ['language'], ['uid' => $_SESSION['uid']]);
if ($this->dba->isResult($user)) {
$session->set('language', $user['language']);
}
}
}
if (isset($_GET['lang'])) {
$session->set('language', $_GET['lang']);
}
}
private function setLangFromSession(ISession $session)
{
if ($session->get('language') !== $this->lang) {
$this->loadTranslationTable($session->get('language'));
}
}
/**
* Loads string translation table
*
* First addon strings are loaded, then globals
*
* Uses an App object shim since all the strings files refer to $a->strings
*
* @param string $lang language code to load
*
* @throws \Exception
*/
private function loadTranslationTable($lang)
{
$lang = Strings::sanitizeFilePathItem($lang);
// Don't override the language setting with empty languages
if (empty($lang)) {
return;
}
$a = new \stdClass();
$a->strings = [];
// load enabled addons strings
$addons = $this->dba->select('addon', ['name'], ['installed' => true]);
while ($p = $this->dba->fetch($addons)) {
$name = Strings::sanitizeFilePathItem($p['name']);
if (file_exists(__DIR__ . "/../../addon/$name/lang/$lang/strings.php")) {
include __DIR__ . "/../../addon/$name/lang/$lang/strings.php";
}
}
if (file_exists(__DIR__ . "/../../view/lang/$lang/strings.php")) {
include __DIR__ . "/../../view/lang/$lang/strings.php";
}
$this->lang = $lang;
$this->strings = $a->strings;
unset($a);
}
/**
* @brief Returns the preferred language from the HTTP_ACCEPT_LANGUAGE header
*
* @param string $sysLang The default fallback language
* @param array $server The $_SERVER array
* @param array $get The $_GET array
*
* @return string The two-letter language code
*/
public static function detectLanguage(array $server, array $get, string $sysLang = 'en')
{
$lang_variable = $server['HTTP_ACCEPT_LANGUAGE'] ?? null;
$acceptedLanguages = preg_split('/,\s*/', $lang_variable);
if (empty($acceptedLanguages)) {
$acceptedLanguages = [];
}
// Add get as absolute quality accepted language (except this language isn't valid)
if (!empty($get['lang'])) {
$acceptedLanguages[] = $get['lang'];
}
// return the sys language in case there's nothing to do
if (empty($acceptedLanguages)) {
return $sysLang;
}
// Set the syslang as default fallback
$current_lang = $sysLang;
// start with quality zero (every guessed language is more acceptable ..)
$current_q = 0;
foreach ($acceptedLanguages as $acceptedLanguage) {
$res = preg_match(
'/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i',
$acceptedLanguage,
$matches
);
// Invalid language? -> skip
if (!$res) {
continue;
}
// split language codes based on it's "-"
$lang_code = explode('-', $matches[1]);
// determine the quality of the guess
if (isset($matches[2])) {
$lang_quality = (float)$matches[2];
} else {
// fallback so without a quality parameter, it's probably the best
$lang_quality = 1;
}
// loop through each part of the code-parts
while (count($lang_code)) {
// try to mix them so we can get double-code parts too
$match_lang = strtolower(join('-', $lang_code));
if (file_exists(__DIR__ . "/../../view/lang/$match_lang") &&
is_dir(__DIR__ . "/../../view/lang/$match_lang")) {
if ($lang_quality > $current_q) {
$current_lang = $match_lang;
$current_q = $lang_quality;
break;
}
}
// remove the most right code-part
array_pop($lang_code);
}
}
return $current_lang;
}
/**
@ -43,18 +216,31 @@ class L10n
* string interpolation (sprintf) with additional optional arguments.
*
* Usages:
* - L10n::t('This is an example')
* - L10n::t('URL %s returned no result', $url)
* - L10n::t('Current version: %s, new version: %s', $current_version, $new_version)
* - DI::l10n()->t('This is an example')
* - DI::l10n()->t('URL %s returned no result', $url)
* - DI::l10n()->t('Current version: %s, new version: %s', $current_version, $new_version)
*
* @param string $s
* @param array $vars Variables to interpolate in the translation string
*
* @return string
*/
public static function t($s, ...$vars)
public function t($s, ...$vars)
{
return DI::l10n()->t($s, ...$vars);
if (empty($s)) {
return '';
}
if (!empty($this->strings[$s])) {
$t = $this->strings[$s];
$s = is_array($t) ? $t[0] : $t;
}
if (count($vars) > 0) {
$s = sprintf($s, ...$vars);
}
return $s;
}
/**
@ -67,8 +253,8 @@ class L10n
* is performed using the count as parameter.
*
* Usages:
* - L10n::tt('Like', 'Likes', $count)
* - L10n::tt("%s user deleted", "%s users deleted", count($users))
* - DI::l10n()->tt('Like', 'Likes', $count)
* - DI::l10n()->tt("%s user deleted", "%s users deleted", count($users))
*
* @param string $singular
* @param string $plural
@ -77,9 +263,48 @@ class L10n
* @return string
* @throws \Exception
*/
public static function tt(string $singular, string $plural, int $count)
public function tt(string $singular, string $plural, int $count)
{
return DI::l10n()->tt($singular, $plural, $count);
if (!empty($this->strings[$singular])) {
$t = $this->strings[$singular];
if (is_array($t)) {
$plural_function = 'string_plural_select_' . str_replace('-', '_', $this->lang);
if (function_exists($plural_function)) {
$i = $plural_function($count);
} else {
$i = $this->stringPluralSelectDefault($count);
}
// for some languages there is only a single array item
if (!isset($t[$i])) {
$s = $t[0];
} else {
$s = $t[$i];
}
} else {
$s = $t;
}
} elseif ($this->stringPluralSelectDefault($count)) {
$s = $plural;
} else {
$s = $singular;
}
$s = @sprintf($s, $count);
return $s;
}
/**
* Provide a fallback which will not collide with a function defined in any language file
*
* @param int $n
*
* @return bool
*/
private function stringPluralSelectDefault($n)
{
return $n != 1;
}
/**
@ -95,7 +320,20 @@ class L10n
*/
public static function getAvailableLanguages()
{
return L10nClass::getAvailableLanguages();
$langs = [];
$strings_file_paths = glob('view/lang/*/strings.php');
if (is_array($strings_file_paths) && count($strings_file_paths)) {
if (!in_array('view/lang/en/strings.php', $strings_file_paths)) {
$strings_file_paths[] = 'view/lang/en/strings.php';
}
asort($strings_file_paths);
foreach ($strings_file_paths as $strings_file_path) {
$path_array = explode('/', $strings_file_path);
$langs[$path_array[2]] = $path_array[2];
}
}
return $langs;
}
/**
@ -105,9 +343,17 @@ class L10n
*
* @return string Translated string.
*/
public static function getDay($s)
public function getDay($s)
{
return DI::l10n()->getDay($s);
$ret = str_replace(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
[$this->t('Monday'), $this->t('Tuesday'), $this->t('Wednesday'), $this->t('Thursday'), $this->t('Friday'), $this->t('Saturday'), $this->t('Sunday')],
$s);
$ret = str_replace(['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
[$this->t('January'), $this->t('February'), $this->t('March'), $this->t('April'), $this->t('May'), $this->t('June'), $this->t('July'), $this->t('August'), $this->t('September'), $this->t('October'), $this->t('November'), $this->t('December')],
$ret);
return $ret;
}
/**
@ -117,9 +363,17 @@ class L10n
*
* @return string Translated string.
*/
public static function getDayShort($s)
public function getDayShort($s)
{
return DI::l10n()->getDayShort($s);
$ret = str_replace(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
[$this->t('Mon'), $this->t('Tue'), $this->t('Wed'), $this->t('Thu'), $this->t('Fri'), $this->t('Sat'), $this->t('Sun')],
$s);
$ret = str_replace(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
[$this->t('Jan'), $this->t('Feb'), $this->t('Mar'), $this->t('Apr'), $this->t('May'), $this->t('Jun'), $this->t('Jul'), $this->t('Aug'), $this->t('Sep'), $this->t('Oct'), $this->t('Nov'), $this->t('Dec')],
$ret);
return $ret;
}
/**
@ -127,10 +381,44 @@ class L10n
*
* @return array index is present tense verb
* value is array containing past tense verb, translation of present, translation of past
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @hook poke_verbs pokes array
*/
public static function getPokeVerbs()
public function getPokeVerbs()
{
return DI::l10n()->getPokeVerbs();
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
$arr = [
'poke' => ['poked', $this->t('poke'), $this->t('poked')],
'ping' => ['pinged', $this->t('ping'), $this->t('pinged')],
'prod' => ['prodded', $this->t('prod'), $this->t('prodded')],
'slap' => ['slapped', $this->t('slap'), $this->t('slapped')],
'finger' => ['fingered', $this->t('finger'), $this->t('fingered')],
'rebuff' => ['rebuffed', $this->t('rebuff'), $this->t('rebuffed')],
];
Hook::callAll('poke_verbs', $arr);
return $arr;
}
/**
* Creates a new L10n instance based on the given langauge
*
* @param string $lang The new language
*
* @return static A new L10n instance
* @throws \Exception
*/
public function withLang(string $lang)
{
// Don't create a new instance for same language
if ($lang === $this->lang) {
return $this;
}
$newL10n = clone $this;
$newL10n->loadTranslationTable($lang);
return $newL10n;
}
}

View file

@ -1,425 +0,0 @@
<?php
namespace Friendica\Core\L10n;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\Hook;
use Friendica\Core\Session\ISession;
use Friendica\Database\Database;
use Friendica\Util\Strings;
use Psr\Log\LoggerInterface;
/**
* Provide Language, Translation, and Localization functions to the application
* Localization can be referred to by the numeronym L10N (as in: "L", followed by ten more letters, and then "N").
*/
class L10n
{
/**
* A string indicating the current language used for translation:
* - Two-letter ISO 639-1 code.
* - Two-letter ISO 639-1 code + dash + Two-letter ISO 3166-1 alpha-2 country code.
*
* @var string
*/
private $lang = '';
/**
* An array of translation strings whose key is the neutral english message.
*
* @var array
*/
private $strings = [];
/**
* @var Database
*/
private $dba;
/**
* @var LoggerInterface
*/
private $logger;
public function __construct(IConfiguration $config, Database $dba, LoggerInterface $logger, ISession $session, array $server, array $get)
{
$this->dba = $dba;
$this->logger = $logger;
$this->loadTranslationTable(L10n::detectLanguage($server, $get, $config->get('system', 'language', 'en')));
$this->setSessionVariable($session);
$this->setLangFromSession($session);
}
/**
* Returns the current language code
*
* @return string Language code
*/
public function getCurrentLang()
{
return $this->lang;
}
/**
* Sets the language session variable
*/
private function setSessionVariable(ISession $session)
{
if ($session->get('authenticated') && !$session->get('language')) {
$session->set('language', $this->lang);
// we haven't loaded user data yet, but we need user language
if ($session->get('uid')) {
$user = $this->dba->selectFirst('user', ['language'], ['uid' => $_SESSION['uid']]);
if ($this->dba->isResult($user)) {
$session->set('language', $user['language']);
}
}
}
if (isset($_GET['lang'])) {
$session->set('language', $_GET['lang']);
}
}
private function setLangFromSession(ISession $session)
{
if ($session->get('language') !== $this->lang) {
$this->loadTranslationTable($session->get('language'));
}
}
/**
* Loads string translation table
*
* First addon strings are loaded, then globals
*
* Uses an App object shim since all the strings files refer to $a->strings
*
* @param string $lang language code to load
*
* @throws \Exception
*/
private function loadTranslationTable($lang)
{
$lang = Strings::sanitizeFilePathItem($lang);
// Don't override the language setting with empty languages
if (empty($lang)) {
return;
}
$a = new \stdClass();
$a->strings = [];
// load enabled addons strings
$addons = $this->dba->select('addon', ['name'], ['installed' => true]);
while ($p = $this->dba->fetch($addons)) {
$name = Strings::sanitizeFilePathItem($p['name']);
if (file_exists("addon/$name/lang/$lang/strings.php")) {
include __DIR__ . "/../../../addon/$name/lang/$lang/strings.php";
}
}
if (file_exists(__DIR__ . "/../../../view/lang/$lang/strings.php")) {
include __DIR__ . "/../../../view/lang/$lang/strings.php";
}
$this->lang = $lang;
$this->strings = $a->strings;
unset($a);
}
/**
* Returns the preferred language from the HTTP_ACCEPT_LANGUAGE header
*
* @param string $sysLang The default fallback language
* @param array $server The $_SERVER array
* @param array $get The $_GET array
*
* @return string The two-letter language code
*/
public static function detectLanguage(array $server, array $get, string $sysLang = 'en')
{
$lang_variable = $server['HTTP_ACCEPT_LANGUAGE'] ?? null;
$acceptedLanguages = preg_split('/,\s*/', $lang_variable);
if (empty($acceptedLanguages)) {
$acceptedLanguages = [];
}
// Add get as absolute quality accepted language (except this language isn't valid)
if (!empty($get['lang'])) {
$acceptedLanguages[] = $get['lang'];
}
// return the sys language in case there's nothing to do
if (empty($acceptedLanguages)) {
return $sysLang;
}
// Set the syslang as default fallback
$current_lang = $sysLang;
// start with quality zero (every guessed language is more acceptable ..)
$current_q = 0;
foreach ($acceptedLanguages as $acceptedLanguage) {
$res = preg_match(
'/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i',
$acceptedLanguage,
$matches
);
// Invalid language? -> skip
if (!$res) {
continue;
}
// split language codes based on it's "-"
$lang_code = explode('-', $matches[1]);
// determine the quality of the guess
if (isset($matches[2])) {
$lang_quality = (float)$matches[2];
} else {
// fallback so without a quality parameter, it's probably the best
$lang_quality = 1;
}
// loop through each part of the code-parts
while (count($lang_code)) {
// try to mix them so we can get double-code parts too
$match_lang = strtolower(join('-', $lang_code));
if (file_exists(__DIR__ . "/../../../view/lang/$match_lang") &&
is_dir(__DIR__ . "/../../../view/lang/$match_lang")) {
if ($lang_quality > $current_q) {
$current_lang = $match_lang;
$current_q = $lang_quality;
break;
}
}
// remove the most right code-part
array_pop($lang_code);
}
}
return $current_lang;
}
/**
* Return the localized version of the provided string with optional string interpolation
*
* This function takes a english string as parameter, and if a localized version
* exists for the current language, substitutes it before performing an eventual
* string interpolation (sprintf) with additional optional arguments.
*
* Usages:
* - L10n::t('This is an example')
* - L10n::t('URL %s returned no result', $url)
* - L10n::t('Current version: %s, new version: %s', $current_version, $new_version)
*
* @param string $s
* @param array $vars Variables to interpolate in the translation string
*
* @return string
*/
public function t($s, ...$vars)
{
if (empty($s)) {
return '';
}
if (!empty($this->strings[$s])) {
$t = $this->strings[$s];
$s = is_array($t) ? $t[0] : $t;
}
if (count($vars) > 0) {
$s = sprintf($s, ...$vars);
}
return $s;
}
/**
* Return the localized version of a singular/plural string with optional string interpolation
*
* This function takes two english strings as parameters, singular and plural, as
* well as a count. If a localized version exists for the current language, they
* are used instead. Discrimination between singular and plural is done using the
* localized function if any or the default one. Finally, a string interpolation
* is performed using the count as parameter.
*
* Usages:
* - L10n::tt('Like', 'Likes', $count)
* - L10n::tt("%s user deleted", "%s users deleted", count($users))
*
* @param string $singular
* @param string $plural
* @param int $count
*
* @return string
* @throws \Exception
*/
public function tt(string $singular, string $plural, int $count)
{
if (!empty($this->strings[$singular])) {
$t = $this->strings[$singular];
if (is_array($t)) {
$plural_function = 'string_plural_select_' . str_replace('-', '_', $this->lang);
if (function_exists($plural_function)) {
$i = $plural_function($count);
} else {
$i = $this->stringPluralSelectDefault($count);
}
// for some languages there is only a single array item
if (!isset($t[$i])) {
$s = $t[0];
} else {
$s = $t[$i];
}
} else {
$s = $t;
}
} elseif ($this->stringPluralSelectDefault($count)) {
$s = $plural;
} else {
$s = $singular;
}
$s = @sprintf($s, $count);
return $s;
}
/**
* Provide a fallback which will not collide with a function defined in any language file
*
* @param int $n
*
* @return bool
*/
private function stringPluralSelectDefault($n)
{
return $n != 1;
}
/**
* Return installed languages codes as associative array
*
* Scans the view/lang directory for the existence of "strings.php" files, and
* returns an alphabetical list of their folder names (@-char language codes).
* Adds the english language if it's missing from the list.
*
* Ex: array('de' => 'de', 'en' => 'en', 'fr' => 'fr', ...)
*
* @return array
*/
public static function getAvailableLanguages()
{
$langs = [];
$strings_file_paths = glob('view/lang/*/strings.php');
if (is_array($strings_file_paths) && count($strings_file_paths)) {
if (!in_array('view/lang/en/strings.php', $strings_file_paths)) {
$strings_file_paths[] = 'view/lang/en/strings.php';
}
asort($strings_file_paths);
foreach ($strings_file_paths as $strings_file_path) {
$path_array = explode('/', $strings_file_path);
$langs[$path_array[2]] = $path_array[2];
}
}
return $langs;
}
/**
* Translate days and months names.
*
* @param string $s String with day or month name.
*
* @return string Translated string.
*/
public function getDay($s)
{
$ret = str_replace(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
[$this->t('Monday'), $this->t('Tuesday'), $this->t('Wednesday'), $this->t('Thursday'), $this->t('Friday'), $this->t('Saturday'), $this->t('Sunday')],
$s);
$ret = str_replace(['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
[$this->t('January'), $this->t('February'), $this->t('March'), $this->t('April'), $this->t('May'), $this->t('June'), $this->t('July'), $this->t('August'), $this->t('September'), $this->t('October'), $this->t('November'), $this->t('December')],
$ret);
return $ret;
}
/**
* Translate short days and months names.
*
* @param string $s String with short day or month name.
*
* @return string Translated string.
*/
public function getDayShort($s)
{
$ret = str_replace(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
[$this->t('Mon'), $this->t('Tue'), $this->t('Wed'), $this->t('Thu'), $this->t('Fri'), $this->t('Sat'), $this->t('Sun')],
$s);
$ret = str_replace(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
[$this->t('Jan'), $this->t('Feb'), $this->t('Mar'), $this->t('Apr'), $this->t('May'), $this->t('Jun'), $this->t('Jul'), $this->t('Aug'), $this->t('Sep'), $this->t('Oct'), $this->t('Nov'), $this->t('Dec')],
$ret);
return $ret;
}
/**
* Load poke verbs
*
* @return array index is present tense verb
* value is array containing past tense verb, translation of present, translation of past
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @hook poke_verbs pokes array
*/
public function getPokeVerbs()
{
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
$arr = [
'poke' => ['poked', $this->t('poke'), $this->t('poked')],
'ping' => ['pinged', $this->t('ping'), $this->t('pinged')],
'prod' => ['prodded', $this->t('prod'), $this->t('prodded')],
'slap' => ['slapped', $this->t('slap'), $this->t('slapped')],
'finger' => ['fingered', $this->t('finger'), $this->t('fingered')],
'rebuff' => ['rebuffed', $this->t('rebuff'), $this->t('rebuffed')],
];
Hook::callAll('poke_verbs', $arr);
return $arr;
}
/**
* Creates a new L10n instance based on the given langauge
*
* @param string $lang The new language
*
* @return static A new L10n instance
* @throws \Exception
*/
public function withLang(string $lang)
{
// Don't create a new instance for same language
if ($lang === $this->lang) {
return $this;
}
$newL10n = clone $this;
$newL10n->loadTranslationTable($lang);
return $newL10n;
}
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Core;
use Exception;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\L10n\L10n;
use Friendica\Database\Database;
use Friendica\Model\Storage;
use Psr\Log\LoggerInterface;

View file

@ -191,7 +191,7 @@ class Update
//send the administrator an e-mail
self::updateFailed(
$x,
L10n::t('Update %s failed. See error logs.', $x)
DI::l10n()->t('Update %s failed. See error logs.', $x)
);
Logger::error('Update function ERROR.', ['function' => $funcname, 'retval' => $retval]);
DI::lock()->release('dbupdate_function');
@ -253,7 +253,7 @@ class Update
$sent[] = $admin['email'];
$lang = (($admin['language'])?$admin['language']:'en');
$l10n = L10n::withLang($lang);
$l10n = DI::l10n()->withLang($lang);
$preamble = Strings::deindent($l10n->t("
The friendica developers released update %s recently,
@ -295,7 +295,7 @@ class Update
$sent[] = $admin['email'];
$lang = (($admin['language']) ? $admin['language'] : 'en');
$l10n = L10n::withLang($lang);
$l10n = DI::l10n()->withLang($lang);
$preamble = Strings::deindent($l10n->t("
The friendica database was successfully updated from %s to %s.",
@ -305,7 +305,7 @@ class Update
'uid' => $admin['uid'],
'type' => SYSTEM_EMAIL,
'to_email' => $admin['email'],
'subject' => l10n::t('[Friendica Notify] Database update'),
'subject' => DI::l10n()->t('[Friendica Notify] Database update'),
'preamble' => $preamble,
'body' => $preamble,
'language' => $lang]

View file

@ -104,13 +104,13 @@ class UserImport
$account = json_decode(file_get_contents($file['tmp_name']), true);
if ($account === null) {
notice(L10n::t("Error decoding account file"));
notice(DI::l10n()->t("Error decoding account file"));
return;
}
if (empty($account['version'])) {
notice(L10n::t("Error! No version data in file! This is not a Friendica account file?"));
notice(DI::l10n()->t("Error! No version data in file! This is not a Friendica account file?"));
return;
}
@ -118,7 +118,7 @@ class UserImport
// check if username matches deleted account
if (DBA::exists('user', ['nickname' => $account['user']['nickname']])
|| DBA::exists('userd', ['username' => $account['user']['nickname']])) {
notice(L10n::t("User '%s' already exists on this server!", $account['user']['nickname']));
notice(DI::l10n()->t("User '%s' already exists on this server!", $account['user']['nickname']));
return;
}
@ -154,7 +154,7 @@ class UserImport
$r = self::dbImportAssoc('user', $account['user']);
if ($r === false) {
Logger::log("uimport:insert user : ERROR : " . DBA::errorMessage(), Logger::INFO);
notice(L10n::t("User creation error"));
notice(DI::l10n()->t("User creation error"));
return;
}
$newuid = self::lastInsertId();
@ -172,7 +172,7 @@ class UserImport
$r = self::dbImportAssoc('profile', $profile);
if ($r === false) {
Logger::log("uimport:insert profile " . $profile['profile-name'] . " : ERROR : " . DBA::errorMessage(), Logger::INFO);
info(L10n::t("User profile creation error"));
info(DI::l10n()->t("User profile creation error"));
DBA::delete('user', ['uid' => $newuid]);
return;
}
@ -216,7 +216,7 @@ class UserImport
}
}
if ($errorcount > 0) {
notice(L10n::tt("%d contact not imported", "%d contacts not imported", $errorcount));
notice(DI::l10n()->tt("%d contact not imported", "%d contacts not imported", $errorcount));
}
foreach ($account['group'] as &$group) {
@ -281,7 +281,7 @@ class UserImport
// send relocate messages
Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::RELOCATION, $newuid);
info(L10n::t("Done. You can now login with your username and password"));
info(DI::l10n()->t("Done. You can now login with your username and password"));
DI::baseUrl()->redirect('login');
}
}

View file

@ -156,9 +156,12 @@ abstract class DI
return self::$dice->create(Core\Lock\ILock::class);
}
/**
* @return Core\L10n
*/
public static function l10n()
{
return self::$dice->create(Core\L10n\L10n::class);
return self::$dice->create(Core\L10n::class);
}
/**

View file

@ -8,8 +8,8 @@ namespace Friendica\Database;
use Exception;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\DI;
use Friendica\Util\DateTimeFormat;
require_once __DIR__ . '/../../include/dba.php';
@ -45,7 +45,7 @@ class DBStructure
);
if (!DBA::isResult($tables)) {
echo L10n::t('There are no tables on MyISAM.') . "\n";
echo DI::l10n()->t('There are no tables on MyISAM.') . "\n";
return;
}
@ -69,10 +69,10 @@ class DBStructure
*/
private static function printUpdateError($message)
{
echo L10n::t("\nError %d occurred during database update:\n%s\n",
echo DI::l10n()->t("\nError %d occurred during database update:\n%s\n",
DBA::errorNo(), DBA::errorMessage());
return L10n::t('Errors encountered performing database changes: ') . $message . EOL;
return DI::l10n()->t('Errors encountered performing database changes: ') . $message . EOL;
}
public static function printStructure($basePath)
@ -261,7 +261,7 @@ class DBStructure
{
if ($action && !$install) {
Config::set('system', 'maintenance', 1);
Config::set('system', 'maintenance_reason', L10n::t('%s: Database update', DateTimeFormat::utcNow() . ' ' . date('e')));
Config::set('system', 'maintenance_reason', DI::l10n()->t('%s: Database update', DateTimeFormat::utcNow() . ' ' . date('e')));
}
$errors = '';
@ -522,7 +522,7 @@ class DBStructure
if ($action) {
if (!$install) {
Config::set('system', 'maintenance_reason', L10n::t('%s: updating %s table.', DateTimeFormat::utcNow() . ' ' . date('e'), $name));
Config::set('system', 'maintenance_reason', DI::l10n()->t('%s: updating %s table.', DateTimeFormat::utcNow() . ' ' . date('e'), $name));
}
// Ensure index conversion to unique removes duplicates

View file

@ -27,7 +27,7 @@ class LegacyModule extends BaseModule
public static function setModuleFile($file_path)
{
if (!is_readable($file_path)) {
throw new \Exception(Core\L10n::t('Legacy module file not found: %s', $file_path));
throw new \Exception(DI::l10n()->t('Legacy module file not found: %s', $file_path));
}
self::$moduleName = basename($file_path, '.php');

View file

@ -8,7 +8,6 @@ use Friendica\App\BaseURL;
use Friendica\Content\Pager;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Session;
@ -343,7 +342,7 @@ class Contact
* @param integer $uid User ID
*
* @return integer|boolean Public contact id for given user id
* @throws Exception
* @throws \Exception
*/
public static function getPublicIdByUserId($uid)
{
@ -1207,7 +1206,7 @@ class Contact
if (empty($contact['uid']) || ($contact['uid'] != $uid)) {
if ($uid == 0) {
$profile_link = self::magicLink($contact['url']);
$menu = ['profile' => [L10n::t('View Profile'), $profile_link, true]];
$menu = ['profile' => [DI::l10n()->t('View Profile'), $profile_link, true]];
return $menu;
}
@ -1269,30 +1268,30 @@ class Contact
*/
if (empty($contact['uid'])) {
$menu = [
'profile' => [L10n::t('View Profile') , $profile_link , true],
'network' => [L10n::t('Network Posts') , $posts_link , false],
'edit' => [L10n::t('View Contact') , $contact_url , false],
'follow' => [L10n::t('Connect/Follow'), $follow_link , true],
'unfollow'=> [L10n::t('UnFollow') , $unfollow_link, true],
'profile' => [DI::l10n()->t('View Profile') , $profile_link , true],
'network' => [DI::l10n()->t('Network Posts') , $posts_link , false],
'edit' => [DI::l10n()->t('View Contact') , $contact_url , false],
'follow' => [DI::l10n()->t('Connect/Follow'), $follow_link , true],
'unfollow'=> [DI::l10n()->t('UnFollow') , $unfollow_link, true],
];
} else {
$menu = [
'status' => [L10n::t('View Status') , $status_link , true],
'profile' => [L10n::t('View Profile') , $profile_link , true],
'photos' => [L10n::t('View Photos') , $photos_link , true],
'network' => [L10n::t('Network Posts') , $posts_link , false],
'edit' => [L10n::t('View Contact') , $contact_url , false],
'drop' => [L10n::t('Drop Contact') , $contact_drop_link, false],
'pm' => [L10n::t('Send PM') , $pm_url , false],
'poke' => [L10n::t('Poke') , $poke_link , false],
'follow' => [L10n::t('Connect/Follow'), $follow_link , true],
'unfollow'=> [L10n::t('UnFollow') , $unfollow_link , true],
'status' => [DI::l10n()->t('View Status') , $status_link , true],
'profile' => [DI::l10n()->t('View Profile') , $profile_link , true],
'photos' => [DI::l10n()->t('View Photos') , $photos_link , true],
'network' => [DI::l10n()->t('Network Posts') , $posts_link , false],
'edit' => [DI::l10n()->t('View Contact') , $contact_url , false],
'drop' => [DI::l10n()->t('Drop Contact') , $contact_drop_link, false],
'pm' => [DI::l10n()->t('Send PM') , $pm_url , false],
'poke' => [DI::l10n()->t('Poke') , $poke_link , false],
'follow' => [DI::l10n()->t('Connect/Follow'), $follow_link , true],
'unfollow'=> [DI::l10n()->t('UnFollow') , $unfollow_link , true],
];
if (!empty($contact['pending'])) {
$intro = DBA::selectFirst('intro', ['id'], ['contact-id' => $contact['id']]);
if (DBA::isResult($intro)) {
$menu['follow'] = [L10n::t('Approve'), 'notifications/intros/' . $intro['id'], true];
$menu['follow'] = [DI::l10n()->t('Approve'), 'notifications/intros/' . $intro['id'], true];
}
}
}
@ -1851,15 +1850,15 @@ class Contact
switch ($type) {
case self::TYPE_ORGANISATION:
$account_type = L10n::t("Organisation");
$account_type = DI::l10n()->t("Organisation");
break;
case self::TYPE_NEWS:
$account_type = L10n::t('News');
$account_type = DI::l10n()->t('News');
break;
case self::TYPE_COMMUNITY:
$account_type = L10n::t("Forum");
$account_type = DI::l10n()->t("Forum");
break;
default:
@ -2264,17 +2263,17 @@ class Contact
$url = str_replace('/#!/', '/', $url);
if (!Network::isUrlAllowed($url)) {
$result['message'] = L10n::t('Disallowed profile URL.');
$result['message'] = DI::l10n()->t('Disallowed profile URL.');
return $result;
}
if (Network::isUrlBlocked($url)) {
$result['message'] = L10n::t('Blocked domain');
$result['message'] = DI::l10n()->t('Blocked domain');
return $result;
}
if (!$url) {
$result['message'] = L10n::t('Connect URL missing.');
$result['message'] = DI::l10n()->t('Connect URL missing.');
return $result;
}
@ -2283,7 +2282,7 @@ class Contact
Hook::callAll('follow', $arr);
if (empty($arr)) {
$result['message'] = L10n::t('The contact could not be added. Please check the relevant network credentials in your Settings -> Social Networks page.');
$result['message'] = DI::l10n()->t('The contact could not be added. Please check the relevant network credentials in your Settings -> Social Networks page.');
return $result;
}
@ -2324,8 +2323,8 @@ class Contact
// NOTREACHED
}
} elseif (Config::get('system', 'dfrn_only') && ($ret['network'] != Protocol::DFRN)) {
$result['message'] = L10n::t('This site is not configured to allow communications with other networks.') . EOL;
$result['message'] .= L10n::t('No compatible communication protocols or feeds were discovered.') . EOL;
$result['message'] = DI::l10n()->t('This site is not configured to allow communications with other networks.') . EOL;
$result['message'] .= DI::l10n()->t('No compatible communication protocols or feeds were discovered.') . EOL;
return $result;
}
@ -2336,30 +2335,30 @@ class Contact
// do we have enough information?
if (empty($ret['name']) || empty($ret['poll']) || (empty($ret['url']) && empty($ret['addr']))) {
$result['message'] .= L10n::t('The profile address specified does not provide adequate information.') . EOL;
$result['message'] .= DI::l10n()->t('The profile address specified does not provide adequate information.') . EOL;
if (empty($ret['poll'])) {
$result['message'] .= L10n::t('No compatible communication protocols or feeds were discovered.') . EOL;
$result['message'] .= DI::l10n()->t('No compatible communication protocols or feeds were discovered.') . EOL;
}
if (empty($ret['name'])) {
$result['message'] .= L10n::t('An author or name was not found.') . EOL;
$result['message'] .= DI::l10n()->t('An author or name was not found.') . EOL;
}
if (empty($ret['url'])) {
$result['message'] .= L10n::t('No browser URL could be matched to this address.') . EOL;
$result['message'] .= DI::l10n()->t('No browser URL could be matched to this address.') . EOL;
}
if (strpos($url, '@') !== false) {
$result['message'] .= L10n::t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
$result['message'] .= L10n::t('Use mailto: in front of address to force email check.') . EOL;
$result['message'] .= DI::l10n()->t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
$result['message'] .= DI::l10n()->t('Use mailto: in front of address to force email check.') . EOL;
}
return $result;
}
if ($protocol === Protocol::OSTATUS && Config::get('system', 'ostatus_disabled')) {
$result['message'] .= L10n::t('The profile address specified belongs to a network which has been disabled on this site.') . EOL;
$result['message'] .= DI::l10n()->t('The profile address specified belongs to a network which has been disabled on this site.') . EOL;
$ret['notify'] = '';
}
if (!$ret['notify']) {
$result['message'] .= L10n::t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
$result['message'] .= DI::l10n()->t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
}
$writeable = ((($protocol === Protocol::OSTATUS) && ($ret['notify'])) ? 1 : 0);
@ -2420,7 +2419,7 @@ class Contact
$contact = DBA::selectFirst('contact', [], ['url' => $ret['url'], 'network' => $ret['network'], 'uid' => $uid]);
if (!DBA::isResult($contact)) {
$result['message'] .= L10n::t('Unable to retrieve contact information.') . EOL;
$result['message'] .= DI::l10n()->t('Unable to retrieve contact information.') . EOL;
return $result;
}
@ -2641,7 +2640,7 @@ class Contact
'to_email' => $user['email'],
'uid' => $user['uid'],
'link' => DI::baseUrl() . '/notifications/intro',
'source_name' => ((strlen(stripslashes($contact_record['name']))) ? stripslashes($contact_record['name']) : L10n::t('[Name Withheld]')),
'source_name' => ((strlen(stripslashes($contact_record['name']))) ? stripslashes($contact_record['name']) : DI::l10n()->t('[Name Withheld]')),
'source_link' => $contact_record['url'],
'source_photo' => $contact_record['photo'],
'verb' => ($sharing ? Activity::FRIEND : Activity::FOLLOW),

View file

@ -7,7 +7,6 @@ namespace Friendica\Model;
use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\System;
@ -31,15 +30,15 @@ class Event
return '';
}
$bd_format = L10n::t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8 AM.
$bd_format = DI::l10n()->t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8 AM.
$event_start = L10n::getDay(
$event_start = DI::l10n()->getDay(
!empty($event['adjust']) ?
DateTimeFormat::local($event['start'], $bd_format) : DateTimeFormat::utc($event['start'], $bd_format)
);
if (!empty($event['finish'])) {
$event_end = L10n::getDay(
$event_end = DI::l10n()->getDay(
!empty($event['adjust']) ?
DateTimeFormat::local($event['finish'], $bd_format) : DateTimeFormat::utc($event['finish'], $bd_format)
);
@ -58,14 +57,14 @@ class Event
$o .= "<div>" . BBCode::convert(Strings::escapeHtml($event['desc']), false, $simple) . "</div>";
}
$o .= "<h4>" . L10n::t('Starts:') . "</h4><p>" . $event_start . "</p>";
$o .= "<h4>" . DI::l10n()->t('Starts:') . "</h4><p>" . $event_start . "</p>";
if (!$event['nofinish']) {
$o .= "<h4>" . L10n::t('Finishes:') . "</h4><p>" . $event_end . "</p>";
$o .= "<h4>" . DI::l10n()->t('Finishes:') . "</h4><p>" . $event_end . "</p>";
}
if (!empty($event['location'])) {
$o .= "<h4>" . L10n::t('Location:') . "</h4><p>" . BBCode::convert(Strings::escapeHtml($event['location']), false, $simple) . "</p>";
$o .= "<h4>" . DI::l10n()->t('Location:') . "</h4><p>" . BBCode::convert(Strings::escapeHtml($event['location']), false, $simple) . "</p>";
}
return $o;
@ -75,13 +74,13 @@ class Event
$o .= '<div class="summary event-summary">' . BBCode::convert(Strings::escapeHtml($event['summary']), false, $simple) . '</div>' . "\r\n";
$o .= '<div class="event-start"><span class="event-label">' . L10n::t('Starts:') . '</span>&nbsp;<span class="dtstart" title="'
$o .= '<div class="event-start"><span class="event-label">' . DI::l10n()->t('Starts:') . '</span>&nbsp;<span class="dtstart" title="'
. DateTimeFormat::utc($event['start'], (!empty($event['adjust']) ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s'))
. '" >' . $event_start
. '</span></div>' . "\r\n";
if (!$event['nofinish']) {
$o .= '<div class="event-end" ><span class="event-label">' . L10n::t('Finishes:') . '</span>&nbsp;<span class="dtend" title="'
$o .= '<div class="event-end" ><span class="event-label">' . DI::l10n()->t('Finishes:') . '</span>&nbsp;<span class="dtend" title="'
. DateTimeFormat::utc($event['finish'], (!empty($event['adjust']) ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s'))
. '" >' . $event_end
. '</span></div>' . "\r\n";
@ -92,7 +91,7 @@ class Event
}
if (!empty($event['location'])) {
$o .= '<div class="event-location"><span class="event-label">' . L10n::t('Location:') . '</span>&nbsp;<span class="location">'
$o .= '<div class="event-location"><span class="event-label">' . DI::l10n()->t('Location:') . '</span>&nbsp;<span class="location">'
. BBCode::convert(Strings::escapeHtml($event['location']), false, $simple)
. '</span></div>' . "\r\n";
@ -382,59 +381,59 @@ class Event
$i18n = [
"firstDay" => $firstDay,
"allday" => L10n::t("all-day"),
"allday" => DI::l10n()->t("all-day"),
"Sun" => L10n::t("Sun"),
"Mon" => L10n::t("Mon"),
"Tue" => L10n::t("Tue"),
"Wed" => L10n::t("Wed"),
"Thu" => L10n::t("Thu"),
"Fri" => L10n::t("Fri"),
"Sat" => L10n::t("Sat"),
"Sun" => DI::l10n()->t("Sun"),
"Mon" => DI::l10n()->t("Mon"),
"Tue" => DI::l10n()->t("Tue"),
"Wed" => DI::l10n()->t("Wed"),
"Thu" => DI::l10n()->t("Thu"),
"Fri" => DI::l10n()->t("Fri"),
"Sat" => DI::l10n()->t("Sat"),
"Sunday" => L10n::t("Sunday"),
"Monday" => L10n::t("Monday"),
"Tuesday" => L10n::t("Tuesday"),
"Wednesday" => L10n::t("Wednesday"),
"Thursday" => L10n::t("Thursday"),
"Friday" => L10n::t("Friday"),
"Saturday" => L10n::t("Saturday"),
"Sunday" => DI::l10n()->t("Sunday"),
"Monday" => DI::l10n()->t("Monday"),
"Tuesday" => DI::l10n()->t("Tuesday"),
"Wednesday" => DI::l10n()->t("Wednesday"),
"Thursday" => DI::l10n()->t("Thursday"),
"Friday" => DI::l10n()->t("Friday"),
"Saturday" => DI::l10n()->t("Saturday"),
"Jan" => L10n::t("Jan"),
"Feb" => L10n::t("Feb"),
"Mar" => L10n::t("Mar"),
"Apr" => L10n::t("Apr"),
"May" => L10n::t("May"),
"Jun" => L10n::t("Jun"),
"Jul" => L10n::t("Jul"),
"Aug" => L10n::t("Aug"),
"Sep" => L10n::t("Sept"),
"Oct" => L10n::t("Oct"),
"Nov" => L10n::t("Nov"),
"Dec" => L10n::t("Dec"),
"Jan" => DI::l10n()->t("Jan"),
"Feb" => DI::l10n()->t("Feb"),
"Mar" => DI::l10n()->t("Mar"),
"Apr" => DI::l10n()->t("Apr"),
"May" => DI::l10n()->t("May"),
"Jun" => DI::l10n()->t("Jun"),
"Jul" => DI::l10n()->t("Jul"),
"Aug" => DI::l10n()->t("Aug"),
"Sep" => DI::l10n()->t("Sept"),
"Oct" => DI::l10n()->t("Oct"),
"Nov" => DI::l10n()->t("Nov"),
"Dec" => DI::l10n()->t("Dec"),
"January" => L10n::t("January"),
"February" => L10n::t("February"),
"March" => L10n::t("March"),
"April" => L10n::t("April"),
"June" => L10n::t("June"),
"July" => L10n::t("July"),
"August" => L10n::t("August"),
"September" => L10n::t("September"),
"October" => L10n::t("October"),
"November" => L10n::t("November"),
"December" => L10n::t("December"),
"January" => DI::l10n()->t("January"),
"February" => DI::l10n()->t("February"),
"March" => DI::l10n()->t("March"),
"April" => DI::l10n()->t("April"),
"June" => DI::l10n()->t("June"),
"July" => DI::l10n()->t("July"),
"August" => DI::l10n()->t("August"),
"September" => DI::l10n()->t("September"),
"October" => DI::l10n()->t("October"),
"November" => DI::l10n()->t("November"),
"December" => DI::l10n()->t("December"),
"today" => L10n::t("today"),
"month" => L10n::t("month"),
"week" => L10n::t("week"),
"day" => L10n::t("day"),
"today" => DI::l10n()->t("today"),
"month" => DI::l10n()->t("month"),
"week" => DI::l10n()->t("week"),
"day" => DI::l10n()->t("day"),
"noevent" => L10n::t("No events to display"),
"noevent" => DI::l10n()->t("No events to display"),
"dtstart_label" => L10n::t("Starts:"),
"dtend_label" => L10n::t("Finishes:"),
"location_label" => L10n::t("Location:")
"dtstart_label" => DI::l10n()->t("Starts:"),
"dtend_label" => DI::l10n()->t("Finishes:"),
"location_label" => DI::l10n()->t("Location:")
];
return $i18n;
@ -558,7 +557,7 @@ class Event
$event_list = [];
$last_date = '';
$fmt = L10n::t('l, F j');
$fmt = DI::l10n()->t('l, F j');
foreach ($event_result as $event) {
$item = Item::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link'], ['id' => $event['itemid']]);
if (!DBA::isResult($item)) {
@ -571,7 +570,7 @@ class Event
$start = $event['adjust'] ? DateTimeFormat::local($event['start'], 'c') : DateTimeFormat::utc($event['start'], 'c');
$j = $event['adjust'] ? DateTimeFormat::local($event['start'], 'j') : DateTimeFormat::utc($event['start'], 'j');
$day = $event['adjust'] ? DateTimeFormat::local($event['start'], $fmt) : DateTimeFormat::utc($event['start'], $fmt);
$day = L10n::getDay($day);
$day = DI::l10n()->getDay($day);
if ($event['nofinish']) {
$end = null;
@ -589,9 +588,9 @@ class Event
$copy = null;
$drop = null;
if (local_user() && local_user() == $event['uid'] && $event['type'] == 'event') {
$edit = !$event['cid'] ? [DI::baseUrl() . '/events/event/' . $event['id'], L10n::t('Edit event') , '', ''] : null;
$copy = !$event['cid'] ? [DI::baseUrl() . '/events/copy/' . $event['id'] , L10n::t('Duplicate event'), '', ''] : null;
$drop = [DI::baseUrl() . '/events/drop/' . $event['id'] , L10n::t('Delete event') , '', ''];
$edit = !$event['cid'] ? [DI::baseUrl() . '/events/event/' . $event['id'], DI::l10n()->t('Edit event') , '', ''] : null;
$copy = !$event['cid'] ? [DI::baseUrl() . '/events/copy/' . $event['id'] , DI::l10n()->t('Duplicate event'), '', ''] : null;
$drop = [DI::baseUrl() . '/events/drop/' . $event['id'] , DI::l10n()->t('Delete event') , '', ''];
}
$title = BBCode::convert(Strings::escapeHtml($event['summary']));
@ -623,7 +622,7 @@ class Event
'is_first' => $is_first,
'item' => $event,
'html' => $html,
'plink' => [$event['plink'], L10n::t('link to source'), '', ''],
'plink' => [$event['plink'], DI::l10n()->t('link to source'), '', ''],
];
}
@ -844,19 +843,19 @@ class Event
$finish = false;
// Set the different time formats.
$dformat = L10n::t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8:01 AM.
$dformat_short = L10n::t('D g:i A'); // Fri 8:01 AM.
$tformat = L10n::t('g:i A'); // 8:01 AM.
$dformat = DI::l10n()->t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8:01 AM.
$dformat_short = DI::l10n()->t('D g:i A'); // Fri 8:01 AM.
$tformat = DI::l10n()->t('g:i A'); // 8:01 AM.
// Convert the time to different formats.
$dtstart_dt = L10n::getDay(
$dtstart_dt = DI::l10n()->getDay(
$item['event-adjust'] ?
DateTimeFormat::local($item['event-start'], $dformat)
: DateTimeFormat::utc($item['event-start'], $dformat)
);
$dtstart_title = DateTimeFormat::utc($item['event-start'], $item['event-adjust'] ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s');
// Format: Jan till Dec.
$month_short = L10n::getDayShort(
$month_short = DI::l10n()->getDayShort(
$item['event-adjust'] ?
DateTimeFormat::local($item['event-start'], 'M')
: DateTimeFormat::utc($item['event-start'], 'M')
@ -868,7 +867,7 @@ class Event
$start_time = $item['event-adjust'] ?
DateTimeFormat::local($item['event-start'], $tformat)
: DateTimeFormat::utc($item['event-start'], $tformat);
$start_short = L10n::getDayShort(
$start_short = DI::l10n()->getDayShort(
$item['event-adjust'] ?
DateTimeFormat::local($item['event-start'], $dformat_short)
: DateTimeFormat::utc($item['event-start'], $dformat_short)
@ -877,13 +876,13 @@ class Event
// If the option 'nofinisch' isn't set, we need to format the finish date/time.
if (!$item['event-nofinish']) {
$finish = true;
$dtend_dt = L10n::getDay(
$dtend_dt = DI::l10n()->getDay(
$item['event-adjust'] ?
DateTimeFormat::local($item['event-finish'], $dformat)
: DateTimeFormat::utc($item['event-finish'], $dformat)
);
$dtend_title = DateTimeFormat::utc($item['event-finish'], $item['event-adjust'] ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s');
$end_short = L10n::getDayShort(
$end_short = DI::l10n()->getDayShort(
$item['event-adjust'] ?
DateTimeFormat::local($item['event-finish'], $dformat_short)
: DateTimeFormat::utc($item['event-finish'], $dformat_short)
@ -912,11 +911,11 @@ class Event
$return = Renderer::replaceMacros($tpl, [
'$id' => $item['event-id'],
'$title' => BBCode::convert($item['event-summary']),
'$dtstart_label' => L10n::t('Starts:'),
'$dtstart_label' => DI::l10n()->t('Starts:'),
'$dtstart_title' => $dtstart_title,
'$dtstart_dt' => $dtstart_dt,
'$finish' => $finish,
'$dtend_label' => L10n::t('Finishes:'),
'$dtend_label' => DI::l10n()->t('Finishes:'),
'$dtend_title' => $dtend_title,
'$dtend_dt' => $dtend_dt,
'$month_short' => $month_short,
@ -930,10 +929,10 @@ class Event
'$author_link' => $profile_link,
'$author_avatar' => $item['author-avatar'],
'$description' => BBCode::convert($item['event-desc']),
'$location_label' => L10n::t('Location:'),
'$show_map_label' => L10n::t('Show map'),
'$hide_map_label' => L10n::t('Hide map'),
'$map_btn_label' => L10n::t('Show map'),
'$location_label' => DI::l10n()->t('Location:'),
'$show_map_label' => DI::l10n()->t('Show map'),
'$hide_map_label' => DI::l10n()->t('Hide map'),
'$map_btn_label' => DI::l10n()->t('Show map'),
'$location' => $location
]);
@ -1024,8 +1023,8 @@ class Event
'cid' => $contact['id'],
'start' => DateTimeFormat::utc($birthday),
'finish' => DateTimeFormat::utc($birthday . ' + 1 day '),
'summary' => L10n::t('%s\'s birthday', $contact['name']),
'desc' => L10n::t('Happy Birthday %s', ' [url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'),
'summary' => DI::l10n()->t('%s\'s birthday', $contact['name']),
'desc' => DI::l10n()->t('Happy Birthday %s', ' [url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'),
'type' => 'birthday',
'adjust' => 0
];

View file

@ -5,7 +5,6 @@
namespace Friendica\Model;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\DI;
@ -262,7 +261,7 @@ class FileTag
DI::pConfig()->set($uid, 'system', 'filetags', $saved . '[' . self::encode($file) . ']');
}
info(L10n::t('Item filed'));
info(DI::l10n()->t('Item filed'));
}
return true;

View file

@ -6,11 +6,11 @@
namespace Friendica\Model;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
/**
* functions for interacting with the group database table
@ -73,7 +73,7 @@ class Group
$group = DBA::selectFirst('group', ['deleted'], ['id' => $gid]);
if (DBA::isResult($group) && $group['deleted']) {
DBA::update('group', ['deleted' => 0], ['id' => $gid]);
notice(L10n::t('A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
notice(DI::l10n()->t('A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
}
return true;
}
@ -422,7 +422,7 @@ class Group
Logger::info('Got groups', $display_groups);
if ($label == '') {
$label = L10n::t('Default privacy group for new contacts');
$label = DI::l10n()->t('Default privacy group for new contacts');
}
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('group_selection.tpl'), [
@ -454,7 +454,7 @@ class Group
$display_groups = [
[
'text' => L10n::t('Everybody'),
'text' => DI::l10n()->t('Everybody'),
'id' => 0,
'selected' => (($group_id === 'everyone') ? 'group-selected' : ''),
'href' => $every,
@ -473,7 +473,7 @@ class Group
if ($editmode == 'full') {
$groupedit = [
'href' => 'group/' . $group['id'],
'title' => L10n::t('edit'),
'title' => DI::l10n()->t('edit'),
];
} else {
$groupedit = null;
@ -498,17 +498,17 @@ class Group
$tpl = Renderer::getMarkupTemplate('group_side.tpl');
$o = Renderer::replaceMacros($tpl, [
'$add' => L10n::t('add'),
'$title' => L10n::t('Groups'),
'$add' => DI::l10n()->t('add'),
'$title' => DI::l10n()->t('Groups'),
'$groups' => $display_groups,
'newgroup' => $editmode == 'extended' || $editmode == 'full' ? 1 : '',
'grouppage' => 'group/',
'$edittext' => L10n::t('Edit group'),
'$ungrouped' => $every === 'contact' ? L10n::t('Contacts not in any group') : '',
'$edittext' => DI::l10n()->t('Edit group'),
'$ungrouped' => $every === 'contact' ? DI::l10n()->t('Contacts not in any group') : '',
'$ungrouped_selected' => (($group_id === 'none') ? 'group-selected' : ''),
'$createtext' => L10n::t('Create a new group'),
'$creategroup' => L10n::t('Group Name: '),
'$editgroupstext' => L10n::t('Edit groups'),
'$createtext' => DI::l10n()->t('Create a new group'),
'$creategroup' => DI::l10n()->t('Group Name: '),
'$editgroupstext' => DI::l10n()->t('Edit groups'),
'$form_security_token' => BaseModule::getFormSecurityToken('group_edit'),
]);

View file

@ -10,7 +10,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -3388,16 +3387,16 @@ class Item
public static function postType($item)
{
if (!empty($item['event-id'])) {
return L10n::t('event');
return DI::l10n()->t('event');
} elseif (!empty($item['resource-id'])) {
return L10n::t('photo');
return DI::l10n()->t('photo');
} elseif (!empty($item['verb']) && $item['verb'] !== Activity::POST) {
return L10n::t('activity');
return DI::l10n()->t('activity');
} elseif ($item['id'] != $item['parent']) {
return L10n::t('comment');
return DI::l10n()->t('comment');
}
return L10n::t('post');
return DI::l10n()->t('post');
}
/**
@ -3520,7 +3519,7 @@ class Item
$filter_reasons = [];
if (!$is_preview && public_contact() != $item['author-id']) {
if (!empty($item['content-warning']) && (!local_user() || !DI::pConfig()->get(local_user(), 'system', 'disable_cw', false))) {
$filter_reasons[] = L10n::t('Content warning: %s', $item['content-warning']);
$filter_reasons[] = DI::l10n()->t('Content warning: %s', $item['content-warning']);
}
$hook_data = [
@ -3580,7 +3579,7 @@ class Item
$as .= Renderer::replaceMacros(Renderer::getMarkupTemplate('video_top.tpl'), [
'$video' => [
'id' => $id,
'title' => L10n::t('View Video'),
'title' => DI::l10n()->t('View Video'),
'src' => $the_url,
'mime' => $mime,
],
@ -3597,7 +3596,7 @@ class Item
}
$title = Strings::escapeHtml(trim(($mtch[4] ?? '') ?: $mtch[1]));
$title .= ' ' . $mtch[2] . ' ' . L10n::t('bytes');
$title .= ' ' . $mtch[2] . ' ' . DI::l10n()->t('bytes');
$icon = '<div class="attachtype icon s22 type-' . $filetype . ' subtype-' . $filesubtype . '"></div>';
$as .= '<a href="' . strip_tags($the_url) . '" title="' . $title . '" class="attachlink" target="_blank" >' . $icon . '</a>';
@ -3644,20 +3643,20 @@ class Item
$ret = [
'href' => "display/" . $item['guid'],
'orig' => "display/" . $item['guid'],
'title' => L10n::t('View on separate page'),
'orig_title' => L10n::t('view on separate page'),
'title' => DI::l10n()->t('View on separate page'),
'orig_title' => DI::l10n()->t('view on separate page'),
];
if (!empty($item['plink'])) {
$ret["href"] = DI::baseUrl()->remove($item['plink']);
$ret["title"] = L10n::t('link to source');
$ret["title"] = DI::l10n()->t('link to source');
}
} elseif (!empty($item['plink']) && ($item['private'] != 1)) {
$ret = [
'href' => $item['plink'],
'orig' => $item['plink'],
'title' => L10n::t('link to source'),
'title' => DI::l10n()->t('link to source'),
];
} else {
$ret = [];

View file

@ -5,13 +5,10 @@
*/
namespace Friendica\Model;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\DI;
use Friendica\Model\Item;
use Friendica\Model\Photo;
use Friendica\Database\DBA;
use Friendica\Network\Probe;
use Friendica\Protocol\Activity;
@ -112,7 +109,7 @@ class Mail
}
if (!strlen($subject)) {
$subject = L10n::t('[no subject]');
$subject = DI::l10n()->t('[no subject]');
}
$me = DBA::selectFirst('contact', [], ['uid' => local_user(), 'self' => true]);
@ -247,7 +244,7 @@ class Mail
}
if (!strlen($subject)) {
$subject = L10n::t('[no subject]');
$subject = DI::l10n()->t('[no subject]');
}
$guid = System::createUUID();

View file

@ -7,7 +7,7 @@ use Friendica\App;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\Config\IPConfiguration;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\System;
use Friendica\Database\Database;

View file

@ -8,7 +8,6 @@ namespace Friendica\Model;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\System;
use Friendica\Database\DBA;
@ -551,7 +550,7 @@ class Photo
GROUP BY `album` ORDER BY `created` DESC",
intval($uid),
DBA::escape("Contact Photos"),
DBA::escape(L10n::t("Contact Photos"))
DBA::escape(DI::l10n()->t("Contact Photos"))
);
} else {
// This query doesn't do the count and is much faster
@ -560,7 +559,7 @@ class Photo
WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra",
intval($uid),
DBA::escape("Contact Photos"),
DBA::escape(L10n::t("Contact Photos"))
DBA::escape(DI::l10n()->t("Contact Photos"))
);
}
DI::cache()->set($key, $albums, Duration::DAY);

View file

@ -13,7 +13,6 @@ use Friendica\Content\Widget\ContactBlock;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -206,7 +205,7 @@ class Profile
DI::page()['aside'] .= Renderer::replaceMacros(
Renderer::getMarkupTemplate('profile_edlink.tpl'),
[
'$editprofile' => L10n::t('Edit profile'),
'$editprofile' => DI::l10n()->t('Edit profile'),
'$profid' => $a->profile['id']
]
);
@ -391,15 +390,15 @@ class Profile
// show edit profile to yourself
if (!$is_contact && $local_user_is_self) {
if (Feature::isEnabled(local_user(), 'multi_profiles')) {
$profile['edit'] = [DI::baseUrl() . '/profiles', L10n::t('Profiles'), '', L10n::t('Manage/edit profiles')];
$profile['edit'] = [DI::baseUrl() . '/profiles', DI::l10n()->t('Profiles'), '', DI::l10n()->t('Manage/edit profiles')];
$r = q(
"SELECT * FROM `profile` WHERE `uid` = %d",
local_user()
);
$profile['menu'] = [
'chg_photo' => L10n::t('Change profile photo'),
'cr_new' => L10n::t('Create New Profile'),
'chg_photo' => DI::l10n()->t('Change profile photo'),
'cr_new' => DI::l10n()->t('Create New Profile'),
'entries' => [],
];
@ -408,18 +407,18 @@ class Profile
$profile['menu']['entries'][] = [
'photo' => $rr['thumb'],
'id' => $rr['id'],
'alt' => L10n::t('Profile Image'),
'alt' => DI::l10n()->t('Profile Image'),
'profile_name' => $rr['profile-name'],
'isdefault' => $rr['is-default'],
'visibile_to_everybody' => L10n::t('visible to everybody'),
'edit_visibility' => L10n::t('Edit visibility'),
'visibile_to_everybody' => DI::l10n()->t('visible to everybody'),
'edit_visibility' => DI::l10n()->t('Edit visibility'),
];
}
}
} else {
$profile['edit'] = [DI::baseUrl() . '/profiles/' . $profile['id'], L10n::t('Edit profile'), '', L10n::t('Edit profile')];
$profile['edit'] = [DI::baseUrl() . '/profiles/' . $profile['id'], DI::l10n()->t('Edit profile'), '', DI::l10n()->t('Edit profile')];
$profile['menu'] = [
'chg_photo' => L10n::t('Change profile photo'),
'chg_photo' => DI::l10n()->t('Change profile photo'),
'cr_new' => null,
'entries' => [],
];
@ -436,14 +435,14 @@ class Profile
|| !empty($profile['postal-code'])
|| !empty($profile['country-name'])
) {
$location = L10n::t('Location:');
$location = DI::l10n()->t('Location:');
}
$gender = !empty($profile['gender']) ? L10n::t('Gender:') : false;
$marital = !empty($profile['marital']) ? L10n::t('Status:') : false;
$homepage = !empty($profile['homepage']) ? L10n::t('Homepage:') : false;
$about = !empty($profile['about']) ? L10n::t('About:') : false;
$xmpp = !empty($profile['xmpp']) ? L10n::t('XMPP:') : false;
$gender = !empty($profile['gender']) ? DI::l10n()->t('Gender:') : false;
$marital = !empty($profile['marital']) ? DI::l10n()->t('Status:') : false;
$homepage = !empty($profile['homepage']) ? DI::l10n()->t('Homepage:') : false;
$about = !empty($profile['about']) ? DI::l10n()->t('About:') : false;
$xmpp = !empty($profile['xmpp']) ? DI::l10n()->t('XMPP:') : false;
if ((!empty($profile['hidewall']) || $block) && !Session::isAuthenticated()) {
$location = $gender = $marital = $homepage = $about = false;
@ -516,11 +515,11 @@ class Profile
}
if (isset($p['gender'])) {
$p['gender'] = L10n::t($p['gender']);
$p['gender'] = DI::l10n()->t($p['gender']);
}
if (isset($p['marital'])) {
$p['marital'] = L10n::t($p['marital']);
$p['marital'] = DI::l10n()->t($p['marital']);
}
if (isset($p['photo'])) {
@ -533,13 +532,13 @@ class Profile
$o .= Renderer::replaceMacros($tpl, [
'$profile' => $p,
'$xmpp' => $xmpp,
'$follow' => L10n::t('Follow'),
'$follow' => DI::l10n()->t('Follow'),
'$follow_link' => $follow_link,
'$unfollow' => L10n::t('Unfollow'),
'$unfollow' => DI::l10n()->t('Unfollow'),
'$unfollow_link' => $unfollow_link,
'$subscribe_feed' => L10n::t('Atom feed'),
'$subscribe_feed' => DI::l10n()->t('Atom feed'),
'$subscribe_feed_link' => $subscribe_feed_link,
'$wallmessage' => L10n::t('Message'),
'$wallmessage' => DI::l10n()->t('Message'),
'$wallmessage_link' => $wallmessage_link,
'$account_type' => $account_type,
'$location' => $location,
@ -547,7 +546,7 @@ class Profile
'$marital' => $marital,
'$homepage' => $homepage,
'$about' => $about,
'$network' => L10n::t('Network:'),
'$network' => DI::l10n()->t('Network:'),
'$contacts' => $contact_count,
'$updated' => $updated,
'$diaspora' => $diaspora,
@ -577,8 +576,8 @@ class Profile
* return $o;
*/
$bd_format = L10n::t('g A l F d'); // 8 AM Friday January 18
$bd_short = L10n::t('F d');
$bd_format = DI::l10n()->t('g A l F d'); // 8 AM Friday January 18
$bd_short = DI::l10n()->t('F d');
$cachekey = 'get_birthdays:' . local_user();
$r = DI::cache()->get($cachekey);
@ -640,7 +639,7 @@ class Profile
$rr['link'] = Contact::magicLink($rr['url']);
$rr['title'] = $rr['name'];
$rr['date'] = L10n::getDay(DateTimeFormat::convert($rr['start'], $a->timezone, 'UTC', $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ? ' ' . L10n::t('[today]') : '');
$rr['date'] = DI::l10n()->getDay(DateTimeFormat::convert($rr['start'], $a->timezone, 'UTC', $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ? ' ' . DI::l10n()->t('[today]') : '');
$rr['startime'] = null;
$rr['today'] = $today;
}
@ -650,8 +649,8 @@ class Profile
return Renderer::replaceMacros($tpl, [
'$classtoday' => $classtoday,
'$count' => $total,
'$event_reminders' => L10n::t('Birthday Reminders'),
'$event_title' => L10n::t('Birthdays this week:'),
'$event_reminders' => DI::l10n()->t('Birthday Reminders'),
'$event_title' => DI::l10n()->t('Birthdays this week:'),
'$events' => $r,
'$lbr' => '{', // raw brackets mess up if/endif macro processing
'$rbr' => '}'
@ -674,7 +673,7 @@ class Profile
* return $o;
*/
$bd_format = L10n::t('g A l F d'); // 8 AM Friday January 18
$bd_format = DI::l10n()->t('g A l F d'); // 8 AM Friday January 18
$classtoday = '';
$condition = ["`uid` = ? AND `type` != 'birthday' AND `start` < ? AND `start` >= ?",
@ -712,7 +711,7 @@ class Profile
$description = substr(strip_tags(BBCode::convert($rr['desc'])), 0, 32) . '... ';
if (!$description) {
$description = L10n::t('[No description]');
$description = DI::l10n()->t('[No description]');
}
$strt = DateTimeFormat::convert($rr['start'], $rr['adjust'] ? $a->timezone : 'UTC');
@ -725,7 +724,7 @@ class Profile
$rr['title'] = $title;
$rr['description'] = $description;
$rr['date'] = L10n::getDay(DateTimeFormat::convert($rr['start'], $rr['adjust'] ? $a->timezone : 'UTC', 'UTC', $bd_format)) . (($today) ? ' ' . L10n::t('[today]') : '');
$rr['date'] = DI::l10n()->getDay(DateTimeFormat::convert($rr['start'], $rr['adjust'] ? $a->timezone : 'UTC', 'UTC', $bd_format)) . (($today) ? ' ' . DI::l10n()->t('[today]') : '');
$rr['startime'] = $strt;
$rr['today'] = $today;
@ -738,8 +737,8 @@ class Profile
return Renderer::replaceMacros($tpl, [
'$classtoday' => $classtoday,
'$count' => count($r),
'$event_reminders' => L10n::t('Event Reminders'),
'$event_title' => L10n::t('Upcoming events the next 7 days:'),
'$event_reminders' => DI::l10n()->t('Event Reminders'),
'$event_title' => DI::l10n()->t('Upcoming events the next 7 days:'),
'$events' => $r,
]);
}
@ -753,38 +752,38 @@ class Profile
$profile = [];
$profile['fullname'] = [L10n::t('Full Name:'), $a->profile['name']];
$profile['fullname'] = [DI::l10n()->t('Full Name:'), $a->profile['name']];
if (Feature::isEnabled($uid, 'profile_membersince')) {
$profile['membersince'] = [L10n::t('Member since:'), DateTimeFormat::local($a->profile['register_date'])];
$profile['membersince'] = [DI::l10n()->t('Member since:'), DateTimeFormat::local($a->profile['register_date'])];
}
if ($a->profile['gender']) {
$profile['gender'] = [L10n::t('Gender:'), L10n::t($a->profile['gender'])];
$profile['gender'] = [DI::l10n()->t('Gender:'), DI::l10n()->t($a->profile['gender'])];
}
if (!empty($a->profile['dob']) && $a->profile['dob'] > DBA::NULL_DATE) {
$year_bd_format = L10n::t('j F, Y');
$short_bd_format = L10n::t('j F');
$year_bd_format = DI::l10n()->t('j F, Y');
$short_bd_format = DI::l10n()->t('j F');
$val = L10n::getDay(
$val = DI::l10n()->getDay(
intval($a->profile['dob']) ?
DateTimeFormat::utc($a->profile['dob'] . ' 00:00 +00:00', $year_bd_format)
: DateTimeFormat::utc('2001-' . substr($a->profile['dob'], 5) . ' 00:00 +00:00', $short_bd_format)
);
$profile['birthday'] = [L10n::t('Birthday:'), $val];
$profile['birthday'] = [DI::l10n()->t('Birthday:'), $val];
}
if (!empty($a->profile['dob'])
&& $a->profile['dob'] > DBA::NULL_DATE
&& $age = Temporal::getAgeByTimezone($a->profile['dob'], $a->profile['timezone'], '')
) {
$profile['age'] = [L10n::t('Age:'), $age];
$profile['age'] = [DI::l10n()->t('Age:'), $age];
}
if ($a->profile['marital']) {
$profile['marital'] = [L10n::t('Status:'), L10n::t($a->profile['marital'])];
$profile['marital'] = [DI::l10n()->t('Status:'), DI::l10n()->t($a->profile['marital'])];
}
/// @TODO Maybe use x() here, plus below?
@ -793,94 +792,94 @@ class Profile
}
if (strlen($a->profile['howlong']) && $a->profile['howlong'] > DBA::NULL_DATETIME) {
$profile['howlong'] = Temporal::getRelativeDate($a->profile['howlong'], L10n::t('for %1$d %2$s'));
$profile['howlong'] = Temporal::getRelativeDate($a->profile['howlong'], DI::l10n()->t('for %1$d %2$s'));
}
if ($a->profile['sexual']) {
$profile['sexual'] = [L10n::t('Sexual Preference:'), L10n::t($a->profile['sexual'])];
$profile['sexual'] = [DI::l10n()->t('Sexual Preference:'), DI::l10n()->t($a->profile['sexual'])];
}
if ($a->profile['homepage']) {
$profile['homepage'] = [L10n::t('Homepage:'), HTML::toLink($a->profile['homepage'])];
$profile['homepage'] = [DI::l10n()->t('Homepage:'), HTML::toLink($a->profile['homepage'])];
}
if ($a->profile['hometown']) {
$profile['hometown'] = [L10n::t('Hometown:'), HTML::toLink($a->profile['hometown'])];
$profile['hometown'] = [DI::l10n()->t('Hometown:'), HTML::toLink($a->profile['hometown'])];
}
if ($a->profile['pub_keywords']) {
$profile['pub_keywords'] = [L10n::t('Tags:'), $a->profile['pub_keywords']];
$profile['pub_keywords'] = [DI::l10n()->t('Tags:'), $a->profile['pub_keywords']];
}
if ($a->profile['politic']) {
$profile['politic'] = [L10n::t('Political Views:'), $a->profile['politic']];
$profile['politic'] = [DI::l10n()->t('Political Views:'), $a->profile['politic']];
}
if ($a->profile['religion']) {
$profile['religion'] = [L10n::t('Religion:'), $a->profile['religion']];
$profile['religion'] = [DI::l10n()->t('Religion:'), $a->profile['religion']];
}
if ($txt = BBCode::convert($a->profile['about'])) {
$profile['about'] = [L10n::t('About:'), $txt];
$profile['about'] = [DI::l10n()->t('About:'), $txt];
}
if ($txt = BBCode::convert($a->profile['interest'])) {
$profile['interest'] = [L10n::t('Hobbies/Interests:'), $txt];
$profile['interest'] = [DI::l10n()->t('Hobbies/Interests:'), $txt];
}
if ($txt = BBCode::convert($a->profile['likes'])) {
$profile['likes'] = [L10n::t('Likes:'), $txt];
$profile['likes'] = [DI::l10n()->t('Likes:'), $txt];
}
if ($txt = BBCode::convert($a->profile['dislikes'])) {
$profile['dislikes'] = [L10n::t('Dislikes:'), $txt];
$profile['dislikes'] = [DI::l10n()->t('Dislikes:'), $txt];
}
if ($txt = BBCode::convert($a->profile['contact'])) {
$profile['contact'] = [L10n::t('Contact information and Social Networks:'), $txt];
$profile['contact'] = [DI::l10n()->t('Contact information and Social Networks:'), $txt];
}
if ($txt = BBCode::convert($a->profile['music'])) {
$profile['music'] = [L10n::t('Musical interests:'), $txt];
$profile['music'] = [DI::l10n()->t('Musical interests:'), $txt];
}
if ($txt = BBCode::convert($a->profile['book'])) {
$profile['book'] = [L10n::t('Books, literature:'), $txt];
$profile['book'] = [DI::l10n()->t('Books, literature:'), $txt];
}
if ($txt = BBCode::convert($a->profile['tv'])) {
$profile['tv'] = [L10n::t('Television:'), $txt];
$profile['tv'] = [DI::l10n()->t('Television:'), $txt];
}
if ($txt = BBCode::convert($a->profile['film'])) {
$profile['film'] = [L10n::t('Film/dance/culture/entertainment:'), $txt];
$profile['film'] = [DI::l10n()->t('Film/dance/culture/entertainment:'), $txt];
}
if ($txt = BBCode::convert($a->profile['romance'])) {
$profile['romance'] = [L10n::t('Love/Romance:'), $txt];
$profile['romance'] = [DI::l10n()->t('Love/Romance:'), $txt];
}
if ($txt = BBCode::convert($a->profile['work'])) {
$profile['work'] = [L10n::t('Work/employment:'), $txt];
$profile['work'] = [DI::l10n()->t('Work/employment:'), $txt];
}
if ($txt = BBCode::convert($a->profile['education'])) {
$profile['education'] = [L10n::t('School/education:'), $txt];
$profile['education'] = [DI::l10n()->t('School/education:'), $txt];
}
//show subcribed forum if it is enabled in the usersettings
if (Feature::isEnabled($uid, 'forumlist_profile')) {
$profile['forumlist'] = [L10n::t('Forums:'), ForumManager::profileAdvanced($uid)];
$profile['forumlist'] = [DI::l10n()->t('Forums:'), ForumManager::profileAdvanced($uid)];
}
if ($a->profile['uid'] == local_user()) {
$profile['edit'] = [DI::baseUrl() . '/profiles/' . $a->profile['id'], L10n::t('Edit profile'), '', L10n::t('Edit profile')];
$profile['edit'] = [DI::baseUrl() . '/profiles/' . $a->profile['id'], DI::l10n()->t('Edit profile'), '', DI::l10n()->t('Edit profile')];
}
return Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Profile'),
'$basic' => L10n::t('Basic'),
'$advanced' => L10n::t('Advanced'),
'$title' => DI::l10n()->t('Profile'),
'$basic' => DI::l10n()->t('Basic'),
'$advanced' => DI::l10n()->t('Advanced'),
'$profile' => $profile
]);
}
@ -906,34 +905,34 @@ class Profile
$tabs = [
[
'label' => L10n::t('Status'),
'label' => DI::l10n()->t('Status'),
'url' => $baseProfileUrl,
'sel' => !$current ? 'active' : '',
'title' => L10n::t('Status Messages and Posts'),
'title' => DI::l10n()->t('Status Messages and Posts'),
'id' => 'status-tab',
'accesskey' => 'm',
],
[
'label' => L10n::t('Profile'),
'label' => DI::l10n()->t('Profile'),
'url' => $baseProfileUrl . '/?tab=profile',
'sel' => $current == 'profile' ? 'active' : '',
'title' => L10n::t('Profile Details'),
'title' => DI::l10n()->t('Profile Details'),
'id' => 'profile-tab',
'accesskey' => 'r',
],
[
'label' => L10n::t('Photos'),
'label' => DI::l10n()->t('Photos'),
'url' => DI::baseUrl() . '/photos/' . $nickname,
'sel' => $current == 'photos' ? 'active' : '',
'title' => L10n::t('Photo Albums'),
'title' => DI::l10n()->t('Photo Albums'),
'id' => 'photo-tab',
'accesskey' => 'h',
],
[
'label' => L10n::t('Videos'),
'label' => DI::l10n()->t('Videos'),
'url' => DI::baseUrl() . '/videos/' . $nickname,
'sel' => $current == 'videos' ? 'active' : '',
'title' => L10n::t('Videos'),
'title' => DI::l10n()->t('Videos'),
'id' => 'video-tab',
'accesskey' => 'v',
],
@ -942,10 +941,10 @@ class Profile
// the calendar link for the full featured events calendar
if ($is_owner && $a->theme_events_in_profile) {
$tabs[] = [
'label' => L10n::t('Events'),
'label' => DI::l10n()->t('Events'),
'url' => DI::baseUrl() . '/events',
'sel' => $current == 'events' ? 'active' : '',
'title' => L10n::t('Events and Calendar'),
'title' => DI::l10n()->t('Events and Calendar'),
'id' => 'events-tab',
'accesskey' => 'e',
];
@ -953,10 +952,10 @@ class Profile
// with the public events of the calendar owner
} elseif (!$is_owner) {
$tabs[] = [
'label' => L10n::t('Events'),
'label' => DI::l10n()->t('Events'),
'url' => DI::baseUrl() . '/cal/' . $nickname,
'sel' => $current == 'cal' ? 'active' : '',
'title' => L10n::t('Events and Calendar'),
'title' => DI::l10n()->t('Events and Calendar'),
'id' => 'events-tab',
'accesskey' => 'e',
];
@ -964,10 +963,10 @@ class Profile
if ($is_owner) {
$tabs[] = [
'label' => L10n::t('Personal Notes'),
'label' => DI::l10n()->t('Personal Notes'),
'url' => DI::baseUrl() . '/notes',
'sel' => $current == 'notes' ? 'active' : '',
'title' => L10n::t('Only You Can See This'),
'title' => DI::l10n()->t('Only You Can See This'),
'id' => 'notes-tab',
'accesskey' => 't',
];
@ -975,20 +974,20 @@ class Profile
if (!empty($_SESSION['new_member']) && $is_owner) {
$tabs[] = [
'label' => L10n::t('Tips for New Members'),
'label' => DI::l10n()->t('Tips for New Members'),
'url' => DI::baseUrl() . '/newmember',
'sel' => false,
'title' => L10n::t('Tips for New Members'),
'title' => DI::l10n()->t('Tips for New Members'),
'id' => 'newmember-tab',
];
}
if ($is_owner || empty($a->profile['hide-friends'])) {
$tabs[] = [
'label' => L10n::t('Contacts'),
'label' => DI::l10n()->t('Contacts'),
'url' => $baseProfileUrl . '/contacts',
'sel' => $current == 'contacts' ? 'active' : '',
'title' => L10n::t('Contacts'),
'title' => DI::l10n()->t('Contacts'),
'id' => 'viewcontacts-tab',
'accesskey' => 'k',
];
@ -1171,7 +1170,7 @@ class Profile
$a->contact = $arr['visitor'];
info(L10n::t('OpenWebAuth: %1$s welcomes %2$s', DI::baseUrl()->getHostname(), $visitor['name']));
info(DI::l10n()->t('OpenWebAuth: %1$s welcomes %2$s', DI::baseUrl()->getHostname(), $visitor['name']));
Logger::log('OpenWebAuth: auth success from ' . $visitor['addr'], Logger::DEBUG);
}

View file

@ -2,7 +2,7 @@
namespace Friendica\Model\Storage;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Psr\Log\LoggerInterface;
/**

View file

@ -6,7 +6,7 @@
namespace Friendica\Model\Storage;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Psr\Log\LoggerInterface;
use Friendica\Database\Database as DBA;

View file

@ -7,7 +7,7 @@
namespace Friendica\Model\Storage;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Util\Strings;
use Psr\Log\LoggerInterface;

View file

@ -11,7 +11,6 @@ use DivineOmega\PasswordExposed;
use Exception;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\System;
@ -354,7 +353,7 @@ class User
return $user['uid'];
}
throw new Exception(L10n::t('Login failed'));
throw new Exception(DI::l10n()->t('Login failed'));
}
/**
@ -386,7 +385,7 @@ class User
|| !isset($user['password'])
|| !isset($user['legacy_password'])
) {
throw new Exception(L10n::t('Not enough information to authenticate'));
throw new Exception(DI::l10n()->t('Not enough information to authenticate'));
}
} elseif (is_int($user_info) || is_string($user_info)) {
if (is_int($user_info)) {
@ -412,7 +411,7 @@ class User
}
if (!DBA::isResult($user)) {
throw new Exception(L10n::t('User not found'));
throw new Exception(DI::l10n()->t('User not found'));
}
}
@ -480,7 +479,7 @@ class User
public static function hashPassword($password)
{
if (!trim($password)) {
throw new Exception(L10n::t('Password can\'t be empty'));
throw new Exception(DI::l10n()->t('Password can\'t be empty'));
}
return password_hash($password, PASSWORD_DEFAULT);
@ -499,17 +498,17 @@ class User
$password = trim($password);
if (empty($password)) {
throw new Exception(L10n::t('Empty passwords are not allowed.'));
throw new Exception(DI::l10n()->t('Empty passwords are not allowed.'));
}
if (!Config::get('system', 'disable_password_exposed', false) && self::isPasswordExposed($password)) {
throw new Exception(L10n::t('The new password has been exposed in a public data dump, please choose another.'));
throw new Exception(DI::l10n()->t('The new password has been exposed in a public data dump, please choose another.'));
}
$allowed_characters = '!"#$%&\'()*+,-./;<=>?@[\]^_`{|}~';
if (!preg_match('/^[a-z0-9' . preg_quote($allowed_characters, '/') . ']+$/i', $password)) {
throw new Exception(L10n::t('The password can\'t contain accentuated letters, white spaces or colons (:)'));
throw new Exception(DI::l10n()->t('The password can\'t contain accentuated letters, white spaces or colons (:)'));
}
return self::updatePasswordHashed($uid, self::hashPassword($password));
@ -608,18 +607,18 @@ class User
$netpublish = $publish && Config::get('system', 'directory');
if ($password1 != $confirm) {
throw new Exception(L10n::t('Passwords do not match. Password unchanged.'));
throw new Exception(DI::l10n()->t('Passwords do not match. Password unchanged.'));
} elseif ($password1 != '') {
$password = $password1;
}
if ($using_invites) {
if (!$invite_id) {
throw new Exception(L10n::t('An invitation is required.'));
throw new Exception(DI::l10n()->t('An invitation is required.'));
}
if (!Register::existsByHash($invite_id)) {
throw new Exception(L10n::t('Invitation could not be verified.'));
throw new Exception(DI::l10n()->t('Invitation could not be verified.'));
}
}
@ -627,7 +626,7 @@ class User
if (empty($username) || empty($email) || empty($nickname)) {
if ($openid_url) {
if (!Network::isUrlValid($openid_url)) {
throw new Exception(L10n::t('Invalid OpenID url'));
throw new Exception(DI::l10n()->t('Invalid OpenID url'));
}
$_SESSION['register'] = 1;
$_SESSION['openid'] = $openid_url;
@ -640,13 +639,13 @@ class User
try {
$authurl = $openid->authUrl();
} catch (Exception $e) {
throw new Exception(L10n::t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.') . EOL . EOL . L10n::t('The error message was:') . $e->getMessage(), 0, $e);
throw new Exception(DI::l10n()->t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.') . EOL . EOL . DI::l10n()->t('The error message was:') . $e->getMessage(), 0, $e);
}
System::externalRedirect($authurl);
// NOTREACHED
}
throw new Exception(L10n::t('Please enter the required information.'));
throw new Exception(DI::l10n()->t('Please enter the required information.'));
}
if (!Network::isUrlValid($openid_url)) {
@ -660,18 +659,18 @@ class User
$username_max_length = max(1, min(64, intval(Config::get('system', 'username_max_length', 48))));
if ($username_min_length > $username_max_length) {
Logger::log(L10n::t('system.username_min_length (%s) and system.username_max_length (%s) are excluding each other, swapping values.', $username_min_length, $username_max_length), Logger::WARNING);
Logger::log(DI::l10n()->t('system.username_min_length (%s) and system.username_max_length (%s) are excluding each other, swapping values.', $username_min_length, $username_max_length), Logger::WARNING);
$tmp = $username_min_length;
$username_min_length = $username_max_length;
$username_max_length = $tmp;
}
if (mb_strlen($username) < $username_min_length) {
throw new Exception(L10n::tt('Username should be at least %s character.', 'Username should be at least %s characters.', $username_min_length));
throw new Exception(DI::l10n()->tt('Username should be at least %s character.', 'Username should be at least %s characters.', $username_min_length));
}
if (mb_strlen($username) > $username_max_length) {
throw new Exception(L10n::tt('Username should be at most %s character.', 'Username should be at most %s characters.', $username_max_length));
throw new Exception(DI::l10n()->tt('Username should be at most %s character.', 'Username should be at most %s characters.', $username_max_length));
}
// So now we are just looking for a space in the full name.
@ -679,23 +678,23 @@ class User
if (!$loose_reg) {
$username = mb_convert_case($username, MB_CASE_TITLE, 'UTF-8');
if (strpos($username, ' ') === false) {
throw new Exception(L10n::t("That doesn't appear to be your full (First Last) name."));
throw new Exception(DI::l10n()->t("That doesn't appear to be your full (First Last) name."));
}
}
if (!Network::isEmailDomainAllowed($email)) {
throw new Exception(L10n::t('Your email domain is not among those allowed on this site.'));
throw new Exception(DI::l10n()->t('Your email domain is not among those allowed on this site.'));
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL) || !Network::isEmailDomainValid($email)) {
throw new Exception(L10n::t('Not a valid email address.'));
throw new Exception(DI::l10n()->t('Not a valid email address.'));
}
if (self::isNicknameBlocked($nickname)) {
throw new Exception(L10n::t('The nickname was blocked from registration by the nodes admin.'));
throw new Exception(DI::l10n()->t('The nickname was blocked from registration by the nodes admin.'));
}
if (Config::get('system', 'block_extended_register', false) && DBA::exists('user', ['email' => $email])) {
throw new Exception(L10n::t('Cannot use that email.'));
throw new Exception(DI::l10n()->t('Cannot use that email.'));
}
// Disallow somebody creating an account using openid that uses the admin email address,
@ -703,14 +702,14 @@ class User
if (Config::get('config', 'admin_email') && strlen($openid_url)) {
$adminlist = explode(',', str_replace(' ', '', strtolower(Config::get('config', 'admin_email'))));
if (in_array(strtolower($email), $adminlist)) {
throw new Exception(L10n::t('Cannot use that email.'));
throw new Exception(DI::l10n()->t('Cannot use that email.'));
}
}
$nickname = $data['nickname'] = strtolower($nickname);
if (!preg_match('/^[a-z0-9][a-z0-9\_]*$/', $nickname)) {
throw new Exception(L10n::t('Your nickname can only contain a-z, 0-9 and _.'));
throw new Exception(DI::l10n()->t('Your nickname can only contain a-z, 0-9 and _.'));
}
// Check existing and deleted accounts for this nickname.
@ -718,7 +717,7 @@ class User
DBA::exists('user', ['nickname' => $nickname])
|| DBA::exists('userd', ['username' => $nickname])
) {
throw new Exception(L10n::t('Nickname is already registered. Please choose another.'));
throw new Exception(DI::l10n()->t('Nickname is already registered. Please choose another.'));
}
$new_password = strlen($password) ? $password : User::generateNewPassword();
@ -728,7 +727,7 @@ class User
$keys = Crypto::newKeypair(4096);
if ($keys === false) {
throw new Exception(L10n::t('SERIOUS ERROR: Generation of security keys failed.'));
throw new Exception(DI::l10n()->t('SERIOUS ERROR: Generation of security keys failed.'));
}
$prvkey = $keys['prvkey'];
@ -762,11 +761,11 @@ class User
$uid = DBA::lastInsertId();
$user = DBA::selectFirst('user', [], ['uid' => $uid]);
} else {
throw new Exception(L10n::t('An error occurred during registration. Please try again.'));
throw new Exception(DI::l10n()->t('An error occurred during registration. Please try again.'));
}
if (!$uid) {
throw new Exception(L10n::t('An error occurred during registration. Please try again.'));
throw new Exception(DI::l10n()->t('An error occurred during registration. Please try again.'));
}
// if somebody clicked submit twice very quickly, they could end up with two accounts
@ -775,7 +774,7 @@ class User
if ($user_count > 1) {
DBA::delete('user', ['uid' => $uid]);
throw new Exception(L10n::t('Nickname is already registered. Please choose another.'));
throw new Exception(DI::l10n()->t('Nickname is already registered. Please choose another.'));
}
$insert_result = DBA::insert('profile', [
@ -786,28 +785,28 @@ class User
'publish' => $publish,
'is-default' => 1,
'net-publish' => $netpublish,
'profile-name' => L10n::t('default')
'profile-name' => DI::l10n()->t('default')
]);
if (!$insert_result) {
DBA::delete('user', ['uid' => $uid]);
throw new Exception(L10n::t('An error occurred creating your default profile. Please try again.'));
throw new Exception(DI::l10n()->t('An error occurred creating your default profile. Please try again.'));
}
// Create the self contact
if (!Contact::createSelfFromUserId($uid)) {
DBA::delete('user', ['uid' => $uid]);
throw new Exception(L10n::t('An error occurred creating your self contact. Please try again.'));
throw new Exception(DI::l10n()->t('An error occurred creating your self contact. Please try again.'));
}
// Create a group with no members. This allows somebody to use it
// right away as a default group for new contacts.
$def_gid = Group::create($uid, L10n::t('Friends'));
$def_gid = Group::create($uid, DI::l10n()->t('Friends'));
if (!$def_gid) {
DBA::delete('user', ['uid' => $uid]);
throw new Exception(L10n::t('An error occurred creating your default contact group. Please try again.'));
throw new Exception(DI::l10n()->t('An error occurred creating your default contact group. Please try again.'));
}
$fields = ['def_gid' => $def_gid];
@ -837,7 +836,7 @@ class User
$resource_id = Photo::newResource();
$r = Photo::store($Image, $uid, 0, $resource_id, $filename, L10n::t('Profile Photos'), 4);
$r = Photo::store($Image, $uid, 0, $resource_id, $filename, DI::l10n()->t('Profile Photos'), 4);
if ($r === false) {
$photo_failure = true;
@ -845,7 +844,7 @@ class User
$Image->scaleDown(80);
$r = Photo::store($Image, $uid, 0, $resource_id, $filename, L10n::t('Profile Photos'), 5);
$r = Photo::store($Image, $uid, 0, $resource_id, $filename, DI::l10n()->t('Profile Photos'), 5);
if ($r === false) {
$photo_failure = true;
@ -853,7 +852,7 @@ class User
$Image->scaleDown(48);
$r = Photo::store($Image, $uid, 0, $resource_id, $filename, L10n::t('Profile Photos'), 6);
$r = Photo::store($Image, $uid, 0, $resource_id, $filename, DI::l10n()->t('Profile Photos'), 6);
if ($r === false) {
$photo_failure = true;
@ -883,7 +882,7 @@ class User
*/
public static function sendRegisterPendingEmail($user, $sitename, $siteurl, $password)
{
$body = Strings::deindent(L10n::t(
$body = Strings::deindent(DI::l10n()->t(
'
Dear %1$s,
Thank you for registering at %2$s. Your account is pending for approval by the administrator.
@ -905,7 +904,7 @@ class User
'type' => SYSTEM_EMAIL,
'uid' => $user['uid'],
'to_email' => $user['email'],
'subject' => L10n::t('Registration at %s', $sitename),
'subject' => DI::l10n()->t('Registration at %s', $sitename),
'body' => $body
]);
}
@ -915,15 +914,16 @@ class User
*
* It's here as a function because the mail is sent from different parts
*
* @param L10n\L10n $l10n The used language
* @param array $user User record array
* @param string $sitename
* @param string $siteurl
* @param string $password Plaintext password
* @param \Friendica\Core\L10n $l10n The used language
* @param array $user User record array
* @param string $sitename
* @param string $siteurl
* @param string $password Plaintext password
*
* @return NULL|boolean from notification() and email() inherited
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function sendRegisterOpenEmail(L10n\L10n $l10n, $user, $sitename, $siteurl, $password)
public static function sendRegisterOpenEmail(\Friendica\Core\L10n $l10n, $user, $sitename, $siteurl, $password)
{
$preamble = Strings::deindent($l10n->t(
'
@ -973,7 +973,7 @@ class User
'language' => $user['language'],
'type' => SYSTEM_EMAIL,
'to_email' => $user['email'],
'subject' => L10n::t('Registration details for %s', $sitename),
'subject' => DI::l10n()->t('Registration details for %s', $sitename),
'preamble' => $preamble,
'body' => $body
]);

View file

@ -4,7 +4,6 @@ namespace Friendica\Module\Admin\Addons;
use Friendica\Content\Text\Markdown;
use Friendica\Core\Addon;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -49,7 +48,7 @@ class Details extends BaseAdminModule
$addon = $a->argv[2];
$addon = Strings::sanitizeFilePathItem($addon);
if (!is_file("addon/$addon/$addon.php")) {
notice(L10n::t('Addon not found.'));
notice(DI::l10n()->t('Addon not found.'));
Addon::uninstall($addon);
DI::baseUrl()->redirect('admin/addons');
}
@ -60,10 +59,10 @@ class Details extends BaseAdminModule
// Toggle addon status
if (Addon::isEnabled($addon)) {
Addon::uninstall($addon);
info(L10n::t('Addon %s disabled.', $addon));
info(DI::l10n()->t('Addon %s disabled.', $addon));
} else {
Addon::install($addon);
info(L10n::t('Addon %s enabled.', $addon));
info(DI::l10n()->t('Addon %s enabled.', $addon));
}
Addon::saveEnabledList();
@ -74,10 +73,10 @@ class Details extends BaseAdminModule
// display addon details
if (Addon::isEnabled($addon)) {
$status = 'on';
$action = L10n::t('Disable');
$action = DI::l10n()->t('Disable');
} else {
$status = 'off';
$action = L10n::t('Enable');
$action = DI::l10n()->t('Enable');
}
$readme = null;
@ -97,18 +96,18 @@ class Details extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/addons/details.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Addons'),
'$toggle' => L10n::t('Toggle'),
'$settings' => L10n::t('Settings'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Addons'),
'$toggle' => DI::l10n()->t('Toggle'),
'$settings' => DI::l10n()->t('Settings'),
'$baseurl' => DI::baseUrl()->get(true),
'$addon' => $addon,
'$status' => $status,
'$action' => $action,
'$info' => Addon::getInfo($addon),
'$str_author' => L10n::t('Author: '),
'$str_maintainer' => L10n::t('Maintainer: '),
'$str_author' => DI::l10n()->t('Author: '),
'$str_maintainer' => DI::l10n()->t('Maintainer: '),
'$admin_form' => $admin_form,
'$function' => 'addons',

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin\Addons;
use Friendica\Core\Addon;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -28,11 +27,11 @@ class Index extends BaseAdminModule
$addon = $_GET['addon'] ?? '';
if (Addon::isEnabled($addon)) {
Addon::uninstall($addon);
info(L10n::t('Addon %s disabled.', $addon));
info(DI::l10n()->t('Addon %s disabled.', $addon));
} elseif (Addon::install($addon)) {
info(L10n::t('Addon %s enabled.', $addon));
info(DI::l10n()->t('Addon %s enabled.', $addon));
} else {
info(L10n::t('Addon %s failed to install.', $addon));
info(DI::l10n()->t('Addon %s failed to install.', $addon));
}
break;
@ -46,15 +45,15 @@ class Index extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/addons/index.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Addons'),
'$submit' => L10n::t('Save Settings'),
'$reload' => L10n::t('Reload active addons'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Addons'),
'$submit' => DI::l10n()->t('Save Settings'),
'$reload' => DI::l10n()->t('Reload active addons'),
'$baseurl' => DI::baseUrl()->get(true),
'$function' => 'addons',
'$addons' => $addons,
'$pcount' => count($addons),
'$noplugshint' => L10n::t('There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s', 'https://github.com/friendica/friendica-addons', 'http://addons.friendi.ca'),
'$noplugshint' => DI::l10n()->t('There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s', 'https://github.com/friendica/friendica-addons', 'http://addons.friendi.ca'),
'$form_security_token' => parent::getFormSecurityToken('admin_addons'),
]);
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin\Blocklist;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -26,9 +25,9 @@ class Contact extends BaseAdminModule
$contact_id = Model\Contact::getIdForURL($contact_url);
if ($contact_id) {
Model\Contact::block($contact_id, $block_reason);
notice(L10n::t('The contact has been blocked from the node'));
notice(DI::l10n()->t('The contact has been blocked from the node'));
} else {
notice(L10n::t('Could not find any contact entry for this URL (%s)', $contact_url));
notice(DI::l10n()->t('Could not find any contact entry for this URL (%s)', $contact_url));
}
}
@ -36,7 +35,7 @@ class Contact extends BaseAdminModule
foreach ($contacts as $uid) {
Model\Contact::unblock($uid);
}
notice(L10n::tt('%s contact unblocked', '%s contacts unblocked', count($contacts)));
notice(DI::l10n()->tt('%s contact unblocked', '%s contacts unblocked', count($contacts)));
}
DI::baseUrl()->redirect('admin/blocklist/contact');
@ -57,19 +56,19 @@ class Contact extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl');
$o = Renderer::replaceMacros($t, [
// strings //
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Remote Contact Blocklist'),
'$description' => L10n::t('This page allows you to prevent any message from a remote contact to reach your node.'),
'$submit' => L10n::t('Block Remote Contact'),
'$select_all' => L10n::t('select all'),
'$select_none' => L10n::t('select none'),
'$block' => L10n::t('Block'),
'$unblock' => L10n::t('Unblock'),
'$no_data' => L10n::t('No remote contact is blocked from this node.'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Remote Contact Blocklist'),
'$description' => DI::l10n()->t('This page allows you to prevent any message from a remote contact to reach your node.'),
'$submit' => DI::l10n()->t('Block Remote Contact'),
'$select_all' => DI::l10n()->t('select all'),
'$select_none' => DI::l10n()->t('select none'),
'$block' => DI::l10n()->t('Block'),
'$unblock' => DI::l10n()->t('Unblock'),
'$no_data' => DI::l10n()->t('No remote contact is blocked from this node.'),
'$h_contacts' => L10n::t('Blocked Remote Contacts'),
'$h_newblock' => L10n::t('Block New Remote Contact'),
'$th_contacts' => [L10n::t('Photo'), L10n::t('Name'), L10n::t('Reason')],
'$h_contacts' => DI::l10n()->t('Blocked Remote Contacts'),
'$h_newblock' => DI::l10n()->t('Block New Remote Contact'),
'$th_contacts' => [DI::l10n()->t('Photo'), DI::l10n()->t('Name'), DI::l10n()->t('Reason')],
'$form_security_token' => parent::getFormSecurityToken('admin_contactblock'),
@ -77,10 +76,10 @@ class Contact extends BaseAdminModule
'$baseurl' => DI::baseUrl()->get(true),
'$contacts' => $contacts,
'$total_contacts' => L10n::tt('%s total blocked contact', '%s total blocked contacts', $total),
'$total_contacts' => DI::l10n()->tt('%s total blocked contact', '%s total blocked contacts', $total),
'$paginate' => $pager->renderFull($total),
'$contacturl' => ['contact_url', L10n::t('Profile URL'), '', L10n::t('URL of the remote contact to block.')],
'$contact_block_reason' => ['contact_block_reason', L10n::t('Block Reason')],
'$contacturl' => ['contact_url', DI::l10n()->t('Profile URL'), '', DI::l10n()->t('URL of the remote contact to block.')],
'$contact_block_reason' => ['contact_block_reason', DI::l10n()->t('Block Reason')],
]);
return $o;
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin\Blocklist;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -29,7 +28,7 @@ class Server extends BaseAdminModule
'reason' => Strings::escapeTags(trim($_POST['newentry_reason']))
];
Config::set('system', 'blocklist', $blocklist);
info(L10n::t('Server domain pattern added to blocklist.') . EOL);
info(DI::l10n()->t('Server domain pattern added to blocklist.') . EOL);
} else {
// Edit the entries from blocklist
$blocklist = [];
@ -45,7 +44,7 @@ class Server extends BaseAdminModule
}
}
Config::set('system', 'blocklist', $blocklist);
info(L10n::t('Site blocklist updated.') . EOL);
info(DI::l10n()->t('Site blocklist updated.') . EOL);
}
DI::baseUrl()->redirect('admin/blocklist/server');
@ -60,37 +59,37 @@ class Server extends BaseAdminModule
if (is_array($blocklist)) {
foreach ($blocklist as $id => $b) {
$blocklistform[] = [
'domain' => ["domain[$id]", L10n::t('Blocked server domain pattern'), $b['domain'], '', 'required', '', ''],
'reason' => ["reason[$id]", L10n::t("Reason for the block"), $b['reason'], '', 'required', '', ''],
'delete' => ["delete[$id]", L10n::t("Delete server domain pattern") . ' (' . $b['domain'] . ')', false, L10n::t("Check to delete this entry from the blocklist")]
'domain' => ["domain[$id]", DI::l10n()->t('Blocked server domain pattern'), $b['domain'], '', 'required', '', ''],
'reason' => ["reason[$id]", DI::l10n()->t("Reason for the block"), $b['reason'], '', 'required', '', ''],
'delete' => ["delete[$id]", DI::l10n()->t("Delete server domain pattern") . ' (' . $b['domain'] . ')', false, DI::l10n()->t("Check to delete this entry from the blocklist")]
];
}
}
$t = Renderer::getMarkupTemplate('admin/blocklist/server.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Server Domain Pattern Blocklist'),
'$intro' => L10n::t('This page can be used to define a blacklist of server domain patterns from the federated network that are not allowed to interact with your node. For each domain pattern you should also provide the reason why you block it.'),
'$public' => L10n::t('The list of blocked server domain patterns will be made publically available on the <a href="/friendica">/friendica</a> page so that your users and people investigating communication problems can find the reason easily.'),
'$syntax' => L10n::t('<p>The server domain pattern syntax is case-insensitive shell wildcard, comprising the following special characters:</p>
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Server Domain Pattern Blocklist'),
'$intro' => DI::l10n()->t('This page can be used to define a blacklist of server domain patterns from the federated network that are not allowed to interact with your node. For each domain pattern you should also provide the reason why you block it.'),
'$public' => DI::l10n()->t('The list of blocked server domain patterns will be made publically available on the <a href="/friendica">/friendica</a> page so that your users and people investigating communication problems can find the reason easily.'),
'$syntax' => DI::l10n()->t('<p>The server domain pattern syntax is case-insensitive shell wildcard, comprising the following special characters:</p>
<ul>
<li><code>*</code>: Any number of characters</li>
<li><code>?</code>: Any single character</li>
<li><code>[&lt;char1&gt;&lt;char2&gt;...]</code>: char1 or char2</li>
</ul>'),
'$addtitle' => L10n::t('Add new entry to block list'),
'$newdomain' => ['newentry_domain', L10n::t('Server Domain Pattern'), '', L10n::t('The domain pattern of the new server to add to the block list. Do not include the protocol.'), 'required', '', ''],
'$newreason' => ['newentry_reason', L10n::t('Block reason'), '', L10n::t('The reason why you blocked this server domain pattern.'), 'required', '', ''],
'$submit' => L10n::t('Add Entry'),
'$savechanges' => L10n::t('Save changes to the blocklist'),
'$currenttitle' => L10n::t('Current Entries in the Blocklist'),
'$thurl' => L10n::t('Blocked server domain pattern'),
'$threason' => L10n::t('Reason for the block'),
'$delentry' => L10n::t('Delete entry from blocklist'),
'$addtitle' => DI::l10n()->t('Add new entry to block list'),
'$newdomain' => ['newentry_domain', DI::l10n()->t('Server Domain Pattern'), '', DI::l10n()->t('The domain pattern of the new server to add to the block list. Do not include the protocol.'), 'required', '', ''],
'$newreason' => ['newentry_reason', DI::l10n()->t('Block reason'), '', DI::l10n()->t('The reason why you blocked this server domain pattern.'), 'required', '', ''],
'$submit' => DI::l10n()->t('Add Entry'),
'$savechanges' => DI::l10n()->t('Save changes to the blocklist'),
'$currenttitle' => DI::l10n()->t('Current Entries in the Blocklist'),
'$thurl' => DI::l10n()->t('Blocked server domain pattern'),
'$threason' => DI::l10n()->t('Reason for the block'),
'$delentry' => DI::l10n()->t('Delete entry from blocklist'),
'$entries' => $blocklistform,
'$baseurl' => DI::baseUrl()->get(true),
'$confirm_delete' => L10n::t('Delete entry from blocklist?'),
'$confirm_delete' => DI::l10n()->t('Delete entry from blocklist?'),
'$form_security_token' => parent::getFormSecurityToken("admin_blocklist")
]);
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Update;
use Friendica\Database\DBA;
@ -30,7 +29,7 @@ class DBSync extends BaseAdminModule
if (intval($curr) == $update) {
Config::set('system', 'build', intval($curr) + 1);
}
info(L10n::t('Update has been marked successful') . EOL);
info(DI::l10n()->t('Update has been marked successful') . EOL);
}
DI::baseUrl()->redirect('admin/dbsync');
}
@ -40,11 +39,11 @@ class DBSync extends BaseAdminModule
// @TODO Seems like a similar logic like Update::check()
$retval = DBStructure::update($a->getBasePath(), false, true);
if ($retval === '') {
$o .= L10n::t("Database structure update %s was successfully applied.", DB_UPDATE_VERSION) . "<br />";
$o .= DI::l10n()->t("Database structure update %s was successfully applied.", DB_UPDATE_VERSION) . "<br />";
Config::set('database', 'last_successful_update', DB_UPDATE_VERSION);
Config::set('database', 'last_successful_update_time', time());
} else {
$o .= L10n::t("Executing of database structure update %s failed with error: %s", DB_UPDATE_VERSION, $retval) . "<br />";
$o .= DI::l10n()->t("Executing of database structure update %s failed with error: %s", DB_UPDATE_VERSION, $retval) . "<br />";
}
if ($a->argv[2] === 'check') {
return $o;
@ -61,15 +60,15 @@ class DBSync extends BaseAdminModule
$retval = $func();
if ($retval === Update::FAILED) {
$o .= L10n::t("Executing %s failed with error: %s", $func, $retval);
$o .= DI::l10n()->t("Executing %s failed with error: %s", $func, $retval);
} elseif ($retval === Update::SUCCESS) {
$o .= L10n::t('Update %s was successfully applied.', $func);
$o .= DI::l10n()->t('Update %s was successfully applied.', $func);
Config::set('database', $func, 'success');
} else {
$o .= L10n::t('Update %s did not return a status. Unknown if it succeeded.', $func);
$o .= DI::l10n()->t('Update %s did not return a status. Unknown if it succeeded.', $func);
}
} else {
$o .= L10n::t('There was no additional update function %s that needed to be called.', $func) . "<br />";
$o .= DI::l10n()->t('There was no additional update function %s that needed to be called.', $func) . "<br />";
Config::set('database', $func, 'success');
}
@ -89,16 +88,16 @@ class DBSync extends BaseAdminModule
if (!count($failed)) {
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/structure_check.tpl'), [
'$base' => DI::baseUrl()->get(true),
'$banner' => L10n::t('No failed updates.'),
'$check' => L10n::t('Check database structure'),
'$banner' => DI::l10n()->t('No failed updates.'),
'$check' => DI::l10n()->t('Check database structure'),
]);
} else {
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/failed_updates.tpl'), [
'$base' => DI::baseUrl()->get(true),
'$banner' => L10n::t('Failed Updates'),
'$desc' => L10n::t('This does not include updates prior to 1139, which did not return a status.'),
'$mark' => L10n::t("Mark success \x28if update was manually applied\x29"),
'$apply' => L10n::t('Attempt to execute this update step automatically'),
'$banner' => DI::l10n()->t('Failed Updates'),
'$desc' => DI::l10n()->t('This does not include updates prior to 1139, which did not return a status.'),
'$mark' => DI::l10n()->t("Mark success \x28if update was manually applied\x29"),
'$apply' => DI::l10n()->t('Attempt to execute this update step automatically'),
'$failed' => $failed
]);
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module\Admin;
use Friendica\Content\Feature;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -56,8 +55,8 @@ class Features extends BaseAdminModule
foreach (array_slice($fdata, 1) as $f) {
$set = Config::get('feature', $f[0], $f[3]);
$arr[$fname][1][] = [
['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]],
['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]]
['feature_' . $f[0], $f[1], $set, $f[2], [DI::l10n()->t('Off'), DI::l10n()->t('On')]],
['featurelock_' . $f[0], DI::l10n()->t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [DI::l10n()->t('Off'), DI::l10n()->t('On')]]
];
}
}
@ -65,9 +64,9 @@ class Features extends BaseAdminModule
$tpl = Renderer::getMarkupTemplate('admin/features.tpl');
$o = Renderer::replaceMacros($tpl, [
'$form_security_token' => parent::getFormSecurityToken("admin_manage_features"),
'$title' => L10n::t('Manage Additional Features'),
'$title' => DI::l10n()->t('Manage Additional Features'),
'$features' => $arr,
'$submit' => L10n::t('Save Settings'),
'$submit' => DI::l10n()->t('Save Settings'),
]);
return $o;

View file

@ -3,9 +3,9 @@
namespace Friendica\Module\Admin;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
class Federation extends BaseAdminModule
@ -31,7 +31,7 @@ class Federation extends BaseAdminModule
'socialhome' => ['name' => 'SocialHome', 'color' => '#52056b'], // lilac from the Django Image used at the Socialhome homepage
'wordpress' => ['name' => 'WordPress', 'color' => '#016087'], // Background color of the homepage
'writefreely' => ['name' => 'WriteFreely', 'color' => '#292929'], // Font color of the homepage
'other' => ['name' => L10n::t('Other'), 'color' => '#F1007E'], // ActivityPub main color
'other' => ['name' => DI::l10n()->t('Other'), 'color' => '#F1007E'], // ActivityPub main color
];
$platforms = array_keys($systems);
@ -85,7 +85,7 @@ class Federation extends BaseAdminModule
if ($platform != $gserver['platform']) {
if ($platform == 'other') {
$versionCounts = $counts[$platform][1] ?? [];
$versionCounts[] = ['version' => $gserver['platform'] ?: L10n::t('unknown'), 'total' => $gserver['total']];
$versionCounts[] = ['version' => $gserver['platform'] ?: DI::l10n()->t('unknown'), 'total' => $gserver['total']];
$gserver['version'] = '';
} else {
$versionCounts = array_merge($versionCounts, $counts[$platform][1] ?? []);
@ -113,20 +113,20 @@ class Federation extends BaseAdminModule
DBA::close($gserver);
// some helpful text
$intro = L10n::t('This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of.');
$hint = L10n::t('The <em>Auto Discovered Contact Directory</em> feature is not enabled, it will improve the data displayed here.');
$intro = DI::l10n()->t('This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of.');
$hint = DI::l10n()->t('The <em>Auto Discovered Contact Directory</em> feature is not enabled, it will improve the data displayed here.');
// load the template, replace the macros and return the page content
$t = Renderer::getMarkupTemplate('admin/federation.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Federation Statistics'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Federation Statistics'),
'$intro' => $intro,
'$hint' => $hint,
'$autoactive' => Config::get('system', 'poco_completion'),
'$counts' => $counts,
'$version' => FRIENDICA_VERSION,
'$legendtext' => L10n::t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users),
'$legendtext' => DI::l10n()->t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users),
]);
}
@ -247,7 +247,7 @@ class Federation extends BaseAdminModule
// to the version string for the displayed list.
foreach ($versionCounts as $key => $value) {
if ($versionCounts[$key]['version'] == '') {
$versionCounts[$key] = ['total' => $versionCounts[$key]['total'], 'version' => L10n::t('unknown')];
$versionCounts[$key] = ['total' => $versionCounts[$key]['total'], 'version' => DI::l10n()->t('unknown')];
}
}

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Admin\Item;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model\Item;
@ -33,7 +32,7 @@ class Delete extends BaseAdminModule
Item::delete(['guid' => $guid]);
}
info(L10n::t('Item marked for deletion.') . EOL);
info(DI::l10n()->t('Item marked for deletion.') . EOL);
DI::baseUrl()->redirect('admin/item/delete');
}
@ -44,12 +43,12 @@ class Delete extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/item/delete.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Delete Item'),
'$submit' => L10n::t('Delete this Item'),
'$intro1' => L10n::t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'),
'$intro2' => L10n::t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'),
'$deleteitemguid' => ['deleteitemguid', L10n::t("GUID"), '', L10n::t("The GUID of the item you want to delete."), 'required', 'autofocus'],
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Delete Item'),
'$submit' => DI::l10n()->t('Delete this Item'),
'$intro1' => DI::l10n()->t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'),
'$intro2' => DI::l10n()->t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'),
'$deleteitemguid' => ['deleteitemguid', DI::l10n()->t("GUID"), '', DI::l10n()->t("The GUID of the item you want to delete."), 'required', 'autofocus'],
'$form_security_token' => parent::getFormSecurityToken("admin_deleteitem")
]);
}

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Admin\Item;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model;
@ -45,7 +44,7 @@ class Source extends BaseAdminModule
$tpl = Renderer::getMarkupTemplate('admin/item/source.tpl');
$o = Renderer::replaceMacros($tpl, [
'$guid' => ['guid', L10n::t('Item Guid'), $guid, ''],
'$guid' => ['guid', DI::l10n()->t('Item Guid'), $guid, ''],
'$source' => $source,
'$item_uri' => $item_uri,
'$item_id' => $item_id,

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin\Logs;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -25,7 +24,7 @@ class Settings extends BaseAdminModule
if (is_file($logfile) &&
!is_writeable($logfile)) {
notice(L10n::t('The logfile \'%s\' is not writable. No logging possible', $logfile));
notice(DI::l10n()->t('The logfile \'%s\' is not writable. No logging possible', $logfile));
return;
}
@ -34,7 +33,7 @@ class Settings extends BaseAdminModule
Config::set('system', 'loglevel', $loglevel);
}
info(L10n::t("Log settings updated."));
info(DI::l10n()->t("Log settings updated."));
DI::baseUrl()->redirect('admin/logs');
}
@ -51,27 +50,27 @@ class Settings extends BaseAdminModule
];
if (ini_get('log_errors')) {
$phplogenabled = L10n::t('PHP log currently enabled.');
$phplogenabled = DI::l10n()->t('PHP log currently enabled.');
} else {
$phplogenabled = L10n::t('PHP log currently disabled.');
$phplogenabled = DI::l10n()->t('PHP log currently disabled.');
}
$t = Renderer::getMarkupTemplate('admin/logs/settings.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Logs'),
'$submit' => L10n::t('Save Settings'),
'$clear' => L10n::t('Clear'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Logs'),
'$submit' => DI::l10n()->t('Save Settings'),
'$clear' => DI::l10n()->t('Clear'),
'$baseurl' => DI::baseUrl()->get(true),
'$logname' => Config::get('system', 'logfile'),
// see /help/smarty3-templates#1_1 on any Friendica node
'$debugging' => ['debugging', L10n::t("Enable Debugging"), Config::get('system', 'debugging'), ""],
'$logfile' => ['logfile', L10n::t("Log file"), Config::get('system', 'logfile'), L10n::t("Must be writable by web server. Relative to your Friendica top-level directory.")],
'$loglevel' => ['loglevel', L10n::t("Log level"), Config::get('system', 'loglevel'), "", $log_choices],
'$debugging' => ['debugging', DI::l10n()->t("Enable Debugging"), Config::get('system', 'debugging'), ""],
'$logfile' => ['logfile', DI::l10n()->t("Log file"), Config::get('system', 'logfile'), DI::l10n()->t("Must be writable by web server. Relative to your Friendica top-level directory.")],
'$loglevel' => ['loglevel', DI::l10n()->t("Log level"), Config::get('system', 'loglevel'), "", $log_choices],
'$form_security_token' => parent::getFormSecurityToken("admin_logs"),
'$phpheader' => L10n::t("PHP logging"),
'$phphint' => L10n::t("To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."),
'$phpheader' => DI::l10n()->t("PHP logging"),
'$phphint' => DI::l10n()->t("To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."),
'$phplogcode' => "error_reporting(E_ERROR | E_WARNING | E_PARSE);\nini_set('error_log','php.out');\nini_set('log_errors','1');\nini_set('display_errors', '1');",
'$phplogenabled' => $phplogenabled,
]);

View file

@ -3,8 +3,8 @@
namespace Friendica\Module\Admin\Logs;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
use Friendica\Util\Strings;
@ -19,11 +19,11 @@ class View extends BaseAdminModule
$data = '';
if (!file_exists($f)) {
$data = L10n::t('Error trying to open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s exist and is readable.', $f);
$data = DI::l10n()->t('Error trying to open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s exist and is readable.', $f);
} else {
$fp = fopen($f, 'r');
if (!$fp) {
$data = L10n::t('Couldn\'t open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s is readable.', $f);
$data = DI::l10n()->t('Couldn\'t open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s is readable.', $f);
} else {
$fstat = fstat($fp);
$size = $fstat['size'];
@ -43,8 +43,8 @@ class View extends BaseAdminModule
}
}
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('View Logs'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('View Logs'),
'$data' => $data,
'$logname' => Config::get('system', 'logfile')
]);

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Admin;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -32,12 +31,12 @@ class Queue extends BaseAdminModule
// get jobs from the workerqueue table
if ($deferred) {
$condition = ["NOT `done` AND `retrial` > ?", 0];
$sub_title = L10n::t('Inspect Deferred Worker Queue');
$info = L10n::t("This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time.");
$sub_title = DI::l10n()->t('Inspect Deferred Worker Queue');
$info = DI::l10n()->t("This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time.");
} else {
$condition = ["NOT `done` AND `retrial` = ?", 0];
$sub_title = L10n::t('Inspect Worker Queue');
$info = L10n::t('This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you\'ve set up during install.');
$sub_title = DI::l10n()->t('Inspect Worker Queue');
$info = DI::l10n()->t('This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you\'ve set up during install.');
}
// @TODO Move to Model\WorkerQueue::getEntries()
@ -54,13 +53,13 @@ class Queue extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/queue.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$title' => DI::l10n()->t('Administration'),
'$page' => $sub_title,
'$count' => count($r),
'$id_header' => L10n::t('ID'),
'$param_header' => L10n::t('Job Parameters'),
'$created_header' => L10n::t('Created'),
'$prio_header' => L10n::t('Priority'),
'$id_header' => DI::l10n()->t('ID'),
'$param_header' => DI::l10n()->t('Job Parameters'),
'$created_header' => DI::l10n()->t('Created'),
'$prio_header' => DI::l10n()->t('Priority'),
'$info' => $info,
'$entries' => $r,
]);

View file

@ -4,10 +4,8 @@ namespace Friendica\Module\Admin;
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\Core\StorageManager;
use Friendica\Core\Theme;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
@ -48,7 +46,7 @@ class Site extends BaseAdminModule
$parsed = @parse_url($new_url);
if (!is_array($parsed) || empty($parsed['host']) || empty($parsed['scheme'])) {
notice(L10n::t("Can not parse base url. Must have at least <scheme>://<domain>"));
notice(DI::l10n()->t("Can not parse base url. Must have at least <scheme>://<domain>"));
DI::baseUrl()->redirect('admin/site');
}
@ -229,7 +227,7 @@ class Site extends BaseAdminModule
DI::baseUrl()->redirect('admin/site' . $active_panel);
}
} else {
info(L10n::t('Invalid storage backend setting value.'));
info(DI::l10n()->t('Invalid storage backend setting value.'));
}
// Has the directory url changed? If yes, then resubmit the existing profiles there
@ -404,7 +402,7 @@ class Site extends BaseAdminModule
Config::set('system', 'rino_encrypt' , $rino);
info(L10n::t('Site settings updated.') . EOL);
info(DI::l10n()->t('Site settings updated.') . EOL);
DI::baseUrl()->redirect('admin/site' . $active_panel);
}
@ -414,7 +412,7 @@ class Site extends BaseAdminModule
parent::content($parameters);
/* Installed langs */
$lang_choices = L10n::getAvailableLanguages();
$lang_choices = DI::l10n()->getAvailableLanguages();
if (strlen(Config::get('system', 'directory_submit_url')) &&
!strlen(Config::get('system', 'directory'))) {
@ -425,7 +423,7 @@ class Site extends BaseAdminModule
/* Installed themes */
$theme_choices = [];
$theme_choices_mobile = [];
$theme_choices_mobile['---'] = L10n::t('No special theme for mobile devices');
$theme_choices_mobile['---'] = DI::l10n()->t('No special theme for mobile devices');
$files = glob('view/theme/*');
if (is_array($files)) {
$allowed_theme_list = Config::get('system', 'allowed_themes');
@ -442,7 +440,7 @@ class Site extends BaseAdminModule
continue;
}
$theme_name = ((file_exists($file . '/experimental')) ? L10n::t('%s - (Experimental)', $f) : $f);
$theme_name = ((file_exists($file . '/experimental')) ? DI::l10n()->t('%s - (Experimental)', $f) : $f);
if (file_exists($file . '/mobile')) {
$theme_choices_mobile[$f] = $theme_name;
@ -454,31 +452,31 @@ class Site extends BaseAdminModule
/* Community page style */
$community_page_style_choices = [
CP_NO_INTERNAL_COMMUNITY => L10n::t('No community page for local users'),
CP_NO_COMMUNITY_PAGE => L10n::t('No community page'),
CP_USERS_ON_SERVER => L10n::t('Public postings from users of this site'),
CP_GLOBAL_COMMUNITY => L10n::t('Public postings from the federated network'),
CP_USERS_AND_GLOBAL => L10n::t('Public postings from local users and the federated network')
CP_NO_INTERNAL_COMMUNITY => DI::l10n()->t('No community page for local users'),
CP_NO_COMMUNITY_PAGE => DI::l10n()->t('No community page'),
CP_USERS_ON_SERVER => DI::l10n()->t('Public postings from users of this site'),
CP_GLOBAL_COMMUNITY => DI::l10n()->t('Public postings from the federated network'),
CP_USERS_AND_GLOBAL => DI::l10n()->t('Public postings from local users and the federated network')
];
$poco_discovery_choices = [
PortableContact::DISABLED => L10n::t('Disabled'),
PortableContact::USERS => L10n::t('Users'),
PortableContact::USERS_GCONTACTS => L10n::t('Users, Global Contacts'),
PortableContact::USERS_GCONTACTS_FALLBACK => L10n::t('Users, Global Contacts/fallback'),
PortableContact::DISABLED => DI::l10n()->t('Disabled'),
PortableContact::USERS => DI::l10n()->t('Users'),
PortableContact::USERS_GCONTACTS => DI::l10n()->t('Users, Global Contacts'),
PortableContact::USERS_GCONTACTS_FALLBACK => DI::l10n()->t('Users, Global Contacts/fallback'),
];
$poco_discovery_since_choices = [
'30' => L10n::t('One month'),
'91' => L10n::t('Three months'),
'182' => L10n::t('Half a year'),
'365' => L10n::t('One year'),
'30' => DI::l10n()->t('One month'),
'91' => DI::l10n()->t('Three months'),
'182' => DI::l10n()->t('Half a year'),
'365' => DI::l10n()->t('One year'),
];
/* get user names to make the install a personal install of X */
// @TODO Move to Model\User::getNames()
$user_names = [];
$user_names['---'] = L10n::t('Multi user instance');
$user_names['---'] = DI::l10n()->t('Multi user instance');
$usersStmt = DBA::select('user', ['username', 'nickname'], ['account_removed' => 0, 'account_expired' => 0]);
foreach (DBA::toArray($usersStmt) as $user) {
@ -500,21 +498,21 @@ class Site extends BaseAdminModule
/* Register policy */
$register_choices = [
Register::CLOSED => L10n::t('Closed'),
Register::APPROVE => L10n::t('Requires approval'),
Register::OPEN => L10n::t('Open')
Register::CLOSED => DI::l10n()->t('Closed'),
Register::APPROVE => DI::l10n()->t('Requires approval'),
Register::OPEN => DI::l10n()->t('Open')
];
$ssl_choices = [
App\BaseURL::SSL_POLICY_NONE => L10n::t('No SSL policy, links will track page SSL state'),
App\BaseURL::SSL_POLICY_FULL => L10n::t('Force all links to use SSL'),
App\BaseURL::SSL_POLICY_SELFSIGN => L10n::t('Self-signed certificate, use SSL for local links only (discouraged)')
App\BaseURL::SSL_POLICY_NONE => DI::l10n()->t('No SSL policy, links will track page SSL state'),
App\BaseURL::SSL_POLICY_FULL => DI::l10n()->t('Force all links to use SSL'),
App\BaseURL::SSL_POLICY_SELFSIGN => DI::l10n()->t('Self-signed certificate, use SSL for local links only (discouraged)')
];
$check_git_version_choices = [
'none' => L10n::t('Don\'t check'),
'master' => L10n::t('check the stable version'),
'develop' => L10n::t('check the development version')
'none' => DI::l10n()->t('Don\'t check'),
'master' => DI::l10n()->t('check the stable version'),
'develop' => DI::l10n()->t('check the development version')
];
$diaspora_able = (DI::baseUrl()->getUrlPath() == '');
@ -531,7 +529,7 @@ class Site extends BaseAdminModule
// show legacy option only if it is the current backend:
// once changed can't be selected anymore
if ($current_storage_backend == null) {
$available_storage_backends[''] = L10n::t('Database (legacy)');
$available_storage_backends[''] = DI::l10n()->t('Database (legacy)');
}
foreach (DI::storageManager()->listBackends() as $name => $class) {
@ -554,121 +552,121 @@ class Site extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/site.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Site'),
'$submit' => L10n::t('Save Settings'),
'$republish' => L10n::t('Republish users to directory'),
'$registration' => L10n::t('Registration'),
'$upload' => L10n::t('File upload'),
'$corporate' => L10n::t('Policies'),
'$advanced' => L10n::t('Advanced'),
'$portable_contacts' => L10n::t('Auto Discovered Contact Directory'),
'$performance' => L10n::t('Performance'),
'$worker_title' => L10n::t('Worker'),
'$relay_title' => L10n::t('Message Relay'),
'$relocate' => L10n::t('Relocate Instance'),
'$relocate_warning' => L10n::t('Warning! Advanced function. Could make this server unreachable.'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Site'),
'$submit' => DI::l10n()->t('Save Settings'),
'$republish' => DI::l10n()->t('Republish users to directory'),
'$registration' => DI::l10n()->t('Registration'),
'$upload' => DI::l10n()->t('File upload'),
'$corporate' => DI::l10n()->t('Policies'),
'$advanced' => DI::l10n()->t('Advanced'),
'$portable_contacts' => DI::l10n()->t('Auto Discovered Contact Directory'),
'$performance' => DI::l10n()->t('Performance'),
'$worker_title' => DI::l10n()->t('Worker'),
'$relay_title' => DI::l10n()->t('Message Relay'),
'$relocate' => DI::l10n()->t('Relocate Instance'),
'$relocate_warning' => DI::l10n()->t('Warning! Advanced function. Could make this server unreachable.'),
'$baseurl' => DI::baseUrl()->get(true),
// name, label, value, help string, extra data...
'$sitename' => ['sitename', L10n::t('Site name'), Config::get('config', 'sitename'), ''],
'$sender_email' => ['sender_email', L10n::t('Sender Email'), Config::get('config', 'sender_email'), L10n::t('The email address your server shall use to send notification emails from.'), '', '', 'email'],
'$banner' => ['banner', L10n::t('Banner/Logo'), $banner, ''],
'$shortcut_icon' => ['shortcut_icon', L10n::t('Shortcut icon'), Config::get('system', 'shortcut_icon'), L10n::t('Link to an icon that will be used for browsers.')],
'$touch_icon' => ['touch_icon', L10n::t('Touch icon'), Config::get('system', 'touch_icon'), L10n::t('Link to an icon that will be used for tablets and mobiles.')],
'$additional_info' => ['additional_info', L10n::t('Additional Info'), $additional_info, L10n::t('For public servers: you can add additional information here that will be listed at %s/servers.', Search::getGlobalDirectory())],
'$language' => ['language', L10n::t('System language'), Config::get('system', 'language'), '', $lang_choices],
'$theme' => ['theme', L10n::t('System theme'), Config::get('system', 'theme'), L10n::t('Default system theme - may be over-ridden by user profiles - <a href="/admin/themes" id="cnftheme">Change default theme settings</a>'), $theme_choices],
'$theme_mobile' => ['theme_mobile', L10n::t('Mobile system theme'), Config::get('system', 'mobile-theme', '---'), L10n::t('Theme for mobile devices'), $theme_choices_mobile],
'$ssl_policy' => ['ssl_policy', L10n::t('SSL link policy'), (string)intval(Config::get('system', 'ssl_policy')), L10n::t('Determines whether generated links should be forced to use SSL'), $ssl_choices],
'$force_ssl' => ['force_ssl', L10n::t('Force SSL'), Config::get('system', 'force_ssl'), L10n::t('Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops.')],
'$hide_help' => ['hide_help', L10n::t('Hide help entry from navigation menu'), Config::get('system', 'hide_help'), L10n::t('Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly.')],
'$singleuser' => ['singleuser', L10n::t('Single user instance'), Config::get('system', 'singleuser', '---'), L10n::t('Make this instance multi-user or single-user for the named user'), $user_names],
'$sitename' => ['sitename', DI::l10n()->t('Site name'), Config::get('config', 'sitename'), ''],
'$sender_email' => ['sender_email', DI::l10n()->t('Sender Email'), Config::get('config', 'sender_email'), DI::l10n()->t('The email address your server shall use to send notification emails from.'), '', '', 'email'],
'$banner' => ['banner', DI::l10n()->t('Banner/Logo'), $banner, ''],
'$shortcut_icon' => ['shortcut_icon', DI::l10n()->t('Shortcut icon'), Config::get('system', 'shortcut_icon'), DI::l10n()->t('Link to an icon that will be used for browsers.')],
'$touch_icon' => ['touch_icon', DI::l10n()->t('Touch icon'), Config::get('system', 'touch_icon'), DI::l10n()->t('Link to an icon that will be used for tablets and mobiles.')],
'$additional_info' => ['additional_info', DI::l10n()->t('Additional Info'), $additional_info, DI::l10n()->t('For public servers: you can add additional information here that will be listed at %s/servers.', Search::getGlobalDirectory())],
'$language' => ['language', DI::l10n()->t('System language'), Config::get('system', 'language'), '', $lang_choices],
'$theme' => ['theme', DI::l10n()->t('System theme'), Config::get('system', 'theme'), DI::l10n()->t('Default system theme - may be over-ridden by user profiles - <a href="/admin/themes" id="cnftheme">Change default theme settings</a>'), $theme_choices],
'$theme_mobile' => ['theme_mobile', DI::l10n()->t('Mobile system theme'), Config::get('system', 'mobile-theme', '---'), DI::l10n()->t('Theme for mobile devices'), $theme_choices_mobile],
'$ssl_policy' => ['ssl_policy', DI::l10n()->t('SSL link policy'), (string)intval(Config::get('system', 'ssl_policy')), DI::l10n()->t('Determines whether generated links should be forced to use SSL'), $ssl_choices],
'$force_ssl' => ['force_ssl', DI::l10n()->t('Force SSL'), Config::get('system', 'force_ssl'), DI::l10n()->t('Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops.')],
'$hide_help' => ['hide_help', DI::l10n()->t('Hide help entry from navigation menu'), Config::get('system', 'hide_help'), DI::l10n()->t('Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly.')],
'$singleuser' => ['singleuser', DI::l10n()->t('Single user instance'), Config::get('system', 'singleuser', '---'), DI::l10n()->t('Make this instance multi-user or single-user for the named user'), $user_names],
'$storagebackend' => ['storagebackend', L10n::t('File storage backend'), $current_storage_backend, L10n::t('The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see <a href="/help/Settings#1_2_3_1">the settings documentation</a> for more information about the choices and the moving procedure.'), $available_storage_backends],
'$storagebackend' => ['storagebackend', DI::l10n()->t('File storage backend'), $current_storage_backend, DI::l10n()->t('The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see <a href="/help/Settings#1_2_3_1">the settings documentation</a> for more information about the choices and the moving procedure.'), $available_storage_backends],
'$storageform' => $storage_form,
'$maximagesize' => ['maximagesize', L10n::t('Maximum image size'), Config::get('system', 'maximagesize'), L10n::t('Maximum size in bytes of uploaded images. Default is 0, which means no limits.')],
'$maximagelength' => ['maximagelength', L10n::t('Maximum image length'), Config::get('system', 'max_image_length'), L10n::t('Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.')],
'$jpegimagequality' => ['jpegimagequality', L10n::t('JPEG image quality'), Config::get('system', 'jpeg_quality'), L10n::t('Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality.')],
'$maximagesize' => ['maximagesize', DI::l10n()->t('Maximum image size'), Config::get('system', 'maximagesize'), DI::l10n()->t('Maximum size in bytes of uploaded images. Default is 0, which means no limits.')],
'$maximagelength' => ['maximagelength', DI::l10n()->t('Maximum image length'), Config::get('system', 'max_image_length'), DI::l10n()->t('Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.')],
'$jpegimagequality' => ['jpegimagequality', DI::l10n()->t('JPEG image quality'), Config::get('system', 'jpeg_quality'), DI::l10n()->t('Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality.')],
'$register_policy' => ['register_policy', L10n::t('Register policy'), Config::get('config', 'register_policy'), '', $register_choices],
'$daily_registrations' => ['max_daily_registrations', L10n::t('Maximum Daily Registrations'), Config::get('system', 'max_daily_registrations'), L10n::t('If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect.')],
'$register_text' => ['register_text', L10n::t('Register text'), Config::get('config', 'register_text'), L10n::t('Will be displayed prominently on the registration page. You can use BBCode here.')],
'$forbidden_nicknames' => ['forbidden_nicknames', L10n::t('Forbidden Nicknames'), Config::get('system', 'forbidden_nicknames'), L10n::t('Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142.')],
'$abandon_days' => ['abandon_days', L10n::t('Accounts abandoned after x days'), Config::get('system', 'account_abandon_days'), L10n::t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')],
'$allowed_sites' => ['allowed_sites', L10n::t('Allowed friend domains'), Config::get('system', 'allowed_sites'), L10n::t('Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains')],
'$allowed_email' => ['allowed_email', L10n::t('Allowed email domains'), Config::get('system', 'allowed_email'), L10n::t('Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains')],
'$no_oembed_rich_content' => ['no_oembed_rich_content', L10n::t('No OEmbed rich content'), Config::get('system', 'no_oembed_rich_content'), L10n::t('Don\'t show the rich content (e.g. embedded PDF), except from the domains listed below.')],
'$allowed_oembed' => ['allowed_oembed', L10n::t('Allowed OEmbed domains'), Config::get('system', 'allowed_oembed'), L10n::t('Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted.')],
'$block_public' => ['block_public', L10n::t('Block public'), Config::get('system', 'block_public'), L10n::t('Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.')],
'$force_publish' => ['publish_all', L10n::t('Force publish'), Config::get('system', 'publish_all'), L10n::t('Check to force all profiles on this site to be listed in the site directory.') . '<strong>' . L10n::t('Enabling this may violate privacy laws like the GDPR') . '</strong>'],
'$global_directory' => ['directory', L10n::t('Global directory URL'), Config::get('system', 'directory', 'https://dir.friendica.social'), L10n::t('URL to the global directory. If this is not set, the global directory is completely unavailable to the application.')],
'$newuser_private' => ['newuser_private', L10n::t('Private posts by default for new users'), Config::get('system', 'newuser_private'), L10n::t('Set default post permissions for all new members to the default privacy group rather than public.')],
'$enotify_no_content' => ['enotify_no_content', L10n::t('Don\'t include post content in email notifications'), Config::get('system', 'enotify_no_content'), L10n::t('Don\'t include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.')],
'$private_addons' => ['private_addons', L10n::t('Disallow public access to addons listed in the apps menu.'), Config::get('config', 'private_addons'), L10n::t('Checking this box will restrict addons listed in the apps menu to members only.')],
'$disable_embedded' => ['disable_embedded', L10n::t('Don\'t embed private images in posts'), Config::get('system', 'disable_embedded'), L10n::t('Don\'t replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.')],
'$explicit_content' => ['explicit_content', L10n::t('Explicit Content'), Config::get('system', 'explicit_content', false), L10n::t('Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page.')],
'$allow_users_remote_self'=> ['allow_users_remote_self', L10n::t('Allow Users to set remote_self'), Config::get('system', 'allow_users_remote_self'), L10n::t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')],
'$no_multi_reg' => ['no_multi_reg', L10n::t('Block multiple registrations'), Config::get('system', 'block_extended_register'), L10n::t('Disallow users to register additional accounts for use as pages.')],
'$no_openid' => ['no_openid', L10n::t('Disable OpenID'), Config::get('system', 'no_openid'), L10n::t('Disable OpenID support for registration and logins.')],
'$no_regfullname' => ['no_regfullname', L10n::t('No Fullname check'), Config::get('system', 'no_regfullname'), L10n::t('Allow users to register without a space between the first name and the last name in their full name.')],
'$community_page_style' => ['community_page_style', L10n::t('Community pages for visitors'), Config::get('system', 'community_page_style'), L10n::t('Which community pages should be available for visitors. Local users always see both pages.'), $community_page_style_choices],
'$max_author_posts_community_page' => ['max_author_posts_community_page', L10n::t('Posts per user on community page'), Config::get('system', 'max_author_posts_community_page'), L10n::t('The maximum number of posts per user on the community page. (Not valid for "Global Community")')],
'$ostatus_disabled' => ['ostatus_disabled', L10n::t('Disable OStatus support'), Config::get('system', 'ostatus_disabled'), L10n::t('Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.')],
'$ostatus_not_able' => L10n::t('OStatus support can only be enabled if threading is enabled.'),
'$register_policy' => ['register_policy', DI::l10n()->t('Register policy'), Config::get('config', 'register_policy'), '', $register_choices],
'$daily_registrations' => ['max_daily_registrations', DI::l10n()->t('Maximum Daily Registrations'), Config::get('system', 'max_daily_registrations'), DI::l10n()->t('If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect.')],
'$register_text' => ['register_text', DI::l10n()->t('Register text'), Config::get('config', 'register_text'), DI::l10n()->t('Will be displayed prominently on the registration page. You can use BBCode here.')],
'$forbidden_nicknames' => ['forbidden_nicknames', DI::l10n()->t('Forbidden Nicknames'), Config::get('system', 'forbidden_nicknames'), DI::l10n()->t('Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142.')],
'$abandon_days' => ['abandon_days', DI::l10n()->t('Accounts abandoned after x days'), Config::get('system', 'account_abandon_days'), DI::l10n()->t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')],
'$allowed_sites' => ['allowed_sites', DI::l10n()->t('Allowed friend domains'), Config::get('system', 'allowed_sites'), DI::l10n()->t('Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains')],
'$allowed_email' => ['allowed_email', DI::l10n()->t('Allowed email domains'), Config::get('system', 'allowed_email'), DI::l10n()->t('Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains')],
'$no_oembed_rich_content' => ['no_oembed_rich_content', DI::l10n()->t('No OEmbed rich content'), Config::get('system', 'no_oembed_rich_content'), DI::l10n()->t('Don\'t show the rich content (e.g. embedded PDF), except from the domains listed below.')],
'$allowed_oembed' => ['allowed_oembed', DI::l10n()->t('Allowed OEmbed domains'), Config::get('system', 'allowed_oembed'), DI::l10n()->t('Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted.')],
'$block_public' => ['block_public', DI::l10n()->t('Block public'), Config::get('system', 'block_public'), DI::l10n()->t('Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.')],
'$force_publish' => ['publish_all', DI::l10n()->t('Force publish'), Config::get('system', 'publish_all'), DI::l10n()->t('Check to force all profiles on this site to be listed in the site directory.') . '<strong>' . DI::l10n()->t('Enabling this may violate privacy laws like the GDPR') . '</strong>'],
'$global_directory' => ['directory', DI::l10n()->t('Global directory URL'), Config::get('system', 'directory', 'https://dir.friendica.social'), DI::l10n()->t('URL to the global directory. If this is not set, the global directory is completely unavailable to the application.')],
'$newuser_private' => ['newuser_private', DI::l10n()->t('Private posts by default for new users'), Config::get('system', 'newuser_private'), DI::l10n()->t('Set default post permissions for all new members to the default privacy group rather than public.')],
'$enotify_no_content' => ['enotify_no_content', DI::l10n()->t('Don\'t include post content in email notifications'), Config::get('system', 'enotify_no_content'), DI::l10n()->t('Don\'t include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.')],
'$private_addons' => ['private_addons', DI::l10n()->t('Disallow public access to addons listed in the apps menu.'), Config::get('config', 'private_addons'), DI::l10n()->t('Checking this box will restrict addons listed in the apps menu to members only.')],
'$disable_embedded' => ['disable_embedded', DI::l10n()->t('Don\'t embed private images in posts'), Config::get('system', 'disable_embedded'), DI::l10n()->t('Don\'t replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.')],
'$explicit_content' => ['explicit_content', DI::l10n()->t('Explicit Content'), Config::get('system', 'explicit_content', false), DI::l10n()->t('Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page.')],
'$allow_users_remote_self'=> ['allow_users_remote_self', DI::l10n()->t('Allow Users to set remote_self'), Config::get('system', 'allow_users_remote_self'), DI::l10n()->t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')],
'$no_multi_reg' => ['no_multi_reg', DI::l10n()->t('Block multiple registrations'), Config::get('system', 'block_extended_register'), DI::l10n()->t('Disallow users to register additional accounts for use as pages.')],
'$no_openid' => ['no_openid', DI::l10n()->t('Disable OpenID'), Config::get('system', 'no_openid'), DI::l10n()->t('Disable OpenID support for registration and logins.')],
'$no_regfullname' => ['no_regfullname', DI::l10n()->t('No Fullname check'), Config::get('system', 'no_regfullname'), DI::l10n()->t('Allow users to register without a space between the first name and the last name in their full name.')],
'$community_page_style' => ['community_page_style', DI::l10n()->t('Community pages for visitors'), Config::get('system', 'community_page_style'), DI::l10n()->t('Which community pages should be available for visitors. Local users always see both pages.'), $community_page_style_choices],
'$max_author_posts_community_page' => ['max_author_posts_community_page', DI::l10n()->t('Posts per user on community page'), Config::get('system', 'max_author_posts_community_page'), DI::l10n()->t('The maximum number of posts per user on the community page. (Not valid for "Global Community")')],
'$ostatus_disabled' => ['ostatus_disabled', DI::l10n()->t('Disable OStatus support'), Config::get('system', 'ostatus_disabled'), DI::l10n()->t('Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.')],
'$ostatus_not_able' => DI::l10n()->t('OStatus support can only be enabled if threading is enabled.'),
'$diaspora_able' => $diaspora_able,
'$diaspora_not_able' => L10n::t('Diaspora support can\'t be enabled because Friendica was installed into a sub directory.'),
'$diaspora_enabled' => ['diaspora_enabled', L10n::t('Enable Diaspora support'), Config::get('system', 'diaspora_enabled', $diaspora_able), L10n::t('Provide built-in Diaspora network compatibility.')],
'$dfrn_only' => ['dfrn_only', L10n::t('Only allow Friendica contacts'), Config::get('system', 'dfrn_only'), L10n::t('All contacts must use Friendica protocols. All other built-in communication protocols disabled.')],
'$verifyssl' => ['verifyssl', L10n::t('Verify SSL'), Config::get('system', 'verifyssl'), L10n::t('If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.')],
'$proxyuser' => ['proxyuser', L10n::t('Proxy user'), Config::get('system', 'proxyuser'), ''],
'$proxy' => ['proxy', L10n::t('Proxy URL'), Config::get('system', 'proxy'), ''],
'$timeout' => ['timeout', L10n::t('Network timeout'), Config::get('system', 'curl_timeout', 60), L10n::t('Value is in seconds. Set to 0 for unlimited (not recommended).')],
'$maxloadavg' => ['maxloadavg', L10n::t('Maximum Load Average'), Config::get('system', 'maxloadavg', 20), L10n::t('Maximum system load before delivery and poll processes are deferred - default %d.', 20)],
'$maxloadavg_frontend' => ['maxloadavg_frontend', L10n::t('Maximum Load Average (Frontend)'), Config::get('system', 'maxloadavg_frontend', 50), L10n::t('Maximum system load before the frontend quits service - default 50.')],
'$min_memory' => ['min_memory', L10n::t('Minimal Memory'), Config::get('system', 'min_memory', 0), L10n::t('Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated).')],
'$optimize_max_tablesize' => ['optimize_max_tablesize', L10n::t('Maximum table size for optimization'), $optimize_max_tablesize, L10n::t('Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it.')],
'$optimize_fragmentation' => ['optimize_fragmentation', L10n::t('Minimum level of fragmentation'), Config::get('system', 'optimize_fragmentation', 30), L10n::t('Minimum fragmenation level to start the automatic optimization - default value is 30%.')],
'$diaspora_not_able' => DI::l10n()->t('Diaspora support can\'t be enabled because Friendica was installed into a sub directory.'),
'$diaspora_enabled' => ['diaspora_enabled', DI::l10n()->t('Enable Diaspora support'), Config::get('system', 'diaspora_enabled', $diaspora_able), DI::l10n()->t('Provide built-in Diaspora network compatibility.')],
'$dfrn_only' => ['dfrn_only', DI::l10n()->t('Only allow Friendica contacts'), Config::get('system', 'dfrn_only'), DI::l10n()->t('All contacts must use Friendica protocols. All other built-in communication protocols disabled.')],
'$verifyssl' => ['verifyssl', DI::l10n()->t('Verify SSL'), Config::get('system', 'verifyssl'), DI::l10n()->t('If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.')],
'$proxyuser' => ['proxyuser', DI::l10n()->t('Proxy user'), Config::get('system', 'proxyuser'), ''],
'$proxy' => ['proxy', DI::l10n()->t('Proxy URL'), Config::get('system', 'proxy'), ''],
'$timeout' => ['timeout', DI::l10n()->t('Network timeout'), Config::get('system', 'curl_timeout', 60), DI::l10n()->t('Value is in seconds. Set to 0 for unlimited (not recommended).')],
'$maxloadavg' => ['maxloadavg', DI::l10n()->t('Maximum Load Average'), Config::get('system', 'maxloadavg', 20), DI::l10n()->t('Maximum system load before delivery and poll processes are deferred - default %d.', 20)],
'$maxloadavg_frontend' => ['maxloadavg_frontend', DI::l10n()->t('Maximum Load Average (Frontend)'), Config::get('system', 'maxloadavg_frontend', 50), DI::l10n()->t('Maximum system load before the frontend quits service - default 50.')],
'$min_memory' => ['min_memory', DI::l10n()->t('Minimal Memory'), Config::get('system', 'min_memory', 0), DI::l10n()->t('Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated).')],
'$optimize_max_tablesize' => ['optimize_max_tablesize', DI::l10n()->t('Maximum table size for optimization'), $optimize_max_tablesize, DI::l10n()->t('Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it.')],
'$optimize_fragmentation' => ['optimize_fragmentation', DI::l10n()->t('Minimum level of fragmentation'), Config::get('system', 'optimize_fragmentation', 30), DI::l10n()->t('Minimum fragmenation level to start the automatic optimization - default value is 30%.')],
'$poco_completion' => ['poco_completion', L10n::t('Periodical check of global contacts'), Config::get('system', 'poco_completion'), L10n::t('If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers.')],
'$poco_requery_days' => ['poco_requery_days', L10n::t('Days between requery'), Config::get('system', 'poco_requery_days'), L10n::t('Number of days after which a server is requeried for his contacts.')],
'$poco_discovery' => ['poco_discovery', L10n::t('Discover contacts from other servers'), (string)intval(Config::get('system', 'poco_discovery')), L10n::t('Periodically query other servers for contacts. You can choose between "Users": the users on the remote system, "Global Contacts": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren\'t available. The fallback increases the server load, so the recommended setting is "Users, Global Contacts".'), $poco_discovery_choices],
'$poco_discovery_since' => ['poco_discovery_since', L10n::t('Timeframe for fetching global contacts'), (string)intval(Config::get('system', 'poco_discovery_since')), L10n::t('When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers.'), $poco_discovery_since_choices],
'$poco_local_search' => ['poco_local_search', L10n::t('Search the local directory'), Config::get('system', 'poco_local_search'), L10n::t('Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated.')],
'$poco_completion' => ['poco_completion', DI::l10n()->t('Periodical check of global contacts'), Config::get('system', 'poco_completion'), DI::l10n()->t('If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers.')],
'$poco_requery_days' => ['poco_requery_days', DI::l10n()->t('Days between requery'), Config::get('system', 'poco_requery_days'), DI::l10n()->t('Number of days after which a server is requeried for his contacts.')],
'$poco_discovery' => ['poco_discovery', DI::l10n()->t('Discover contacts from other servers'), (string)intval(Config::get('system', 'poco_discovery')), DI::l10n()->t('Periodically query other servers for contacts. You can choose between "Users": the users on the remote system, "Global Contacts": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren\'t available. The fallback increases the server load, so the recommended setting is "Users, Global Contacts".'), $poco_discovery_choices],
'$poco_discovery_since' => ['poco_discovery_since', DI::l10n()->t('Timeframe for fetching global contacts'), (string)intval(Config::get('system', 'poco_discovery_since')), DI::l10n()->t('When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers.'), $poco_discovery_since_choices],
'$poco_local_search' => ['poco_local_search', DI::l10n()->t('Search the local directory'), Config::get('system', 'poco_local_search'), DI::l10n()->t('Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated.')],
'$nodeinfo' => ['nodeinfo', L10n::t('Publish server information'), Config::get('system', 'nodeinfo'), L10n::t('If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See <a href="http://the-federation.info/">the-federation.info</a> for details.')],
'$nodeinfo' => ['nodeinfo', DI::l10n()->t('Publish server information'), Config::get('system', 'nodeinfo'), DI::l10n()->t('If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See <a href="http://the-federation.info/">the-federation.info</a> for details.')],
'$check_new_version_url' => ['check_new_version_url', L10n::t('Check upstream version'), Config::get('system', 'check_new_version_url'), L10n::t('Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview.'), $check_git_version_choices],
'$suppress_tags' => ['suppress_tags', L10n::t('Suppress Tags'), Config::get('system', 'suppress_tags'), L10n::t('Suppress showing a list of hashtags at the end of the posting.')],
'$dbclean' => ['dbclean', L10n::t('Clean database'), Config::get('system', 'dbclean', false), L10n::t('Remove old remote items, orphaned database records and old content from some other helper tables.')],
'$dbclean_expire_days' => ['dbclean_expire_days', L10n::t('Lifespan of remote items'), Config::get('system', 'dbclean-expire-days', 0), L10n::t('When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour.')],
'$dbclean_unclaimed' => ['dbclean_unclaimed', L10n::t('Lifespan of unclaimed items'), Config::get('system', 'dbclean-expire-unclaimed', 90), L10n::t('When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0.')],
'$dbclean_expire_conv' => ['dbclean_expire_conv', L10n::t('Lifespan of raw conversation data'), Config::get('system', 'dbclean_expire_conversation', 90), L10n::t('The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days.')],
'$itemcache' => ['itemcache', L10n::t('Path to item cache'), Config::get('system', 'itemcache'), L10n::t('The item caches buffers generated bbcode and external images.')],
'$itemcache_duration' => ['itemcache_duration', L10n::t('Cache duration in seconds'), Config::get('system', 'itemcache_duration'), L10n::t('How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1.')],
'$max_comments' => ['max_comments', L10n::t('Maximum numbers of comments per post'), Config::get('system', 'max_comments'), L10n::t('How much comments should be shown for each post? Default value is 100.')],
'$temppath' => ['temppath', L10n::t('Temp path'), Config::get('system', 'temppath'), L10n::t('If you have a restricted system where the webserver can\'t access the system temp path, enter another path here.')],
'$proxy_disabled' => ['proxy_disabled', L10n::t('Disable picture proxy'), Config::get('system', 'proxy_disabled'), L10n::t('The picture proxy increases performance and privacy. It shouldn\'t be used on systems with very low bandwidth.')],
'$only_tag_search' => ['only_tag_search', L10n::t('Only search in tags'), Config::get('system', 'only_tag_search'), L10n::t('On large systems the text search can slow down the system extremely.')],
'$check_new_version_url' => ['check_new_version_url', DI::l10n()->t('Check upstream version'), Config::get('system', 'check_new_version_url'), DI::l10n()->t('Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview.'), $check_git_version_choices],
'$suppress_tags' => ['suppress_tags', DI::l10n()->t('Suppress Tags'), Config::get('system', 'suppress_tags'), DI::l10n()->t('Suppress showing a list of hashtags at the end of the posting.')],
'$dbclean' => ['dbclean', DI::l10n()->t('Clean database'), Config::get('system', 'dbclean', false), DI::l10n()->t('Remove old remote items, orphaned database records and old content from some other helper tables.')],
'$dbclean_expire_days' => ['dbclean_expire_days', DI::l10n()->t('Lifespan of remote items'), Config::get('system', 'dbclean-expire-days', 0), DI::l10n()->t('When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour.')],
'$dbclean_unclaimed' => ['dbclean_unclaimed', DI::l10n()->t('Lifespan of unclaimed items'), Config::get('system', 'dbclean-expire-unclaimed', 90), DI::l10n()->t('When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0.')],
'$dbclean_expire_conv' => ['dbclean_expire_conv', DI::l10n()->t('Lifespan of raw conversation data'), Config::get('system', 'dbclean_expire_conversation', 90), DI::l10n()->t('The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days.')],
'$itemcache' => ['itemcache', DI::l10n()->t('Path to item cache'), Config::get('system', 'itemcache'), DI::l10n()->t('The item caches buffers generated bbcode and external images.')],
'$itemcache_duration' => ['itemcache_duration', DI::l10n()->t('Cache duration in seconds'), Config::get('system', 'itemcache_duration'), DI::l10n()->t('How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1.')],
'$max_comments' => ['max_comments', DI::l10n()->t('Maximum numbers of comments per post'), Config::get('system', 'max_comments'), DI::l10n()->t('How much comments should be shown for each post? Default value is 100.')],
'$temppath' => ['temppath', DI::l10n()->t('Temp path'), Config::get('system', 'temppath'), DI::l10n()->t('If you have a restricted system where the webserver can\'t access the system temp path, enter another path here.')],
'$proxy_disabled' => ['proxy_disabled', DI::l10n()->t('Disable picture proxy'), Config::get('system', 'proxy_disabled'), DI::l10n()->t('The picture proxy increases performance and privacy. It shouldn\'t be used on systems with very low bandwidth.')],
'$only_tag_search' => ['only_tag_search', DI::l10n()->t('Only search in tags'), Config::get('system', 'only_tag_search'), DI::l10n()->t('On large systems the text search can slow down the system extremely.')],
'$relocate_url' => ['relocate_url', L10n::t('New base url'), DI::baseUrl()->get(), L10n::t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')],
'$relocate_url' => ['relocate_url', DI::l10n()->t('New base url'), DI::baseUrl()->get(), DI::l10n()->t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')],
'$rino' => ['rino', L10n::t('RINO Encryption'), intval(Config::get('system', 'rino_encrypt')), L10n::t('Encryption layer between nodes.'), [0 => L10n::t('Disabled'), 1 => L10n::t('Enabled')]],
'$rino' => ['rino', DI::l10n()->t('RINO Encryption'), intval(Config::get('system', 'rino_encrypt')), DI::l10n()->t('Encryption layer between nodes.'), [0 => DI::l10n()->t('Disabled'), 1 => DI::l10n()->t('Enabled')]],
'$worker_queues' => ['worker_queues', L10n::t('Maximum number of parallel workers'), Config::get('system', 'worker_queues'), L10n::t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)],
'$worker_dont_fork' => ['worker_dont_fork', L10n::t('Don\'t use "proc_open" with the worker'), Config::get('system', 'worker_dont_fork'), L10n::t('Enable this if your system doesn\'t allow the use of "proc_open". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab.')],
'$worker_fastlane' => ['worker_fastlane', L10n::t('Enable fastlane'), Config::get('system', 'worker_fastlane'), L10n::t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')],
'$worker_frontend' => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', DI::baseUrl()->get())],
'$worker_queues' => ['worker_queues', DI::l10n()->t('Maximum number of parallel workers'), Config::get('system', 'worker_queues'), DI::l10n()->t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)],
'$worker_dont_fork' => ['worker_dont_fork', DI::l10n()->t('Don\'t use "proc_open" with the worker'), Config::get('system', 'worker_dont_fork'), DI::l10n()->t('Enable this if your system doesn\'t allow the use of "proc_open". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab.')],
'$worker_fastlane' => ['worker_fastlane', DI::l10n()->t('Enable fastlane'), Config::get('system', 'worker_fastlane'), DI::l10n()->t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')],
'$worker_frontend' => ['worker_frontend', DI::l10n()->t('Enable frontend worker'), Config::get('system', 'frontend_worker'), DI::l10n()->t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', DI::baseUrl()->get())],
'$relay_subscribe' => ['relay_subscribe', L10n::t('Subscribe to relay'), Config::get('system', 'relay_subscribe'), L10n::t('Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page.')],
'$relay_server' => ['relay_server', L10n::t('Relay server'), Config::get('system', 'relay_server', 'https://relay.diasp.org'), L10n::t('Address of the relay server where public posts should be send to. For example https://relay.diasp.org')],
'$relay_directly' => ['relay_directly', L10n::t('Direct relay transfer'), Config::get('system', 'relay_directly'), L10n::t('Enables the direct transfer to other servers without using the relay servers')],
'$relay_scope' => ['relay_scope', L10n::t('Relay scope'), Config::get('system', 'relay_scope'), L10n::t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), ['' => L10n::t('Disabled'), 'all' => L10n::t('all'), 'tags' => L10n::t('tags')]],
'$relay_server_tags' => ['relay_server_tags', L10n::t('Server tags'), Config::get('system', 'relay_server_tags'), L10n::t('Comma separated list of tags for the "tags" subscription.')],
'$relay_user_tags' => ['relay_user_tags', L10n::t('Allow user tags'), Config::get('system', 'relay_user_tags', true), L10n::t('If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".')],
'$relay_subscribe' => ['relay_subscribe', DI::l10n()->t('Subscribe to relay'), Config::get('system', 'relay_subscribe'), DI::l10n()->t('Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page.')],
'$relay_server' => ['relay_server', DI::l10n()->t('Relay server'), Config::get('system', 'relay_server', 'https://relay.diasp.org'), DI::l10n()->t('Address of the relay server where public posts should be send to. For example https://relay.diasp.org')],
'$relay_directly' => ['relay_directly', DI::l10n()->t('Direct relay transfer'), Config::get('system', 'relay_directly'), DI::l10n()->t('Enables the direct transfer to other servers without using the relay servers')],
'$relay_scope' => ['relay_scope', DI::l10n()->t('Relay scope'), Config::get('system', 'relay_scope'), DI::l10n()->t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), ['' => DI::l10n()->t('Disabled'), 'all' => DI::l10n()->t('all'), 'tags' => DI::l10n()->t('tags')]],
'$relay_server_tags' => ['relay_server_tags', DI::l10n()->t('Server tags'), Config::get('system', 'relay_server_tags'), DI::l10n()->t('Comma separated list of tags for the "tags" subscription.')],
'$relay_user_tags' => ['relay_user_tags', DI::l10n()->t('Allow user tags'), Config::get('system', 'relay_user_tags', true), DI::l10n()->t('If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".')],
'$form_security_token' => parent::getFormSecurityToken('admin_site'),
'$relocate_button' => L10n::t('Start Relocation'),
'$relocate_button' => DI::l10n()->t('Start Relocation'),
]);
}
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module\Admin;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Update;
@ -16,7 +15,6 @@ use Friendica\Module\BaseAdminModule;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Util\ConfigFileLoader;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\FileSystem;
use Friendica\Util\Network;
class Summary extends BaseAdminModule
@ -30,7 +28,7 @@ class Summary extends BaseAdminModule
// are there MyISAM tables in the DB? If so, trigger a warning message
$warningtext = [];
if (DBA::count(['information_schema' => 'tables'], ['engine' => 'myisam', 'table_schema' => DBA::databaseName()])) {
$warningtext[] = L10n::t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See <a href="%s">here</a> for a guide that may be helpful converting the table engines. You may also use the command <tt>php bin/console.php dbstructure toinnodb</tt> of your Friendica installation for an automatic conversion.<br />', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html');
$warningtext[] = DI::l10n()->t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See <a href="%s">here</a> for a guide that may be helpful converting the table engines. You may also use the command <tt>php bin/console.php dbstructure toinnodb</tt> of your Friendica installation for an automatic conversion.<br />', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html');
}
// Check if github.com/friendica/master/VERSION is higher then
@ -38,7 +36,7 @@ class Summary extends BaseAdminModule
if (Config::get('system', 'check_new_version_url', 'none') != 'none') {
$gitversion = Config::get('system', 'git_friendica_version');
if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) {
$warningtext[] = L10n::t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion);
$warningtext[] = DI::l10n()->t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion);
}
}
@ -47,33 +45,33 @@ class Summary extends BaseAdminModule
}
if (Config::get('system', 'dbupdate') == DBStructure::UPDATE_FAILED) {
$warningtext[] = L10n::t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.');
$warningtext[] = DI::l10n()->t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.');
}
if (Config::get('system', 'update') == Update::FAILED) {
$warningtext[] = L10n::t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)');
$warningtext[] = DI::l10n()->t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)');
}
$last_worker_call = Config::get('system', 'last_worker_execution', false);
if (!$last_worker_call) {
$warningtext[] = L10n::t('The worker was never executed. Please check your database structure!');
$warningtext[] = DI::l10n()->t('The worker was never executed. Please check your database structure!');
} elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) {
$warningtext[] = L10n::t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call);
$warningtext[] = DI::l10n()->t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call);
}
// Legacy config file warning
if (file_exists('.htconfig.php')) {
$warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', DI::baseUrl()->get() . '/help/Config');
$warningtext[] = DI::l10n()->t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', DI::baseUrl()->get() . '/help/Config');
}
if (file_exists('config/local.ini.php')) {
$warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from <code>config/local.ini.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', DI::baseUrl()->get() . '/help/Config');
$warningtext[] = DI::l10n()->t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from <code>config/local.ini.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', DI::baseUrl()->get() . '/help/Config');
}
// Check server vitality
if (!self::checkSelfHostMeta()) {
$well_known = DI::baseUrl()->get() . '/.well-known/host-meta';
$warningtext[] = L10n::t('<a href="%s">%s</a> is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See <a href="%s">the installation page</a> for help.',
$warningtext[] = DI::l10n()->t('<a href="%s">%s</a> is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See <a href="%s">the installation page</a> for help.',
$well_known, $well_known, DI::baseUrl()->get() . '/help/Install');
}
@ -91,7 +89,7 @@ class Summary extends BaseAdminModule
}
} catch (\Throwable $exception) {
$warningtext[] = L10n::t('The logfile \'%s\' is not usable. No logging possible (error: \'%s\')', $file, $exception->getMessage());
$warningtext[] = DI::l10n()->t('The logfile \'%s\' is not usable. No logging possible (error: \'%s\')', $file, $exception->getMessage());
}
$file = Config::get('system', 'dlogfile');
@ -106,7 +104,7 @@ class Summary extends BaseAdminModule
}
} catch (\Throwable $exception) {
$warningtext[] = L10n::t('The debug logfile \'%s\' is not usable. No logging possible (error: \'%s\')', $file, $exception->getMessage());
$warningtext[] = DI::l10n()->t('The debug logfile \'%s\' is not usable. No logging possible (error: \'%s\')', $file, $exception->getMessage());
}
}
@ -122,7 +120,7 @@ class Summary extends BaseAdminModule
'from' => $currBasepath,
'to' => $confBasepath,
]);
$warningtext[] = L10n::t('Friendica\'s system.basepath was updated from \'%s\' to \'%s\'. Please remove the system.basepath from your db to avoid differences.',
$warningtext[] = DI::l10n()->t('Friendica\'s system.basepath was updated from \'%s\' to \'%s\'. Please remove the system.basepath from your db to avoid differences.',
$currBasepath,
$confBasepath);
} elseif (!is_dir($currBasepath)) {
@ -130,7 +128,7 @@ class Summary extends BaseAdminModule
'from' => $currBasepath,
'to' => $confBasepath,
]);
$warningtext[] = L10n::t('Friendica\'s current system.basepath \'%s\' is wrong and the config file \'%s\' isn\'t used.',
$warningtext[] = DI::l10n()->t('Friendica\'s current system.basepath \'%s\' is wrong and the config file \'%s\' isn\'t used.',
$currBasepath,
$confBasepath);
} else {
@ -138,19 +136,19 @@ class Summary extends BaseAdminModule
'from' => $currBasepath,
'to' => $confBasepath,
]);
$warningtext[] = L10n::t('Friendica\'s current system.basepath \'%s\' is not equal to the config file \'%s\'. Please fix your configuration.',
$warningtext[] = DI::l10n()->t('Friendica\'s current system.basepath \'%s\' is not equal to the config file \'%s\'. Please fix your configuration.',
$currBasepath,
$confBasepath);
}
}
$accounts = [
[L10n::t('Normal Account'), 0],
[L10n::t('Automatic Follower Account'), 0],
[L10n::t('Public Forum Account'), 0],
[L10n::t('Automatic Friend Account'), 0],
[L10n::t('Blog Account'), 0],
[L10n::t('Private Forum Account'), 0]
[DI::l10n()->t('Normal Account'), 0],
[DI::l10n()->t('Automatic Follower Account'), 0],
[DI::l10n()->t('Public Forum Account'), 0],
[DI::l10n()->t('Automatic Friend Account'), 0],
[DI::l10n()->t('Blog Account'), 0],
[DI::l10n()->t('Private Forum Account'), 0]
];
$users = 0;
@ -170,13 +168,13 @@ class Summary extends BaseAdminModule
$workerqueue = DBA::count('workerqueue', ['NOT `done` AND `retrial` = ?', 0]);
// We can do better, but this is a quick queue status
$queues = ['label' => L10n::t('Message queues'), 'deferred' => $deferred, 'workerq' => $workerqueue];
$queues = ['label' => DI::l10n()->t('Message queues'), 'deferred' => $deferred, 'workerq' => $workerqueue];
$variables = DBA::toArray(DBA::p('SHOW variables LIKE "max_allowed_packet"'));
$max_allowed_packet = $variables ? $variables[0]['Value'] : 0;
$server_settings = [
'label' => L10n::t('Server Settings'),
'label' => DI::l10n()->t('Server Settings'),
'php' => [
'upload_max_filesize' => ini_get('upload_max_filesize'),
'post_max_size' => ini_get('post_max_size'),
@ -189,17 +187,17 @@ class Summary extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/summary.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Summary'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Summary'),
'$queues' => $queues,
'$users' => [L10n::t('Registered users'), $users],
'$users' => [DI::l10n()->t('Registered users'), $users],
'$accounts' => $accounts,
'$pending' => [L10n::t('Pending registrations'), $pending],
'$version' => [L10n::t('Version'), FRIENDICA_VERSION],
'$pending' => [DI::l10n()->t('Pending registrations'), $pending],
'$version' => [DI::l10n()->t('Version'), FRIENDICA_VERSION],
'$platform' => FRIENDICA_PLATFORM,
'$codename' => FRIENDICA_CODENAME,
'$build' => Config::get('system', 'build'),
'$addons' => [L10n::t('Active addons'), Addon::getEnabledList()],
'$addons' => [DI::l10n()->t('Active addons'), Addon::getEnabledList()],
'$serversettings' => $server_settings,
'$warningtext' => $warningtext
]);

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin\Themes;
use Friendica\Content\Text\Markdown;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Theme;
use Friendica\DI;
@ -30,7 +29,7 @@ class Details extends BaseAdminModule
}
}
info(L10n::t('Theme settings updated.'));
info(DI::l10n()->t('Theme settings updated.'));
if (DI::mode()->isAjax()) {
return;
@ -51,17 +50,17 @@ class Details extends BaseAdminModule
$theme = $a->argv[2];
$theme = Strings::sanitizeFilePathItem($theme);
if (!is_dir("view/theme/$theme")) {
notice(L10n::t("Item not found."));
notice(DI::l10n()->t("Item not found."));
return '';
}
$isEnabled = in_array($theme, Theme::getAllowedList());
if ($isEnabled) {
$status = "on";
$action = L10n::t("Disable");
$action = DI::l10n()->t("Disable");
} else {
$status = "off";
$action = L10n::t("Enable");
$action = DI::l10n()->t("Enable");
}
if (!empty($_GET['action']) && $_GET['action'] == 'toggle') {
@ -69,11 +68,11 @@ class Details extends BaseAdminModule
if ($isEnabled) {
Theme::uninstall($theme);
info(L10n::t('Theme %s disabled.', $theme));
info(DI::l10n()->t('Theme %s disabled.', $theme));
} elseif (Theme::install($theme)) {
info(L10n::t('Theme %s successfully enabled.', $theme));
info(DI::l10n()->t('Theme %s successfully enabled.', $theme));
} else {
info(L10n::t('Theme %s failed to install.', $theme));
info(DI::l10n()->t('Theme %s failed to install.', $theme));
}
DI::baseUrl()->redirect('admin/themes/' . $theme);
@ -95,17 +94,17 @@ class Details extends BaseAdminModule
}
}
$screenshot = [Theme::getScreenshot($theme), L10n::t('Screenshot')];
$screenshot = [Theme::getScreenshot($theme), DI::l10n()->t('Screenshot')];
if (!stristr($screenshot[0], $theme)) {
$screenshot = null;
}
$t = Renderer::getMarkupTemplate('admin/addons/details.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Themes'),
'$toggle' => L10n::t('Toggle'),
'$settings' => L10n::t('Settings'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Themes'),
'$toggle' => DI::l10n()->t('Toggle'),
'$settings' => DI::l10n()->t('Settings'),
'$baseurl' => DI::baseUrl()->get(true),
'$addon' => $theme,
'$status' => $status,
@ -113,8 +112,8 @@ class Details extends BaseAdminModule
'$info' => Theme::getInfo($theme),
'$function' => 'themes',
'$admin_form' => $admin_form,
'$str_author' => L10n::t('Author: '),
'$str_maintainer' => L10n::t('Maintainer: '),
'$str_author' => DI::l10n()->t('Author: '),
'$str_maintainer' => DI::l10n()->t('Maintainer: '),
'$screenshot' => $screenshot,
'$readme' => $readme,

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Admin\Themes;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -44,7 +43,7 @@ class Embed extends BaseAdminModule
}
}
info(L10n::t('Theme settings updated.'));
info(DI::l10n()->t('Theme settings updated.'));
if (DI::mode()->isAjax()) {
return;
@ -65,7 +64,7 @@ class Embed extends BaseAdminModule
$theme = $a->argv[2];
$theme = Strings::sanitizeFilePathItem($theme);
if (!is_dir("view/theme/$theme")) {
notice(L10n::t('Unknown theme.'));
notice(DI::l10n()->t('Unknown theme.'));
return '';
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin\Themes;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Theme;
use Friendica\DI;
@ -39,17 +38,17 @@ class Index extends BaseAdminModule
if ($theme) {
$theme = Strings::sanitizeFilePathItem($theme);
if (!is_dir("view/theme/$theme")) {
notice(L10n::t('Item not found.'));
notice(DI::l10n()->t('Item not found.'));
return '';
}
if (in_array($theme, Theme::getAllowedList())) {
Theme::uninstall($theme);
info(L10n::t('Theme %s disabled.', $theme));
info(DI::l10n()->t('Theme %s disabled.', $theme));
} elseif (Theme::install($theme)) {
info(L10n::t('Theme %s successfully enabled.', $theme));
info(DI::l10n()->t('Theme %s successfully enabled.', $theme));
} else {
info(L10n::t('Theme %s failed to install.', $theme));
info(DI::l10n()->t('Theme %s failed to install.', $theme));
}
}
@ -91,17 +90,17 @@ class Index extends BaseAdminModule
$t = Renderer::getMarkupTemplate('admin/addons/index.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Themes'),
'$submit' => L10n::t('Save Settings'),
'$reload' => L10n::t('Reload active themes'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Themes'),
'$submit' => DI::l10n()->t('Save Settings'),
'$reload' => DI::l10n()->t('Reload active themes'),
'$baseurl' => DI::baseUrl()->get(true),
'$function' => 'themes',
'$addons' => $addons,
'$pcount' => count($themes),
'$noplugshint' => L10n::t('No themes found on the system. They should be placed in %1$s', '<code>/view/themes</code>'),
'$experimental' => L10n::t('[Experimental]'),
'$unsupported' => L10n::t('[Unsupported]'),
'$noplugshint' => DI::l10n()->t('No themes found on the system. They should be placed in %1$s', '<code>/view/themes</code>'),
'$experimental' => DI::l10n()->t('[Experimental]'),
'$unsupported' => DI::l10n()->t('[Unsupported]'),
'$form_security_token' => parent::getFormSecurityToken('admin_themes'),
]);
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Admin;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\BaseAdminModule;
@ -28,7 +27,7 @@ class Tos extends BaseAdminModule
Config::set('system', 'tosprivstatement', $displayprivstatement);
Config::set('system', 'tostext', $tostext);
info(L10n::t('The Terms of Service settings have been updated.'));
info(DI::l10n()->t('The Terms of Service settings have been updated.'));
DI::baseUrl()->redirect('admin/tos');
}
@ -40,15 +39,15 @@ class Tos extends BaseAdminModule
$tos = new \Friendica\Module\Tos();
$t = Renderer::getMarkupTemplate('admin/tos.tpl');
return Renderer::replaceMacros($t, [
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Terms of Service'),
'$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')],
'$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to <a href="%s" target="_blank">EU-GDPR</a>.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')],
'$preview' => L10n::t('Privacy Statement Preview'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Terms of Service'),
'$displaytos' => ['displaytos', DI::l10n()->t('Display Terms of Service'), Config::get('system', 'tosdisplay'), DI::l10n()->t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')],
'$displayprivstatement' => ['displayprivstatement', DI::l10n()->t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), DI::l10n()->t('Show some informations regarding the needed information to operate the node according e.g. to <a href="%s" target="_blank">EU-GDPR</a>.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')],
'$preview' => DI::l10n()->t('Privacy Statement Preview'),
'$privtext' => $tos->privacy_complete,
'$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')],
'$tostext' => ['tostext', DI::l10n()->t('The Terms of Service'), Config::get('system', 'tostext'), DI::l10n()->t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')],
'$form_security_token' => parent::getFormSecurityToken('admin_tos'),
'$submit' => L10n::t('Save Settings'),
'$submit' => DI::l10n()->t('Save Settings'),
]);
}
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module\Admin;
use Friendica\Content\Pager;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
@ -44,10 +43,10 @@ class Users extends BaseAdminModule
}
$user = $result['user'];
$preamble = Strings::deindent(L10n::t('
$preamble = Strings::deindent(DI::l10n()->t('
Dear %1$s,
the administrator of %2$s has set up an account for you.'));
$body = Strings::deindent(L10n::t('
$body = Strings::deindent(DI::l10n()->t('
The login details are as follows:
Site Location: %1$s
@ -84,7 +83,7 @@ class Users extends BaseAdminModule
'to_name' => $user['username'],
'to_email' => $user['email'],
'uid' => $user['uid'],
'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')),
'subject' => DI::l10n()->t('Registration details for %s', Config::get('config', 'sitename')),
'preamble' => $preamble,
'body' => $body]);
}
@ -92,13 +91,13 @@ class Users extends BaseAdminModule
if (!empty($_POST['page_users_block'])) {
// @TODO Move this to Model\User:block($users);
DBA::update('user', ['blocked' => 1], ['uid' => $users]);
notice(L10n::tt('%s user blocked', '%s users blocked', count($users)));
notice(DI::l10n()->tt('%s user blocked', '%s users blocked', count($users)));
}
if (!empty($_POST['page_users_unblock'])) {
// @TODO Move this to Model\User:unblock($users);
DBA::update('user', ['blocked' => 0], ['uid' => $users]);
notice(L10n::tt('%s user unblocked', '%s users unblocked', count($users)));
notice(DI::l10n()->tt('%s user unblocked', '%s users unblocked', count($users)));
}
if (!empty($_POST['page_users_delete'])) {
@ -106,11 +105,11 @@ class Users extends BaseAdminModule
if (local_user() != $uid) {
User::remove($uid);
} else {
notice(L10n::t('You can\'t remove yourself'));
notice(DI::l10n()->t('You can\'t remove yourself'));
}
}
notice(L10n::tt('%s user deleted', '%s users deleted', count($users)));
notice(DI::l10n()->tt('%s user deleted', '%s users deleted', count($users)));
}
if (!empty($_POST['page_users_approve'])) {
@ -154,22 +153,22 @@ class Users extends BaseAdminModule
// delete user
User::remove($uid);
notice(L10n::t('User "%s" deleted', $user['username']));
notice(DI::l10n()->t('User "%s" deleted', $user['username']));
} else {
notice(L10n::t('You can\'t remove yourself'));
notice(DI::l10n()->t('You can\'t remove yourself'));
}
break;
case 'block':
parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't');
// @TODO Move this to Model\User:block([$uid]);
DBA::update('user', ['blocked' => 1], ['uid' => $uid]);
notice(L10n::t('User "%s" blocked', $user['username']));
notice(DI::l10n()->t('User "%s" blocked', $user['username']));
break;
case 'unblock':
parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't');
// @TODO Move this to Model\User:unblock([$uid]);
DBA::update('user', ['blocked' => 0], ['uid' => $uid]);
notice(L10n::t('User "%s" unblocked', $user['username']));
notice(DI::l10n()->t('User "%s" unblocked', $user['username']));
break;
}
@ -218,18 +217,18 @@ class Users extends BaseAdminModule
$adminlist = explode(',', str_replace(' ', '', Config::get('config', 'admin_email')));
$_setup_users = function ($e) use ($adminlist) {
$page_types = [
User::PAGE_FLAGS_NORMAL => L10n::t('Normal Account Page'),
User::PAGE_FLAGS_SOAPBOX => L10n::t('Soapbox Page'),
User::PAGE_FLAGS_COMMUNITY => L10n::t('Public Forum'),
User::PAGE_FLAGS_FREELOVE => L10n::t('Automatic Friend Page'),
User::PAGE_FLAGS_PRVGROUP => L10n::t('Private Forum')
User::PAGE_FLAGS_NORMAL => DI::l10n()->t('Normal Account Page'),
User::PAGE_FLAGS_SOAPBOX => DI::l10n()->t('Soapbox Page'),
User::PAGE_FLAGS_COMMUNITY => DI::l10n()->t('Public Forum'),
User::PAGE_FLAGS_FREELOVE => DI::l10n()->t('Automatic Friend Page'),
User::PAGE_FLAGS_PRVGROUP => DI::l10n()->t('Private Forum')
];
$account_types = [
User::ACCOUNT_TYPE_PERSON => L10n::t('Personal Page'),
User::ACCOUNT_TYPE_ORGANISATION => L10n::t('Organisation Page'),
User::ACCOUNT_TYPE_NEWS => L10n::t('News Page'),
User::ACCOUNT_TYPE_COMMUNITY => L10n::t('Community Forum'),
User::ACCOUNT_TYPE_RELAY => L10n::t('Relay'),
User::ACCOUNT_TYPE_PERSON => DI::l10n()->t('Personal Page'),
User::ACCOUNT_TYPE_ORGANISATION => DI::l10n()->t('Organisation Page'),
User::ACCOUNT_TYPE_NEWS => DI::l10n()->t('News Page'),
User::ACCOUNT_TYPE_COMMUNITY => DI::l10n()->t('Community Forum'),
User::ACCOUNT_TYPE_RELAY => DI::l10n()->t('Relay'),
];
$e['page_flags_raw'] = $e['page-flags'];
@ -268,38 +267,38 @@ class Users extends BaseAdminModule
}
}
$th_users = array_map(null, [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Type')], $valid_orders);
$th_users = array_map(null, [DI::l10n()->t('Name'), DI::l10n()->t('Email'), DI::l10n()->t('Register date'), DI::l10n()->t('Last login'), DI::l10n()->t('Last item'), DI::l10n()->t('Type')], $valid_orders);
$t = Renderer::getMarkupTemplate('admin/users.tpl');
$o = Renderer::replaceMacros($t, [
// strings //
'$title' => L10n::t('Administration'),
'$page' => L10n::t('Users'),
'$submit' => L10n::t('Add User'),
'$select_all' => L10n::t('select all'),
'$h_pending' => L10n::t('User registrations waiting for confirm'),
'$h_deleted' => L10n::t('User waiting for permanent deletion'),
'$th_pending' => [L10n::t('Request date'), L10n::t('Name'), L10n::t('Email')],
'$no_pending' => L10n::t('No registrations.'),
'$pendingnotetext' => L10n::t('Note from the user'),
'$approve' => L10n::t('Approve'),
'$deny' => L10n::t('Deny'),
'$delete' => L10n::t('Delete'),
'$block' => L10n::t('Block'),
'$blocked' => L10n::t('User blocked'),
'$unblock' => L10n::t('Unblock'),
'$siteadmin' => L10n::t('Site admin'),
'$accountexpired' => L10n::t('Account expired'),
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Users'),
'$submit' => DI::l10n()->t('Add User'),
'$select_all' => DI::l10n()->t('select all'),
'$h_pending' => DI::l10n()->t('User registrations waiting for confirm'),
'$h_deleted' => DI::l10n()->t('User waiting for permanent deletion'),
'$th_pending' => [DI::l10n()->t('Request date'), DI::l10n()->t('Name'), DI::l10n()->t('Email')],
'$no_pending' => DI::l10n()->t('No registrations.'),
'$pendingnotetext' => DI::l10n()->t('Note from the user'),
'$approve' => DI::l10n()->t('Approve'),
'$deny' => DI::l10n()->t('Deny'),
'$delete' => DI::l10n()->t('Delete'),
'$block' => DI::l10n()->t('Block'),
'$blocked' => DI::l10n()->t('User blocked'),
'$unblock' => DI::l10n()->t('Unblock'),
'$siteadmin' => DI::l10n()->t('Site admin'),
'$accountexpired' => DI::l10n()->t('Account expired'),
'$h_users' => L10n::t('Users'),
'$h_newuser' => L10n::t('New User'),
'$th_deleted' => [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Permanent deletion')],
'$h_users' => DI::l10n()->t('Users'),
'$h_newuser' => DI::l10n()->t('New User'),
'$th_deleted' => [DI::l10n()->t('Name'), DI::l10n()->t('Email'), DI::l10n()->t('Register date'), DI::l10n()->t('Last login'), DI::l10n()->t('Last item'), DI::l10n()->t('Permanent deletion')],
'$th_users' => $th_users,
'$order_users' => $order,
'$order_direction_users' => $order_direction,
'$confirm_delete_multi' => L10n::t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => L10n::t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete_multi' => DI::l10n()->t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => DI::l10n()->t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
'$form_security_token' => parent::getFormSecurityToken('admin_users'),
@ -309,9 +308,9 @@ class Users extends BaseAdminModule
'$pending' => $pending,
'deleted' => $deleted,
'$users' => $users,
'$newusername' => ['new_user_name', L10n::t('Name'), '', L10n::t('Name of the new user.')],
'$newusernickname' => ['new_user_nickname', L10n::t('Nickname'), '', L10n::t('Nickname of the new user.')],
'$newuseremail' => ['new_user_email', L10n::t('Email'), '', L10n::t('Email address of the new user.'), '', '', 'email'],
'$newusername' => ['new_user_name', DI::l10n()->t('Name'), '', DI::l10n()->t('Name of the new user.')],
'$newusernickname' => ['new_user_nickname', DI::l10n()->t('Nickname'), '', DI::l10n()->t('Nickname of the new user.')],
'$newuseremail' => ['new_user_email', DI::l10n()->t('Email'), '', DI::l10n()->t('Email address of the new user.'), '', '', 'email'],
]);
$o .= $pager->renderFull(DBA::count('user'));

View file

@ -5,7 +5,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Content\ContactSelector;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model;
@ -33,7 +32,7 @@ class AllFriends extends BaseModule
}
if (!$cid) {
throw new HTTPException\BadRequestException(L10n::t('Invalid contact.'));
throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.'));
}
$uid = $app->user['uid'];
@ -41,7 +40,7 @@ class AllFriends extends BaseModule
$contact = Model\Contact::getContactForUser($cid, local_user(), ['name', 'url', 'photo', 'uid', 'id']);
if (empty($contact)) {
throw new HTTPException\BadRequestException(L10n::t('Invalid contact.'));
throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.'));
}
DI::page()['aside'] = "";
@ -53,7 +52,7 @@ class AllFriends extends BaseModule
$friends = Model\GContact::allFriends(local_user(), $cid, $pager->getStart(), $pager->getItemsPerPage());
if (empty($friends)) {
return L10n::t('No friends to display.');
return DI::l10n()->t('No friends to display.');
}
$id = 0;
@ -72,8 +71,8 @@ class AllFriends extends BaseModule
} else {
$connlnk = DI::baseUrl()->get() . '/follow/?url=' . $friend['url'];
$photoMenu = [
'profile' => [L10n::t('View Profile'), Model\Contact::magicLinkbyId($friend['id'], $friend['url'])],
'follow' => [L10n::t('Connect/Follow'), $connlnk]
'profile' => [DI::l10n()->t('View Profile'), Model\Contact::magicLinkbyId($friend['id'], $friend['url'])],
'follow' => [DI::l10n()->t('Connect/Follow'), $connlnk]
];
}
@ -89,7 +88,7 @@ class AllFriends extends BaseModule
'account_type' => Model\Contact::getAccountType($contactDetails),
'network' => ContactSelector::networkToName($contactDetails['network'], $contactDetails['url']),
'photoMenu' => $photoMenu,
'conntxt' => L10n::t('Connect'),
'conntxt' => DI::l10n()->t('Connect'),
'connlnk' => $connlnk,
'id' => ++$id,
];

View file

@ -5,7 +5,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Content\Nav;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -27,12 +26,12 @@ class Apps extends BaseModule
$apps = Nav::getAppMenu();
if (count($apps) == 0) {
notice(L10n::t('No installed applications.') . EOL);
notice(DI::l10n()->t('No installed applications.') . EOL);
}
$tpl = Renderer::getMarkupTemplate('apps.tpl');
return Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Applications'),
'$title' => DI::l10n()->t('Applications'),
'$apps' => $apps,
]);
}

View file

@ -7,9 +7,7 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\System;
use Friendica\DI;
use Friendica\Model\Attach as MAttach;
@ -34,19 +32,19 @@ class Attach extends BaseModule
// Check for existence
$item = MAttach::exists(['id' => $item_id]);
if ($item === false) {
throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item was not found.'));
throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('Item was not found.'));
}
// Now we'll fetch the item, if we have enough permisson
$item = MAttach::getByIdWithPermission($item_id);
if ($item === false) {
throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Permission denied.'));
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
$data = MAttach::getData($item);
if (is_null($data)) {
Logger::log('NULL data for attachment with id ' . $item['id']);
throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item was not found.'));
throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('Item was not found.'));
}
// Use quotes around the filename to prevent a "multiple Content-Disposition"

View file

@ -2,9 +2,7 @@
namespace Friendica\Module\Base;
use Friendica\App\Arguments;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Network\HTTPException;
@ -39,13 +37,13 @@ class Api extends BaseModule
public static function post(array $parameters = [])
{
if (!api_user()) {
throw new HTTPException\UnauthorizedException(L10n::t('Permission denied.'));
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Permission denied.'));
}
$a = DI::app();
if (!empty($a->user['uid']) && $a->user['uid'] != api_user()) {
throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Addon;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI;
@ -52,13 +51,13 @@ abstract class BaseAdminModule extends BaseModule
public static function content(array $parameters = [])
{
if (!is_site_admin()) {
notice(L10n::t('Please login to continue.'));
notice(DI::l10n()->t('Please login to continue.'));
Session::set('return_path', DI::args()->getQueryString());
DI::baseUrl()->redirect('login');
}
if (!empty($_SESSION['submanage'])) {
throw new ForbiddenException(L10n::t('Submanaged account can\'t access the administation pages. Please log back in as the master account.'));
throw new ForbiddenException(DI::l10n()->t('Submanaged account can\'t access the administation pages. Please log back in as the master account.'));
}
// Header stuff
@ -71,38 +70,38 @@ abstract class BaseAdminModule extends BaseModule
// array(url, name, extra css classes)
// not part of $aside to make the template more adjustable
$aside_sub = [
'information' => [L10n::t('Information'), [
'overview' => ['admin' , L10n::t('Overview') , 'overview'],
'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation']
'information' => [DI::l10n()->t('Information'), [
'overview' => ['admin' , DI::l10n()->t('Overview') , 'overview'],
'federation' => ['admin/federation' , DI::l10n()->t('Federation Statistics') , 'federation']
]],
'configuration' => [L10n::t('Configuration'), [
'site' => ['admin/site' , L10n::t('Site') , 'site'],
'users' => ['admin/users' , L10n::t('Users') , 'users'],
'addons' => ['admin/addons' , L10n::t('Addons') , 'addons'],
'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'],
'features' => ['admin/features' , L10n::t('Additional features') , 'features'],
'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'],
'configuration' => [DI::l10n()->t('Configuration'), [
'site' => ['admin/site' , DI::l10n()->t('Site') , 'site'],
'users' => ['admin/users' , DI::l10n()->t('Users') , 'users'],
'addons' => ['admin/addons' , DI::l10n()->t('Addons') , 'addons'],
'themes' => ['admin/themes' , DI::l10n()->t('Themes') , 'themes'],
'features' => ['admin/features' , DI::l10n()->t('Additional features') , 'features'],
'tos' => ['admin/tos' , DI::l10n()->t('Terms of Service') , 'tos'],
]],
'database' => [L10n::t('Database'), [
'dbsync' => ['admin/dbsync' , L10n::t('DB updates') , 'dbsync'],
'deferred' => ['admin/queue/deferred', L10n::t('Inspect Deferred Workers'), 'deferred'],
'workerqueue' => ['admin/queue' , L10n::t('Inspect worker Queue') , 'workerqueue'],
'database' => [DI::l10n()->t('Database'), [
'dbsync' => ['admin/dbsync' , DI::l10n()->t('DB updates') , 'dbsync'],
'deferred' => ['admin/queue/deferred', DI::l10n()->t('Inspect Deferred Workers'), 'deferred'],
'workerqueue' => ['admin/queue' , DI::l10n()->t('Inspect worker Queue') , 'workerqueue'],
]],
'tools' => [L10n::t('Tools'), [
'contactblock' => ['admin/blocklist/contact', L10n::t('Contact Blocklist') , 'contactblock'],
'blocklist' => ['admin/blocklist/server' , L10n::t('Server Blocklist') , 'blocklist'],
'deleteitem' => ['admin/item/delete' , L10n::t('Delete Item') , 'deleteitem'],
'tools' => [DI::l10n()->t('Tools'), [
'contactblock' => ['admin/blocklist/contact', DI::l10n()->t('Contact Blocklist') , 'contactblock'],
'blocklist' => ['admin/blocklist/server' , DI::l10n()->t('Server Blocklist') , 'blocklist'],
'deleteitem' => ['admin/item/delete' , DI::l10n()->t('Delete Item') , 'deleteitem'],
]],
'logs' => [L10n::t('Logs'), [
'logsconfig' => ['admin/logs/', L10n::t('Logs') , 'logs'],
'logsview' => ['admin/logs/view' , L10n::t('View Logs') , 'viewlogs'],
'logs' => [DI::l10n()->t('Logs'), [
'logsconfig' => ['admin/logs/', DI::l10n()->t('Logs') , 'logs'],
'logsview' => ['admin/logs/view' , DI::l10n()->t('View Logs') , 'viewlogs'],
]],
'diagnostics' => [L10n::t('Diagnostics'), [
'phpinfo' => ['admin/phpinfo' , L10n::t('PHP Info') , 'phpinfo'],
'probe' => ['probe' , L10n::t('probe address') , 'probe'],
'webfinger' => ['webfinger' , L10n::t('check webfinger') , 'webfinger'],
'itemsource' => ['admin/item/source' , L10n::t('Item Source') , 'itemsource'],
'babel' => ['babel' , L10n::t('Babel') , 'babel'],
'diagnostics' => [DI::l10n()->t('Diagnostics'), [
'phpinfo' => ['admin/phpinfo' , DI::l10n()->t('PHP Info') , 'phpinfo'],
'probe' => ['probe' , DI::l10n()->t('probe address') , 'probe'],
'webfinger' => ['webfinger' , DI::l10n()->t('check webfinger') , 'webfinger'],
'itemsource' => ['admin/item/source' , DI::l10n()->t('Item Source') , 'itemsource'],
'babel' => ['babel' , DI::l10n()->t('Babel') , 'babel'],
]],
];
@ -110,9 +109,9 @@ abstract class BaseAdminModule extends BaseModule
DI::page()['aside'] .= Renderer::replaceMacros($t, [
'$admin' => ['addons_admin' => Addon::getAdminList()],
'$subpages' => $aside_sub,
'$admtxt' => L10n::t('Admin'),
'$plugadmtxt' => L10n::t('Addon Features'),
'$h_pending' => L10n::t('User registrations waiting for confirmation'),
'$admtxt' => DI::l10n()->t('Admin'),
'$plugadmtxt' => DI::l10n()->t('Addon Features'),
'$h_pending' => DI::l10n()->t('User registrations waiting for confirmation'),
'$admurl' => 'admin/'
]);

View file

@ -5,7 +5,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Content\ContactSelector;
use Friendica\Content\Pager;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\DI;
@ -50,7 +49,7 @@ class BaseSearchModule extends BaseModule
if (strpos($search, '@') === 0) {
$search = substr($search, 1);
$type = Search::TYPE_PEOPLE;
$header = L10n::t('People Search - %s', $search);
$header = DI::l10n()->t('People Search - %s', $search);
if (strrpos($search, '@') > 0) {
$results = Search::getContactsFromProbe($search);
@ -60,7 +59,7 @@ class BaseSearchModule extends BaseModule
if (strpos($search, '!') === 0) {
$search = substr($search, 1);
$type = Search::TYPE_FORUM;
$header = L10n::t('Forum Search - %s', $search);
$header = DI::l10n()->t('Forum Search - %s', $search);
}
$args = DI::args();
@ -91,7 +90,7 @@ class BaseSearchModule extends BaseModule
protected static function printResult(ResultList $results, Pager $pager, $header = '')
{
if ($results->getTotal() == 0) {
info(L10n::t('No matches'));
info(DI::l10n()->t('No matches'));
return '';
}
@ -128,10 +127,10 @@ class BaseSearchModule extends BaseModule
}
} else {
$connLink = DI::baseUrl()->get() . '/follow/?url=' . $result->getUrl();
$connTxt = L10n::t('Connect');
$connTxt = DI::l10n()->t('Connect');
$photo_menu['profile'] = [L10n::t("View Profile"), Model\Contact::magicLink($result->getUrl())];
$photo_menu['follow'] = [L10n::t("Connect/Follow"), $connLink];
$photo_menu['profile'] = [DI::l10n()->t("View Profile"), Model\Contact::magicLink($result->getUrl())];
$photo_menu['follow'] = [DI::l10n()->t("Connect/Follow"), $connLink];
}
$photo = str_replace("http:///photo/", Search::getGlobalDirectory() . "/photo/", $result->getPhoto());

View file

@ -4,7 +4,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Content\Feature;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -16,27 +15,27 @@ class BaseSettingsModule extends BaseModule
$tpl = Renderer::getMarkupTemplate('settings/head.tpl');
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
'$ispublic' => L10n::t('everybody')
'$ispublic' => DI::l10n()->t('everybody')
]);
$tabs = [];
$tabs[] = [
'label' => L10n::t('Account'),
'label' => DI::l10n()->t('Account'),
'url' => 'settings',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'settings') ? 'active' : ''),
'accesskey' => 'o',
];
$tabs[] = [
'label' => L10n::t('Two-factor authentication'),
'label' => DI::l10n()->t('Two-factor authentication'),
'url' => 'settings/2fa',
'selected' => (($a->argc > 1) && ($a->argv[1] === '2fa') ? 'active' : ''),
'accesskey' => 'o',
];
$tabs[] = [
'label' => L10n::t('Profiles'),
'label' => DI::l10n()->t('Profiles'),
'url' => 'profiles',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'profiles') ? 'active' : ''),
'accesskey' => 'p',
@ -44,7 +43,7 @@ class BaseSettingsModule extends BaseModule
if (Feature::get()) {
$tabs[] = [
'label' => L10n::t('Additional features'),
'label' => DI::l10n()->t('Additional features'),
'url' => 'settings/features',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'features') ? 'active' : ''),
'accesskey' => 't',
@ -52,49 +51,49 @@ class BaseSettingsModule extends BaseModule
}
$tabs[] = [
'label' => L10n::t('Display'),
'label' => DI::l10n()->t('Display'),
'url' => 'settings/display',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'display') ? 'active' : ''),
'accesskey' => 'i',
];
$tabs[] = [
'label' => L10n::t('Social Networks'),
'label' => DI::l10n()->t('Social Networks'),
'url' => 'settings/connectors',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors') ? 'active' : ''),
'accesskey' => 'w',
];
$tabs[] = [
'label' => L10n::t('Addons'),
'label' => DI::l10n()->t('Addons'),
'url' => 'settings/addon',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon') ? 'active' : ''),
'accesskey' => 'l',
];
$tabs[] = [
'label' => L10n::t('Delegations'),
'label' => DI::l10n()->t('Delegations'),
'url' => 'settings/delegation',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'delegation') ? 'active' : ''),
'accesskey' => 'd',
];
$tabs[] = [
'label' => L10n::t('Connected apps'),
'label' => DI::l10n()->t('Connected apps'),
'url' => 'settings/oauth',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth') ? 'active' : ''),
'accesskey' => 'b',
];
$tabs[] = [
'label' => L10n::t('Export personal data'),
'label' => DI::l10n()->t('Export personal data'),
'url' => 'settings/userexport',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'userexport') ? 'active' : ''),
'accesskey' => 'e',
];
$tabs[] = [
'label' => L10n::t('Remove account'),
'label' => DI::l10n()->t('Remove account'),
'url' => 'removeme',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'removeme') ? 'active' : ''),
'accesskey' => 'r',
@ -103,7 +102,7 @@ class BaseSettingsModule extends BaseModule
$tabtpl = Renderer::getMarkupTemplate("generic_links_widget.tpl");
DI::page()['aside'] = Renderer::replaceMacros($tabtpl, [
'$title' => L10n::t('Settings'),
'$title' => DI::l10n()->t('Settings'),
'$class' => 'settings-widget',
'$items' => $tabs,
]);

View file

@ -4,7 +4,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\ACL;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Module\Security\Login;
use Friendica\Network\HTTPException;
@ -24,7 +23,7 @@ class Bookmarklet extends BaseModule
$config = DI::config();
if (!local_user()) {
$output = '<h2>' . L10n::t('Login') . '</h2>';
$output = '<h2>' . DI::l10n()->t('Login') . '</h2>';
$output .= Login::form(DI::args()->getQueryString(), intval($config->get('config', 'register_policy')) === Register::CLOSED ? false : true);
return $output;
}
@ -34,7 +33,7 @@ class Bookmarklet extends BaseModule
if (!strstr($referer, $page)) {
if (empty($_REQUEST["url"])) {
throw new HTTPException\BadRequestException(L10n::t('This page is missing a url parameter.'));
throw new HTTPException\BadRequestException(DI::l10n()->t('This page is missing a url parameter.'));
}
$content = add_page_info($_REQUEST["url"]);
@ -56,7 +55,7 @@ class Bookmarklet extends BaseModule
$output = status_editor($app, $x, 0, false);
$output .= "<script>window.resizeTo(800,550);</script>";
} else {
$output = '<h2>' . L10n::t('The post was created') . '</h2>';
$output = '<h2>' . DI::l10n()->t('The post was created') . '</h2>';
$output .= "<script>window.close()</script>";
}

View file

@ -11,7 +11,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Widget;
use Friendica\Core\ACL;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\Worker;
@ -67,7 +66,7 @@ class Contact extends BaseModule
}
}
if ($count_actions > 0) {
info(L10n::tt('%d contact edited.', '%d contacts edited.', $count_actions));
info(DI::l10n()->tt('%d contact edited.', '%d contacts edited.', $count_actions));
}
DI::baseUrl()->redirect('contact');
@ -94,7 +93,7 @@ class Contact extends BaseModule
}
if (!DBA::exists('contact', ['id' => $contact_id, 'uid' => local_user(), 'deleted' => false])) {
notice(L10n::t('Could not access contact record.') . EOL);
notice(DI::l10n()->t('Could not access contact record.') . EOL);
DI::baseUrl()->redirect('contact');
return; // NOTREACHED
}
@ -104,7 +103,7 @@ class Contact extends BaseModule
$profile_id = intval($_POST['profile-assign'] ?? 0);
if ($profile_id) {
if (!DBA::exists('profile', ['id' => $profile_id, 'uid' => local_user()])) {
notice(L10n::t('Could not locate selected profile.') . EOL);
notice(DI::l10n()->t('Could not locate selected profile.') . EOL);
return;
}
}
@ -136,9 +135,9 @@ class Contact extends BaseModule
);
if (DBA::isResult($r)) {
info(L10n::t('Contact updated.') . EOL);
info(DI::l10n()->t('Contact updated.') . EOL);
} else {
notice(L10n::t('Failed to update contact record.') . EOL);
notice(DI::l10n()->t('Failed to update contact record.') . EOL);
}
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user(), 'deleted' => false]);
@ -311,13 +310,13 @@ class Contact extends BaseModule
'$url' => Model\Contact::magicLinkByContact($contact, $contact['url']),
'$addr' => $contact['addr'] ?? '',
'$network_link' => $network_link,
'$network' => L10n::t('Network:'),
'$network' => DI::l10n()->t('Network:'),
'$account_type' => Model\Contact::getAccountType($contact),
'$follow' => L10n::t('Follow'),
'$follow' => DI::l10n()->t('Follow'),
'$follow_link' => $follow_link,
'$unfollow' => L10n::t('Unfollow'),
'$unfollow' => DI::l10n()->t('Unfollow'),
'$unfollow_link' => $unfollow_link,
'$wallmessage' => L10n::t('Message'),
'$wallmessage' => DI::l10n()->t('Message'),
'$wallmessage_link' => $wallmessage_link,
]);
@ -356,7 +355,7 @@ class Contact extends BaseModule
Nav::setSelected('contact');
if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return Login::form();
}
@ -371,7 +370,7 @@ class Contact extends BaseModule
$orig_record = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => [0, local_user()], 'self' => false, 'deleted' => false]);
if (!DBA::isResult($orig_record)) {
throw new NotFoundException(L10n::t('Contact not found'));
throw new NotFoundException(DI::l10n()->t('Contact not found'));
}
if ($cmd === 'update' && ($orig_record['uid'] != 0)) {
@ -390,7 +389,7 @@ class Contact extends BaseModule
self::blockContact($contact_id);
$blocked = Model\Contact::isBlockedByUser($contact_id, local_user());
info(($blocked ? L10n::t('Contact has been blocked') : L10n::t('Contact has been unblocked')) . EOL);
info(($blocked ? DI::l10n()->t('Contact has been blocked') : DI::l10n()->t('Contact has been unblocked')) . EOL);
DI::baseUrl()->redirect('contact/' . $contact_id);
// NOTREACHED
@ -400,7 +399,7 @@ class Contact extends BaseModule
self::ignoreContact($contact_id);
$ignored = Model\Contact::isIgnoredByUser($contact_id, local_user());
info(($ignored ? L10n::t('Contact has been ignored') : L10n::t('Contact has been unignored')) . EOL);
info(($ignored ? DI::l10n()->t('Contact has been ignored') : DI::l10n()->t('Contact has been unignored')) . EOL);
DI::baseUrl()->redirect('contact/' . $contact_id);
// NOTREACHED
@ -410,7 +409,7 @@ class Contact extends BaseModule
$r = self::archiveContact($contact_id, $orig_record);
if ($r) {
$archived = (($orig_record['archive']) ? 0 : 1);
info((($archived) ? L10n::t('Contact has been archived') : L10n::t('Contact has been unarchived')) . EOL);
info((($archived) ? DI::l10n()->t('Contact has been archived') : DI::l10n()->t('Contact has been unarchived')) . EOL);
}
DI::baseUrl()->redirect('contact/' . $contact_id);
@ -434,15 +433,15 @@ class Contact extends BaseModule
DI::page()['aside'] = '';
return Renderer::replaceMacros(Renderer::getMarkupTemplate('contact_drop_confirm.tpl'), [
'$header' => L10n::t('Drop contact'),
'$header' => DI::l10n()->t('Drop contact'),
'$contact' => self::getContactTemplateVars($orig_record),
'$method' => 'get',
'$message' => L10n::t('Do you really want to delete this contact?'),
'$message' => DI::l10n()->t('Do you really want to delete this contact?'),
'$extra_inputs' => $inputs,
'$confirm' => L10n::t('Yes'),
'$confirm' => DI::l10n()->t('Yes'),
'$confirm_url' => $query['base'],
'$confirm_name' => 'confirmed',
'$cancel' => L10n::t('Cancel'),
'$cancel' => DI::l10n()->t('Cancel'),
]);
}
// Now check how the user responded to the confirmation query
@ -451,7 +450,7 @@ class Contact extends BaseModule
}
self::dropContact($orig_record);
info(L10n::t('Contact has been removed.') . EOL);
info(DI::l10n()->t('Contact has been removed.') . EOL);
DI::baseUrl()->redirect('contact');
// NOTREACHED
@ -481,17 +480,17 @@ class Contact extends BaseModule
switch ($contact['rel']) {
case Model\Contact::FRIEND:
$dir_icon = 'images/lrarrow.gif';
$relation_text = L10n::t('You are mutual friends with %s');
$relation_text = DI::l10n()->t('You are mutual friends with %s');
break;
case Model\Contact::FOLLOWER;
$dir_icon = 'images/larrow.gif';
$relation_text = L10n::t('You are sharing with %s');
$relation_text = DI::l10n()->t('You are sharing with %s');
break;
case Model\Contact::SHARING;
$dir_icon = 'images/rarrow.gif';
$relation_text = L10n::t('%s is sharing with you');
$relation_text = DI::l10n()->t('%s is sharing with you');
break;
default:
@ -515,36 +514,36 @@ class Contact extends BaseModule
$sparkle = '';
}
$insecure = L10n::t('Private communications are not available for this contact.');
$insecure = DI::l10n()->t('Private communications are not available for this contact.');
$last_update = (($contact['last-update'] <= DBA::NULL_DATETIME) ? L10n::t('Never') : DateTimeFormat::local($contact['last-update'], 'D, j M Y, g:i A'));
$last_update = (($contact['last-update'] <= DBA::NULL_DATETIME) ? DI::l10n()->t('Never') : DateTimeFormat::local($contact['last-update'], 'D, j M Y, g:i A'));
if ($contact['last-update'] > DBA::NULL_DATETIME) {
$last_update .= ' ' . (($contact['last-update'] <= $contact['success_update']) ? L10n::t('(Update was successful)') : L10n::t('(Update was not successful)'));
$last_update .= ' ' . (($contact['last-update'] <= $contact['success_update']) ? DI::l10n()->t('(Update was successful)') : DI::l10n()->t('(Update was not successful)'));
}
$lblsuggest = (($contact['network'] === Protocol::DFRN) ? L10n::t('Suggest friends') : '');
$lblsuggest = (($contact['network'] === Protocol::DFRN) ? DI::l10n()->t('Suggest friends') : '');
$poll_enabled = in_array($contact['network'], [Protocol::DFRN, Protocol::OSTATUS, Protocol::FEED, Protocol::MAIL]);
$nettype = L10n::t('Network type: %s', ContactSelector::networkToName($contact['network'], $contact['url'], $contact['protocol']));
$nettype = DI::l10n()->t('Network type: %s', ContactSelector::networkToName($contact['network'], $contact['url'], $contact['protocol']));
// tabs
$tab_str = self::getTabsHTML($a, $contact, 3);
$lost_contact = (($contact['archive'] && $contact['term-date'] > DBA::NULL_DATETIME && $contact['term-date'] < DateTimeFormat::utcNow()) ? L10n::t('Communications lost with this contact!') : '');
$lost_contact = (($contact['archive'] && $contact['term-date'] > DBA::NULL_DATETIME && $contact['term-date'] < DateTimeFormat::utcNow()) ? DI::l10n()->t('Communications lost with this contact!') : '');
$fetch_further_information = null;
if ($contact['network'] == Protocol::FEED) {
$fetch_further_information = [
'fetch_further_information',
L10n::t('Fetch further information for feeds'),
DI::l10n()->t('Fetch further information for feeds'),
$contact['fetch_further_information'],
L10n::t('Fetch information like preview pictures, title and teaser from the feed item. You can activate this if the feed doesn\'t contain much text. Keywords are taken from the meta header in the feed item and are posted as hash tags.'),
DI::l10n()->t('Fetch information like preview pictures, title and teaser from the feed item. You can activate this if the feed doesn\'t contain much text. Keywords are taken from the meta header in the feed item and are posted as hash tags.'),
[
'0' => L10n::t('Disabled'),
'1' => L10n::t('Fetch information'),
'3' => L10n::t('Fetch keywords'),
'2' => L10n::t('Fetch information and keywords')
'0' => DI::l10n()->t('Disabled'),
'1' => DI::l10n()->t('Fetch information'),
'3' => DI::l10n()->t('Fetch keywords'),
'2' => DI::l10n()->t('Fetch information and keywords')
]
];
}
@ -563,9 +562,9 @@ class Contact extends BaseModule
$contact_actions = self::getContactActions($contact);
if ($contact['uid'] != 0) {
$lbl_vis1 = L10n::t('Profile Visibility');
$lbl_info1 = L10n::t('Contact Information / Notes');
$contact_settings_label = L10n::t('Contact Settings');
$lbl_vis1 = DI::l10n()->t('Profile Visibility');
$lbl_info1 = DI::l10n()->t('Contact Information / Notes');
$contact_settings_label = DI::l10n()->t('Contact Settings');
} else {
$lbl_vis1 = null;
$lbl_info1 = null;
@ -574,67 +573,67 @@ class Contact extends BaseModule
$tpl = Renderer::getMarkupTemplate('contact_edit.tpl');
$o .= Renderer::replaceMacros($tpl, [
'$header' => L10n::t('Contact'),
'$header' => DI::l10n()->t('Contact'),
'$tab_str' => $tab_str,
'$submit' => L10n::t('Submit'),
'$submit' => DI::l10n()->t('Submit'),
'$lbl_vis1' => $lbl_vis1,
'$lbl_vis2' => L10n::t('Please choose the profile you would like to display to %s when viewing your profile securely.', $contact['name']),
'$lbl_vis2' => DI::l10n()->t('Please choose the profile you would like to display to %s when viewing your profile securely.', $contact['name']),
'$lbl_info1' => $lbl_info1,
'$lbl_info2' => L10n::t('Their personal note'),
'$lbl_info2' => DI::l10n()->t('Their personal note'),
'$reason' => trim(Strings::escapeTags($contact['reason'])),
'$infedit' => L10n::t('Edit contact notes'),
'$infedit' => DI::l10n()->t('Edit contact notes'),
'$common_link' => 'common/loc/' . local_user() . '/' . $contact['id'],
'$relation_text' => $relation_text,
'$visit' => L10n::t('Visit %s\'s profile [%s]', $contact['name'], $contact['url']),
'$blockunblock' => L10n::t('Block/Unblock contact'),
'$ignorecont' => L10n::t('Ignore contact'),
'$lblcrepair' => L10n::t('Repair URL settings'),
'$lblrecent' => L10n::t('View conversations'),
'$visit' => DI::l10n()->t('Visit %s\'s profile [%s]', $contact['name'], $contact['url']),
'$blockunblock' => DI::l10n()->t('Block/Unblock contact'),
'$ignorecont' => DI::l10n()->t('Ignore contact'),
'$lblcrepair' => DI::l10n()->t('Repair URL settings'),
'$lblrecent' => DI::l10n()->t('View conversations'),
'$lblsuggest' => $lblsuggest,
'$nettype' => $nettype,
'$poll_interval' => $poll_interval,
'$poll_enabled' => $poll_enabled,
'$lastupdtext' => L10n::t('Last update:'),
'$lastupdtext' => DI::l10n()->t('Last update:'),
'$lost_contact' => $lost_contact,
'$updpub' => L10n::t('Update public posts'),
'$updpub' => DI::l10n()->t('Update public posts'),
'$last_update' => $last_update,
'$udnow' => L10n::t('Update now'),
'$udnow' => DI::l10n()->t('Update now'),
'$profile_select' => $profile_select,
'$contact_id' => $contact['id'],
'$block_text' => ($contact['blocked'] ? L10n::t('Unblock') : L10n::t('Block')),
'$ignore_text' => ($contact['readonly'] ? L10n::t('Unignore') : L10n::t('Ignore')),
'$block_text' => ($contact['blocked'] ? DI::l10n()->t('Unblock') : DI::l10n()->t('Block')),
'$ignore_text' => ($contact['readonly'] ? DI::l10n()->t('Unignore') : DI::l10n()->t('Ignore')),
'$insecure' => (in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA]) ? '' : $insecure),
'$info' => $contact['info'],
'$cinfo' => ['info', '', $contact['info'], ''],
'$blocked' => ($contact['blocked'] ? L10n::t('Currently blocked') : ''),
'$ignored' => ($contact['readonly'] ? L10n::t('Currently ignored') : ''),
'$archived' => ($contact['archive'] ? L10n::t('Currently archived') : ''),
'$pending' => ($contact['pending'] ? L10n::t('Awaiting connection acknowledge') : ''),
'$hidden' => ['hidden', L10n::t('Hide this contact from others'), ($contact['hidden'] == 1), L10n::t('Replies/likes to your public posts <strong>may</strong> still be visible')],
'$notify' => ['notify', L10n::t('Notification for new posts'), ($contact['notify_new_posts'] == 1), L10n::t('Send a notification of every new post of this contact')],
'$blocked' => ($contact['blocked'] ? DI::l10n()->t('Currently blocked') : ''),
'$ignored' => ($contact['readonly'] ? DI::l10n()->t('Currently ignored') : ''),
'$archived' => ($contact['archive'] ? DI::l10n()->t('Currently archived') : ''),
'$pending' => ($contact['pending'] ? DI::l10n()->t('Awaiting connection acknowledge') : ''),
'$hidden' => ['hidden', DI::l10n()->t('Hide this contact from others'), ($contact['hidden'] == 1), DI::l10n()->t('Replies/likes to your public posts <strong>may</strong> still be visible')],
'$notify' => ['notify', DI::l10n()->t('Notification for new posts'), ($contact['notify_new_posts'] == 1), DI::l10n()->t('Send a notification of every new post of this contact')],
'$fetch_further_information' => $fetch_further_information,
'$ffi_keyword_blacklist' => ['ffi_keyword_blacklist', L10n::t('Blacklisted keywords'), $contact['ffi_keyword_blacklist'], L10n::t('Comma separated list of keywords that should not be converted to hashtags, when "Fetch information and keywords" is selected')],
'$ffi_keyword_blacklist' => ['ffi_keyword_blacklist', DI::l10n()->t('Blacklisted keywords'), $contact['ffi_keyword_blacklist'], DI::l10n()->t('Comma separated list of keywords that should not be converted to hashtags, when "Fetch information and keywords" is selected')],
'$photo' => $contact['photo'],
'$name' => $contact['name'],
'$dir_icon' => $dir_icon,
'$sparkle' => $sparkle,
'$url' => $url,
'$profileurllabel'=> L10n::t('Profile URL'),
'$profileurllabel'=> DI::l10n()->t('Profile URL'),
'$profileurl' => $contact['url'],
'$account_type' => Model\Contact::getAccountType($contact),
'$location' => BBCode::convert($contact['location']),
'$location_label' => L10n::t('Location:'),
'$location_label' => DI::l10n()->t('Location:'),
'$xmpp' => BBCode::convert($contact['xmpp']),
'$xmpp_label' => L10n::t('XMPP:'),
'$xmpp_label' => DI::l10n()->t('XMPP:'),
'$about' => BBCode::convert($contact['about'], false),
'$about_label' => L10n::t('About:'),
'$about_label' => DI::l10n()->t('About:'),
'$keywords' => $contact['keywords'],
'$keywords_label' => L10n::t('Tags:'),
'$contact_action_button' => L10n::t('Actions'),
'$keywords_label' => DI::l10n()->t('Tags:'),
'$contact_action_button' => DI::l10n()->t('Actions'),
'$contact_actions'=> $contact_actions,
'$contact_status' => L10n::t('Status'),
'$contact_status' => DI::l10n()->t('Status'),
'$contact_settings_label' => $contact_settings_label,
'$contact_profile_label' => L10n::t('Profile'),
'$contact_profile_label' => DI::l10n()->t('Profile'),
]);
$arr = ['contact' => $contact, 'output' => $o];
@ -680,58 +679,58 @@ class Contact extends BaseModule
$tabs = [
[
'label' => L10n::t('All Contacts'),
'label' => DI::l10n()->t('All Contacts'),
'url' => 'contact',
'sel' => !$type ? 'active' : '',
'title' => L10n::t('Show all contacts'),
'title' => DI::l10n()->t('Show all contacts'),
'id' => 'showall-tab',
'accesskey' => 'l',
],
[
'label' => L10n::t('Pending'),
'label' => DI::l10n()->t('Pending'),
'url' => 'contact/pending',
'sel' => $type == 'pending' ? 'active' : '',
'title' => L10n::t('Only show pending contacts'),
'title' => DI::l10n()->t('Only show pending contacts'),
'id' => 'showpending-tab',
'accesskey' => 'p',
],
[
'label' => L10n::t('Blocked'),
'label' => DI::l10n()->t('Blocked'),
'url' => 'contact/blocked',
'sel' => $type == 'blocked' ? 'active' : '',
'title' => L10n::t('Only show blocked contacts'),
'title' => DI::l10n()->t('Only show blocked contacts'),
'id' => 'showblocked-tab',
'accesskey' => 'b',
],
[
'label' => L10n::t('Ignored'),
'label' => DI::l10n()->t('Ignored'),
'url' => 'contact/ignored',
'sel' => $type == 'ignored' ? 'active' : '',
'title' => L10n::t('Only show ignored contacts'),
'title' => DI::l10n()->t('Only show ignored contacts'),
'id' => 'showignored-tab',
'accesskey' => 'i',
],
[
'label' => L10n::t('Archived'),
'label' => DI::l10n()->t('Archived'),
'url' => 'contact/archived',
'sel' => $type == 'archived' ? 'active' : '',
'title' => L10n::t('Only show archived contacts'),
'title' => DI::l10n()->t('Only show archived contacts'),
'id' => 'showarchived-tab',
'accesskey' => 'y',
],
[
'label' => L10n::t('Hidden'),
'label' => DI::l10n()->t('Hidden'),
'url' => 'contact/hidden',
'sel' => $type == 'hidden' ? 'active' : '',
'title' => L10n::t('Only show hidden contacts'),
'title' => DI::l10n()->t('Only show hidden contacts'),
'id' => 'showhidden-tab',
'accesskey' => 'h',
],
[
'label' => L10n::t('Groups'),
'label' => DI::l10n()->t('Groups'),
'url' => 'group',
'sel' => '',
'title' => L10n::t('Organize your contact groups'),
'title' => DI::l10n()->t('Organize your contact groups'),
'id' => 'contactgroups-tab',
'accesskey' => 'e',
],
@ -791,18 +790,18 @@ class Contact extends BaseModule
}
switch ($rel) {
case 'followers': $header = L10n::t('Followers'); break;
case 'following': $header = L10n::t('Following'); break;
case 'mutuals': $header = L10n::t('Mutual friends'); break;
default: $header = L10n::t('Contacts');
case 'followers': $header = DI::l10n()->t('Followers'); break;
case 'following': $header = DI::l10n()->t('Following'); break;
case 'mutuals': $header = DI::l10n()->t('Mutual friends'); break;
default: $header = DI::l10n()->t('Contacts');
}
switch ($type) {
case 'pending': $header .= ' - ' . L10n::t('Pending'); break;
case 'blocked': $header .= ' - ' . L10n::t('Blocked'); break;
case 'hidden': $header .= ' - ' . L10n::t('Hidden'); break;
case 'ignored': $header .= ' - ' . L10n::t('Ignored'); break;
case 'archived': $header .= ' - ' . L10n::t('Archived'); break;
case 'pending': $header .= ' - ' . DI::l10n()->t('Pending'); break;
case 'blocked': $header .= ' - ' . DI::l10n()->t('Blocked'); break;
case 'hidden': $header .= ' - ' . DI::l10n()->t('Hidden'); break;
case 'ignored': $header .= ' - ' . DI::l10n()->t('Ignored'); break;
case 'archived': $header .= ' - ' . DI::l10n()->t('Archived'); break;
}
$header .= $nets ? ' - ' . ContactSelector::networkToName($nets) : '';
@ -813,21 +812,21 @@ class Contact extends BaseModule
'$tabs' => $t,
'$total' => $total,
'$search' => $search_hdr,
'$desc' => L10n::t('Search your contacts'),
'$finding' => $searching ? L10n::t('Results for: %s', $search) : '',
'$submit' => L10n::t('Find'),
'$desc' => DI::l10n()->t('Search your contacts'),
'$finding' => $searching ? DI::l10n()->t('Results for: %s', $search) : '',
'$submit' => DI::l10n()->t('Find'),
'$cmd' => DI::args()->getCommand(),
'$contacts' => $contacts,
'$contact_drop_confirm' => L10n::t('Do you really want to delete this contact?'),
'$contact_drop_confirm' => DI::l10n()->t('Do you really want to delete this contact?'),
'multiselect' => 1,
'$batch_actions' => [
'contacts_batch_update' => L10n::t('Update'),
'contacts_batch_block' => L10n::t('Block') . '/' . L10n::t('Unblock'),
'contacts_batch_ignore' => L10n::t('Ignore') . '/' . L10n::t('Unignore'),
'contacts_batch_archive' => L10n::t('Archive') . '/' . L10n::t('Unarchive'),
'contacts_batch_drop' => L10n::t('Delete'),
'contacts_batch_update' => DI::l10n()->t('Update'),
'contacts_batch_block' => DI::l10n()->t('Block') . '/' . DI::l10n()->t('Unblock'),
'contacts_batch_ignore' => DI::l10n()->t('Ignore') . '/' . DI::l10n()->t('Unignore'),
'contacts_batch_archive' => DI::l10n()->t('Archive') . '/' . DI::l10n()->t('Unarchive'),
'contacts_batch_drop' => DI::l10n()->t('Delete'),
],
'$h_batch_actions' => L10n::t('Batch Actions'),
'$h_batch_actions' => DI::l10n()->t('Batch Actions'),
'$paginate' => $pager->renderFull($total),
]);
@ -851,26 +850,26 @@ class Contact extends BaseModule
// tabs
$tabs = [
[
'label' => L10n::t('Status'),
'label' => DI::l10n()->t('Status'),
'url' => "contact/" . $contact['id'] . "/conversations",
'sel' => (($active_tab == 1) ? 'active' : ''),
'title' => L10n::t('Conversations started by this contact'),
'title' => DI::l10n()->t('Conversations started by this contact'),
'id' => 'status-tab',
'accesskey' => 'm',
],
[
'label' => L10n::t('Posts and Comments'),
'label' => DI::l10n()->t('Posts and Comments'),
'url' => "contact/" . $contact['id'] . "/posts",
'sel' => (($active_tab == 2) ? 'active' : ''),
'title' => L10n::t('Status Messages and Posts'),
'title' => DI::l10n()->t('Status Messages and Posts'),
'id' => 'posts-tab',
'accesskey' => 'p',
],
[
'label' => L10n::t('Profile'),
'label' => DI::l10n()->t('Profile'),
'url' => "contact/" . $contact['id'],
'sel' => (($active_tab == 3) ? 'active' : ''),
'title' => L10n::t('Profile Details'),
'title' => DI::l10n()->t('Profile Details'),
'id' => 'profile-tab',
'accesskey' => 'o',
]
@ -879,10 +878,10 @@ class Contact extends BaseModule
// Show this tab only if there is visible friend list
$x = Model\GContact::countAllFriends(local_user(), $contact['id']);
if ($x) {
$tabs[] = ['label' => L10n::t('Contacts'),
$tabs[] = ['label' => DI::l10n()->t('Contacts'),
'url' => "allfriends/" . $contact['id'],
'sel' => (($active_tab == 4) ? 'active' : ''),
'title' => L10n::t('View all contacts'),
'title' => DI::l10n()->t('View all contacts'),
'id' => 'allfriends-tab',
'accesskey' => 't'];
}
@ -890,20 +889,20 @@ class Contact extends BaseModule
// Show this tab only if there is visible common friend list
$common = Model\GContact::countCommonFriends(local_user(), $contact['id']);
if ($common) {
$tabs[] = ['label' => L10n::t('Common Friends'),
$tabs[] = ['label' => DI::l10n()->t('Common Friends'),
'url' => "common/loc/" . local_user() . "/" . $contact['id'],
'sel' => (($active_tab == 5) ? 'active' : ''),
'title' => L10n::t('View all common friends'),
'title' => DI::l10n()->t('View all common friends'),
'id' => 'common-loc-tab',
'accesskey' => 'd'
];
}
if (!empty($contact['uid'])) {
$tabs[] = ['label' => L10n::t('Advanced'),
$tabs[] = ['label' => DI::l10n()->t('Advanced'),
'url' => 'crepair/' . $contact['id'],
'sel' => (($active_tab == 6) ? 'active' : ''),
'title' => L10n::t('Advanced Contact Settings'),
'title' => DI::l10n()->t('Advanced Contact Settings'),
'id' => 'advanced-tab',
'accesskey' => 'r'
];
@ -986,17 +985,17 @@ class Contact extends BaseModule
switch ($rr['rel']) {
case Model\Contact::FRIEND:
$dir_icon = 'images/lrarrow.gif';
$alt_text = L10n::t('Mutual Friendship');
$alt_text = DI::l10n()->t('Mutual Friendship');
break;
case Model\Contact::FOLLOWER;
$dir_icon = 'images/larrow.gif';
$alt_text = L10n::t('is a fan of yours');
$alt_text = DI::l10n()->t('is a fan of yours');
break;
case Model\Contact::SHARING;
$dir_icon = 'images/rarrow.gif';
$alt_text = L10n::t('you are a fan of');
$alt_text = DI::l10n()->t('you are a fan of');
break;
default:
@ -1014,22 +1013,22 @@ class Contact extends BaseModule
if ($rr['pending']) {
if (in_array($rr['rel'], [Model\Contact::FRIEND, Model\Contact::SHARING])) {
$alt_text = L10n::t('Pending outgoing contact request');
$alt_text = DI::l10n()->t('Pending outgoing contact request');
} else {
$alt_text = L10n::t('Pending incoming contact request');
$alt_text = DI::l10n()->t('Pending incoming contact request');
}
}
if ($rr['self']) {
$dir_icon = 'images/larrow.gif';
$alt_text = L10n::t('This is you');
$alt_text = DI::l10n()->t('This is you');
$url = $rr['url'];
$sparkle = '';
}
return [
'img_hover' => L10n::t('Visit %s\'s profile [%s]', $rr['name'], $rr['url']),
'edit_hover'=> L10n::t('Edit contact'),
'img_hover' => DI::l10n()->t('Visit %s\'s profile [%s]', $rr['name'], $rr['url']),
'edit_hover'=> DI::l10n()->t('Edit contact'),
'photo_menu'=> Model\Contact::photoMenu($rr),
'id' => $rr['id'],
'alt_text' => $alt_text,
@ -1062,7 +1061,7 @@ class Contact extends BaseModule
// Provide friend suggestion only for Friendica contacts
if ($contact['network'] === Protocol::DFRN) {
$contact_actions['suggest'] = [
'label' => L10n::t('Suggest friends'),
'label' => DI::l10n()->t('Suggest friends'),
'url' => 'fsuggest/' . $contact['id'],
'title' => '',
'sel' => '',
@ -1072,7 +1071,7 @@ class Contact extends BaseModule
if ($poll_enabled) {
$contact_actions['update'] = [
'label' => L10n::t('Update now'),
'label' => DI::l10n()->t('Update now'),
'url' => 'contact/' . $contact['id'] . '/update',
'title' => '',
'sel' => '',
@ -1081,34 +1080,34 @@ class Contact extends BaseModule
}
$contact_actions['block'] = [
'label' => (intval($contact['blocked']) ? L10n::t('Unblock') : L10n::t('Block')),
'label' => (intval($contact['blocked']) ? DI::l10n()->t('Unblock') : DI::l10n()->t('Block')),
'url' => 'contact/' . $contact['id'] . '/block',
'title' => L10n::t('Toggle Blocked status'),
'title' => DI::l10n()->t('Toggle Blocked status'),
'sel' => (intval($contact['blocked']) ? 'active' : ''),
'id' => 'toggle-block',
];
$contact_actions['ignore'] = [
'label' => (intval($contact['readonly']) ? L10n::t('Unignore') : L10n::t('Ignore')),
'label' => (intval($contact['readonly']) ? DI::l10n()->t('Unignore') : DI::l10n()->t('Ignore')),
'url' => 'contact/' . $contact['id'] . '/ignore',
'title' => L10n::t('Toggle Ignored status'),
'title' => DI::l10n()->t('Toggle Ignored status'),
'sel' => (intval($contact['readonly']) ? 'active' : ''),
'id' => 'toggle-ignore',
];
if ($contact['uid'] != 0) {
$contact_actions['archive'] = [
'label' => (intval($contact['archive']) ? L10n::t('Unarchive') : L10n::t('Archive')),
'label' => (intval($contact['archive']) ? DI::l10n()->t('Unarchive') : DI::l10n()->t('Archive')),
'url' => 'contact/' . $contact['id'] . '/archive',
'title' => L10n::t('Toggle Archive status'),
'title' => DI::l10n()->t('Toggle Archive status'),
'sel' => (intval($contact['archive']) ? 'active' : ''),
'id' => 'toggle-archive',
];
$contact_actions['delete'] = [
'label' => L10n::t('Delete'),
'label' => DI::l10n()->t('Delete'),
'url' => 'contact/' . $contact['id'] . '/drop',
'title' => L10n::t('Delete contact'),
'title' => DI::l10n()->t('Delete contact'),
'sel' => '',
'id' => 'delete',
];

View file

@ -3,8 +3,8 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
/**
* Show a credits page for all the developers who helped with the project
@ -22,8 +22,8 @@ class Credits extends BaseModule
$tpl = Renderer::getMarkupTemplate('credits.tpl');
return Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Credits'),
'$thanks' => L10n::t('Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!'),
'$title' => DI::l10n()->t('Credits'),
'$thanks' => DI::l10n()->t('Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!'),
'$names' => $names,
]);
}

View file

@ -4,8 +4,8 @@ namespace Friendica\Module\Debug;
use Friendica\BaseModule;
use Friendica\Content\Text;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model\Item;
use Friendica\Util\XML;
@ -29,58 +29,58 @@ class Babel extends BaseModule
case 'bbcode':
$bbcode = trim($_REQUEST['text']);
$results[] = [
'title' => L10n::t('Source input'),
'title' => DI::l10n()->t('Source input'),
'content' => visible_whitespace($bbcode)
];
$plain = Text\BBCode::toPlaintext($bbcode, false);
$results[] = [
'title' => L10n::t('BBCode::toPlaintext'),
'title' => DI::l10n()->t('BBCode::toPlaintext'),
'content' => visible_whitespace($plain)
];
$html = Text\BBCode::convert($bbcode);
$results[] = [
'title' => L10n::t('BBCode::convert (raw HTML)'),
'title' => DI::l10n()->t('BBCode::convert (raw HTML)'),
'content' => visible_whitespace(htmlspecialchars($html))
];
$results[] = [
'title' => L10n::t('BBCode::convert'),
'title' => DI::l10n()->t('BBCode::convert'),
'content' => $html
];
$bbcode2 = Text\HTML::toBBCode($html);
$results[] = [
'title' => L10n::t('BBCode::convert => HTML::toBBCode'),
'title' => DI::l10n()->t('BBCode::convert => HTML::toBBCode'),
'content' => visible_whitespace($bbcode2)
];
$markdown = Text\BBCode::toMarkdown($bbcode);
$results[] = [
'title' => L10n::t('BBCode::toMarkdown'),
'title' => DI::l10n()->t('BBCode::toMarkdown'),
'content' => visible_whitespace(htmlspecialchars($markdown))
];
$html2 = Text\Markdown::convert($markdown);
$results[] = [
'title' => L10n::t('BBCode::toMarkdown => Markdown::convert (raw HTML)'),
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert (raw HTML)'),
'content' => visible_whitespace(htmlspecialchars($html2))
];
$results[] = [
'title' => L10n::t('BBCode::toMarkdown => Markdown::convert'),
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert'),
'content' => $html2
];
$bbcode3 = Text\Markdown::toBBCode($markdown);
$results[] = [
'title' => L10n::t('BBCode::toMarkdown => Markdown::toBBCode'),
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::toBBCode'),
'content' => visible_whitespace($bbcode3)
];
$bbcode4 = Text\HTML::toBBCode($html2);
$results[] = [
'title' => L10n::t('BBCode::toMarkdown => Markdown::convert => HTML::toBBCode'),
'title' => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert => HTML::toBBCode'),
'content' => visible_whitespace($bbcode4)
];
@ -91,88 +91,88 @@ class Babel extends BaseModule
Item::setHashtags($item);
$results[] = [
'title' => L10n::t('Item Body'),
'title' => DI::l10n()->t('Item Body'),
'content' => visible_whitespace($item['body'])
];
$results[] = [
'title' => L10n::t('Item Tags'),
'title' => DI::l10n()->t('Item Tags'),
'content' => $item['tag']
];
break;
case 'markdown':
$markdown = trim($_REQUEST['text']);
$results[] = [
'title' => L10n::t('Source input (Diaspora format)'),
'title' => DI::l10n()->t('Source input (Diaspora format)'),
'content' => '<pre>' . htmlspecialchars($markdown) . '</pre>'
];
$html = Text\Markdown::convert(html_entity_decode($markdown,ENT_COMPAT, 'UTF-8'));
$results[] = [
'title' => L10n::t('Markdown::convert (raw HTML)'),
'title' => DI::l10n()->t('Markdown::convert (raw HTML)'),
'content' => visible_whitespace(htmlspecialchars($html))
];
$results[] = [
'title' => L10n::t('Markdown::convert'),
'title' => DI::l10n()->t('Markdown::convert'),
'content' => $html
];
$bbcode = Text\Markdown::toBBCode(XML::unescape($markdown));
$results[] = [
'title' => L10n::t('Markdown::toBBCode'),
'title' => DI::l10n()->t('Markdown::toBBCode'),
'content' => '<pre>' . $bbcode . '</pre>'
];
break;
case 'html' :
$html = trim($_REQUEST['text']);
$results[] = [
'title' => L10n::t('Raw HTML input'),
'title' => DI::l10n()->t('Raw HTML input'),
'content' => htmlspecialchars($html)
];
$results[] = [
'title' => L10n::t('HTML Input'),
'title' => DI::l10n()->t('HTML Input'),
'content' => $html
];
$bbcode = Text\HTML::toBBCode($html);
$results[] = [
'title' => L10n::t('HTML::toBBCode'),
'title' => DI::l10n()->t('HTML::toBBCode'),
'content' => visible_whitespace($bbcode)
];
$html2 = Text\BBCode::convert($bbcode);
$results[] = [
'title' => L10n::t('HTML::toBBCode => BBCode::convert'),
'title' => DI::l10n()->t('HTML::toBBCode => BBCode::convert'),
'content' => $html2
];
$results[] = [
'title' => L10n::t('HTML::toBBCode => BBCode::convert (raw HTML)'),
'title' => DI::l10n()->t('HTML::toBBCode => BBCode::convert (raw HTML)'),
'content' => htmlspecialchars($html2)
];
$bbcode2plain = Text\BBCode::toPlaintext($bbcode);
$results[] = [
'title' => L10n::t('HTML::toBBCode => BBCode::toPlaintext'),
'title' => DI::l10n()->t('HTML::toBBCode => BBCode::toPlaintext'),
'content' => '<pre>' . $bbcode2plain . '</pre>'
];
$markdown = Text\HTML::toMarkdown($html);
$results[] = [
'title' => L10n::t('HTML::toMarkdown'),
'title' => DI::l10n()->t('HTML::toMarkdown'),
'content' => visible_whitespace($markdown)
];
$text = Text\HTML::toPlaintext($html, 0);
$results[] = [
'title' => L10n::t('HTML::toPlaintext'),
'title' => DI::l10n()->t('HTML::toPlaintext'),
'content' => '<pre>' . $text . '</pre>'
];
$text = Text\HTML::toPlaintext($html, 0, true);
$results[] = [
'title' => L10n::t('HTML::toPlaintext (compact)'),
'title' => DI::l10n()->t('HTML::toPlaintext (compact)'),
'content' => '<pre>' . $text . '</pre>'
];
}
@ -180,10 +180,10 @@ class Babel extends BaseModule
$tpl = Renderer::getMarkupTemplate('babel.tpl');
$o = Renderer::replaceMacros($tpl, [
'$text' => ['text', L10n::t('Source text'), $_REQUEST['text'] ?? '', ''],
'$type_bbcode' => ['type', L10n::t('BBCode'), 'bbcode', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'bbcode'],
'$type_markdown' => ['type', L10n::t('Markdown'), 'markdown', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'markdown'],
'$type_html' => ['type', L10n::t('HTML'), 'html', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'html'],
'$text' => ['text', DI::l10n()->t('Source text'), $_REQUEST['text'] ?? '', ''],
'$type_bbcode' => ['type', DI::l10n()->t('BBCode'), 'bbcode', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'bbcode'],
'$type_markdown' => ['type', DI::l10n()->t('Markdown'), 'markdown', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'markdown'],
'$type_html' => ['type', DI::l10n()->t('HTML'), 'html', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'html'],
'$results' => $results
]);

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Debug;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model;
@ -18,7 +17,7 @@ class Feed extends BaseModule
public static function init(array $parameters = [])
{
if (!local_user()) {
info(L10n::t('You must be logged in to use this module'));
info(DI::l10n()->t('You must be logged in to use this module'));
DI::baseUrl()->redirect();
}
}
@ -44,7 +43,7 @@ class Feed extends BaseModule
$tpl = Renderer::getMarkupTemplate('feedtest.tpl');
return Renderer::replaceMacros($tpl, [
'$url' => ['url', L10n::t('Source URL'), $_REQUEST['url'] ?? '', ''],
'$url' => ['url', DI::l10n()->t('Source URL'), $_REQUEST['url'] ?? '', ''],
'$result' => $result
]);
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Debug;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Model\Item;
use Friendica\Network\HTTPException;
@ -16,7 +15,7 @@ class ItemBody extends BaseModule
public static function content(array $parameters = [])
{
if (!local_user()) {
throw new HTTPException\UnauthorizedException(L10n::t('Access denied.'));
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Access denied.'));
}
$app = DI::app();
@ -25,7 +24,7 @@ class ItemBody extends BaseModule
$itemId = (($app->argc > 1) ? intval($app->argv[1]) : 0);
if (!$itemId) {
throw new HTTPException\NotFoundException(L10n::t('Item not found.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('Item not found.'));
}
$item = Item::selectFirst(['body'], ['uid' => local_user(), 'id' => $itemId]);
@ -38,7 +37,7 @@ class ItemBody extends BaseModule
return str_replace("\n", '<br />', $item['body']);
}
} else {
throw new HTTPException\NotFoundException(L10n::t('Item not found.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('Item not found.'));
}
}
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module\Debug;
use Friendica\BaseModule;
use Friendica\Core\Installer;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Temporal;
@ -15,7 +14,7 @@ class Localtime extends BaseModule
{
$time = ($_REQUEST['time'] ?? '') ?: 'now';
$bd_format = L10n::t('l F d, Y \@ g:i A');
$bd_format = DI::l10n()->t('l F d, Y \@ g:i A');
if (!empty($_POST['timezone'])) {
DI::app()->data['mod-localtime'] = DateTimeFormat::convert($time, $_POST['timezone'], 'UTC', $bd_format);
@ -28,22 +27,22 @@ class Localtime extends BaseModule
$time = ($_REQUEST['time'] ?? '') ?: 'now';
$output = '<h3>' . L10n::t('Time Conversion') . '</h3>';
$output .= '<p>' . L10n::t('Friendica provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
$output .= '<p>' . L10n::t('UTC time: %s', $time) . '</p>';
$output = '<h3>' . DI::l10n()->t('Time Conversion') . '</h3>';
$output .= '<p>' . DI::l10n()->t('Friendica provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
$output .= '<p>' . DI::l10n()->t('UTC time: %s', $time) . '</p>';
if (!empty($_REQUEST['timezone'])) {
$output .= '<p>' . L10n::t('Current timezone: %s', $_REQUEST['timezone']) . '</p>';
$output .= '<p>' . DI::l10n()->t('Current timezone: %s', $_REQUEST['timezone']) . '</p>';
}
if (!empty($app->data['mod-localtime'])) {
$output .= '<p>' . L10n::t('Converted localtime: %s', $app->data['mod-localtime']) . '</p>';
$output .= '<p>' . DI::l10n()->t('Converted localtime: %s', $app->data['mod-localtime']) . '</p>';
}
$output .= '<form action ="' . DI::baseUrl()->get() . '/localtime?time=' . $time . '" method="post" >';
$output .= '<p>' . L10n::t('Please select your timezone:') . '</p>';
$output .= '<p>' . DI::l10n()->t('Please select your timezone:') . '</p>';
$output .= Temporal::getTimezoneSelect(($_REQUEST['timezone'] ?? '') ?: Installer::DEFAULT_TZ);
$output .= '<input type="submit" name="submit" value="' . L10n::t('Submit') . '" /></form>';
$output .= '<input type="submit" name="submit" value="' . DI::l10n()->t('Submit') . '" /></form>';
return $output;
}

View file

@ -3,8 +3,8 @@
namespace Friendica\Module\Debug;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Network\HTTPException;
use Friendica\Network\Probe as NetworkProbe;
@ -16,8 +16,8 @@ class Probe extends BaseModule
public static function content(array $parameters = [])
{
if (!local_user()) {
$e = new HTTPException\ForbiddenException(L10n::t('Only logged in users are permitted to perform a probing.'));
$e->httpdesc = L10n::t('Public access denied.');
$e = new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a probing.'));
$e->httpdesc = DI::l10n()->t('Public access denied.');
throw $e;
}
@ -32,7 +32,7 @@ class Probe extends BaseModule
$tpl = Renderer::getMarkupTemplate('probe.tpl');
return Renderer::replaceMacros($tpl, [
'$addr' => ['addr',
L10n::t('Lookup address'),
DI::l10n()->t('Lookup address'),
$addr,
'',
'required'

View file

@ -3,8 +3,8 @@
namespace Friendica\Module\Debug;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Network\Probe;
/**
@ -15,8 +15,8 @@ class WebFinger extends BaseModule
public static function content(array $parameters = [])
{
if (!local_user()) {
$e = new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Only logged in users are permitted to perform a probing.'));
$e->httpdesc = L10n::t('Public access denied.');
$e = new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a probing.'));
$e->httpdesc = DI::l10n()->t('Public access denied.');
throw $e;
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -96,7 +95,7 @@ class Delegation extends BaseModule
public static function content(array $parameters = [])
{
if (!local_user()) {
throw new ForbiddenException(L10n::t('Permission denied.'));
throw new ForbiddenException(DI::l10n()->t('Permission denied.'));
}
$identities = DI::app()->identities;
@ -125,11 +124,11 @@ class Delegation extends BaseModule
}
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('delegation.tpl'), [
'$title' => L10n::t('Manage Identities and/or Pages'),
'$desc' => L10n::t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'),
'$choose' => L10n::t('Select an identity to manage: '),
'$title' => DI::l10n()->t('Manage Identities and/or Pages'),
'$desc' => DI::l10n()->t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'),
'$choose' => DI::l10n()->t('Select an identity to manage: '),
'$identities' => $identities,
'$submit' => L10n::t('Submit'),
'$submit' => DI::l10n()->t('Submit'),
]);
return $o;

View file

@ -7,7 +7,6 @@ use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Content\Widget;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Session;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -29,7 +28,7 @@ class Directory extends BaseModule
if (($config->get('system', 'block_public') && !Session::isAuthenticated()) ||
($config->get('system', 'block_local_dir') && !Session::isAuthenticated())) {
throw new HTTPException\ForbiddenException(L10n::t('Public access denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
}
if (local_user()) {
@ -57,7 +56,7 @@ class Directory extends BaseModule
$profiles = Profile::searchProfiles($pager->getStart(), $pager->getItemsPerPage(), $search);
if ($profiles['total'] === 0) {
info(L10n::t('No entries (some entries may be hidden).') . EOL);
info(DI::l10n()->t('No entries (some entries may be hidden).') . EOL);
} else {
if (in_array('small', $app->argv)) {
$photo = 'thumb';
@ -74,15 +73,15 @@ class Directory extends BaseModule
$output .= Renderer::replaceMacros($tpl, [
'$search' => $search,
'$globaldir' => L10n::t('Global Directory'),
'$globaldir' => DI::l10n()->t('Global Directory'),
'$gDirPath' => $gDirPath,
'$desc' => L10n::t('Find on this site'),
'$desc' => DI::l10n()->t('Find on this site'),
'$contacts' => $entries,
'$finding' => L10n::t('Results for:'),
'$finding' => DI::l10n()->t('Results for:'),
'$findterm' => (strlen($search) ? $search : ""),
'$title' => L10n::t('Site Directory'),
'$title' => DI::l10n()->t('Site Directory'),
'$search_mod' => 'directory',
'$submit' => L10n::t('Find'),
'$submit' => DI::l10n()->t('Find'),
'$paginate' => $pager->renderFull($profiles['total']),
]);
@ -133,20 +132,20 @@ class Directory extends BaseModule
|| !empty($profile['postal-code'])
|| !empty($profile['country-name'])
) {
$location = L10n::t('Location:');
$location = DI::l10n()->t('Location:');
} else {
$location = '';
}
$gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false);
$marital = (!empty($profile['marital']) ? L10n::t('Status:') : false);
$homepage = (!empty($profile['homepage']) ? L10n::t('Homepage:') : false);
$about = (!empty($profile['about']) ? L10n::t('About:') : false);
$gender = (!empty($profile['gender']) ? DI::l10n()->t('Gender:') : false);
$marital = (!empty($profile['marital']) ? DI::l10n()->t('Status:') : false);
$homepage = (!empty($profile['homepage']) ? DI::l10n()->t('Homepage:') : false);
$about = (!empty($profile['about']) ? DI::l10n()->t('About:') : false);
$location_e = $location;
$photo_menu = [
'profile' => [L10n::t("View Profile"), Contact::magicLink($profile_link)]
'profile' => [DI::l10n()->t("View Profile"), Contact::magicLink($profile_link)]
];
$entry = [

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Filer;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model;
@ -17,7 +16,7 @@ class SaveTag extends BaseModule
public static function init(array $parameters = [])
{
if (!local_user()) {
info(L10n::t('You must be logged in to use this module'));
info(DI::l10n()->t('You must be logged in to use this module'));
DI::baseUrl()->redirect();
}
}
@ -36,7 +35,7 @@ class SaveTag extends BaseModule
if ($item_id && strlen($term)) {
// file item
Model\FileTag::saveFile(local_user(), $item_id, $term);
info(L10n::t('Filetag %s saved to item', $term));
info(DI::l10n()->t('Filetag %s saved to item', $term));
}
// return filer dialog
@ -45,8 +44,8 @@ class SaveTag extends BaseModule
$tpl = Renderer::getMarkupTemplate("filer_dialog.tpl");
echo Renderer::replaceMacros($tpl, [
'$field' => ['term', L10n::t("Save to Folder:"), '', '', $filetags, L10n::t('- select -')],
'$submit' => L10n::t('Save'),
'$field' => ['term', DI::l10n()->t("Save to Folder:"), '', '', $filetags, DI::l10n()->t('- select -')],
'$submit' => DI::l10n()->t('Save'),
]);
exit;

View file

@ -2,8 +2,6 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Model\Introduction;
use Friendica\DI;
/**
@ -15,7 +13,7 @@ class FollowConfirm extends BaseModule
{
$uid = local_user();
if (!$uid) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return;
}

View file

@ -5,7 +5,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Addon;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model\User;
@ -37,27 +36,27 @@ class Friendica extends BaseModule
}
}
$addon = [
'title' => L10n::t('Installed addons/apps:'),
'title' => DI::l10n()->t('Installed addons/apps:'),
'list' => $sortedAddonList,
];
} else {
$addon = [
'title' => L10n::t('No installed addons/apps'),
'title' => DI::l10n()->t('No installed addons/apps'),
];
}
$tos = ($config->get('system', 'tosdisplay')) ?
L10n::t('Read about the <a href="%1$s/tos">Terms of Service</a> of this node.', DI::baseUrl()->get()) :
DI::l10n()->t('Read about the <a href="%1$s/tos">Terms of Service</a> of this node.', DI::baseUrl()->get()) :
'';
$blockList = $config->get('system', 'blocklist');
if (!empty($blockList)) {
$blocked = [
'title' => L10n::t('On this server the following remote servers are blocked.'),
'title' => DI::l10n()->t('On this server the following remote servers are blocked.'),
'header' => [
L10n::t('Blocked domain'),
L10n::t('Reason for the block'),
DI::l10n()->t('Blocked domain'),
DI::l10n()->t('Reason for the block'),
],
'list' => $blockList,
];
@ -72,14 +71,14 @@ class Friendica extends BaseModule
$tpl = Renderer::getMarkupTemplate('friendica.tpl');
return Renderer::replaceMacros($tpl, [
'about' => L10n::t('This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.',
'about' => DI::l10n()->t('This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.',
'<strong>' . FRIENDICA_VERSION . '</strong>',
DI::baseUrl()->get(),
'<strong>' . DB_UPDATE_VERSION . '</strong>',
'<strong>' . $config->get('system', 'post_update_version') . '</strong>'),
'friendica' => L10n::t('Please visit <a href="https://friendi.ca">Friendi.ca</a> to learn more about the Friendica project.'),
'bugs' => L10n::t('Bug reports and issues: please visit') . ' ' . '<a href="https://github.com/friendica/friendica/issues?state=open">' . L10n::t('the bugtracker at github') . '</a>',
'info' => L10n::t('Suggestions, praise, etc. - please email "info" at "friendi - dot - ca'),
'friendica' => DI::l10n()->t('Please visit <a href="https://friendi.ca">Friendi.ca</a> to learn more about the Friendica project.'),
'bugs' => DI::l10n()->t('Bug reports and issues: please visit') . ' ' . '<a href="https://github.com/friendica/friendica/issues?state=open">' . DI::l10n()->t('the bugtracker at github') . '</a>',
'info' => DI::l10n()->t('Suggestions, praise, etc. - please email "info" at "friendi - dot - ca'),
'visible_addons' => $addon,
'tos' => $tos,

View file

@ -7,7 +7,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\Database\DBA;
@ -28,7 +27,7 @@ class Group extends BaseModule
}
if (!local_user()) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect();
}
@ -39,13 +38,13 @@ class Group extends BaseModule
$name = Strings::escapeTags(trim($_POST['groupname']));
$r = Model\Group::create(local_user(), $name);
if ($r) {
info(L10n::t('Group created.'));
info(DI::l10n()->t('Group created.'));
$r = Model\Group::getIdByName(local_user(), $name);
if ($r) {
DI::baseUrl()->redirect('group/' . $r);
}
} else {
notice(L10n::t('Could not create group.'));
notice(DI::l10n()->t('Could not create group.'));
}
DI::baseUrl()->redirect('group');
}
@ -56,13 +55,13 @@ class Group extends BaseModule
$group = DBA::selectFirst('group', ['id', 'name'], ['id' => $a->argv[1], 'uid' => local_user()]);
if (!DBA::isResult($group)) {
notice(L10n::t('Group not found.'));
notice(DI::l10n()->t('Group not found.'));
DI::baseUrl()->redirect('contact');
}
$groupname = Strings::escapeTags(trim($_POST['groupname']));
if (strlen($groupname) && ($groupname != $group['name'])) {
if (Model\Group::update($group['id'], $groupname)) {
info(L10n::t('Group name changed.'));
info(DI::l10n()->t('Group name changed.'));
}
}
}
@ -74,7 +73,7 @@ class Group extends BaseModule
$a = DI::app();
if (!local_user()) {
throw new \Exception(L10n::t('Permission denied.'), 403);
throw new \Exception(DI::l10n()->t('Permission denied.'), 403);
}
// POST /group/123/add/123
@ -84,38 +83,38 @@ class Group extends BaseModule
list($group_id, $command, $contact_id) = array_slice($a->argv, 1);
if (!Model\Group::exists($group_id, local_user())) {
throw new \Exception(L10n::t('Unknown group.'), 404);
throw new \Exception(DI::l10n()->t('Unknown group.'), 404);
}
$contact = DBA::selectFirst('contact', ['deleted'], ['id' => $contact_id, 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
throw new \Exception(L10n::t('Contact not found.'), 404);
throw new \Exception(DI::l10n()->t('Contact not found.'), 404);
}
if ($contact['deleted']) {
throw new \Exception(L10n::t('Contact is deleted.'), 410);
throw new \Exception(DI::l10n()->t('Contact is deleted.'), 410);
}
switch($command) {
case 'add':
if (!Model\Group::addMember($group_id, $contact_id)) {
throw new \Exception(L10n::t('Unable to add the contact to the group.'), 500);
throw new \Exception(DI::l10n()->t('Unable to add the contact to the group.'), 500);
}
$message = L10n::t('Contact successfully added to group.');
$message = DI::l10n()->t('Contact successfully added to group.');
break;
case 'remove':
if (!Model\Group::removeMember($group_id, $contact_id)) {
throw new \Exception(L10n::t('Unable to remove the contact from the group.'), 500);
throw new \Exception(DI::l10n()->t('Unable to remove the contact from the group.'), 500);
}
$message = L10n::t('Contact successfully removed from group.');
$message = DI::l10n()->t('Contact successfully removed from group.');
break;
default:
throw new \Exception(L10n::t('Unknown group command.'), 400);
throw new \Exception(DI::l10n()->t('Unknown group command.'), 400);
}
} else {
throw new \Exception(L10n::t('Bad request.'), 400);
throw new \Exception(DI::l10n()->t('Bad request.'), 400);
}
notice($message);
@ -154,15 +153,15 @@ class Group extends BaseModule
$context = [
'$submit' => L10n::t('Save Group'),
'$submit_filter' => L10n::t('Filter'),
'$submit' => DI::l10n()->t('Save Group'),
'$submit_filter' => DI::l10n()->t('Filter'),
];
// @TODO: Replace with parameter from router
if (($a->argc == 2) && ($a->argv[1] === 'new')) {
return Renderer::replaceMacros($tpl, $context + [
'$title' => L10n::t('Create a group of contacts/friends.'),
'$gname' => ['groupname', L10n::t('Group Name: '), '', ''],
'$title' => DI::l10n()->t('Create a group of contacts/friends.'),
'$gname' => ['groupname', DI::l10n()->t('Group Name: '), '', ''],
'$gid' => 'new',
'$form_security_token' => BaseModule::getFormSecurityToken("group_edit"),
]);
@ -177,7 +176,7 @@ class Group extends BaseModule
$nogroup = true;
$group = [
'id' => $id,
'name' => L10n::t('Contacts not in any group'),
'name' => DI::l10n()->t('Contacts not in any group'),
];
$members = [];
@ -185,7 +184,7 @@ class Group extends BaseModule
$context = $context + [
'$title' => $group['name'],
'$gname' => ['groupname', L10n::t('Group Name: '), $group['name'], ''],
'$gname' => ['groupname', DI::l10n()->t('Group Name: '), $group['name'], ''],
'$gid' => $id,
'$editable' => 0,
];
@ -198,14 +197,14 @@ class Group extends BaseModule
// @TODO: Replace with parameter from router
if (intval($a->argv[2])) {
if (!Model\Group::exists($a->argv[2], local_user())) {
notice(L10n::t('Group not found.'));
notice(DI::l10n()->t('Group not found.'));
DI::baseUrl()->redirect('contact');
}
if (Model\Group::remove($a->argv[2])) {
info(L10n::t('Group removed.'));
info(DI::l10n()->t('Group removed.'));
} else {
notice(L10n::t('Unable to remove group.'));
notice(DI::l10n()->t('Unable to remove group.'));
}
}
DI::baseUrl()->redirect('group');
@ -224,7 +223,7 @@ class Group extends BaseModule
if (($a->argc > 1) && intval($a->argv[1])) {
$group = DBA::selectFirst('group', ['id', 'name'], ['id' => $a->argv[1], 'uid' => local_user(), 'deleted' => false]);
if (!DBA::isResult($group)) {
notice(L10n::t('Group not found.'));
notice(DI::l10n()->t('Group not found.'));
DI::baseUrl()->redirect('contact');
}
@ -256,17 +255,17 @@ class Group extends BaseModule
$drop_tpl = Renderer::getMarkupTemplate('group_drop.tpl');
$drop_txt = Renderer::replaceMacros($drop_tpl, [
'$id' => $group['id'],
'$delete' => L10n::t('Delete Group'),
'$delete' => DI::l10n()->t('Delete Group'),
'$form_security_token' => BaseModule::getFormSecurityToken("group_drop"),
]);
$context = $context + [
'$title' => $group['name'],
'$gname' => ['groupname', L10n::t('Group Name: '), $group['name'], ''],
'$gname' => ['groupname', DI::l10n()->t('Group Name: '), $group['name'], ''],
'$gid' => $group['id'],
'$drop' => $drop_txt,
'$form_security_token' => BaseModule::getFormSecurityToken('group_edit'),
'$edit_name' => L10n::t('Edit Group Name'),
'$edit_name' => DI::l10n()->t('Edit Group Name'),
'$editable' => 1,
];
}
@ -276,10 +275,10 @@ class Group extends BaseModule
}
$groupeditor = [
'label_members' => L10n::t('Members'),
'label_members' => DI::l10n()->t('Members'),
'members' => [],
'label_contacts' => L10n::t('All Contacts'),
'group_is_empty' => L10n::t('Group is empty'),
'label_contacts' => DI::l10n()->t('All Contacts'),
'group_is_empty' => DI::l10n()->t('Group is empty'),
'contacts' => [],
];
@ -292,7 +291,7 @@ class Group extends BaseModule
$entry['label'] = 'members';
$entry['photo_menu'] = '';
$entry['change_member'] = [
'title' => L10n::t("Remove contact from group"),
'title' => DI::l10n()->t("Remove contact from group"),
'gid' => $group['id'],
'cid' => $member['id'],
'sec_token' => $sec_token
@ -312,7 +311,7 @@ class Group extends BaseModule
['order' => ['name']]
);
$contacts = DBA::toArray($contacts_stmt);
$context['$desc'] = L10n::t('Click on a contact to add or remove.');
$context['$desc'] = DI::l10n()->t('Click on a contact to add or remove.');
}
if (DBA::isResult($contacts)) {
@ -326,7 +325,7 @@ class Group extends BaseModule
if (!$nogroup) {
$entry['change_member'] = [
'title' => L10n::t("Add contact to group"),
'title' => DI::l10n()->t("Add contact to group"),
'gid' => $group['id'],
'cid' => $member['id'],
'sec_token' => $sec_token

View file

@ -3,13 +3,13 @@
namespace Friendica\Module\HTTPException;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Network\HTTPException;
class MethodNotAllowed extends BaseModule
{
public static function content(array $parameters = [])
{
throw new HTTPException\MethodNotAllowedException(L10n::t('Method Not Allowed.'));
throw new HTTPException\MethodNotAllowedException(DI::l10n()->t('Method Not Allowed.'));
}
}

View file

@ -3,13 +3,13 @@
namespace Friendica\Module\HTTPException;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Network\HTTPException;
class PageNotFound extends BaseModule
{
public static function content(array $parameters = [])
{
throw new HTTPException\NotFoundException(L10n::t('Page not found.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('Page not found.'));
}
}

View file

@ -5,7 +5,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Content\Nav;
use Friendica\Content\Text\Markdown;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Network\HTTPException;
use Friendica\Util\Strings;
@ -41,14 +40,14 @@ class Help extends BaseModule
$title = basename($path);
$filename = $path;
$text = self::loadDocFile('doc/' . $path . '.md', $lang);
DI::page()['title'] = L10n::t('Help:') . ' ' . str_replace('-', ' ', Strings::escapeTags($title));
DI::page()['title'] = DI::l10n()->t('Help:') . ' ' . str_replace('-', ' ', Strings::escapeTags($title));
}
$home = self::loadDocFile('doc/Home.md', $lang);
if (!$text) {
$text = $home;
$filename = "Home";
DI::page()['title'] = L10n::t('Help');
DI::page()['title'] = DI::l10n()->t('Help');
} else {
DI::page()['aside'] = Markdown::convert($home, false);
}

View file

@ -4,7 +4,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Module\Security\Login;
@ -33,7 +32,7 @@ class Home extends BaseModule
}
$customHome = '';
$defaultHeader = ($config->get('config', 'sitename') ? L10n::t('Welcome to %s', $config->get('config', 'sitename')) : '');
$defaultHeader = ($config->get('config', 'sitename') ? DI::l10n()->t('Welcome to %s', $config->get('config', 'sitename')) : '');
$homeFilePath = $app->getBasePath() . '/home.html';
$cssFilePath = $app->getBasePath() . '/home.css';

View file

@ -6,7 +6,6 @@ use Friendica\App;
use Friendica\BaseModule;
use Friendica\Core;
use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Network\HTTPException;
@ -156,7 +155,7 @@ class Install extends BaseModule
$output = '';
$install_title = L10n::t('Friendica Communications Server - Setup');
$install_title = DI::l10n()->t('Friendica Communications Server - Setup');
switch (self::$currentWizardStep) {
case self::SYSTEM_CHECK:
@ -167,49 +166,49 @@ class Install extends BaseModule
$tpl = Renderer::getMarkupTemplate('install_checks.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$pass' => L10n::t('System check'),
'$pass' => DI::l10n()->t('System check'),
'$checks' => self::$installer->getChecks(),
'$passed' => $status,
'$see_install' => L10n::t('Please see the file "INSTALL.txt".'),
'$next' => L10n::t('Next'),
'$reload' => L10n::t('Check again'),
'$see_install' => DI::l10n()->t('Please see the file "INSTALL.txt".'),
'$next' => DI::l10n()->t('Next'),
'$reload' => DI::l10n()->t('Check again'),
'$php_path' => $php_path,
]);
break;
case self::BASE_CONFIG:
$ssl_choices = [
App\BaseURL::SSL_POLICY_NONE => L10n::t("No SSL policy, links will track page SSL state"),
App\BaseURL::SSL_POLICY_FULL => L10n::t("Force all links to use SSL"),
App\BaseURL::SSL_POLICY_SELFSIGN => L10n::t("Self-signed certificate, use SSL for local links only \x28discouraged\x29")
App\BaseURL::SSL_POLICY_NONE => DI::l10n()->t("No SSL policy, links will track page SSL state"),
App\BaseURL::SSL_POLICY_FULL => DI::l10n()->t("Force all links to use SSL"),
App\BaseURL::SSL_POLICY_SELFSIGN => DI::l10n()->t("Self-signed certificate, use SSL for local links only \x28discouraged\x29")
];
$tpl = Renderer::getMarkupTemplate('install_base.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$pass' => L10n::t('Base settings'),
'$pass' => DI::l10n()->t('Base settings'),
'$ssl_policy' => ['system-ssl_policy',
L10n::t("SSL link policy"),
DI::l10n()->t("SSL link policy"),
$configCache->get('system', 'ssl_policy'),
L10n::t("Determines whether generated links should be forced to use SSL"),
DI::l10n()->t("Determines whether generated links should be forced to use SSL"),
$ssl_choices],
'$hostname' => ['config-hostname',
L10n::t('Host name'),
DI::l10n()->t('Host name'),
$configCache->get('config', 'hostname'),
L10n::t('Overwrite this field in case the determinated hostname isn\'t right, otherweise leave it as is.'),
DI::l10n()->t('Overwrite this field in case the determinated hostname isn\'t right, otherweise leave it as is.'),
'required'],
'$basepath' => ['system-basepath',
L10n::t("Base path to installation"),
DI::l10n()->t("Base path to installation"),
$configCache->get('system', 'basepath'),
L10n::t("If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."),
DI::l10n()->t("If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."),
'required'],
'$urlpath' => ['system-urlpath',
L10n::t('Sub path of the URL'),
DI::l10n()->t('Sub path of the URL'),
$configCache->get('system', 'urlpath'),
L10n::t('Overwrite this field in case the sub path determination isn\'t right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path.'),
DI::l10n()->t('Overwrite this field in case the sub path determination isn\'t right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path.'),
''],
'$php_path' => $configCache->get('config', 'php_path'),
'$submit' => L10n::t('Submit'),
'$submit' => DI::l10n()->t('Submit'),
]);
break;
@ -217,51 +216,51 @@ class Install extends BaseModule
$tpl = Renderer::getMarkupTemplate('install_db.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$pass' => L10n::t('Database connection'),
'$info_01' => L10n::t('In order to install Friendica we need to know how to connect to your database.'),
'$info_02' => L10n::t('Please contact your hosting provider or site administrator if you have questions about these settings.'),
'$info_03' => L10n::t('The database you specify below should already exist. If it does not, please create it before continuing.'),
'$pass' => DI::l10n()->t('Database connection'),
'$info_01' => DI::l10n()->t('In order to install Friendica we need to know how to connect to your database.'),
'$info_02' => DI::l10n()->t('Please contact your hosting provider or site administrator if you have questions about these settings.'),
'$info_03' => DI::l10n()->t('The database you specify below should already exist. If it does not, please create it before continuing.'),
'checks' => self::$installer->getChecks(),
'$hostname' => $configCache->get('config', 'hostname'),
'$ssl_policy' => $configCache->get('system', 'ssl_policy'),
'$basepath' => $configCache->get('system', 'basepath'),
'$urlpath' => $configCache->get('system', 'urlpath'),
'$dbhost' => ['database-hostname',
L10n::t('Database Server Name'),
DI::l10n()->t('Database Server Name'),
$configCache->get('database', 'hostname'),
'',
'required'],
'$dbuser' => ['database-username',
L10n::t('Database Login Name'),
DI::l10n()->t('Database Login Name'),
$configCache->get('database', 'username'),
'',
'required',
'autofocus'],
'$dbpass' => ['database-password',
L10n::t('Database Login Password'),
DI::l10n()->t('Database Login Password'),
$configCache->get('database', 'password'),
L10n::t("For security reasons the password must not be empty"),
DI::l10n()->t("For security reasons the password must not be empty"),
'required'],
'$dbdata' => ['database-database',
L10n::t('Database Name'),
DI::l10n()->t('Database Name'),
$configCache->get('database', 'database'),
'',
'required'],
'$lbl_10' => L10n::t('Please select a default timezone for your website'),
'$lbl_10' => DI::l10n()->t('Please select a default timezone for your website'),
'$php_path' => $configCache->get('config', 'php_path'),
'$submit' => L10n::t('Submit')
'$submit' => DI::l10n()->t('Submit')
]);
break;
case self::SITE_SETTINGS:
/* Installed langs */
$lang_choices = L10n::getAvailableLanguages();
$lang_choices = DI::l10n()->getAvailableLanguages();
$tpl = Renderer::getMarkupTemplate('install_settings.tpl');
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$checks' => self::$installer->getChecks(),
'$pass' => L10n::t('Site settings'),
'$pass' => DI::l10n()->t('Site settings'),
'$hostname' => $configCache->get('config', 'hostname'),
'$ssl_policy' => $configCache->get('system', 'ssl_policy'),
'$basepath' => $configCache->get('system', 'basepath'),
@ -271,21 +270,21 @@ class Install extends BaseModule
'$dbpass' => $configCache->get('database', 'password'),
'$dbdata' => $configCache->get('database', 'database'),
'$adminmail' => ['config-admin_email',
L10n::t('Site administrator email address'),
DI::l10n()->t('Site administrator email address'),
$configCache->get('config', 'admin_email'),
L10n::t('Your account email address must match this in order to use the web admin panel.'),
DI::l10n()->t('Your account email address must match this in order to use the web admin panel.'),
'required', 'autofocus', 'email'],
'$timezone' => Temporal::getTimezoneField('system-default_timezone',
L10n::t('Please select a default timezone for your website'),
DI::l10n()->t('Please select a default timezone for your website'),
$configCache->get('system', 'default_timezone'),
''),
'$language' => ['system-language',
L10n::t('System Language:'),
DI::l10n()->t('System Language:'),
$configCache->get('system', 'language'),
L10n::t('Set the default language for your Friendica installation interface and to send emails.'),
DI::l10n()->t('Set the default language for your Friendica installation interface and to send emails.'),
$lang_choices],
'$php_path' => $configCache->get('config', 'php_path'),
'$submit' => L10n::t('Submit')
'$submit' => DI::l10n()->t('Submit')
]);
break;
@ -294,7 +293,7 @@ class Install extends BaseModule
if (count(self::$installer->getChecks()) == 0) {
$txt = '<p style="font-size: 130%;">';
$txt .= L10n::t('Your Friendica site database has been installed.') . EOL;
$txt .= DI::l10n()->t('Your Friendica site database has been installed.') . EOL;
$db_return_text .= $txt;
}
@ -302,7 +301,7 @@ class Install extends BaseModule
$output .= Renderer::replaceMacros($tpl, [
'$title' => $install_title,
'$checks' => self::$installer->getChecks(),
'$pass' => L10n::t('Installation finished'),
'$pass' => DI::l10n()->t('Installation finished'),
'$text' => $db_return_text . self::whatNext(),
]);
@ -322,11 +321,11 @@ class Install extends BaseModule
{
$baseurl = DI::baseUrl()->get();
return
L10n::t('<h1>What next</h1>')
. "<p>" . L10n::t('IMPORTANT: You will need to [manually] setup a scheduled task for the worker.')
. L10n::t('Please see the file "INSTALL.txt".')
DI::l10n()->t('<h1>What next</h1>')
. "<p>" . DI::l10n()->t('IMPORTANT: You will need to [manually] setup a scheduled task for the worker.')
. DI::l10n()->t('Please see the file "INSTALL.txt".')
. "</p><p>"
. L10n::t('Go to your new Friendica node <a href="%s/register">registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.', $baseurl)
. DI::l10n()->t('Go to your new Friendica node <a href="%s/register">registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.', $baseurl)
. "</p>";
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model;
@ -19,7 +18,7 @@ class Invite extends BaseModule
public static function post(array $parameters = [])
{
if (!local_user()) {
throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
self::checkFormSecurityTokenRedirectOnError('/', 'send_invite');
@ -34,7 +33,7 @@ class Invite extends BaseModule
$current_invites = intval(DI::pConfig()->get(local_user(), 'system', 'sent_invites'));
if ($current_invites > $max_invites) {
throw new HTTPException\ForbiddenException(L10n::t('Total invitation limit exceeded.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Total invitation limit exceeded.'));
}
@ -57,7 +56,7 @@ class Invite extends BaseModule
$recipient = trim($recipient);
if (!filter_var($recipient, FILTER_VALIDATE_EMAIL)) {
notice(L10n::t('%s : Not a valid email address.', $recipient) . EOL);
notice(DI::l10n()->t('%s : Not a valid email address.', $recipient) . EOL);
continue;
}
@ -84,7 +83,7 @@ class Invite extends BaseModule
$res = mail(
$recipient,
Email::encodeHeader(L10n::t('Please join us on Friendica'), 'UTF-8'),
Email::encodeHeader(DI::l10n()->t('Please join us on Friendica'), 'UTF-8'),
$nmessage,
$additional_headers);
@ -93,21 +92,21 @@ class Invite extends BaseModule
$current_invites++;
DI::pConfig()->set(local_user(), 'system', 'sent_invites', $current_invites);
if ($current_invites > $max_invites) {
notice(L10n::t('Invitation limit exceeded. Please contact your site administrator.') . EOL);
notice(DI::l10n()->t('Invitation limit exceeded. Please contact your site administrator.') . EOL);
return;
}
} else {
notice(L10n::t('%s : Message delivery failed.', $recipient) . EOL);
notice(DI::l10n()->t('%s : Message delivery failed.', $recipient) . EOL);
}
}
notice(L10n::tt('%d message sent.', '%d messages sent.', $total) . EOL);
notice(DI::l10n()->tt('%d message sent.', '%d messages sent.', $total) . EOL);
}
public static function content(array $parameters = [])
{
if (!local_user()) {
throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
$app = DI::app();
@ -119,42 +118,42 @@ class Invite extends BaseModule
$inviteOnly = true;
$x = DI::pConfig()->get(local_user(), 'system', 'invites_remaining');
if ((!$x) && (!is_site_admin())) {
throw new HTTPException\ForbiddenException(L10n::t('You have no more invitations available'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('You have no more invitations available'));
}
}
$dirLocation = $config->get('system', 'directory');
if (strlen($dirLocation)) {
if ($config->get('config', 'register_policy') === Register::CLOSED) {
$linkTxt = L10n::t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.', $dirLocation . '/servers');
$linkTxt = DI::l10n()->t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.', $dirLocation . '/servers');
} else {
$linkTxt = L10n::t('To accept this invitation, please visit and register at %s or any other public Friendica website.', DI::baseUrl()->get())
. "\r\n" . "\r\n" . L10n::t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.', $dirLocation . '/servers');
$linkTxt = DI::l10n()->t('To accept this invitation, please visit and register at %s or any other public Friendica website.', DI::baseUrl()->get())
. "\r\n" . "\r\n" . DI::l10n()->t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.', $dirLocation . '/servers');
}
} else { // there is no global directory URL defined
if ($config->get('config', 'register_policy') === Register::CLOSED) {
return L10n::t('Our apologies. This system is not currently configured to connect with other public sites or invite members.');
return DI::l10n()->t('Our apologies. This system is not currently configured to connect with other public sites or invite members.');
} else {
$linkTxt = L10n::t('To accept this invitation, please visit and register at %s.', DI::baseUrl()->get()
. "\r\n" . "\r\n" . L10n::t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.'));
$linkTxt = DI::l10n()->t('To accept this invitation, please visit and register at %s.', DI::baseUrl()->get()
. "\r\n" . "\r\n" . DI::l10n()->t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.'));
}
}
$tpl = Renderer::getMarkupTemplate('invite.tpl');
return Renderer::replaceMacros($tpl, [
'$form_security_token' => self::getFormSecurityToken('send_invite'),
'$title' => L10n::t('Send invitations'),
'$recipients' => ['recipients', L10n::t('Enter email addresses, one per line:')],
'$title' => DI::l10n()->t('Send invitations'),
'$recipients' => ['recipients', DI::l10n()->t('Enter email addresses, one per line:')],
'$message' => [
'message',
L10n::t('Your message:'),
L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
DI::l10n()->t('Your message:'),
DI::l10n()->t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n"
. $linkTxt
. "\r\n" . "\r\n" . (($inviteOnly) ? L10n::t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') . L10n::t('Once you have registered, please connect with me via my profile page at:')
. "\r\n" . "\r\n" . (($inviteOnly) ? DI::l10n()->t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') . DI::l10n()->t('Once you have registered, please connect with me via my profile page at:')
. "\r\n" . "\r\n" . DI::baseUrl()->get() . '/profile/' . $app->user['nickname']
. "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n",
. "\r\n" . "\r\n" . DI::l10n()->t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n",
],
'$submit' => L10n::t('Submit')
'$submit' => DI::l10n()->t('Submit')
]);
}
}

View file

@ -6,7 +6,6 @@ use Friendica\BaseModule;
use Friendica\Content\Feature;
use Friendica\Core\ACL;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Theme;
use Friendica\DI;
@ -25,7 +24,7 @@ class Compose extends BaseModule
require_once 'mod/item.php';
item_post(DI::app());
} else {
notice(L10n::t('Please enter a post body.'));
notice(DI::l10n()->t('Please enter a post body.'));
}
}
@ -38,7 +37,7 @@ class Compose extends BaseModule
$a = DI::app();
if ($a->getCurrentTheme() !== 'frio') {
throw new NotImplementedException(L10n::t('This feature is only available with the frio theme.'));
throw new NotImplementedException(DI::l10n()->t('This feature is only available with the frio theme.'));
}
/// @TODO Retrieve parameter from router
@ -65,7 +64,7 @@ class Compose extends BaseModule
switch ($posttype) {
case Item::PT_PERSONAL_NOTE:
$compose_title = L10n::t('Compose new personal note');
$compose_title = DI::l10n()->t('Compose new personal note');
$type = 'note';
$doesFederate = false;
$contact_allow_list = [$a->contact['id']];
@ -74,7 +73,7 @@ class Compose extends BaseModule
$group_deny_list = [];
break;
default:
$compose_title = L10n::t('Compose new post');
$compose_title = DI::l10n()->t('Compose new post');
$type = 'post';
$doesFederate = true;
@ -114,33 +113,33 @@ class Compose extends BaseModule
$tpl = Renderer::getMarkupTemplate('item/compose.tpl');
return Renderer::replaceMacros($tpl, [
'$compose_title'=> $compose_title,
'$visibility_title'=> L10n::t('Visibility'),
'$visibility_title'=> DI::l10n()->t('Visibility'),
'$id' => 0,
'$posttype' => $posttype,
'$type' => $type,
'$wall' => $wall,
'$default' => '',
'$mylink' => DI::baseUrl()->remove($a->contact['url']),
'$mytitle' => L10n::t('This is you'),
'$mytitle' => DI::l10n()->t('This is you'),
'$myphoto' => DI::baseUrl()->remove($a->contact['thumb']),
'$submit' => L10n::t('Submit'),
'$edbold' => L10n::t('Bold'),
'$editalic' => L10n::t('Italic'),
'$eduline' => L10n::t('Underline'),
'$edquote' => L10n::t('Quote'),
'$edcode' => L10n::t('Code'),
'$edimg' => L10n::t('Image'),
'$edurl' => L10n::t('Link'),
'$edattach' => L10n::t('Link or Media'),
'$prompttext' => L10n::t('Please enter a image/video/audio/webpage URL:'),
'$preview' => L10n::t('Preview'),
'$location_set' => L10n::t('Set your location'),
'$location_clear' => L10n::t('Clear the location'),
'$location_unavailable' => L10n::t('Location services are unavailable on your device'),
'$location_disabled' => L10n::t('Location services are disabled. Please check the website\'s permissions on your device'),
'$wait' => L10n::t('Please wait'),
'$placeholdertitle' => L10n::t('Set title'),
'$placeholdercategory' => (Feature::isEnabled(local_user(),'categories') ? L10n::t('Categories (comma-separated list)') : ''),
'$submit' => DI::l10n()->t('Submit'),
'$edbold' => DI::l10n()->t('Bold'),
'$editalic' => DI::l10n()->t('Italic'),
'$eduline' => DI::l10n()->t('Underline'),
'$edquote' => DI::l10n()->t('Quote'),
'$edcode' => DI::l10n()->t('Code'),
'$edimg' => DI::l10n()->t('Image'),
'$edurl' => DI::l10n()->t('Link'),
'$edattach' => DI::l10n()->t('Link or Media'),
'$prompttext' => DI::l10n()->t('Please enter a image/video/audio/webpage URL:'),
'$preview' => DI::l10n()->t('Preview'),
'$location_set' => DI::l10n()->t('Set your location'),
'$location_clear' => DI::l10n()->t('Clear the location'),
'$location_unavailable' => DI::l10n()->t('Location services are unavailable on your device'),
'$location_disabled' => DI::l10n()->t('Location services are disabled. Please check the website\'s permissions on your device'),
'$wait' => DI::l10n()->t('Please wait'),
'$placeholdertitle' => DI::l10n()->t('Set title'),
'$placeholdercategory' => (Feature::isEnabled(local_user(),'categories') ? DI::l10n()->t('Categories (comma-separated list)') : ''),
'$title' => $title,
'$category' => $category,
@ -153,7 +152,7 @@ class Compose extends BaseModule
'$group_deny' => implode(',', $group_deny_list),
'$jotplugins' => $jotplugins,
'$sourceapp' => L10n::t($a->sourcename),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$rand_num' => Crypto::randomDigits(12),
'$acl_selector' => ACL::getFullSelectorHTML(DI::page(), $a->user, $doesFederate, [
'allow_cid' => $contact_allow_list,

View file

@ -2,12 +2,9 @@
namespace Friendica\Module\Item;
use Friendica\App;
use Friendica\BaseModule;
use Friendica\Core\L10n\L10n;
use Friendica\Core\Session;
use Friendica\Core\System;
use Friendica\Database\Database;
use Friendica\DI;
use Friendica\Model\Item;
use Friendica\Network\HTTPException;

View file

@ -3,7 +3,6 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\DI;
use Friendica\Network\HTTPException;
@ -25,7 +24,7 @@ class Maintenance extends BaseModule
}
$exception = new HTTPException\ServiceUnavailableException($reason);
$exception->httpdesc = L10n::t('System down for maintenance');
$exception->httpdesc = DI::l10n()->t('System down for maintenance');
throw $exception;
}
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Notifications;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\DI;
use Friendica\Network\HTTPException;
@ -16,7 +15,7 @@ class Notify extends BaseModule
public static function init(array $parameters = [])
{
if (!local_user()) {
throw new HTTPException\UnauthorizedException(L10n::t('Permission denied.'));
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Permission denied.'));
}
}

View file

@ -6,12 +6,10 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\System;
use Friendica\DI;
use Friendica\Model\Photo as MPhoto;
use Friendica\Object\Image;
/**
* Photo Module
@ -85,7 +83,7 @@ class Photo extends BaseModule
if (is_null($img) || !$img->isValid()) {
Logger::log("Invalid photo with id {$photo["id"]}.");
throw new \Friendica\Network\HTTPException\InternalServerErrorException(L10n::t('Invalid photo with id %s.', $photo["id"]));
throw new \Friendica\Network\HTTPException\InternalServerErrorException(DI::l10n()->t('Invalid photo with id %s.', $photo["id"]));
}
// if customsize is set and image is not a gif, resize it

View file

@ -9,7 +9,6 @@ use Friendica\Content\Widget;
use Friendica\Core\ACL;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Session;
use Friendica\Core\System;
use Friendica\Database\DBA;
@ -114,10 +113,10 @@ class Profile extends BaseModule
$page['htmlhead'] .= '<meta content="noindex, noarchive" name="robots" />' . "\n";
}
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/dfrn_poll/' . self::$which . '" title="DFRN: ' . L10n::t('%s\'s timeline', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/feed/' . self::$which . '/" title="' . L10n::t('%s\'s posts', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/feed/' . self::$which . '/comments" title="' . L10n::t('%s\'s comments', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/feed/' . self::$which . '/activity" title="' . L10n::t('%s\'s timeline', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/dfrn_poll/' . self::$which . '" title="DFRN: ' . DI::l10n()->t('%s\'s timeline', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/feed/' . self::$which . '/" title="' . DI::l10n()->t('%s\'s posts', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/feed/' . self::$which . '/comments" title="' . DI::l10n()->t('%s\'s comments', $a->profile['username']) . '"/>' . "\n";
$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . DI::baseUrl() . '/feed/' . self::$which . '/activity" title="' . DI::l10n()->t('%s\'s timeline', $a->profile['username']) . '"/>' . "\n";
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . DI::baseUrl()->getHostname() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : ''));
$page['htmlhead'] .= '<link rel="lrdd" type="application/xrd+xml" href="' . DI::baseUrl() . '/xrd/?uri=' . $uri . '" />' . "\n";
header('Link: <' . DI::baseUrl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false);
@ -169,7 +168,7 @@ class Profile extends BaseModule
$last_updated_key = "profile:" . $a->profile['profile_uid'] . ":" . local_user() . ":" . $remote_contact;
if (!empty($a->profile['hidewall']) && !$is_owner && !$remote_contact) {
notice(L10n::t('Access to this profile has been restricted.') . EOL);
notice(DI::l10n()->t('Access to this profile has been restricted.') . EOL);
return '';
}

View file

@ -7,7 +7,6 @@ use Friendica\Content\ContactSelector;
use Friendica\Content\Nav;
use Friendica\Content\Pager;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
@ -22,7 +21,7 @@ class Contacts extends BaseModule
public static function content(array $parameters = [])
{
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('User not found.'));
throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
}
$a = DI::app();
@ -35,7 +34,7 @@ class Contacts extends BaseModule
$user = DBA::selectFirst('user', [], ['nickname' => $nickname, 'blocked' => false]);
if (!DBA::isResult($user)) {
throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('User not found.'));
throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
}
$a->profile_uid = $user['uid'];
@ -48,7 +47,7 @@ class Contacts extends BaseModule
$o = Profile::getTabs($a, 'contacts', $is_owner, $nickname);
if (!count($a->profile) || $a->profile['hide-friends']) {
notice(L10n::t('Permission denied.') . EOL);
notice(DI::l10n()->t('Permission denied.') . EOL);
return $o;
}
@ -76,7 +75,7 @@ class Contacts extends BaseModule
$contacts_stmt = DBA::select('contact', [], $condition, $params);
if (!DBA::isResult($contacts_stmt)) {
info(L10n::t('No contacts.') . EOL);
info(DI::l10n()->t('No contacts.') . EOL);
return $o;
}
@ -91,7 +90,7 @@ class Contacts extends BaseModule
$contacts[] = [
'id' => $contact['id'],
'img_hover' => L10n::t('Visit %s\'s profile [%s]', $contact_details['name'], $contact['url']),
'img_hover' => DI::l10n()->t('Visit %s\'s profile [%s]', $contact_details['name'], $contact['url']),
'photo_menu' => Contact::photoMenu($contact),
'thumb' => ProxyUtils::proxifyUrl($contact_details['thumb'], false, ProxyUtils::SIZE_THUMB),
'name' => substr($contact_details['name'], 0, 20),
@ -110,11 +109,11 @@ class Contacts extends BaseModule
DBA::close($contacts_stmt);
switch ($type) {
case 'followers': $title = L10n::tt('Follower (%s)', 'Followers (%s)', $total); break;
case 'following': $title = L10n::tt('Following (%s)', 'Following (%s)', $total); break;
case 'mutuals': $title = L10n::tt('Mutual friend (%s)', 'Mutual friends (%s)', $total); break;
case 'followers': $title = DI::l10n()->tt('Follower (%s)', 'Followers (%s)', $total); break;
case 'following': $title = DI::l10n()->tt('Following (%s)', 'Following (%s)', $total); break;
case 'mutuals': $title = DI::l10n()->tt('Mutual friend (%s)', 'Mutual friends (%s)', $total); break;
case 'all': default: $title = L10n::tt('Contact (%s)', 'Contacts (%s)', $total); break;
case 'all': default: $title = DI::l10n()->tt('Contact (%s)', 'Contacts (%s)', $total); break;
}
$tpl = Renderer::getMarkupTemplate('profile/contacts.tpl');
@ -123,10 +122,10 @@ class Contacts extends BaseModule
'$nickname' => $nickname,
'$type' => $type,
'$all_label' => L10n::t('All contacts'),
'$followers_label' => L10n::t('Followers'),
'$following_label' => L10n::t('Following'),
'$mutuals_label' => L10n::t('Mutual friends'),
'$all_label' => DI::l10n()->t('All contacts'),
'$followers_label' => DI::l10n()->t('Followers'),
'$following_label' => DI::l10n()->t('Following'),
'$mutuals_label' => DI::l10n()->t('Mutual friends'),
'$contacts' => $contacts,
'$paginate' => $pager->renderFull($total),

View file

@ -6,8 +6,6 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Core\Logger;
use Friendica\DI;
use Friendica\Model\Photo;

View file

@ -7,7 +7,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\L10n\L10n as L10nClass;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Worker;
@ -42,20 +41,20 @@ class Register extends BaseModule
$block = Config::get('system', 'block_extended_register');
if (local_user() && $block) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
return '';
}
if (local_user()) {
$user = DBA::selectFirst('user', ['parent-uid'], ['uid' => local_user()]);
if (!empty($user['parent-uid'])) {
notice(L10n::t('Only parent users can create additional accounts.'));
notice(DI::l10n()->t('Only parent users can create additional accounts.'));
return '';
}
}
if (!local_user() && (intval(Config::get('config', 'register_policy')) === self::CLOSED)) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
return '';
}
@ -64,7 +63,7 @@ class Register extends BaseModule
$count = DBA::count('user', ['`register_date` > UTC_TIMESTAMP - INTERVAL 1 day']);
if ($count >= $max_dailies) {
Logger::log('max daily registrations exceeded.');
notice(L10n::t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.'));
notice(DI::l10n()->t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.'));
return '';
}
}
@ -81,9 +80,9 @@ class Register extends BaseModule
$fillext = '';
$oidlabel = '';
} else {
$fillwith = L10n::t('You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking "Register".');
$fillext = L10n::t('If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.');
$oidlabel = L10n::t('Your OpenID (optional): ');
$fillwith = DI::l10n()->t('You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking "Register".');
$fillext = DI::l10n()->t('If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.');
$oidlabel = DI::l10n()->t('Your OpenID (optional): ');
}
if (Config::get('system', 'publish_all')) {
@ -92,11 +91,11 @@ class Register extends BaseModule
$publish_tpl = Renderer::getMarkupTemplate('profile_publish.tpl');
$profile_publish = Renderer::replaceMacros($publish_tpl, [
'$instance' => 'reg',
'$pubdesc' => L10n::t('Include your profile in member directory?'),
'$pubdesc' => DI::l10n()->t('Include your profile in member directory?'),
'$yes_selected' => '',
'$no_selected' => ' checked="checked"',
'$str_yes' => L10n::t('Yes'),
'$str_no' => L10n::t('No'),
'$str_yes' => DI::l10n()->t('Yes'),
'$str_no' => DI::l10n()->t('No'),
]);
}
@ -115,42 +114,42 @@ class Register extends BaseModule
$o = Renderer::replaceMacros($tpl, [
'$invitations' => Config::get('system', 'invitation_only'),
'$permonly' => intval(Config::get('config', 'register_policy')) === self::APPROVE,
'$permonlybox' => ['permonlybox', L10n::t('Note for the admin'), '', L10n::t('Leave a message for the admin, why you want to join this node'), 'required'],
'$invite_desc' => L10n::t('Membership on this site is by invitation only.'),
'$invite_label' => L10n::t('Your invitation code: '),
'$permonlybox' => ['permonlybox', DI::l10n()->t('Note for the admin'), '', DI::l10n()->t('Leave a message for the admin, why you want to join this node'), 'required'],
'$invite_desc' => DI::l10n()->t('Membership on this site is by invitation only.'),
'$invite_label' => DI::l10n()->t('Your invitation code: '),
'$invite_id' => $invite_id,
'$regtitle' => L10n::t('Registration'),
'$regtitle' => DI::l10n()->t('Registration'),
'$registertext' => BBCode::convert(Config::get('config', 'register_text', '')),
'$fillwith' => $fillwith,
'$fillext' => $fillext,
'$oidlabel' => $oidlabel,
'$openid' => $openid_url,
'$namelabel' => L10n::t('Your Full Name (e.g. Joe Smith, real or real-looking): '),
'$addrlabel' => L10n::t('Your Email Address: (Initial information will be send there, so this has to be an existing address.)'),
'$addrlabel2' => L10n::t('Please repeat your e-mail address:'),
'$namelabel' => DI::l10n()->t('Your Full Name (e.g. Joe Smith, real or real-looking): '),
'$addrlabel' => DI::l10n()->t('Your Email Address: (Initial information will be send there, so this has to be an existing address.)'),
'$addrlabel2' => DI::l10n()->t('Please repeat your e-mail address:'),
'$ask_password' => $ask_password,
'$password1' => ['password1', L10n::t('New Password:'), '', L10n::t('Leave empty for an auto generated password.')],
'$password2' => ['confirm', L10n::t('Confirm:'), '', ''],
'$nickdesc' => L10n::t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be "<strong>nickname@%s</strong>".', DI::baseUrl()->getHostname()),
'$nicklabel' => L10n::t('Choose a nickname: '),
'$password1' => ['password1', DI::l10n()->t('New Password:'), '', DI::l10n()->t('Leave empty for an auto generated password.')],
'$password2' => ['confirm', DI::l10n()->t('Confirm:'), '', ''],
'$nickdesc' => DI::l10n()->t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be "<strong>nickname@%s</strong>".', DI::baseUrl()->getHostname()),
'$nicklabel' => DI::l10n()->t('Choose a nickname: '),
'$photo' => $photo,
'$publish' => $profile_publish,
'$regbutt' => L10n::t('Register'),
'$regbutt' => DI::l10n()->t('Register'),
'$username' => $username,
'$email' => $email,
'$nickname' => $nickname,
'$sitename' => DI::baseUrl()->getHostname(),
'$importh' => L10n::t('Import'),
'$importt' => L10n::t('Import your profile to this friendica instance'),
'$importh' => DI::l10n()->t('Import'),
'$importt' => DI::l10n()->t('Import your profile to this friendica instance'),
'$showtoslink' => Config::get('system', 'tosdisplay'),
'$tostext' => L10n::t('Terms of Service'),
'$tostext' => DI::l10n()->t('Terms of Service'),
'$showprivstatement' => Config::get('system', 'tosprivstatement'),
'$privstatement'=> $tos->privacy_complete,
'$form_security_token' => BaseModule::getFormSecurityToken('register'),
'$explicit_content' => Config::get('system', 'explicit_content', false),
'$explicit_content_note' => L10n::t('Note: This node explicitly contains adult content'),
'$explicit_content_note' => DI::l10n()->t('Note: This node explicitly contains adult content'),
'$additional' => !empty(local_user()),
'$parent_password' => ['parent_password', L10n::t('Parent Password:'), '', L10n::t('Please enter the password of the parent account to legitimize your request.')]
'$parent_password' => ['parent_password', DI::l10n()->t('Parent Password:'), '', DI::l10n()->t('Please enter the password of the parent account to legitimize your request.')]
]);
@ -175,19 +174,19 @@ class Register extends BaseModule
$additional_account = false;
if (!local_user() && !empty($arr['post']['parent_password'])) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
return;
} elseif (local_user() && !empty($arr['post']['parent_password'])) {
try {
Model\User::getIdFromPasswordAuthentication(local_user(), $arr['post']['parent_password']);
} catch (\Exception $ex) {
notice(L10n::t("Password doesn't match."));
notice(DI::l10n()->t("Password doesn't match."));
$regdata = ['nickname' => $arr['post']['nickname'], 'username' => $arr['post']['username']];
DI::baseUrl()->redirect('register?' . http_build_query($regdata));
}
$additional_account = true;
} elseif (local_user()) {
notice(L10n::t('Please enter your password.'));
notice(DI::l10n()->t('Please enter your password.'));
$regdata = ['nickname' => $arr['post']['nickname'], 'username' => $arr['post']['username']];
DI::baseUrl()->redirect('register?' . http_build_query($regdata));
}
@ -214,7 +213,7 @@ class Register extends BaseModule
case self::CLOSED:
default:
if (empty($_SESSION['authenticated']) && empty($_SESSION['administrator'])) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
return;
}
$blocked = 1;
@ -229,7 +228,7 @@ class Register extends BaseModule
// Is there text in the tar pit?
if (!empty($arr['email'])) {
Logger::info('Tar pit', $arr);
notice(L10n::t('You have entered too much information.'));
notice(DI::l10n()->t('You have entered too much information.'));
DI::baseUrl()->redirect('register/');
}
@ -240,7 +239,7 @@ class Register extends BaseModule
if ($additional_account) {
$user = DBA::selectFirst('user', ['email'], ['uid' => local_user()]);
if (!DBA::isResult($user)) {
notice(L10n::t('User not found.'));
notice(DI::l10n()->t('User not found.'));
DI::baseUrl()->redirect('register');
}
@ -253,14 +252,14 @@ class Register extends BaseModule
if ($arr['email'] != $arr['repeat']) {
Logger::info('Mail mismatch', $arr);
notice(L10n::t('Please enter the identical mail address in the second field.'));
notice(DI::l10n()->t('Please enter the identical mail address in the second field.'));
$regdata = ['email' => $arr['email'], 'nickname' => $arr['nickname'], 'username' => $arr['username']];
DI::baseUrl()->redirect('register?' . http_build_query($regdata));
}
$arr['blocked'] = $blocked;
$arr['verified'] = $verified;
$arr['language'] = L10nClass::detectLanguage($_SERVER, $_GET, DI::config()->get('system', 'language'));
$arr['language'] = L10n::detectLanguage($_SERVER, $_GET, DI::config()->get('system', 'language'));
try {
$result = Model\User::create($arr);
@ -280,7 +279,7 @@ class Register extends BaseModule
if ($additional_account) {
DBA::update('user', ['parent-uid' => local_user()], ['uid' => $user['uid']]);
info(L10n::t('The additional account was created.'));
info(DI::l10n()->t('The additional account was created.'));
DI::baseUrl()->redirect('delegation');
}
@ -297,7 +296,7 @@ class Register extends BaseModule
// Only send a password mail when the password wasn't manually provided
if (empty($_POST['password1']) || empty($_POST['confirm'])) {
$res = Model\User::sendRegisterOpenEmail(
L10n::withLang($arr['language']),
DI::l10n()->withLang($arr['language']),
$user,
Config::get('config', 'sitename'),
$base_url,
@ -305,29 +304,29 @@ class Register extends BaseModule
);
if ($res) {
info(L10n::t('Registration successful. Please check your email for further instructions.'));
info(DI::l10n()->t('Registration successful. Please check your email for further instructions.'));
DI::baseUrl()->redirect();
} else {
notice(
L10n::t('Failed to send email message. Here your accout details:<br> login: %s<br> password: %s<br><br>You can change your password after login.',
DI::l10n()->t('Failed to send email message. Here your accout details:<br> login: %s<br> password: %s<br><br>You can change your password after login.',
$user['email'],
$result['password'])
);
}
} else {
info(L10n::t('Registration successful.'));
info(DI::l10n()->t('Registration successful.'));
DI::baseUrl()->redirect();
}
} elseif (intval(Config::get('config', 'register_policy')) === self::APPROVE) {
if (!strlen(Config::get('config', 'admin_email'))) {
notice(L10n::t('Your registration can not be processed.'));
notice(DI::l10n()->t('Your registration can not be processed.'));
DI::baseUrl()->redirect();
}
// Check if the note to the admin is actually filled out
if (empty($_POST['permonlybox'])) {
notice(L10n::t('You have to leave a request note for the admin.')
. L10n::t('Your registration can not be processed.'));
notice(DI::l10n()->t('You have to leave a request note for the admin.')
. DI::l10n()->t('Your registration can not be processed.'));
DI::baseUrl()->redirect('register/');
}
@ -374,7 +373,7 @@ class Register extends BaseModule
$result['password']
);
info(L10n::t('Your registration is pending approval by the site owner.'));
info(DI::l10n()->t('Your registration is pending approval by the site owner.'));
DI::baseUrl()->redirect();
}

View file

@ -5,11 +5,11 @@ namespace Friendica\Module\Search;
use Friendica\BaseModule;
use Friendica\Content\Widget;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Search;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Item;
use Friendica\Network\HTTPException;
@ -34,7 +34,7 @@ class Acl extends BaseModule
public static function rawContent(array $parameters = [])
{
if (!local_user()) {
throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this module.'));
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this module.'));
}
$type = $_REQUEST['type'] ?? self::TYPE_MENTION_CONTACT_GROUP;

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Search;
use Friendica\Content\Widget;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Module\BaseSearchModule;
use Friendica\Module\Security\Login;
@ -17,7 +16,7 @@ class Directory extends BaseSearchModule
public static function content(array $parameters = [])
{
if (!local_user()) {
notice(L10n::t('Permission denied.'));
notice(DI::l10n()->t('Permission denied.'));
return Login::form();
}

View file

@ -8,7 +8,6 @@ use Friendica\Content\Text\HTML;
use Friendica\Content\Widget;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
@ -28,12 +27,12 @@ class Index extends BaseSearchModule
$search = (!empty($_GET['q']) ? Strings::escapeTags(trim(rawurldecode($_GET['q']))) : '');
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
throw new HTTPException\ForbiddenException(L10n::t('Public access denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
}
if (Config::get('system', 'local_search') && !Session::isAuthenticated()) {
$e = new HTTPException\ForbiddenException(L10n::t('Only logged in users are permitted to perform a search.'));
$e->httpdesc = L10n::t('Public access denied.');
$e = new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a search.'));
$e->httpdesc = DI::l10n()->t('Public access denied.');
throw $e;
}
@ -54,7 +53,7 @@ class Index extends BaseSearchModule
if (!is_null($result)) {
$resultdata = json_decode($result);
if (($resultdata->time > (time() - $crawl_permit_period)) && ($resultdata->accesses > $free_crawls)) {
throw new HTTPException\TooManyRequestsException(L10n::t('Only one search per minute is permitted for not logged in users.'));
throw new HTTPException\TooManyRequestsException(DI::l10n()->t('Only one search per minute is permitted for not logged in users.'));
}
DI::cache()->set('remote_search:' . $remote, json_encode(['time' => time(), 'accesses' => $resultdata->accesses + 1]), Duration::HOUR);
} else {
@ -77,7 +76,7 @@ class Index extends BaseSearchModule
// contruct a wrapper for the search header
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('content_wrapper.tpl'), [
'name' => 'search-header',
'$title' => L10n::t('Search'),
'$title' => DI::l10n()->t('Search'),
'$title_size' => 3,
'$content' => HTML::search($search, 'search-box', false)
]);
@ -167,14 +166,14 @@ class Index extends BaseSearchModule
}
if (!DBA::isResult($r)) {
info(L10n::t('No results.'));
info(DI::l10n()->t('No results.'));
return $o;
}
if ($tag) {
$title = L10n::t('Items tagged with: %s', $search);
$title = DI::l10n()->t('Items tagged with: %s', $search);
} else {
$title = L10n::t('Results for: %s', $search);
$title = DI::l10n()->t('Results for: %s', $search);
}
$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'), [

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Search;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Util\Strings;
@ -23,15 +22,15 @@ class Saved extends BaseModule
$fields = ['uid' => local_user(), 'term' => $search];
if (!DBA::exists('search', $fields)) {
DBA::insert('search', $fields);
info(L10n::t('Search term successfully saved.'));
info(DI::l10n()->t('Search term successfully saved.'));
} else {
info(L10n::t('Search term already saved.'));
info(DI::l10n()->t('Search term already saved.'));
}
break;
case 'remove':
DBA::delete('search', ['uid' => local_user(), 'term' => $search]);
info(L10n::t('Search term successfully removed.'));
info(DI::l10n()->t('Search term successfully removed.'));
break;
}
}

View file

@ -9,7 +9,6 @@ namespace Friendica\Module\Security;
use Friendica\BaseModule;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI;
@ -87,8 +86,8 @@ class Login extends BaseModule
$reg = false;
if ($register && intval(DI::config()->get('config', 'register_policy')) !== Register::CLOSED) {
$reg = [
'title' => L10n::t('Create a New Account'),
'desc' => L10n::t('Register'),
'title' => DI::l10n()->t('Create a New Account'),
'desc' => DI::l10n()->t('Register'),
'url' => self::getRegisterURL()
];
}
@ -112,12 +111,12 @@ class Login extends BaseModule
}
if (!empty(Session::get('openid_identity'))) {
$openid_title = L10n::t('Your OpenID: ');
$openid_title = DI::l10n()->t('Your OpenID: ');
$openid_readonly = true;
$identity = Session::get('openid_identity');
$username_desc = L10n::t('Please enter your username and password to add the OpenID to your existing account.');
$username_desc = DI::l10n()->t('Please enter your username and password to add the OpenID to your existing account.');
} else {
$openid_title = L10n::t('Or login using OpenID: ');
$openid_title = DI::l10n()->t('Or login using OpenID: ');
$openid_readonly = false;
$identity = '';
$username_desc = '';
@ -127,12 +126,12 @@ class Login extends BaseModule
$tpl,
[
'$dest_url' => DI::baseUrl()->get(true) . '/login',
'$logout' => L10n::t('Logout'),
'$login' => L10n::t('Login'),
'$logout' => DI::l10n()->t('Logout'),
'$login' => DI::l10n()->t('Login'),
'$lname' => ['username', L10n::t('Nickname or Email: '), '', $username_desc],
'$lpassword' => ['password', L10n::t('Password: '), '', ''],
'$lremember' => ['remember', L10n::t('Remember me'), 0, ''],
'$lname' => ['username', DI::l10n()->t('Nickname or Email: '), '', $username_desc],
'$lpassword' => ['password', DI::l10n()->t('Password: '), '', ''],
'$lremember' => ['remember', DI::l10n()->t('Remember me'), 0, ''],
'$openid' => !$noid,
'$lopenid' => ['openid_url', $openid_title, $identity, '', $openid_readonly],
@ -141,14 +140,14 @@ class Login extends BaseModule
'$register' => $reg,
'$lostpass' => L10n::t('Forgot your password?'),
'$lostlink' => L10n::t('Password Reset'),
'$lostpass' => DI::l10n()->t('Forgot your password?'),
'$lostlink' => DI::l10n()->t('Password Reset'),
'$tostitle' => L10n::t('Website Terms of Service'),
'$toslink' => L10n::t('terms of service'),
'$tostitle' => DI::l10n()->t('Website Terms of Service'),
'$toslink' => DI::l10n()->t('terms of service'),
'$privacytitle' => L10n::t('Website Privacy Policy'),
'$privacylink' => L10n::t('privacy policy'),
'$privacytitle' => DI::l10n()->t('Website Privacy Policy'),
'$privacylink' => DI::l10n()->t('privacy policy'),
]
);

View file

@ -3,8 +3,6 @@
namespace Friendica\Module\Security\TwoFactor;
use Friendica\BaseModule;
use Friendica\App\Authentication;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI;
@ -40,11 +38,11 @@ class Recovery extends BaseModule
if (RecoveryCode::existsForUser(local_user(), $recovery_code)) {
RecoveryCode::markUsedForUser(local_user(), $recovery_code);
Session::set('2fa', true);
notice(L10n::t('Remaining recovery codes: %d', RecoveryCode::countValidForUser(local_user())));
notice(DI::l10n()->t('Remaining recovery codes: %d', RecoveryCode::countValidForUser(local_user())));
DI::auth()->setForUser($a, $a->user, true, true);
} else {
notice(L10n::t('Invalid code, please retry.'));
notice(DI::l10n()->t('Invalid code, please retry.'));
}
}
}
@ -63,11 +61,11 @@ class Recovery extends BaseModule
return Renderer::replaceMacros(Renderer::getMarkupTemplate('twofactor/recovery.tpl'), [
'$form_security_token' => self::getFormSecurityToken('twofactor_recovery'),
'$title' => L10n::t('Two-factor recovery'),
'$message' => L10n::t('<p>You can enter one of your one-time recovery codes in case you lost access to your mobile device.</p>'),
'$recovery_message' => L10n::t('Dont have your phone? <a href="%s">Enter a two-factor recovery code</a>', '2fa/recovery'),
'$recovery_code' => ['recovery_code', L10n::t('Please enter a recovery code'), '', '', '', 'placeholder="000000-000000"'],
'$recovery_label' => L10n::t('Submit recovery code and complete login'),
'$title' => DI::l10n()->t('Two-factor recovery'),
'$message' => DI::l10n()->t('<p>You can enter one of your one-time recovery codes in case you lost access to your mobile device.</p>'),
'$recovery_message' => DI::l10n()->t('Dont have your phone? <a href="%s">Enter a two-factor recovery code</a>', '2fa/recovery'),
'$recovery_code' => ['recovery_code', DI::l10n()->t('Please enter a recovery code'), '', '', '', 'placeholder="000000-000000"'],
'$recovery_label' => DI::l10n()->t('Submit recovery code and complete login'),
]);
}
}

View file

@ -3,7 +3,6 @@
namespace Friendica\Module\Security\TwoFactor;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI;
@ -40,7 +39,7 @@ class Verify extends BaseModule
// Resume normal login workflow
DI::auth()->setForUser($a, $a->user, true, true);
} else {
self::$errors[] = L10n::t('Invalid code, please retry.');
self::$errors[] = DI::l10n()->t('Invalid code, please retry.');
}
}
}
@ -59,13 +58,13 @@ class Verify extends BaseModule
return Renderer::replaceMacros(Renderer::getMarkupTemplate('twofactor/verify.tpl'), [
'$form_security_token' => self::getFormSecurityToken('twofactor_verify'),
'$title' => L10n::t('Two-factor authentication'),
'$message' => L10n::t('<p>Open the two-factor authentication app on your device to get an authentication code and verify your identity.</p>'),
'$errors_label' => L10n::tt('Error', 'Errors', count(self::$errors)),
'$title' => DI::l10n()->t('Two-factor authentication'),
'$message' => DI::l10n()->t('<p>Open the two-factor authentication app on your device to get an authentication code and verify your identity.</p>'),
'$errors_label' => DI::l10n()->tt('Error', 'Errors', count(self::$errors)),
'$errors' => self::$errors,
'$recovery_message' => L10n::t('Dont have your phone? <a href="%s">Enter a two-factor recovery code</a>', '2fa/recovery'),
'$verify_code' => ['verify_code', L10n::t('Please enter a code from your authentication app'), '', '', 'required', 'autofocus placeholder="000000"', 'tel'],
'$verify_label' => L10n::t('Verify code and complete login'),
'$recovery_message' => DI::l10n()->t('Dont have your phone? <a href="%s">Enter a two-factor recovery code</a>', '2fa/recovery'),
'$verify_code' => ['verify_code', DI::l10n()->t('Please enter a code from your authentication app'), '', '', 'required', 'autofocus placeholder="000000"', 'tel'],
'$verify_label' => DI::l10n()->t('Verify code and complete login'),
]);
}
}

View file

@ -2,10 +2,7 @@
namespace Friendica\Module\Settings;
use Friendica\App\Arguments;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA;
@ -23,7 +20,7 @@ class Delegation extends BaseSettingsModule
public static function post(array $parameters = [])
{
if (!local_user() || !empty(DI::app()->user['uid']) && DI::app()->user['uid'] != local_user()) {
throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
BaseModule::checkFormSecurityTokenRedirectOnError('settings/delegation', 'delegate');
@ -34,13 +31,13 @@ class Delegation extends BaseSettingsModule
if ($parent_uid != 0) {
try {
User::getIdFromPasswordAuthentication($parent_uid, $parent_password);
info(L10n::t('Delegation successfully granted.'));
info(DI::l10n()->t('Delegation successfully granted.'));
} catch (\Exception $ex) {
notice(L10n::t('Parent user not found, unavailable or password doesn\'t match.'));
notice(DI::l10n()->t('Parent user not found, unavailable or password doesn\'t match.'));
return;
}
} else {
info(L10n::t('Delegation successfully revoked.'));
info(DI::l10n()->t('Delegation successfully revoked.'));
}
DBA::update('user', ['parent-uid' => $parent_uid], ['uid' => local_user()]);
@ -51,7 +48,7 @@ class Delegation extends BaseSettingsModule
parent::content($parameters);
if (!local_user()) {
throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
$args = DI::args();
@ -62,7 +59,7 @@ class Delegation extends BaseSettingsModule
if ($action === 'add' && $user_id) {
if (Session::get('submanage')) {
notice(L10n::t('Delegated administrators can view but not change delegation permissions.'));
notice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.'));
DI::baseUrl()->redirect('settings/delegation');
}
@ -76,7 +73,7 @@ class Delegation extends BaseSettingsModule
DBA::insert('manage', ['uid' => $user_id, 'mid' => local_user()]);
}
} else {
notice(L10n::t('Delegate user not found.'));
notice(DI::l10n()->t('Delegate user not found.'));
}
DI::baseUrl()->redirect('settings/delegation');
@ -84,7 +81,7 @@ class Delegation extends BaseSettingsModule
if ($action === 'remove' && $user_id) {
if (Session::get('submanage')) {
notice(L10n::t('Delegated administrators can view but not change delegation permissions.'));
notice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.'));
DI::baseUrl()->redirect('settings/delegation');
}
@ -123,7 +120,7 @@ class Delegation extends BaseSettingsModule
$user = User::getById(local_user(), ['parent-uid', 'email']);
if (DBA::isResult($user) && !DBA::exists('user', ['parent-uid' => local_user()])) {
$parent_uid = $user['parent-uid'];
$parents = [0 => L10n::t('No parent user')];
$parents = [0 => DI::l10n()->t('No parent user')];
$fields = ['uid', 'username', 'nickname'];
$condition = ['email' => $user['email'], 'verified' => true, 'blocked' => false, 'parent-uid' => 0];
@ -135,33 +132,33 @@ class Delegation extends BaseSettingsModule
}
$parent_user = ['parent_user', '', $parent_uid, '', $parents];
$parent_password = ['parent_password', L10n::t('Parent Password:'), '', L10n::t('Please enter the password of the parent account to legitimize your request.')];
$parent_password = ['parent_password', DI::l10n()->t('Parent Password:'), '', DI::l10n()->t('Please enter the password of the parent account to legitimize your request.')];
}
$is_child_user = !empty($user['parent-uid']);
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/delegation.tpl'), [
'$form_security_token' => BaseModule::getFormSecurityToken('delegate'),
'$account_header' => L10n::t('Additional Accounts'),
'$account_desc' => L10n::t('Register additional accounts that are automatically connected to your existing account so you can manage it from this account.'),
'$add_account' => L10n::t('Register an additional account'),
'$parent_header' => L10n::t('Parent User'),
'$account_header' => DI::l10n()->t('Additional Accounts'),
'$account_desc' => DI::l10n()->t('Register additional accounts that are automatically connected to your existing account so you can manage it from this account.'),
'$add_account' => DI::l10n()->t('Register an additional account'),
'$parent_header' => DI::l10n()->t('Parent User'),
'$parent_user' => $parent_user,
'$parent_password' => $parent_password,
'$parent_desc' => L10n::t('Parent users have total control about this account, including the account settings. Please double check whom you give this access.'),
'$parent_desc' => DI::l10n()->t('Parent users have total control about this account, including the account settings. Please double check whom you give this access.'),
'$is_child_user' => $is_child_user,
'$submit' => L10n::t('Save Settings'),
'$header' => L10n::t('Manage Accounts'),
'$delegates_header' => L10n::t('Delegates'),
'$submit' => DI::l10n()->t('Save Settings'),
'$header' => DI::l10n()->t('Manage Accounts'),
'$delegates_header' => DI::l10n()->t('Delegates'),
'$base' => DI::baseUrl(),
'$desc' => L10n::t('Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely.'),
'$head_delegates' => L10n::t('Existing Page Delegates'),
'$desc' => DI::l10n()->t('Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely.'),
'$head_delegates' => DI::l10n()->t('Existing Page Delegates'),
'$delegates' => $delegates,
'$head_potentials' => L10n::t('Potential Delegates'),
'$head_potentials' => DI::l10n()->t('Potential Delegates'),
'$potentials' => $potentials,
'$remove' => L10n::t('Remove'),
'$add' => L10n::t('Add'),
'$none' => L10n::t('No entries.')
'$remove' => DI::l10n()->t('Remove'),
'$add' => DI::l10n()->t('Add'),
'$none' => DI::l10n()->t('No entries.')
]);
return $o;

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Settings\TwoFactor;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model\TwoFactor\AppSpecificPassword;
@ -31,7 +30,7 @@ class AppSpecific extends BaseSettingsModule
}
if (!self::checkFormSecurityToken('settings_2fa_password', 't')) {
notice(L10n::t('Please enter your password to access this page.'));
notice(DI::l10n()->t('Please enter your password to access this page.'));
DI::baseUrl()->redirect('settings/2fa');
}
}
@ -49,20 +48,20 @@ class AppSpecific extends BaseSettingsModule
case 'generate':
$description = $_POST['description'] ?? '';
if (empty($description)) {
notice(L10n::t('App-specific password generation failed: The description is empty.'));
notice(DI::l10n()->t('App-specific password generation failed: The description is empty.'));
DI::baseUrl()->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
} elseif (AppSpecificPassword::checkDuplicateForUser(local_user(), $description)) {
notice(L10n::t('App-specific password generation failed: This description already exists.'));
notice(DI::l10n()->t('App-specific password generation failed: This description already exists.'));
DI::baseUrl()->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
} else {
self::$appSpecificPassword = AppSpecificPassword::generateForUser(local_user(), $_POST['description'] ?? '');
notice(L10n::t('New app-specific password generated.'));
notice(DI::l10n()->t('New app-specific password generated.'));
}
break;
case 'revoke_all' :
AppSpecificPassword::deleteAllForUser(local_user());
notice(L10n::t('App-specific passwords successfully revoked.'));
notice(DI::l10n()->t('App-specific passwords successfully revoked.'));
DI::baseUrl()->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
break;
}
@ -72,7 +71,7 @@ class AppSpecific extends BaseSettingsModule
self::checkFormSecurityTokenRedirectOnError('settings/2fa/app_specific', 'settings_2fa_app_specific');
if (AppSpecificPassword::deleteForUser(local_user(), $_POST['revoke_id'])) {
notice(L10n::t('App-specific password successfully revoked.'));
notice(DI::l10n()->t('App-specific password successfully revoked.'));
}
DI::baseUrl()->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
@ -93,22 +92,22 @@ class AppSpecific extends BaseSettingsModule
'$form_security_token' => self::getFormSecurityToken('settings_2fa_app_specific'),
'$password_security_token' => self::getFormSecurityToken('settings_2fa_password'),
'$title' => L10n::t('Two-factor app-specific passwords'),
'$help_label' => L10n::t('Help'),
'$message' => L10n::t('<p>App-specific passwords are randomly generated passwords used instead your regular password to authenticate your account on third-party applications that don\'t support two-factor authentication.</p>'),
'$generated_message' => L10n::t('Make sure to copy your new app-specific password now. You wont be able to see it again!'),
'$title' => DI::l10n()->t('Two-factor app-specific passwords'),
'$help_label' => DI::l10n()->t('Help'),
'$message' => DI::l10n()->t('<p>App-specific passwords are randomly generated passwords used instead your regular password to authenticate your account on third-party applications that don\'t support two-factor authentication.</p>'),
'$generated_message' => DI::l10n()->t('Make sure to copy your new app-specific password now. You wont be able to see it again!'),
'$generated_app_specific_password' => self::$appSpecificPassword,
'$description_label' => L10n::t('Description'),
'$last_used_label' => L10n::t('Last Used'),
'$revoke_label' => L10n::t('Revoke'),
'$revoke_all_label' => L10n::t('Revoke All'),
'$description_label' => DI::l10n()->t('Description'),
'$last_used_label' => DI::l10n()->t('Last Used'),
'$revoke_label' => DI::l10n()->t('Revoke'),
'$revoke_all_label' => DI::l10n()->t('Revoke All'),
'$app_specific_passwords' => $appSpecificPasswords,
'$generate_message' => L10n::t('When you generate a new app-specific password, you must use it right away, it will be shown to you once after you generate it.'),
'$generate_title' => L10n::t('Generate new app-specific password'),
'$description_placeholder_label' => L10n::t('Friendiqa on my Fairphone 2...'),
'$generate_label' => L10n::t('Generate'),
'$generate_message' => DI::l10n()->t('When you generate a new app-specific password, you must use it right away, it will be shown to you once after you generate it.'),
'$generate_title' => DI::l10n()->t('Generate new app-specific password'),
'$description_placeholder_label' => DI::l10n()->t('Friendiqa on my Fairphone 2...'),
'$generate_label' => DI::l10n()->t('Generate'),
]);
}
}

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Settings\TwoFactor;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI;
@ -46,7 +45,7 @@ class Index extends BaseSettingsModule
DI::pConfig()->delete(local_user(), '2fa', 'verified');
Session::remove('2fa');
notice(L10n::t('Two-factor authentication successfully disabled.'));
notice(DI::l10n()->t('Two-factor authentication successfully disabled.'));
DI::baseUrl()->redirect('settings/2fa');
}
break;
@ -67,7 +66,7 @@ class Index extends BaseSettingsModule
break;
}
} catch (\Exception $e) {
notice(L10n::t('Wrong Password'));
notice(DI::l10n()->t('Wrong Password'));
}
}
@ -84,35 +83,35 @@ class Index extends BaseSettingsModule
return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/index.tpl'), [
'$form_security_token' => self::getFormSecurityToken('settings_2fa'),
'$title' => L10n::t('Two-factor authentication'),
'$help_label' => L10n::t('Help'),
'$status_title' => L10n::t('Status'),
'$message' => L10n::t('<p>Use an application on a mobile device to get two-factor authentication codes when prompted on login.</p>'),
'$title' => DI::l10n()->t('Two-factor authentication'),
'$help_label' => DI::l10n()->t('Help'),
'$status_title' => DI::l10n()->t('Status'),
'$message' => DI::l10n()->t('<p>Use an application on a mobile device to get two-factor authentication codes when prompted on login.</p>'),
'$has_secret' => $has_secret,
'$verified' => $verified,
'$auth_app_label' => L10n::t('Authenticator app'),
'$app_status' => $has_secret ? $verified ? L10n::t('Configured') : L10n::t('Not Configured') : L10n::t('Disabled'),
'$not_configured_message' => L10n::t('<p>You haven\'t finished configuring your authenticator app.</p>'),
'$configured_message' => L10n::t('<p>Your authenticator app is correctly configured.</p>'),
'$auth_app_label' => DI::l10n()->t('Authenticator app'),
'$app_status' => $has_secret ? $verified ? DI::l10n()->t('Configured') : DI::l10n()->t('Not Configured') : DI::l10n()->t('Disabled'),
'$not_configured_message' => DI::l10n()->t('<p>You haven\'t finished configuring your authenticator app.</p>'),
'$configured_message' => DI::l10n()->t('<p>Your authenticator app is correctly configured.</p>'),
'$recovery_codes_title' => L10n::t('Recovery codes'),
'$recovery_codes_remaining' => L10n::t('Remaining valid codes'),
'$recovery_codes_title' => DI::l10n()->t('Recovery codes'),
'$recovery_codes_remaining' => DI::l10n()->t('Remaining valid codes'),
'$recovery_codes_count' => RecoveryCode::countValidForUser(local_user()),
'$recovery_codes_message' => L10n::t('<p>These one-use codes can replace an authenticator app code in case you have lost access to it.</p>'),
'$recovery_codes_message' => DI::l10n()->t('<p>These one-use codes can replace an authenticator app code in case you have lost access to it.</p>'),
'$app_specific_passwords_title' => L10n::t('App-specific passwords'),
'$app_specific_passwords_remaining' => L10n::t('Generated app-specific passwords'),
'$app_specific_passwords_title' => DI::l10n()->t('App-specific passwords'),
'$app_specific_passwords_remaining' => DI::l10n()->t('Generated app-specific passwords'),
'$app_specific_passwords_count' => AppSpecificPassword::countForUser(local_user()),
'$app_specific_passwords_message' => L10n::t('<p>These randomly generated passwords allow you to authenticate on apps not supporting two-factor authentication.</p>'),
'$app_specific_passwords_message' => DI::l10n()->t('<p>These randomly generated passwords allow you to authenticate on apps not supporting two-factor authentication.</p>'),
'$action_title' => L10n::t('Actions'),
'$password' => ['password', L10n::t('Current password:'), '', L10n::t('You need to provide your current password to change two-factor authentication settings.'), 'required', 'autofocus'],
'$enable_label' => L10n::t('Enable two-factor authentication'),
'$disable_label' => L10n::t('Disable two-factor authentication'),
'$recovery_codes_label' => L10n::t('Show recovery codes'),
'$app_specific_passwords_label' => L10n::t('Manage app-specific passwords'),
'$configure_label' => L10n::t('Finish app configuration'),
'$action_title' => DI::l10n()->t('Actions'),
'$password' => ['password', DI::l10n()->t('Current password:'), '', DI::l10n()->t('You need to provide your current password to change two-factor authentication settings.'), 'required', 'autofocus'],
'$enable_label' => DI::l10n()->t('Enable two-factor authentication'),
'$disable_label' => DI::l10n()->t('Disable two-factor authentication'),
'$recovery_codes_label' => DI::l10n()->t('Show recovery codes'),
'$app_specific_passwords_label' => DI::l10n()->t('Manage app-specific passwords'),
'$configure_label' => DI::l10n()->t('Finish app configuration'),
]);
}
}

View file

@ -2,7 +2,6 @@
namespace Friendica\Module\Settings\TwoFactor;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
use Friendica\Model\TwoFactor\RecoveryCode;
@ -29,7 +28,7 @@ class Recovery extends BaseSettingsModule
}
if (!self::checkFormSecurityToken('settings_2fa_password', 't')) {
notice(L10n::t('Please enter your password to access this page.'));
notice(DI::l10n()->t('Please enter your password to access this page.'));
DI::baseUrl()->redirect('settings/2fa');
}
}
@ -45,7 +44,7 @@ class Recovery extends BaseSettingsModule
if ($_POST['action'] == 'regenerate') {
RecoveryCode::regenerateForUser(local_user());
notice(L10n::t('New recovery codes successfully generated.'));
notice(DI::l10n()->t('New recovery codes successfully generated.'));
DI::baseUrl()->redirect('settings/2fa/recovery?t=' . self::getFormSecurityToken('settings_2fa_password'));
}
}
@ -71,14 +70,14 @@ class Recovery extends BaseSettingsModule
'$form_security_token' => self::getFormSecurityToken('settings_2fa_recovery'),
'$password_security_token' => self::getFormSecurityToken('settings_2fa_password'),
'$title' => L10n::t('Two-factor recovery codes'),
'$help_label' => L10n::t('Help'),
'$message' => L10n::t('<p>Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.</p><p><strong>Put these in a safe spot!</strong> If you lose your device and dont have the recovery codes you will lose access to your account.</p>'),
'$title' => DI::l10n()->t('Two-factor recovery codes'),
'$help_label' => DI::l10n()->t('Help'),
'$message' => DI::l10n()->t('<p>Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.</p><p><strong>Put these in a safe spot!</strong> If you lose your device and dont have the recovery codes you will lose access to your account.</p>'),
'$recovery_codes' => $recoveryCodes,
'$regenerate_message' => L10n::t('When you generate new recovery codes, you must copy the new codes. Your old codes wont work anymore.'),
'$regenerate_label' => L10n::t('Generate new recovery codes'),
'$regenerate_message' => DI::l10n()->t('When you generate new recovery codes, you must copy the new codes. Your old codes wont work anymore.'),
'$regenerate_label' => DI::l10n()->t('Generate new recovery codes'),
'$verified' => $verified,
'$verify_label' => L10n::t('Next: Verification'),
'$verify_label' => DI::l10n()->t('Next: Verification'),
]);
}
}

View file

@ -6,7 +6,6 @@ use BaconQrCode\Renderer\Image\SvgImageBackEnd;
use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI;
@ -35,7 +34,7 @@ class Verify extends BaseSettingsModule
}
if (!self::checkFormSecurityToken('settings_2fa_password', 't')) {
notice(L10n::t('Please enter your password to access this page.'));
notice(DI::l10n()->t('Please enter your password to access this page.'));
DI::baseUrl()->redirect('settings/2fa');
}
}
@ -57,11 +56,11 @@ class Verify extends BaseSettingsModule
DI::pConfig()->set(local_user(), '2fa', 'verified', true);
Session::set('2fa', true);
notice(L10n::t('Two-factor authentication successfully activated.'));
notice(DI::l10n()->t('Two-factor authentication successfully activated.'));
DI::baseUrl()->redirect('settings/2fa');
} else {
notice(L10n::t('Invalid code, please retry.'));
notice(DI::l10n()->t('Invalid code, please retry.'));
}
}
}
@ -90,7 +89,7 @@ class Verify extends BaseSettingsModule
$shortOtpauthUrl = explode('?', $otpauthUrl)[0];
$manual_message = L10n::t('<p>Or you can submit the authentication settings manually:</p>
$manual_message = DI::l10n()->t('<p>Or you can submit the authentication settings manually:</p>
<dl>
<dt>Issuer</dt>
<dd>%s</dd>
@ -110,18 +109,18 @@ class Verify extends BaseSettingsModule
'$form_security_token' => self::getFormSecurityToken('settings_2fa_verify'),
'$password_security_token' => self::getFormSecurityToken('settings_2fa_password'),
'$title' => L10n::t('Two-factor code verification'),
'$help_label' => L10n::t('Help'),
'$message' => L10n::t('<p>Please scan this QR Code with your authenticator app and submit the provided code.</p>'),
'$title' => DI::l10n()->t('Two-factor code verification'),
'$help_label' => DI::l10n()->t('Help'),
'$message' => DI::l10n()->t('<p>Please scan this QR Code with your authenticator app and submit the provided code.</p>'),
'$qrcode_image' => $qrcode_image,
'$qrcode_url_message' => L10n::t('<p>Or you can open the following URL in your mobile devicde:</p><p><a href="%s">%s</a></p>', $otpauthUrl, $shortOtpauthUrl),
'$qrcode_url_message' => DI::l10n()->t('<p>Or you can open the following URL in your mobile devicde:</p><p><a href="%s">%s</a></p>', $otpauthUrl, $shortOtpauthUrl),
'$manual_message' => $manual_message,
'$company' => $company,
'$holder' => $holder,
'$secret' => $secret,
'$verify_code' => ['verify_code', L10n::t('Please enter a code from your authentication app'), '', '', 'required', 'autofocus placeholder="000000"'],
'$verify_label' => L10n::t('Verify code and enable two-factor authentication'),
'$verify_code' => ['verify_code', DI::l10n()->t('Please enter a code from your authentication app'), '', '', 'required', 'autofocus placeholder="000000"'],
'$verify_label' => DI::l10n()->t('Verify code and enable two-factor authentication'),
]);
}
}

View file

@ -7,7 +7,6 @@ namespace Friendica\Module\Settings;
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\Database\DBStructure;
@ -39,15 +38,15 @@ class UserExport extends BaseSettingsModule
* list of array( 'link url', 'link text', 'help text' )
*/
$options = [
['settings/userexport/account', L10n::t('Export account'), L10n::t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')],
['settings/userexport/backup', L10n::t('Export all'), L10n::t("Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account \x28photos are not exported\x29")],
['settings/userexport/contact', L10n::t('Export Contacts to CSV'), L10n::t("Export the list of the accounts you are following as CSV file. Compatible to e.g. Mastodon.")],
['settings/userexport/account', DI::l10n()->t('Export account'), DI::l10n()->t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')],
['settings/userexport/backup', DI::l10n()->t('Export all'), DI::l10n()->t("Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account \x28photos are not exported\x29")],
['settings/userexport/contact', DI::l10n()->t('Export Contacts to CSV'), DI::l10n()->t("Export the list of the accounts you are following as CSV file. Compatible to e.g. Mastodon.")],
];
Hook::callAll('uexport_options', $options);
$tpl = Renderer::getMarkupTemplate("settings/userexport.tpl");
return Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Export personal data'),
'$title' => DI::l10n()->t('Export personal data'),
'$options' => $options
]);
}
@ -210,7 +209,7 @@ class UserExport extends BaseSettingsModule
* echoes account data and items as separated json, one per line
*
* @param App $a
* @throws Exception
* @throws \Exception
*/
private static function exportAll(App $a)
{

View file

@ -1,12 +1,10 @@
<?php
namespace Friendica\Module\Special;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\DI;
/**
* This special module displays HTTPException when they are thrown in modules.
@ -29,30 +27,30 @@ class HTTPException
$titles = [
200 => 'OK',
400 => L10n::t('Bad Request'),
401 => L10n::t('Unauthorized'),
403 => L10n::t('Forbidden'),
404 => L10n::t('Not Found'),
500 => L10n::t('Internal Server Error'),
503 => L10n::t('Service Unavailable'),
400 => DI::l10n()->t('Bad Request'),
401 => DI::l10n()->t('Unauthorized'),
403 => DI::l10n()->t('Forbidden'),
404 => DI::l10n()->t('Not Found'),
500 => DI::l10n()->t('Internal Server Error'),
503 => DI::l10n()->t('Service Unavailable'),
];
$title = ($titles[$e->getCode()] ?? '') ?: 'Error ' . $e->getCode();
if (empty($message)) {
// Explanations are taken from https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
$explanation = [
400 => L10n::t('The server cannot or will not process the request due to an apparent client error.'),
401 => L10n::t('Authentication is required and has failed or has not yet been provided.'),
403 => L10n::t('The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account.'),
404 => L10n::t('The requested resource could not be found but may be available in the future.'),
500 => L10n::t('An unexpected condition was encountered and no more specific message is suitable.'),
503 => L10n::t('The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later.'),
400 => DI::l10n()->t('The server cannot or will not process the request due to an apparent client error.'),
401 => DI::l10n()->t('Authentication is required and has failed or has not yet been provided.'),
403 => DI::l10n()->t('The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account.'),
404 => DI::l10n()->t('The requested resource could not be found but may be available in the future.'),
500 => DI::l10n()->t('An unexpected condition was encountered and no more specific message is suitable.'),
503 => DI::l10n()->t('The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later.'),
];
$message = $explanation[$e->getCode()] ?? '';
}
return ['$title' => $title, '$message' => $message, '$back' => L10n::t('Go back')];
return ['$title' => $title, '$message' => $message, '$back' => DI::l10n()->t('Go back')];
}
/**

View file

@ -10,7 +10,6 @@ namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Content\Text\BBCode;
use Friendica\DI;
@ -32,12 +31,12 @@ class Tos extends BaseModule
**/
public function __construct()
{
$this->privacy_operate = L10n::t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.');
$this->privacy_distribute = L10n::t('This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.');
$this->privacy_delete = L10n::t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/userexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.', DI::baseUrl());
$this->privacy_operate = DI::l10n()->t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.');
$this->privacy_distribute = DI::l10n()->t('This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.');
$this->privacy_delete = DI::l10n()->t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/userexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.', DI::baseUrl());
// In some cases we don't need every single one of the above separate, but all in one block.
// So here is an array to look over
$this->privacy_complete = [L10n::t('Privacy Statement'), $this->privacy_operate, $this->privacy_distribute, $this->privacy_delete];
$this->privacy_complete = [DI::l10n()->t('Privacy Statement'), $this->privacy_operate, $this->privacy_distribute, $this->privacy_delete];
}
/**
@ -70,13 +69,13 @@ class Tos extends BaseModule
$tpl = Renderer::getMarkupTemplate('tos.tpl');
if (Config::get('system', 'tosdisplay')) {
return Renderer::replaceMacros($tpl, [
'$title' => L10n::t('Terms of Service'),
'$title' => DI::l10n()->t('Terms of Service'),
'$tostext' => BBCode::convert(Config::get('system', 'tostext')),
'$displayprivstatement' => Config::get('system', 'tosprivstatement'),
'$privstatementtitle' => L10n::t('Privacy Statement'),
'$privacy_operate' => L10n::t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.'),
'$privacy_distribute' => L10n::t('This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.'),
'$privacy_delete' => L10n::t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/userexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.', DI::baseUrl())
'$privstatementtitle' => DI::l10n()->t('Privacy Statement'),
'$privacy_operate' => DI::l10n()->t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.'),
'$privacy_distribute' => DI::l10n()->t('This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.'),
'$privacy_delete' => DI::l10n()->t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/userexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.', DI::baseUrl())
]);
} else {
return;

View file

@ -3,7 +3,6 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -23,48 +22,48 @@ class Welcome extends BaseModule
$tpl = Renderer::getMarkupTemplate('welcome.tpl');
return Renderer::replaceMacros($tpl, [
'$welcome' => L10n::t('Welcome to Friendica'),
'$checklist' => L10n::t('New Member Checklist'),
'$description' => L10n::t('We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear.'),
'$welcome' => DI::l10n()->t('Welcome to Friendica'),
'$checklist' => DI::l10n()->t('New Member Checklist'),
'$description' => DI::l10n()->t('We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear.'),
'$started' => L10n::t('Getting Started'),
'$quickstart_link' => L10n::t('Friendica Walk-Through'),
'$quickstart_txt' => L10n::t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join.'),
'$started' => DI::l10n()->t('Getting Started'),
'$quickstart_link' => DI::l10n()->t('Friendica Walk-Through'),
'$quickstart_txt' => DI::l10n()->t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join.'),
'$settings' => L10n::t('Settings'),
'$settings_link' => L10n::t('Go to Your Settings'),
'$settings_txt' => L10n::t('On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.'),
'$settings_other' => L10n::t('Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you.'),
'$settings' => DI::l10n()->t('Settings'),
'$settings_link' => DI::l10n()->t('Go to Your Settings'),
'$settings_txt' => DI::l10n()->t('On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.'),
'$settings_other' => DI::l10n()->t('Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you.'),
'$profile' => L10n::t('Profile'),
'$profile_photo_link' => L10n::t('Upload Profile Photo'),
'$profile_photo_txt' => L10n::t('Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not.'),
'$profiles_link' => L10n::t('Edit Your Profile'),
'$profiles_txt' => L10n::t('Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors.'),
'$profiles_keywords_link' => L10n::t('Profile Keywords'),
'$profiles_keywords_txt' => L10n::t('Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships.'),
'$profile' => DI::l10n()->t('Profile'),
'$profile_photo_link' => DI::l10n()->t('Upload Profile Photo'),
'$profile_photo_txt' => DI::l10n()->t('Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not.'),
'$profiles_link' => DI::l10n()->t('Edit Your Profile'),
'$profiles_txt' => DI::l10n()->t('Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors.'),
'$profiles_keywords_link' => DI::l10n()->t('Profile Keywords'),
'$profiles_keywords_txt' => DI::l10n()->t('Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships.'),
'$connecting' => L10n::t('Connecting'),
'$connecting' => DI::l10n()->t('Connecting'),
'$mail_disabled' => $mail_disabled,
'$import_mail_link' => L10n::t('Importing Emails'),
'$import_mail_txt' => L10n::t('Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX'),
'$contact_link' => L10n::t('Go to Your Contacts Page'),
'$contact_txt' => L10n::t('Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog.'),
'$directory_link' => L10n::t('Go to Your Site\'s Directory'),
'$directory_txt' => L10n::t('The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested.'),
'$finding_link' => L10n::t('Finding New People'),
'$finding_txt' => L10n::t('On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours.'),
'$import_mail_link' => DI::l10n()->t('Importing Emails'),
'$import_mail_txt' => DI::l10n()->t('Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX'),
'$contact_link' => DI::l10n()->t('Go to Your Contacts Page'),
'$contact_txt' => DI::l10n()->t('Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog.'),
'$directory_link' => DI::l10n()->t('Go to Your Site\'s Directory'),
'$directory_txt' => DI::l10n()->t('The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested.'),
'$finding_link' => DI::l10n()->t('Finding New People'),
'$finding_txt' => DI::l10n()->t('On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours.'),
'$groups' => L10n::t('Groups'),
'$group_contact_link' => L10n::t('Group Your Contacts'),
'$group_contact_txt' => L10n::t('Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page.'),
'$groups' => DI::l10n()->t('Groups'),
'$group_contact_link' => DI::l10n()->t('Group Your Contacts'),
'$group_contact_txt' => DI::l10n()->t('Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page.'),
'$newuser_private' => $newuser_private,
'$private_link' => L10n::t('Why Aren\'t My Posts Public?'),
'$private_txt' => L10n::t('Friendica respects your privacy. By default, your posts will only show up to people you\'ve added as friends. For more information, see the help section from the link above.'),
'$private_link' => DI::l10n()->t('Why Aren\'t My Posts Public?'),
'$private_txt' => DI::l10n()->t('Friendica respects your privacy. By default, your posts will only show up to people you\'ve added as friends. For more information, see the help section from the link above.'),
'$help' => L10n::t('Getting Help'),
'$help_link' => L10n::t('Go to the Help Section'),
'$help_txt' => L10n::t('Our <strong>help</strong> pages may be consulted for detail on other program features and resources.'),
'$help' => DI::l10n()->t('Getting Help'),
'$help_link' => DI::l10n()->t('Go to the Help Section'),
'$help_txt' => DI::l10n()->t('Our <strong>help</strong> pages may be consulted for detail on other program features and resources.'),
]);
}
}

View file

@ -9,7 +9,6 @@ use Friendica\Content\Feature;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
@ -130,7 +129,7 @@ class Post
// only if the difference is more than 1 second.
if (strtotime($item['edited']) - strtotime($item['created']) > 1) {
$edited = [
'label' => L10n::t('This entry was edited'),
'label' => DI::l10n()->t('This entry was edited'),
'date' => DateTimeFormat::local($item['edited'], 'r'),
'relative' => Temporal::getRelativeDate($item['edited'])
];
@ -153,7 +152,7 @@ class Post
$lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? L10n::t('Private Message')
? DI::l10n()->t('Private Message')
: false);
$shareable = in_array($conv->getProfileOwner(), [0, local_user()]) && $item['private'] != 1;
@ -163,9 +162,9 @@ class Post
if (local_user()) {
if (Strings::compareLink($a->contact['url'], $item['author-link'])) {
if ($item["event-id"] != 0) {
$edpost = ["events/event/" . $item['event-id'], L10n::t("Edit")];
$edpost = ["events/event/" . $item['event-id'], DI::l10n()->t("Edit")];
} else {
$edpost = ["editpost/" . $item['id'], L10n::t("Edit")];
$edpost = ["editpost/" . $item['id'], DI::l10n()->t("Edit")];
}
}
$dropping = in_array($item['uid'], [0, local_user()]);
@ -192,21 +191,21 @@ class Post
$origin = $parent['origin'];
}
} elseif ($item['pinned']) {
$pinned = L10n::t('pinned item');
$pinned = DI::l10n()->t('pinned item');
}
if ($origin && ($item['id'] != $item['parent']) && ($item['network'] == Protocol::ACTIVITYPUB)) {
// ActivityPub doesn't allow removal of remote comments
$delete = L10n::t('Delete locally');
$delete = DI::l10n()->t('Delete locally');
} else {
// Showing the one or the other text, depending upon if we can only hide it or really delete it.
$delete = $origin ? L10n::t('Delete globally') : L10n::t('Remove locally');
$delete = $origin ? DI::l10n()->t('Delete globally') : DI::l10n()->t('Remove locally');
}
$drop = [
'dropping' => $dropping,
'pagedrop' => $item['pagedrop'],
'select' => L10n::t('Select'),
'select' => DI::l10n()->t('Select'),
'delete' => $delete,
];
@ -214,7 +213,7 @@ class Post
$drop = false;
}
$filer = (($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) ? L10n::t("save to folder") : false);
$filer = (($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) ? DI::l10n()->t("save to folder") : false);
$profile_name = $item['author-name'];
if (!empty($item['author-link']) && empty($item['author-name'])) {
@ -249,7 +248,7 @@ class Post
$response_verbs[] = 'attendmaybe';
if ($conv->isWritable()) {
$isevent = true;
$attend = [L10n::t('I will attend'), L10n::t('I will not attend'), L10n::t('I might attend')];
$attend = [DI::l10n()->t('I will attend'), DI::l10n()->t('I will not attend'), DI::l10n()->t('I might attend')];
}
}
@ -277,12 +276,12 @@ class Post
$thread = Item::selectFirstThreadForUser(local_user(), ['ignored'], ['iid' => $item['id']]);
if (DBA::isResult($thread)) {
$ignore = [
'do' => L10n::t("ignore thread"),
'undo' => L10n::t("unignore thread"),
'toggle' => L10n::t("toggle ignore status"),
'do' => DI::l10n()->t("ignore thread"),
'undo' => DI::l10n()->t("unignore thread"),
'toggle' => DI::l10n()->t("toggle ignore status"),
'classdo' => $thread['ignored'] ? "hidden" : "",
'classundo' => $thread['ignored'] ? "" : "hidden",
'ignored' => L10n::t('ignored'),
'ignored' => DI::l10n()->t('ignored'),
];
}
@ -291,28 +290,28 @@ class Post
$ispinned = ($item['pinned'] ? 'pinned' : 'unpinned');
$pin = [
'do' => L10n::t('pin'),
'undo' => L10n::t('unpin'),
'toggle' => L10n::t('toggle pin status'),
'do' => DI::l10n()->t('pin'),
'undo' => DI::l10n()->t('unpin'),
'toggle' => DI::l10n()->t('toggle pin status'),
'classdo' => $item['pinned'] ? 'hidden' : '',
'classundo' => $item['pinned'] ? '' : 'hidden',
'pinned' => L10n::t('pinned'),
'pinned' => DI::l10n()->t('pinned'),
];
}
$isstarred = (($item['starred']) ? "starred" : "unstarred");
$star = [
'do' => L10n::t("add star"),
'undo' => L10n::t("remove star"),
'toggle' => L10n::t("toggle star status"),
'do' => DI::l10n()->t("add star"),
'undo' => DI::l10n()->t("remove star"),
'toggle' => DI::l10n()->t("toggle star status"),
'classdo' => $item['starred'] ? "hidden" : "",
'classundo' => $item['starred'] ? "" : "hidden",
'starred' => L10n::t('starred'),
'starred' => DI::l10n()->t('starred'),
];
$tagger = [
'add' => L10n::t("add tag"),
'add' => DI::l10n()->t("add tag"),
'class' => "",
];
}
@ -323,11 +322,11 @@ class Post
if ($conv->isWritable()) {
$buttons = [
'like' => [L10n::t("I like this \x28toggle\x29"), L10n::t("like")],
'dislike' => [L10n::t("I don't like this \x28toggle\x29"), L10n::t("dislike")],
'like' => [DI::l10n()->t("I like this \x28toggle\x29"), DI::l10n()->t("like")],
'dislike' => [DI::l10n()->t("I don't like this \x28toggle\x29"), DI::l10n()->t("dislike")],
];
if ($shareable) {
$buttons['share'] = [L10n::t('Share this'), L10n::t('share')];
$buttons['share'] = [DI::l10n()->t('Share this'), DI::l10n()->t('share')];
}
}
@ -376,7 +375,7 @@ class Post
$ago = Temporal::getRelativeDate($item['created']);
$ago_received = Temporal::getRelativeDate($item['received']);
if (Config::get('system', 'show_received') && (abs(strtotime($item['created']) - strtotime($item['received'])) > Config::get('system', 'show_received_seconds')) && ($ago != $ago_received)) {
$ago = L10n::t('%s (Received %s)', $ago, $ago_received);
$ago = DI::l10n()->t('%s (Received %s)', $ago, $ago_received);
}
$tmp_item = [
@ -387,8 +386,8 @@ class Post
'hashtags' => $tags['hashtags'],
'mentions' => $tags['mentions'],
'implicit_mentions' => $tags['implicit_mentions'],
'txt_cats' => L10n::t('Categories:'),
'txt_folders' => L10n::t('Filed under:'),
'txt_cats' => DI::l10n()->t('Categories:'),
'txt_folders' => DI::l10n()->t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories,
@ -399,12 +398,12 @@ class Post
'guid' => urlencode($item['guid']),
'isevent' => $isevent,
'attend' => $attend,
'linktitle' => L10n::t('View %s\'s profile @ %s', $profile_name, $item['author-link']),
'olinktitle' => L10n::t('View %s\'s profile @ %s', $this->getOwnerName(), $item['owner-link']),
'to' => L10n::t('to'),
'via' => L10n::t('via'),
'wall' => L10n::t('Wall-to-Wall'),
'vwall' => L10n::t('via Wall-To-Wall:'),
'linktitle' => DI::l10n()->t('View %s\'s profile @ %s', $profile_name, $item['author-link']),
'olinktitle' => DI::l10n()->t('View %s\'s profile @ %s', $this->getOwnerName(), $item['owner-link']),
'to' => DI::l10n()->t('to'),
'via' => DI::l10n()->t('via'),
'wall' => DI::l10n()->t('Wall-to-Wall'),
'vwall' => DI::l10n()->t('via Wall-To-Wall:'),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $name_e,
@ -413,7 +412,7 @@ class Post
'sparkle' => $sparkle,
'title' => $title_e,
'localtime' => DateTimeFormat::local($item['created'], 'r'),
'ago' => $item['app'] ? L10n::t('%s from %s', $ago, $item['app']) : $ago,
'ago' => $item['app'] ? DI::l10n()->t('%s from %s', $ago, $item['app']) : $ago,
'app' => $item['app'],
'created' => $ago,
'lock' => $lock,
@ -439,11 +438,11 @@ class Post
'like' => $responses['like']['output'],
'dislike' => $responses['dislike']['output'],
'responses' => $responses,
'switchcomment' => L10n::t('Comment'),
'reply_label' => L10n::t('Reply to %s', $name_e),
'switchcomment' => DI::l10n()->t('Comment'),
'reply_label' => DI::l10n()->t('Reply to %s', $name_e),
'comment' => $comment,
'previewing' => $conv->isPreview() ? ' preview ' : '',
'wait' => L10n::t('Please wait'),
'wait' => DI::l10n()->t('Please wait'),
'thread_level' => $thread_level,
'edited' => $edited,
'network' => $item["network"],
@ -456,11 +455,11 @@ class Post
'delivery' => [
'queue_count' => $item['delivery_queue_count'],
'queue_done' => $item['delivery_queue_done'] + $item['delivery_queue_failed'], /// @todo Possibly display it separately in the future
'notifier_pending' => L10n::t('Notifier task is pending'),
'delivery_pending' => L10n::t('Delivery to remote servers is pending'),
'delivery_underway' => L10n::t('Delivery to remote servers is underway'),
'delivery_almost' => L10n::t('Delivery to remote servers is mostly done'),
'delivery_done' => L10n::t('Delivery to remote servers is done'),
'notifier_pending' => DI::l10n()->t('Notifier task is pending'),
'delivery_pending' => DI::l10n()->t('Delivery to remote servers is pending'),
'delivery_underway' => DI::l10n()->t('Delivery to remote servers is underway'),
'delivery_almost' => DI::l10n()->t('Delivery to remote servers is mostly done'),
'delivery_done' => DI::l10n()->t('Delivery to remote servers is done'),
],
];
@ -480,9 +479,9 @@ class Post
// Collapse
if (($nb_children > 2) || ($thread_level > 1)) {
$result['children'][0]['comment_firstcollapsed'] = true;
$result['children'][0]['num_comments'] = L10n::tt('%d comment', '%d comments', $total_children);
$result['children'][0]['show_text'] = L10n::t('Show more');
$result['children'][0]['hide_text'] = L10n::t('Show fewer');
$result['children'][0]['num_comments'] = DI::l10n()->tt('%d comment', '%d comments', $total_children);
$result['children'][0]['show_text'] = DI::l10n()->t('Show more');
$result['children'][0]['hide_text'] = DI::l10n()->t('Show fewer');
if ($thread_level > 1) {
$result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
} else {
@ -493,7 +492,7 @@ class Post
if ($this->isToplevel()) {
$result['total_comments_num'] = "$total_children";
$result['total_comments_text'] = L10n::tt('comment', 'comments', $total_children);
$result['total_comments_text'] = DI::l10n()->tt('comment', 'comments', $total_children);
}
$result['private'] = $item['private'];
@ -899,22 +898,22 @@ class Post
'$default' => $default_text,
'$profile_uid' => $uid,
'$mylink' => DI::baseUrl()->remove($a->contact['url']),
'$mytitle' => L10n::t('This is you'),
'$mytitle' => DI::l10n()->t('This is you'),
'$myphoto' => DI::baseUrl()->remove($a->contact['thumb']),
'$comment' => L10n::t('Comment'),
'$submit' => L10n::t('Submit'),
'$edbold' => L10n::t('Bold'),
'$editalic' => L10n::t('Italic'),
'$eduline' => L10n::t('Underline'),
'$edquote' => L10n::t('Quote'),
'$edcode' => L10n::t('Code'),
'$edimg' => L10n::t('Image'),
'$edurl' => L10n::t('Link'),
'$edattach' => L10n::t('Link or Media'),
'$prompttext' => L10n::t('Please enter a image/video/audio/webpage URL:'),
'$preview' => L10n::t('Preview'),
'$comment' => DI::l10n()->t('Comment'),
'$submit' => DI::l10n()->t('Submit'),
'$edbold' => DI::l10n()->t('Bold'),
'$editalic' => DI::l10n()->t('Italic'),
'$eduline' => DI::l10n()->t('Underline'),
'$edquote' => DI::l10n()->t('Quote'),
'$edcode' => DI::l10n()->t('Code'),
'$edimg' => DI::l10n()->t('Image'),
'$edurl' => DI::l10n()->t('Link'),
'$edattach' => DI::l10n()->t('Link or Media'),
'$prompttext' => DI::l10n()->t('Please enter a image/video/audio/webpage URL:'),
'$preview' => DI::l10n()->t('Preview'),
'$indent' => $indent,
'$sourceapp' => L10n::t($a->sourcename),
'$sourceapp' => DI::l10n()->t($a->sourcename),
'$ww' => $conv->getMode() === 'network' ? $ww : '',
'$rand_num' => Crypto::randomDigits(12)
]);

View file

@ -15,7 +15,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\Markdown;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\System;
@ -3574,7 +3573,7 @@ class Diaspora
if ($item["attach"]) {
$cnt = preg_match_all('/href=\"(.*?)\"(.*?)title=\"(.*?)\"/ism', $item["attach"], $matches, PREG_SET_ORDER);
if ($cnt) {
$body .= "\n".L10n::t("Attachments:")."\n";
$body .= "\n".DI::l10n()->t("Attachments:")."\n";
foreach ($matches as $mtch) {
$body .= "[".$mtch[3]."](".$mtch[1].")\n";
}

View file

@ -10,7 +10,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Database\DBA;
@ -1270,14 +1269,14 @@ class OStatus
$selfUri = '/feed/' . $owner["nick"] . '/';
switch ($filter) {
case 'activity':
$title = L10n::t('%s\'s timeline', $owner['name']);
$title = DI::l10n()->t('%s\'s timeline', $owner['name']);
$selfUri .= $filter;
break;
case 'posts':
$title = L10n::t('%s\'s posts', $owner['name']);
$title = DI::l10n()->t('%s\'s posts', $owner['name']);
break;
case 'comments':
$title = L10n::t('%s\'s comments', $owner['name']);
$title = DI::l10n()->t('%s\'s comments', $owner['name']);
$selfUri .= $filter;
break;
}
@ -1832,12 +1831,12 @@ class OStatus
}
if ($item['verb'] == Activity::FOLLOW) {
$message = L10n::t('%s is now following %s.');
$title = L10n::t('following');
$message = DI::l10n()->t('%s is now following %s.');
$title = DI::l10n()->t('following');
$action = "subscription";
} else {
$message = L10n::t('%s stopped following %s.');
$title = L10n::t('stopped following');
$message = DI::l10n()->t('%s stopped following %s.');
$title = DI::l10n()->t('stopped following');
$action = "unfollow";
}

View file

@ -8,9 +8,9 @@ namespace Friendica\Util;
use DateTime;
use DateTimeZone;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
/**
* Temporal class
@ -27,21 +27,21 @@ class Temporal
private static function timezoneCompareCallback($a, $b)
{
if (strstr($a, '/') && strstr($b, '/')) {
if (L10n::t($a) == L10n::t($b)) {
if (DI::l10n()->t($a) == DI::l10n()->t($b)) {
return 0;
}
return (L10n::t($a) < L10n::t($b)) ? -1 : 1;
return (DI::l10n()->t($a) < DI::l10n()->t($b)) ? -1 : 1;
}
if (strstr($a, '/')) {
return -1;
} elseif (strstr($b, '/')) {
return 1;
} elseif (L10n::t($a) == L10n::t($b)) {
} elseif (DI::l10n()->t($a) == DI::l10n()->t($b)) {
return 0;
}
return (L10n::t($a) < L10n::t($b)) ? -1 : 1;
return (DI::l10n()->t($a) < DI::l10n()->t($b)) ? -1 : 1;
}
/**
@ -66,7 +66,7 @@ class Temporal
$o .= '</optgroup>';
}
$continent = $ex[0];
$o .= '<optgroup label="' . L10n::t($continent) . '">';
$o .= '<optgroup label="' . DI::l10n()->t($continent) . '">';
}
if (count($ex) > 2) {
$city = substr($value, strpos($value, '/') + 1);
@ -75,13 +75,13 @@ class Temporal
}
} else {
$city = $ex[0];
if ($continent != L10n::t('Miscellaneous')) {
if ($continent != DI::l10n()->t('Miscellaneous')) {
$o .= '</optgroup>';
$continent = L10n::t('Miscellaneous');
$o .= '<optgroup label="' . L10n::t($continent) . '">';
$continent = DI::l10n()->t('Miscellaneous');
$o .= '<optgroup label="' . DI::l10n()->t($continent) . '">';
}
}
$city = str_replace('_', ' ', L10n::t($city));
$city = str_replace('_', ' ', DI::l10n()->t($city));
$selected = (($value == $current) ? " selected=\"selected\" " : "");
$o .= "<option value=\"$value\" $selected >$city</option>";
}
@ -142,11 +142,11 @@ class Temporal
[
'$field' => [
'dob',
L10n::t('Birthday:'),
DI::l10n()->t('Birthday:'),
$value,
intval($age) > 0 ? L10n::t('Age: ') . $age : "",
intval($age) > 0 ? DI::l10n()->t('Age: ') . $age : "",
'',
'placeholder="' . L10n::t('YYYY-MM-DD or MM-DD') . '"'
'placeholder="' . DI::l10n()->t('YYYY-MM-DD or MM-DD') . '"'
]
]);
@ -219,7 +219,7 @@ class Temporal
// First day of the week (0 = Sunday)
$firstDay = DI::pConfig()->get(local_user(), 'system', 'first_day_of_week', 0);
$lang = substr(L10n::getCurrentLang(), 0, 2);
$lang = substr(DI::l10n()->getCurrentLang(), 0, 2);
// Check if the detected language is supported by the picker
if (!in_array($lang,
@ -293,14 +293,14 @@ class Temporal
$abs = strtotime($localtime);
if (is_null($posted_date) || $posted_date <= DBA::NULL_DATETIME || $abs === false) {
return L10n::t('never');
return DI::l10n()->t('never');
}
$isfuture = false;
$etime = time() - $abs;
if ($etime < 1 && $etime >= 0) {
return L10n::t('less than a second ago');
return DI::l10n()->t('less than a second ago');
}
if ($etime < 0){
@ -308,13 +308,13 @@ class Temporal
$isfuture = true;
}
$a = [12 * 30 * 24 * 60 * 60 => [L10n::t('year'), L10n::t('years')],
30 * 24 * 60 * 60 => [L10n::t('month'), L10n::t('months')],
7 * 24 * 60 * 60 => [L10n::t('week'), L10n::t('weeks')],
24 * 60 * 60 => [L10n::t('day'), L10n::t('days')],
60 * 60 => [L10n::t('hour'), L10n::t('hours')],
60 => [L10n::t('minute'), L10n::t('minutes')],
1 => [L10n::t('second'), L10n::t('seconds')]
$a = [12 * 30 * 24 * 60 * 60 => [DI::l10n()->t('year'), DI::l10n()->t('years')],
30 * 24 * 60 * 60 => [DI::l10n()->t('month'), DI::l10n()->t('months')],
7 * 24 * 60 * 60 => [DI::l10n()->t('week'), DI::l10n()->t('weeks')],
24 * 60 * 60 => [DI::l10n()->t('day'), DI::l10n()->t('days')],
60 * 60 => [DI::l10n()->t('hour'), DI::l10n()->t('hours')],
60 => [DI::l10n()->t('minute'), DI::l10n()->t('minutes')],
1 => [DI::l10n()->t('second'), DI::l10n()->t('seconds')]
];
foreach ($a as $secs => $str) {
@ -324,10 +324,10 @@ class Temporal
// translators - e.g. 22 hours ago, 1 minute ago
if (!$format) {
if($isfuture){
$format = L10n::t('in %1$d %2$s');
$format = DI::l10n()->t('in %1$d %2$s');
}
else {
$format = L10n::t('%1$d %2$s ago');
$format = DI::l10n()->t('%1$d %2$s ago');
}
}
@ -466,11 +466,11 @@ class Temporal
$tddate = intval(DateTimeFormat::localNow('j'));
}
$str_month = L10n::getDay($mtab[$m]);
$str_month = DI::l10n()->getDay($mtab[$m]);
$o = '<table class="calendar' . $class . '">';
$o .= "<caption>$str_month $y</caption><tr>";
for ($a = 0; $a < 7; $a ++) {
$o .= '<th>' . mb_substr(L10n::getDay($dn[$a]), 0, 3, 'UTF-8') . '</th>';
$o .= '<th>' . mb_substr(DI::l10n()->getDay($dn[$a]), 0, 3, 'UTF-8') . '</th>';
}
$o .= '</tr><tr>';

View file

@ -5,7 +5,6 @@
namespace Friendica\Worker;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Database\DBA;
@ -537,7 +536,7 @@ class Delivery
$reply_to = $mailacct['reply_to'];
}
$subject = ($target_item['title'] ? Email::encodeHeader($target_item['title'], 'UTF-8') : L10n::t("\x28no subject\x29"));
$subject = ($target_item['title'] ? Email::encodeHeader($target_item['title'], 'UTF-8') : DI::l10n()->t("\x28no subject\x29"));
// only expose our real email address to true friends

View file

@ -4,7 +4,7 @@ use Dice\Dice;
use Friendica\App;
use Friendica\Core\Cache;
use Friendica\Core\Config;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\Lock\ILock;
use Friendica\Core\Process;
use Friendica\Core\Session\ISession;

View file

@ -2,6 +2,8 @@
namespace Friendica\Test\Util;
use Friendica\Core\Cache\Duration;
trait DbaCacheMockTrait
{
/**
@ -30,7 +32,7 @@ trait DbaCacheMockTrait
$this->mockIsResult(['v' => $value], isset($return), $times);
}
protected function mockSet($key, $value, $ttl = Cache::FIVE_MINUTES, $time = null, $return = true, $times = null)
protected function mockSet($key, $value, $ttl = Duration::FIVE_MINUTES, $time = null, $return = true, $times = null)
{
if ($time === null) {
$time = time();

View file

@ -2,12 +2,10 @@
namespace Friendica\Test\Util;
use Friendica\App;
use Friendica\Core\Hook;
use Friendica\Model\Storage\IStorage;
use Friendica\Core\L10n\L10n;
use Mockery\MockInterface;
use Friendica\Core\L10n;
/**
* A backend storage example class

View file

@ -3,7 +3,7 @@
// contains a test-hook call for creating a storage instance
use Friendica\App;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Test\Util\SampleStorageBackend;
use Mockery\MockInterface;

View file

@ -7,7 +7,7 @@ use Friendica\App;
use Friendica\Console\AutomaticInstallation;
use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Core\Installer;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Database\Database;
use Friendica\DI;

View file

@ -4,7 +4,7 @@ namespace Friendica\Test\src\Content\Text;
use Friendica\App\BaseURL;
use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Test\MockedTest;
use Friendica\Test\Util\AppMockTrait;
use Friendica\Test\Util\VFSTrait;

View file

@ -17,7 +17,7 @@ class InstallerTest extends MockedTest
use VFSTrait;
/**
* @var \Friendica\Core\L10n\L10n|MockInterface
* @var \Friendica\Core\L10n|MockInterface
*/
private $l10nMock;
@ -27,14 +27,14 @@ class InstallerTest extends MockedTest
$this->setUpVfsDir();
$this->l10nMock = \Mockery::mock(\Friendica\Core\L10n\L10n::class);
$this->l10nMock = \Mockery::mock(\Friendica\Core\L10n::class);
/** @var Dice|MockInterface $dice */
$dice = \Mockery::mock(Dice::class)->makePartial();
$dice = $dice->addRules(include __DIR__ . '/../../../static/dependencies.config.php');
$dice->shouldReceive('create')
->with(\Friendica\Core\L10n\L10n::class)
->with(\Friendica\Core\L10n::class)
->andReturn($this->l10nMock);
DI::init($dice);
@ -46,7 +46,7 @@ class InstallerTest extends MockedTest
}
/**
* Mocking the L10n::t() calls for the function checks
* Mocking the DI::l10n()->t() calls for the function checks
*/
private function mockFunctionL10TCalls()
{

View file

@ -1,8 +1,8 @@
<?php
namespace src\Core\L10n;
namespace Friendica\Test\src\Core\L10n;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Test\MockedTest;
class L10nTest extends MockedTest

View file

@ -6,7 +6,7 @@ use Dice\Dice;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\Config\PreloadConfiguration;
use Friendica\Core\Hook;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Core\Session\ISession;
use Friendica\Core\StorageManager;
use Friendica\Database\Database;

View file

@ -2,7 +2,7 @@
namespace Friendica\Test\src\Model\Storage;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Factory\ConfigFactory;
use Friendica\Model\Storage\Database;
use Friendica\Model\Storage\IStorage;

View file

@ -3,7 +3,7 @@
namespace Friendica\Test\src\Model\Storage;
use Friendica\Core\Config\IConfiguration;
use Friendica\Core\L10n\L10n;
use Friendica\Core\L10n;
use Friendica\Model\Storage\Filesystem;
use Friendica\Model\Storage\IStorage;
use Friendica\Test\Util\VFSTrait;

View file

@ -2,7 +2,6 @@
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Update;
use Friendica\Core\Worker;
@ -215,7 +214,7 @@ function update_1260()
Config::set(
'system',
'maintenance_reason',
L10n::t(
DI::l10n()->t(
'%s: Updating author-id and owner-id in item and thread table. ',
DateTimeFormat::utcNow().' '.date('e')
)
@ -270,7 +269,7 @@ function update_1278()
Config::set(
'system',
'maintenance_reason',
L10n::t(
DI::l10n()->t(
'%s: Updating post-type.',
DateTimeFormat::utcNow().' '.date('e')
)
@ -300,7 +299,7 @@ function update_1298()
$keys = ['gender', 'marital', 'sexual'];
foreach ($keys as $translateKey) {
$allData = DBA::select('profile', ['id', $translateKey]);
$allLangs = L10n::getAvailableLanguages();
$allLangs = DI::l10n()->getAvailableLanguages();
$success = 0;
$fail = 0;
foreach ($allData as $key => $data) {

View file

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 2019.12-dev\n"
"Project-Id-Version: 2020.03-dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-05 23:28+0100\n"
"POT-Creation-Date: 2020-01-18 20:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,297 +18,3101 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: include/api.php:1124
#: addon/piwik/piwik.php:95
msgid ""
"This website is tracked using the <a href='http://www.matomo.org'>Matomo</a> "
"analytics tool."
msgstr ""
#: addon/piwik/piwik.php:98
#, php-format
msgid ""
"If you do not want that your visits are logged in this way you <a "
"href='%s'>can set a cookie to prevent Matomo / Piwik from tracking further "
"visits of the site</a> (opt-out)."
msgstr ""
#: addon/piwik/piwik.php:105 addon/gravatar/gravatar.php:113
#: addon/ifttt/ifttt.php:84 addon/pageheader/pageheader.php:39
#: addon/impressum/impressum.php:107 addon/notimeline/notimeline.php:64
#: addon/diaspora/diaspora.php:167 addon/mathjax/mathjax.php:58
#: addon/blockbot/blockbot.php:35 addon/newmemberwidget/newmemberwidget.php:71
#: addon/showmore/showmore.php:59 addon/blogger/blogger.php:122
#: addon/libertree/libertree.php:112 addon/twitter/twitter.php:341
#: addon/twitter/twitter.php:395 addon/twitter/twitter.php:730
#: addon/jappixmini/jappixmini.php:384 addon/numfriends/numfriends.php:79
#: addon/wppost/wppost.php:145 addon/curweather/curweather.php:203
#: addon/curweather/curweather.php:243 addon/webrtc/webrtc.php:31
#: addon/group_text/group_text.php:85 addon/gnot/gnot.php:85
#: addon/randplace/randplace.php:180
#: addon/windowsphonepush/windowsphonepush.php:135 addon/fromapp/fromapp.php:83
#: addon/cookienotice/cookienotice.php:51 addon/statusnet/statusnet.php:296
#: addon/statusnet/statusnet.php:313 addon/statusnet/statusnet.php:340
#: addon/statusnet/statusnet.php:347 addon/statusnet/statusnet.php:394
#: addon/statusnet/statusnet.php:720 addon/startpage/startpage.php:96
#: addon/superblock/superblock.php:59 addon/nsfw/nsfw.php:93
#: addon/remote_permissions/remote_permissions.php:55
#: addon/remote_permissions/remote_permissions.php:205
#: addon/securemail/securemail.php:63 addon/xmpp/xmpp.php:97
#: addon/xmpp/xmpp.php:113 addon/markdown/markdown.php:33
#: addon/tumblr/tumblr.php:80 addon/tumblr/tumblr.php:296
#: addon/langfilter/langfilter.php:62 addon/public_server/public_server.php:171
#: addon/krynn/krynn.php:172 addon/libravatar/libravatar.php:115
#: addon/discourse/discourse.php:52 addon/blockem/blockem.php:68
#: addon/ljpost/ljpost.php:106 addon/ijpost/ijpost.php:109
#: addon/geonames/geonames.php:149 addon/geocoordinates/geocoordinates.php:95
#: addon/pumpio/pumpio.php:330 addon/mailstream/mailstream.php:86
#: addon/mailstream/mailstream.php:397 addon/dwpost/dwpost.php:110
#: addon/blackout/blackout.php:106 addon/qcomment/qcomment.php:57
#: addon/buffer/buffer.php:80 addon/buffer/buffer.php:230
#: addon/planets/planets.php:169 addon/irc/irc.php:45 addon/irc/irc.php:146
#: src/Module/Admin/Tos.php:50 src/Module/Admin/Addons/Index.php:50
#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Site.php:557
#: src/Module/Admin/Features.php:69 src/Module/Admin/Logs/Settings.php:63
#: src/Module/Settings/Delegation.php:150 mod/settings.php:664
#: mod/settings.php:771 mod/settings.php:869 mod/settings.php:948
#: mod/settings.php:1173
msgid "Save Settings"
msgstr ""
#: addon/piwik/piwik.php:106
msgid "Matomo (Piwik) Base URL"
msgstr ""
#: addon/piwik/piwik.php:106
msgid ""
"Absolute path to your Matomo (Piwik) installation. (without protocol (http/"
"s), with trailing slash)"
msgstr ""
#: addon/piwik/piwik.php:107
msgid "Site ID"
msgstr ""
#: addon/piwik/piwik.php:108
msgid "Show opt-out cookie link?"
msgstr ""
#: addon/piwik/piwik.php:109
msgid "Asynchronous tracking"
msgstr ""
#: addon/piwik/piwik.php:121 addon/impressum/impressum.php:102
#: addon/blockbot/blockbot.php:46 addon/twitter/twitter.php:722
#: addon/webrtc/webrtc.php:38
#: addon/remote_permissions/remote_permissions.php:214 addon/xmpp/xmpp.php:127
#: addon/tumblr/tumblr.php:95 addon/geocoordinates/geocoordinates.php:108
#: addon/openstreetmap/openstreetmap.php:228 addon/buffer/buffer.php:95
#: mod/settings.php:604
msgid "Settings updated."
msgstr ""
#: addon/gravatar/gravatar.php:89 addon/libravatar/libravatar.php:89
msgid "generic profile image"
msgstr ""
#: addon/gravatar/gravatar.php:90 addon/libravatar/libravatar.php:90
msgid "random geometric pattern"
msgstr ""
#: addon/gravatar/gravatar.php:91 addon/libravatar/libravatar.php:91
msgid "monster face"
msgstr ""
#: addon/gravatar/gravatar.php:92 addon/libravatar/libravatar.php:92
msgid "computer generated face"
msgstr ""
#: addon/gravatar/gravatar.php:93 addon/libravatar/libravatar.php:93
msgid "retro arcade style face"
msgstr ""
#: addon/gravatar/gravatar.php:107 addon/libravatar/libravatar.php:109
#: src/Content/Nav.php:232 src/Module/BaseAdminModule.php:73
msgid "Information"
msgstr ""
#: addon/gravatar/gravatar.php:107
msgid ""
"Libravatar addon is installed, too. Please disable Libravatar addon or this "
"Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if "
"nothing was found at Libravatar."
msgstr ""
#: addon/gravatar/gravatar.php:114 addon/libravatar/libravatar.php:116
msgid "Default avatar image"
msgstr ""
#: addon/gravatar/gravatar.php:114
msgid "Select default avatar image if none was found at Gravatar. See README"
msgstr ""
#: addon/gravatar/gravatar.php:115
msgid "Rating of images"
msgstr ""
#: addon/gravatar/gravatar.php:115
msgid "Select the appropriate avatar rating for your site. See README"
msgstr ""
#: addon/gravatar/gravatar.php:129
msgid "Gravatar settings updated."
msgstr ""
#: addon/advancedcontentfilter/src/middlewares.php:30
msgid "Method not found"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:142
#, php-format
msgid "Filtered by rule: %s"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:156
#: addon/advancedcontentfilter/advancedcontentfilter.php:213
msgid "Advanced Content Filter"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:212
msgid "Back to Addon Settings"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:214
msgid "Add a Rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:215
#: view/theme/vier/theme.php:270 src/Content/Nav.php:191 src/Module/Help.php:50
#: src/Module/Settings/TwoFactor/Verify.php:113
#: src/Module/Settings/TwoFactor/AppSpecific.php:96
#: src/Module/Settings/TwoFactor/Index.php:87
#: src/Module/Settings/TwoFactor/Recovery.php:74
msgid "Help"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:216
msgid ""
"Add and manage your personal content filter rules in this screen. Rules have "
"a name and an arbitrary expression that will be matched against post data. "
"For a complete reference of the available operations and variables, check "
"the help page."
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:217
msgid "Your rules"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:218
msgid ""
"You have no rules yet! Start adding one by clicking on the button above next "
"to the title."
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:219
#: addon/statusnet/statusnet.php:380 src/Module/Admin/Site.php:463
#: src/Module/Admin/Site.php:654 src/Module/Admin/Site.php:664
#: src/Module/Settings/TwoFactor/Index.php:94 src/Module/Contact.php:545
msgid "Disabled"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:220
#: addon/mailstream/mailstream.php:379 src/Module/Admin/Site.php:654
msgid "Enabled"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:221
msgid "Disable this rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:222
msgid "Enable this rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:223
msgid "Edit this rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:224
msgid "Edit the rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:225
msgid "Save this rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:226
msgid "Delete this rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:227
msgid "Rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:228
msgid "Close"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:229
msgid "Add new rule"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:230
msgid "Rule Name"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:231
msgid "Rule Expression"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:232
#: addon/js_upload/js_upload.php:36 include/conversation.php:1256
#: include/items.php:386 src/Module/Contact.php:446 mod/dfrn_request.php:653
#: mod/follow.php:173 mod/fbrowser.php:109 mod/fbrowser.php:138
#: mod/unfollow.php:131 mod/photos.php:1041 mod/photos.php:1148
#: mod/settings.php:665 mod/settings.php:691 mod/suggest.php:75
#: mod/editpost.php:111 mod/message.php:151 mod/tagrm.php:20 mod/tagrm.php:115
msgid "Cancel"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:299
#: addon/advancedcontentfilter/advancedcontentfilter.php:310
#: addon/advancedcontentfilter/advancedcontentfilter.php:321
#: addon/advancedcontentfilter/advancedcontentfilter.php:355
#: addon/advancedcontentfilter/advancedcontentfilter.php:384
#: addon/advancedcontentfilter/advancedcontentfilter.php:405
msgid "You must be logged in to use this method"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:325
#: addon/advancedcontentfilter/advancedcontentfilter.php:359
#: addon/advancedcontentfilter/advancedcontentfilter.php:388
msgid "Invalid form security token, please refresh the page."
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:337
msgid "The rule name and expression are required."
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:349
msgid "Rule successfully added"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:363
#: addon/advancedcontentfilter/advancedcontentfilter.php:392
msgid "Rule doesn't exist or doesn't belong to you."
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:378
msgid "Rule successfully updated"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:399
msgid "Rule successfully deleted"
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:409
msgid "Missing argument: guid."
msgstr ""
#: addon/advancedcontentfilter/advancedcontentfilter.php:417
#, php-format
msgid "Unknown post with guid: %s"
msgstr ""
#: addon/ifttt/ifttt.php:56 addon/ifttt/ifttt.php:60
msgid "IFTTT Mirror"
msgstr ""
#: addon/ifttt/ifttt.php:64
msgid ""
"Create an account at <a href=\"http://www.ifttt.com\">IFTTT</a>. Create "
"three Facebook recipes that are connected with <a href=\"https://ifttt.com/"
"maker\">Maker</a> (In the form \"if Facebook then Maker\") with the "
"following parameters:"
msgstr ""
#: addon/ifttt/ifttt.php:71
msgid "Body for \"new status message\""
msgstr ""
#: addon/ifttt/ifttt.php:73
msgid "Body for \"new photo upload\""
msgstr ""
#: addon/ifttt/ifttt.php:75
msgid "Body for \"new link post\""
msgstr ""
#: addon/ifttt/ifttt.php:80 addon/widgets/widgets.php:65
msgid "Generate new key"
msgstr ""
#: addon/pageheader/pageheader.php:37
msgid "\"pageheader\" Settings"
msgstr ""
#: addon/pageheader/pageheader.php:38
#: addon/newmemberwidget/newmemberwidget.php:72 include/conversation.php:1268
#: src/Model/Profile.php:545 src/Module/Contact.php:321 mod/editpost.php:115
msgid "Message"
msgstr ""
#: addon/pageheader/pageheader.php:38
msgid ""
"Message to display on every page on this server (or put a pageheader.html "
"file in your docroot)"
msgstr ""
#: addon/pageheader/pageheader.php:55
msgid "pageheader Settings saved."
msgstr ""
#: addon/impressum/impressum.php:61
msgid "Impressum"
msgstr ""
#: addon/impressum/impressum.php:74 addon/impressum/impressum.php:76
#: addon/impressum/impressum.php:108
msgid "Site Owner"
msgstr ""
#: addon/impressum/impressum.php:74 addon/impressum/impressum.php:112
#: addon/mailstream/mailstream.php:383
msgid "Email Address"
msgstr ""
#: addon/impressum/impressum.php:79 addon/impressum/impressum.php:110
msgid "Postal Address"
msgstr ""
#: addon/impressum/impressum.php:85
msgid ""
"The impressum addon needs to be configured!<br />Please add at least the "
"<tt>owner</tt> variable to your config file. For other variables please "
"refer to the README file of the addon."
msgstr ""
#: addon/impressum/impressum.php:108
msgid "The page operators name."
msgstr ""
#: addon/impressum/impressum.php:109
msgid "Site Owners Profile"
msgstr ""
#: addon/impressum/impressum.php:109
msgid "Profile address of the operator."
msgstr ""
#: addon/impressum/impressum.php:110
msgid "How to contact the operator via snail mail. You can use BBCode here."
msgstr ""
#: addon/impressum/impressum.php:111
msgid "Notes"
msgstr ""
#: addon/impressum/impressum.php:111
msgid ""
"Additional notes that are displayed beneath the contact information. You can "
"use BBCode here."
msgstr ""
#: addon/impressum/impressum.php:112
msgid "How to contact the operator via email. (will be displayed obfuscated)"
msgstr ""
#: addon/impressum/impressum.php:113
msgid "Footer note"
msgstr ""
#: addon/impressum/impressum.php:113
msgid "Text for the footer. You can use BBCode here."
msgstr ""
#: addon/tictac/tictac.php:21
msgid "Three Dimensional Tic-Tac-Toe"
msgstr ""
#: addon/tictac/tictac.php:54
msgid "3D Tic-Tac-Toe"
msgstr ""
#: addon/tictac/tictac.php:59
msgid "New game"
msgstr ""
#: addon/tictac/tictac.php:60
msgid "New game with handicap"
msgstr ""
#: addon/tictac/tictac.php:61
msgid ""
"Three dimensional tic-tac-toe is just like the traditional game except that "
"it is played on multiple levels simultaneously. "
msgstr ""
#: addon/tictac/tictac.php:62
msgid ""
"In this case there are three levels. You win by getting three in a row on "
"any level, as well as up, down, and diagonally across the different levels."
msgstr ""
#: addon/tictac/tictac.php:64
msgid ""
"The handicap game disables the center position on the middle level because "
"the player claiming this square often has an unfair advantage."
msgstr ""
#: addon/tictac/tictac.php:183
msgid "You go first..."
msgstr ""
#: addon/tictac/tictac.php:188
msgid "I'm going first this time..."
msgstr ""
#: addon/tictac/tictac.php:194
msgid "You won!"
msgstr ""
#: addon/tictac/tictac.php:200 addon/tictac/tictac.php:225
msgid "\"Cat\" game!"
msgstr ""
#: addon/tictac/tictac.php:223
msgid "I won!"
msgstr ""
#: addon/notimeline/notimeline.php:33
msgid "No Timeline settings updated."
msgstr ""
#: addon/notimeline/notimeline.php:56
msgid "No Timeline Settings"
msgstr ""
#: addon/notimeline/notimeline.php:58
msgid "Disable Archive selector on profile wall"
msgstr ""
#: addon/diaspora/diaspora.php:52
msgid "Post to Diaspora"
msgstr ""
#: addon/diaspora/diaspora.php:88
#, php-format
msgid ""
"Please remember: You can always be reached from Diaspora with your Friendica "
"handle %s. "
msgstr ""
#: addon/diaspora/diaspora.php:89
msgid ""
"This connector is only meant if you still want to use your old Diaspora "
"account for some time. "
msgstr ""
#: addon/diaspora/diaspora.php:90
#, php-format
msgid ""
"However, it is preferred that you tell your Diaspora contacts the new handle "
"%s instead."
msgstr ""
#: addon/diaspora/diaspora.php:101
msgid ""
"Can't login to your Diaspora account. Please check handle (in the format "
"user@domain.tld) and password."
msgstr ""
#: addon/diaspora/diaspora.php:108 addon/diaspora/diaspora.php:112
msgid "Diaspora Export"
msgstr ""
#: addon/diaspora/diaspora.php:122
msgid "Enable Diaspora Post Addon"
msgstr ""
#: addon/diaspora/diaspora.php:127
msgid "Diaspora handle"
msgstr ""
#: addon/diaspora/diaspora.php:132
msgid "Diaspora password"
msgstr ""
#: addon/diaspora/diaspora.php:139
msgid "All aspects"
msgstr ""
#: addon/diaspora/diaspora.php:144 src/Core/ACL.php:384
msgid "Public"
msgstr ""
#: addon/diaspora/diaspora.php:147
msgid "Post to aspect:"
msgstr ""
#: addon/diaspora/diaspora.php:161
msgid "Post to Diaspora by default"
msgstr ""
#: addon/mathjax/mathjax.php:56
msgid ""
"The MathJax addon renders mathematical formulae written using the LaTeX "
"syntax surrounded by the usual $$ or an eqnarray block in the postings of "
"your wall,network tab and private mail."
msgstr ""
#: addon/mathjax/mathjax.php:57
msgid "Use the MathJax renderer"
msgstr ""
#: addon/blockbot/blockbot.php:36
msgid "Allow \"good\" crawlers"
msgstr ""
#: addon/blockbot/blockbot.php:37
msgid "Block GabSocial"
msgstr ""
#: addon/blockbot/blockbot.php:38
msgid "Training mode"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:35
msgid "New Member"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:36 src/Model/Profile.php:981
#: src/Model/Profile.php:984
msgid "Tips for New Members"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:39
msgid "Global Support Forum"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:43
msgid "Local Support Forum"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:72
msgid "Your message for new members. You can use bbcode here."
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:73
msgid "Add a link to global support forum"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:73
msgid "Should a link to the global support forum be displayed?"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:74
msgid "Add a link to the local support forum"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:74
msgid ""
"If you have a local support forum and want to have a link displayed in the "
"widget, check this box."
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:75
msgid "Name of the local support group"
msgstr ""
#: addon/newmemberwidget/newmemberwidget.php:75
msgid ""
"If you checked the above, specify the <em>nickname</em> of the local support "
"group here (i.e. helpers)"
msgstr ""
#: addon/testdrive/testdrive.php:78 addon/public_server/public_server.php:76
msgid "Administrator"
msgstr ""
#: addon/testdrive/testdrive.php:103 addon/public_server/public_server.php:130
#, php-format
msgid "Your account on %s will expire in a few days."
msgstr ""
#: addon/testdrive/testdrive.php:104
msgid "Your Friendica test account is about to expire."
msgstr ""
#: addon/testdrive/testdrive.php:105
#, php-format
msgid ""
"Hi %1$s,\n"
"\n"
"Your test account on %2$s will expire in less than five days. We hope you "
"enjoyed this test drive and use this opportunity to find a permanent "
"Friendica website for your integrated social communications. A list of "
"public sites is available at %s/siteinfo - and for more information on "
"setting up your own Friendica server please see the Friendica project "
"website at https://friendi.ca."
msgstr ""
#: addon/showmore/showmore.php:43 addon/showmore/showmore.php:47
msgid "\"Show more\" Settings"
msgstr ""
#: addon/showmore/showmore.php:52
msgid "Enable Show More"
msgstr ""
#: addon/showmore/showmore.php:55
msgid "Cutting posts after how much characters"
msgstr ""
#: addon/showmore/showmore.php:77
msgid "Show More Settings saved."
msgstr ""
#: addon/showmore/showmore.php:137 view/theme/vier/theme.php:231
#: src/Content/Widget.php:405 src/Content/Widget.php:505
#: src/Content/ForumManager.php:134
msgid "show more"
msgstr ""
#: addon/blogger/blogger.php:55
msgid "Post to blogger"
msgstr ""
#: addon/blogger/blogger.php:89 addon/blogger/blogger.php:93
msgid "Blogger Export"
msgstr ""
#: addon/blogger/blogger.php:97
msgid "Enable Blogger Post Addon"
msgstr ""
#: addon/blogger/blogger.php:102
msgid "Blogger username"
msgstr ""
#: addon/blogger/blogger.php:107
msgid "Blogger password"
msgstr ""
#: addon/blogger/blogger.php:112
msgid "Blogger API URL"
msgstr ""
#: addon/blogger/blogger.php:117
msgid "Post to Blogger by default"
msgstr ""
#: addon/blogger/blogger.php:206 addon/wppost/wppost.php:305
msgid "Post from Friendica"
msgstr ""
#: addon/libertree/libertree.php:49
msgid "Post to libertree"
msgstr ""
#: addon/libertree/libertree.php:83 addon/libertree/libertree.php:87
msgid "libertree Export"
msgstr ""
#: addon/libertree/libertree.php:91
msgid "Enable Libertree Post Addon"
msgstr ""
#: addon/libertree/libertree.php:96
msgid "Libertree API token"
msgstr ""
#: addon/libertree/libertree.php:101
msgid "Libertree site URL"
msgstr ""
#: addon/libertree/libertree.php:106
msgid "Post to Libertree by default"
msgstr ""
#: addon/twitter/twitter.php:206
msgid "Post to Twitter"
msgstr ""
#: addon/twitter/twitter.php:251
msgid ""
"You submitted an empty PIN, please Sign In with Twitter again to get a new "
"one."
msgstr ""
#: addon/twitter/twitter.php:280
msgid "Twitter settings updated."
msgstr ""
#: addon/twitter/twitter.php:310 addon/twitter/twitter.php:314
msgid "Twitter Import/Export/Mirror"
msgstr ""
#: addon/twitter/twitter.php:321
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr ""
#: addon/twitter/twitter.php:333
msgid ""
"At this Friendica instance the Twitter addon was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
"button below to get a PIN from Twitter which you have to copy into the input "
"box below and submit the form. Only your <strong>public</strong> posts will "
"be posted to Twitter."
msgstr ""
#: addon/twitter/twitter.php:334
msgid "Log in with Twitter"
msgstr ""
#: addon/twitter/twitter.php:336
msgid "Copy the PIN from Twitter here"
msgstr ""
#: addon/twitter/twitter.php:343 addon/twitter/twitter.php:397
msgid "An error occured: "
msgstr ""
#: addon/twitter/twitter.php:360 addon/statusnet/statusnet.php:356
msgid "Currently connected to: "
msgstr ""
#: addon/twitter/twitter.php:361
msgid "Disconnect"
msgstr ""
#: addon/twitter/twitter.php:377
msgid "Allow posting to Twitter"
msgstr ""
#: addon/twitter/twitter.php:377
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated Twitter account. You can choose to do so by default (here) or for "
"every posting separately in the posting options when writing the entry."
msgstr ""
#: addon/twitter/twitter.php:380
msgid ""
"<strong>Note</strong>: Due to your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
"postings relayed to Twitter will lead the visitor to a blank page informing "
"the visitor that the access to your profile has been restricted."
msgstr ""
#: addon/twitter/twitter.php:383
msgid "Send public postings to Twitter by default"
msgstr ""
#: addon/twitter/twitter.php:386
msgid "Mirror all posts from twitter that are no replies"
msgstr ""
#: addon/twitter/twitter.php:389 addon/statusnet/statusnet.php:376
#: addon/pumpio/pumpio.php:295
msgid "Import the remote timeline"
msgstr ""
#: addon/twitter/twitter.php:392
msgid "Automatically create contacts"
msgstr ""
#: addon/twitter/twitter.php:392
msgid ""
"This will automatically create a contact in Friendica as soon as you receive "
"a message from an existing contact via the Twitter network. If you do not "
"enable this, you need to manually add those Twitter contacts in Friendica "
"from whom you would like to see posts here. However if enabled, you cannot "
"merely remove a twitter contact from the Friendica contact list, as it will "
"recreate this contact when they post again."
msgstr ""
#: addon/twitter/twitter.php:732
msgid "Consumer key"
msgstr ""
#: addon/twitter/twitter.php:733
msgid "Consumer secret"
msgstr ""
#: addon/viewsrc/viewsrc.php:55
msgid "View Source"
msgstr ""
#: addon/jappixmini/jappixmini.php:334 addon/jappixmini/jappixmini.php:338
msgid "Jappix Mini"
msgstr ""
#: addon/jappixmini/jappixmini.php:341
msgid "Activate addon"
msgstr ""
#: addon/jappixmini/jappixmini.php:344
msgid "Do <em>not</em> insert the Jappixmini Chat-Widget into the webinterface"
msgstr ""
#: addon/jappixmini/jappixmini.php:347
msgid "Jabber username"
msgstr ""
#: addon/jappixmini/jappixmini.php:350
msgid "Jabber server"
msgstr ""
#: addon/jappixmini/jappixmini.php:355 addon/xmpp/xmpp.php:88
#: addon/xmpp/xmpp.php:114
msgid "Jabber BOSH host"
msgstr ""
#: addon/jappixmini/jappixmini.php:360
msgid "Jabber password"
msgstr ""
#: addon/jappixmini/jappixmini.php:365
msgid "Encrypt Jabber password with Friendica password (recommended)"
msgstr ""
#: addon/jappixmini/jappixmini.php:368
msgid "Friendica password"
msgstr ""
#: addon/jappixmini/jappixmini.php:371
msgid "Approve subscription requests from Friendica contacts automatically"
msgstr ""
#: addon/jappixmini/jappixmini.php:374
msgid "Subscribe to Friendica contacts automatically"
msgstr ""
#: addon/jappixmini/jappixmini.php:377
msgid "Purge internal list of jabber addresses of contacts"
msgstr ""
#: addon/jappixmini/jappixmini.php:385
msgid "Add contact"
msgstr ""
#: addon/numfriends/numfriends.php:44
msgid "Numfriends settings updated."
msgstr ""
#: addon/numfriends/numfriends.php:71
msgid "Numfriends Settings"
msgstr ""
#: addon/numfriends/numfriends.php:73
msgid "How many contacts to display on profile sidebar"
msgstr ""
#: addon/wppost/wppost.php:57
msgid "Post to Wordpress"
msgstr ""
#: addon/wppost/wppost.php:98 addon/wppost/wppost.php:102
msgid "Wordpress Export"
msgstr ""
#: addon/wppost/wppost.php:105
msgid "Enable WordPress Post Addon"
msgstr ""
#: addon/wppost/wppost.php:110
msgid "WordPress username"
msgstr ""
#: addon/wppost/wppost.php:115
msgid "WordPress password"
msgstr ""
#: addon/wppost/wppost.php:120
msgid "WordPress API URL"
msgstr ""
#: addon/wppost/wppost.php:125
msgid "Post to WordPress by default"
msgstr ""
#: addon/wppost/wppost.php:130
msgid "Provide a backlink to the Friendica post"
msgstr ""
#: addon/wppost/wppost.php:134
msgid ""
"Text for the backlink, e.g. Read the original post and comment stream on "
"Friendica."
msgstr ""
#: addon/wppost/wppost.php:139
msgid "Don't post messages that are too short"
msgstr ""
#: addon/wppost/wppost.php:247
msgid "Read the orig­i­nal post and com­ment stream on Friendica"
msgstr ""
#: addon/curweather/curweather.php:57
msgid "Error fetching weather data. Error was: "
msgstr ""
#: addon/curweather/curweather.php:140 addon/curweather/curweather.php:204
msgid "Current Weather"
msgstr ""
#: addon/curweather/curweather.php:147
msgid "Relative Humidity"
msgstr ""
#: addon/curweather/curweather.php:148
msgid "Pressure"
msgstr ""
#: addon/curweather/curweather.php:149
msgid "Wind"
msgstr ""
#: addon/curweather/curweather.php:150
msgid "Last Updated"
msgstr ""
#: addon/curweather/curweather.php:151
msgid "Data by"
msgstr ""
#: addon/curweather/curweather.php:152
msgid "Show on map"
msgstr ""
#: addon/curweather/curweather.php:157
msgid "There was a problem accessing the weather data. But have a look"
msgstr ""
#: addon/curweather/curweather.php:159
msgid "at OpenWeatherMap"
msgstr ""
#: addon/curweather/curweather.php:176
msgid "Current Weather settings updated."
msgstr ""
#: addon/curweather/curweather.php:191
msgid "No APPID found, please contact your admin to obtain one."
msgstr ""
#: addon/curweather/curweather.php:204 view/theme/frio/theme.php:277
#: src/Content/Nav.php:261 src/Module/Admin/Addons/Details.php:102
#: src/Module/Admin/Themes/Details.php:107 src/Module/Welcome.php:33
#: src/Module/BaseSettingsModule.php:105 mod/settings.php:144
msgid "Settings"
msgstr ""
#: addon/curweather/curweather.php:206
msgid "Enter either the name of your location or the zip code."
msgstr ""
#: addon/curweather/curweather.php:207
msgid "Your Location"
msgstr ""
#: addon/curweather/curweather.php:207
msgid ""
"Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or "
"<em>14476,DE</em>."
msgstr ""
#: addon/curweather/curweather.php:208
msgid "Units"
msgstr ""
#: addon/curweather/curweather.php:208
msgid "select if the temperature should be displayed in &deg;C or &deg;F"
msgstr ""
#: addon/curweather/curweather.php:209
msgid "Show weather data"
msgstr ""
#: addon/curweather/curweather.php:227
msgid "Curweather settings saved."
msgstr ""
#: addon/curweather/curweather.php:246
msgid "Caching Interval"
msgstr ""
#: addon/curweather/curweather.php:248
msgid ""
"For how long should the weather data be cached? Choose according your "
"OpenWeatherMap account type."
msgstr ""
#: addon/curweather/curweather.php:249
msgid "no cache"
msgstr ""
#: addon/curweather/curweather.php:250 addon/curweather/curweather.php:251
#: addon/curweather/curweather.php:252 addon/curweather/curweather.php:253
#: src/Util/Temporal.php:316
msgid "minutes"
msgstr ""
#: addon/curweather/curweather.php:256
msgid "Your APPID"
msgstr ""
#: addon/curweather/curweather.php:256
msgid "Your API key provided by OpenWeatherMap"
msgstr ""
#: addon/js_upload/js_upload.php:34
msgid "Select files for upload"
msgstr ""
#: addon/js_upload/js_upload.php:35
msgid "Drop files here to upload"
msgstr ""
#: addon/js_upload/js_upload.php:37
msgid "Failed"
msgstr ""
#: addon/js_upload/js_upload.php:215
msgid "No files were uploaded."
msgstr ""
#: addon/js_upload/js_upload.php:221
msgid "Uploaded file is empty"
msgstr ""
#: addon/js_upload/js_upload.php:233
msgid "Image exceeds size limit of "
msgstr ""
#: addon/js_upload/js_upload.php:247
msgid "File has an invalid extension, it should be one of "
msgstr ""
#: addon/js_upload/js_upload.php:258
msgid "Upload was cancelled, or server error encountered"
msgstr ""
#: addon/webrtc/webrtc.php:25
msgid "WebRTC Videochat"
msgstr ""
#: addon/webrtc/webrtc.php:32
msgid "WebRTC Base URL"
msgstr ""
#: addon/webrtc/webrtc.php:32
msgid ""
"Page your users will create a WebRTC chat room on. For example you could use "
"https://live.mayfirst.org ."
msgstr ""
#: addon/webrtc/webrtc.php:52
msgid "Video Chat"
msgstr ""
#: addon/webrtc/webrtc.php:53
msgid ""
"WebRTC is a video and audio conferencing tool that works with Firefox "
"(version 21 and above) and Chrome/Chromium (version 25 and above). Just "
"create a new chat room and send the link to someone you want to chat with."
msgstr ""
#: addon/webrtc/webrtc.php:55
msgid ""
"Please contact your friendica admin and send a reminder to configure the "
"WebRTC addon."
msgstr ""
#: addon/notifyall/notifyall.php:33
msgid "Send email to all members"
msgstr ""
#: addon/notifyall/notifyall.php:52 include/enotify.php:67
#, php-format
msgid "%s Administrator"
msgstr ""
#: addon/notifyall/notifyall.php:54 include/enotify.php:65
#, php-format
msgid "%1$s, %2$s Administrator"
msgstr ""
#: addon/notifyall/notifyall.php:81
msgid "No recipients found."
msgstr ""
#: addon/notifyall/notifyall.php:97
msgid "Emails sent"
msgstr ""
#: addon/notifyall/notifyall.php:107
msgid "Send email to all members of this Friendica instance."
msgstr ""
#: addon/notifyall/notifyall.php:112
msgid "Message subject"
msgstr ""
#: addon/notifyall/notifyall.php:113
msgid "Test mode (only send to administrator)"
msgstr ""
#: addon/notifyall/notifyall.php:114 addon/openstreetmap/openstreetmap.php:208
#: view/theme/vier/config.php:120 view/theme/duepuntozero/config.php:70
#: view/theme/frio/config.php:125 view/theme/quattro/config.php:72
#: src/Object/Post.php:904 src/Module/Delegation.php:131
#: src/Module/Install.php:211 src/Module/Install.php:251
#: src/Module/Install.php:287 src/Module/Debug/Localtime.php:45
#: src/Module/Contact.php:580 src/Module/Invite.php:156
#: src/Module/Item/Compose.php:125 mod/fsuggest.php:91 mod/events.php:551
#: mod/crepair.php:149 mod/poke.php:185 mod/photos.php:952 mod/photos.php:1058
#: mod/photos.php:1344 mod/photos.php:1389 mod/photos.php:1428
#: mod/photos.php:1492 mod/profiles.php:560 mod/message.php:259
#: mod/message.php:439
msgid "Submit"
msgstr ""
#: addon/group_text/group_text.php:47
msgid "Group Text settings updated."
msgstr ""
#: addon/group_text/group_text.php:77
msgid "Group Text"
msgstr ""
#: addon/group_text/group_text.php:79
msgid "Use a text only (non-image) group selector in the \"group edit\" menu"
msgstr ""
#: addon/morepokes/morepokes.php:24
msgid "bitchslap"
msgstr ""
#: addon/morepokes/morepokes.php:24
msgid "bitchslapped"
msgstr ""
#: addon/morepokes/morepokes.php:25
msgid "shag"
msgstr ""
#: addon/morepokes/morepokes.php:25
msgid "shagged"
msgstr ""
#: addon/morepokes/morepokes.php:26
msgid "do something obscenely biological to"
msgstr ""
#: addon/morepokes/morepokes.php:26
msgid "did something obscenely biological to"
msgstr ""
#: addon/morepokes/morepokes.php:27
msgid "point out the poke feature to"
msgstr ""
#: addon/morepokes/morepokes.php:27
msgid "pointed out the poke feature to"
msgstr ""
#: addon/morepokes/morepokes.php:28
msgid "declare undying love for"
msgstr ""
#: addon/morepokes/morepokes.php:28
msgid "declared undying love for"
msgstr ""
#: addon/morepokes/morepokes.php:29
msgid "patent"
msgstr ""
#: addon/morepokes/morepokes.php:29
msgid "patented"
msgstr ""
#: addon/morepokes/morepokes.php:30
msgid "stroke beard"
msgstr ""
#: addon/morepokes/morepokes.php:30
msgid "stroked their beard at"
msgstr ""
#: addon/morepokes/morepokes.php:31
msgid ""
"bemoan the declining standards of modern secondary and tertiary education to"
msgstr ""
#: addon/morepokes/morepokes.php:31
msgid ""
"bemoans the declining standards of modern secondary and tertiary education to"
msgstr ""
#: addon/morepokes/morepokes.php:32
msgid "hug"
msgstr ""
#: addon/morepokes/morepokes.php:32
msgid "hugged"
msgstr ""
#: addon/morepokes/morepokes.php:33
msgid "kiss"
msgstr ""
#: addon/morepokes/morepokes.php:33
msgid "kissed"
msgstr ""
#: addon/morepokes/morepokes.php:34
msgid "raise eyebrows at"
msgstr ""
#: addon/morepokes/morepokes.php:34
msgid "raised their eyebrows at"
msgstr ""
#: addon/morepokes/morepokes.php:35
msgid "insult"
msgstr ""
#: addon/morepokes/morepokes.php:35
msgid "insulted"
msgstr ""
#: addon/morepokes/morepokes.php:36
msgid "praise"
msgstr ""
#: addon/morepokes/morepokes.php:36
msgid "praised"
msgstr ""
#: addon/morepokes/morepokes.php:37
msgid "be dubious of"
msgstr ""
#: addon/morepokes/morepokes.php:37
msgid "was dubious of"
msgstr ""
#: addon/morepokes/morepokes.php:38
msgid "eat"
msgstr ""
#: addon/morepokes/morepokes.php:38
msgid "ate"
msgstr ""
#: addon/morepokes/morepokes.php:39
msgid "giggle and fawn at"
msgstr ""
#: addon/morepokes/morepokes.php:39
msgid "giggled and fawned at"
msgstr ""
#: addon/morepokes/morepokes.php:40
msgid "doubt"
msgstr ""
#: addon/morepokes/morepokes.php:40
msgid "doubted"
msgstr ""
#: addon/morepokes/morepokes.php:41
msgid "glare"
msgstr ""
#: addon/morepokes/morepokes.php:41
msgid "glared at"
msgstr ""
#: addon/gnot/gnot.php:52
msgid "Gnot settings updated."
msgstr ""
#: addon/gnot/gnot.php:84
msgid "Gnot Settings"
msgstr ""
#: addon/gnot/gnot.php:86
msgid "Enable this addon?"
msgstr ""
#: addon/gnot/gnot.php:88
msgid ""
"Allows threading of email comment notifications on Gmail and anonymising the "
"subject line."
msgstr ""
#: addon/gnot/gnot.php:97
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%d"
msgstr ""
#: addon/randplace/randplace.php:172
msgid "Randplace Settings"
msgstr ""
#: addon/randplace/randplace.php:174
msgid "Enable Randplace Addon"
msgstr ""
#: addon/morechoice/morechoice.php:34
msgid "Androgyne"
msgstr ""
#: addon/morechoice/morechoice.php:35
msgid "Bear"
msgstr ""
#: addon/morechoice/morechoice.php:36
msgid "Bigender"
msgstr ""
#: addon/morechoice/morechoice.php:37
msgid "Cross dresser"
msgstr ""
#: addon/morechoice/morechoice.php:38
msgid "Drag queen"
msgstr ""
#: addon/morechoice/morechoice.php:39
msgid "Eunuch"
msgstr ""
#: addon/morechoice/morechoice.php:40
msgid "Faux queen"
msgstr ""
#: addon/morechoice/morechoice.php:41
msgid "Gender fluid"
msgstr ""
#: addon/morechoice/morechoice.php:42
msgid "Kathoey"
msgstr ""
#: addon/morechoice/morechoice.php:43
msgid "Lady"
msgstr ""
#: addon/morechoice/morechoice.php:44
msgid "Lipstick lesbian"
msgstr ""
#: addon/morechoice/morechoice.php:45
msgid "Metrosexual"
msgstr ""
#: addon/morechoice/morechoice.php:46
msgid "Monk"
msgstr ""
#: addon/morechoice/morechoice.php:47
msgid "Nun"
msgstr ""
#: addon/morechoice/morechoice.php:48
msgid "Soft butch"
msgstr ""
#: addon/morechoice/morechoice.php:49
msgid "Stone femme"
msgstr ""
#: addon/morechoice/morechoice.php:50
msgid "Tomboy"
msgstr ""
#: addon/morechoice/morechoice.php:51
msgid "Transman"
msgstr ""
#: addon/morechoice/morechoice.php:52
msgid "Transwoman"
msgstr ""
#: addon/morechoice/morechoice.php:53
msgid "Transvesti"
msgstr ""
#: addon/morechoice/morechoice.php:54
msgid "Trigender"
msgstr ""
#: addon/morechoice/morechoice.php:55
msgid "Can't remember"
msgstr ""
#: addon/morechoice/morechoice.php:56
msgid "Hard to tell these days"
msgstr ""
#: addon/morechoice/morechoice.php:60
msgid "Girls with big tits"
msgstr ""
#: addon/morechoice/morechoice.php:61
msgid "Millionaires"
msgstr ""
#: addon/morechoice/morechoice.php:62
msgid "Guys with big schlongs"
msgstr ""
#: addon/morechoice/morechoice.php:63
msgid "Easy women"
msgstr ""
#: addon/morechoice/morechoice.php:64
msgid "People with impaired mobility"
msgstr ""
#: addon/morechoice/morechoice.php:65
msgid "Amputees"
msgstr ""
#: addon/morechoice/morechoice.php:66
msgid "Statues, mannequins and immobility"
msgstr ""
#: addon/morechoice/morechoice.php:67
msgid "Pain"
msgstr ""
#: addon/morechoice/morechoice.php:68
msgid "Trans men"
msgstr ""
#: addon/morechoice/morechoice.php:69
msgid "Older women"
msgstr ""
#: addon/morechoice/morechoice.php:70
msgid "Asphyxiation"
msgstr ""
#: addon/morechoice/morechoice.php:71
msgid "In public"
msgstr ""
#: addon/morechoice/morechoice.php:72
msgid "In danger"
msgstr ""
#: addon/morechoice/morechoice.php:73
msgid "Pretending to be male"
msgstr ""
#: addon/morechoice/morechoice.php:74
msgid "Pretending to be female"
msgstr ""
#: addon/morechoice/morechoice.php:75
msgid "Breats"
msgstr ""
#: addon/morechoice/morechoice.php:76
msgid "Scat"
msgstr ""
#: addon/morechoice/morechoice.php:77
msgid "Crying"
msgstr ""
#: addon/morechoice/morechoice.php:78
msgid "Nappies/Diapers"
msgstr ""
#: addon/morechoice/morechoice.php:79
msgid "Trees"
msgstr ""
#: addon/morechoice/morechoice.php:80
msgid "Vomit"
msgstr ""
#: addon/morechoice/morechoice.php:81
msgid "Murder"
msgstr ""
#: addon/morechoice/morechoice.php:82
msgid "Fat people"
msgstr ""
#: addon/morechoice/morechoice.php:83
msgid "Feet"
msgstr ""
#: addon/morechoice/morechoice.php:84
msgid "Covered in insects"
msgstr ""
#: addon/morechoice/morechoice.php:85
msgid "Turning a human being into furniture"
msgstr ""
#: addon/morechoice/morechoice.php:86
msgid "Elderly people"
msgstr ""
#: addon/morechoice/morechoice.php:87
msgid "Transgender people"
msgstr ""
#: addon/morechoice/morechoice.php:88
msgid "Criminals"
msgstr ""
#: addon/morechoice/morechoice.php:89
msgid "Stealing"
msgstr ""
#: addon/morechoice/morechoice.php:90
msgid "Breast milk"
msgstr ""
#: addon/morechoice/morechoice.php:91
msgid "Immersing genitals in liquids"
msgstr ""
#: addon/morechoice/morechoice.php:92
msgid "Giants"
msgstr ""
#: addon/morechoice/morechoice.php:93
msgid "Masochism"
msgstr ""
#: addon/morechoice/morechoice.php:94
msgid "Cars"
msgstr ""
#: addon/morechoice/morechoice.php:95
msgid "Menstruation"
msgstr ""
#: addon/morechoice/morechoice.php:96
msgid "Mucus"
msgstr ""
#: addon/morechoice/morechoice.php:97
msgid "Obscene language"
msgstr ""
#: addon/morechoice/morechoice.php:98
msgid "Noses"
msgstr ""
#: addon/morechoice/morechoice.php:99
msgid "Navels"
msgstr ""
#: addon/morechoice/morechoice.php:100
msgid "Corpses"
msgstr ""
#: addon/morechoice/morechoice.php:101
msgid "Smells"
msgstr ""
#: addon/morechoice/morechoice.php:102
msgid "Buttocks"
msgstr ""
#: addon/morechoice/morechoice.php:103
msgid "Nonliving objects"
msgstr ""
#: addon/morechoice/morechoice.php:104
msgid "Sleeping people"
msgstr ""
#: addon/morechoice/morechoice.php:105
msgid "Urination"
msgstr ""
#: addon/morechoice/morechoice.php:106
msgid "Eating people"
msgstr ""
#: addon/morechoice/morechoice.php:107
msgid "Being eaten"
msgstr ""
#: addon/morechoice/morechoice.php:108
msgid "Animals"
msgstr ""
#: addon/morechoice/morechoice.php:109
msgid "I'd rather just have some chocolate"
msgstr ""
#: addon/morechoice/morechoice.php:113
msgid "Married to my job"
msgstr ""
#: addon/morechoice/morechoice.php:114
msgid "Polygamist"
msgstr ""
#: addon/morechoice/morechoice.php:115
msgid "Half married"
msgstr ""
#: addon/morechoice/morechoice.php:116
msgid "Living in the past"
msgstr ""
#: addon/morechoice/morechoice.php:117
msgid "Pretending to be over my ex"
msgstr ""
#: addon/morechoice/morechoice.php:118
msgid "Hurt in the past"
msgstr ""
#: addon/morechoice/morechoice.php:119
msgid "Wallowing in self-pity"
msgstr ""
#: addon/windowsphonepush/windowsphonepush.php:96
msgid "WindowsPhonePush settings updated."
msgstr ""
#: addon/windowsphonepush/windowsphonepush.php:122
msgid "WindowsPhonePush Settings"
msgstr ""
#: addon/windowsphonepush/windowsphonepush.php:125
msgid "Enable WindowsPhonePush Addon"
msgstr ""
#: addon/windowsphonepush/windowsphonepush.php:130
msgid "Push text of new item"
msgstr ""
#: addon/fromapp/fromapp.php:40
msgid "Fromapp settings updated."
msgstr ""
#: addon/fromapp/fromapp.php:65 addon/fromapp/fromapp.php:69
msgid "FromApp Settings"
msgstr ""
#: addon/fromapp/fromapp.php:72
msgid ""
"The application name you would like to show your posts originating from. "
"Separate different app names with a comma. A random one will then be "
"selected for every posting."
msgstr ""
#: addon/fromapp/fromapp.php:76
msgid "Use this application name even if another application was used."
msgstr ""
#: addon/cookienotice/cookienotice.php:43
msgid ""
"This website uses cookies. If you continue browsing this website, you agree "
"to the usage of cookies."
msgstr ""
#: addon/cookienotice/cookienotice.php:44
#: addon/cookienotice/cookienotice.php:110
msgid "OK"
msgstr ""
#: addon/cookienotice/cookienotice.php:48
msgid ""
"<b>Configure your cookie usage notice.</b> It should just be a notice, "
"saying that the website uses cookies. It is shown as long as a user didnt "
"confirm clicking the OK button."
msgstr ""
#: addon/cookienotice/cookienotice.php:49
msgid "Cookie Usage Notice"
msgstr ""
#: addon/cookienotice/cookienotice.php:50
msgid "OK Button Text"
msgstr ""
#: addon/cookienotice/cookienotice.php:74
msgid "cookienotice Settings saved."
msgstr ""
#: addon/cookienotice/cookienotice.php:109
msgid ""
"This website uses cookies to recognize revisiting and logged in users. You "
"accept the usage of these cookies by continue browsing this website."
msgstr ""
#: addon/statusnet/statusnet.php:115
msgid "Post to GNU Social"
msgstr ""
#: addon/statusnet/statusnet.php:166
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr ""
#: addon/statusnet/statusnet.php:195
msgid "We could not contact the GNU Social API with the Path you entered."
msgstr ""
#: addon/statusnet/statusnet.php:229
msgid "GNU Social settings updated."
msgstr ""
#: addon/statusnet/statusnet.php:270 addon/statusnet/statusnet.php:274
msgid "GNU Social Import/Export/Mirror"
msgstr ""
#: addon/statusnet/statusnet.php:289
msgid "Globally Available GNU Social OAuthKeys"
msgstr ""
#: addon/statusnet/statusnet.php:290
msgid ""
"There are preconfigured OAuth key pairs for some GNU Social servers "
"available. If you are using one of them, please use these credentials. If "
"not feel free to connect to any other GNU Social instance (see below)."
msgstr ""
#: addon/statusnet/statusnet.php:298
msgid "Provide your own OAuth Credentials"
msgstr ""
#: addon/statusnet/statusnet.php:299
msgid ""
"No consumer key pair for GNU Social found. Register your Friendica Account "
"as an desktop client on your GNU Social account, copy the consumer key pair "
"here and enter the API base root.<br />Before you register your own OAuth "
"key pair ask the administrator if there is already a key pair for this "
"Friendica installation at your favorited GNU Social installation."
msgstr ""
#: addon/statusnet/statusnet.php:301
msgid "OAuth Consumer Key"
msgstr ""
#: addon/statusnet/statusnet.php:304
msgid "OAuth Consumer Secret"
msgstr ""
#: addon/statusnet/statusnet.php:307 addon/statusnet/statusnet.php:700
#: addon/statusnet/statusnet.php:712
msgid "Base API Path (remember the trailing /)"
msgstr ""
#: addon/statusnet/statusnet.php:332
msgid ""
"To connect to your GNU Social account click the button below to get a "
"security code from GNU Social which you have to copy into the input box "
"below and submit the form. Only your <strong>public</strong> posts will be "
"posted to GNU Social."
msgstr ""
#: addon/statusnet/statusnet.php:333
msgid "Log in with GNU Social"
msgstr ""
#: addon/statusnet/statusnet.php:335
msgid "Copy the security code from GNU Social here"
msgstr ""
#: addon/statusnet/statusnet.php:341
msgid "Cancel Connection Process"
msgstr ""
#: addon/statusnet/statusnet.php:343
msgid "Current GNU Social API is"
msgstr ""
#: addon/statusnet/statusnet.php:344
msgid "Cancel GNU Social Connection"
msgstr ""
#: addon/statusnet/statusnet.php:358
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated GNU Social account. You can choose to do so by default (here) or "
"for every posting separately in the posting options when writing the entry."
msgstr ""
#: addon/statusnet/statusnet.php:360
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
"postings relayed to GNU Social will lead the visitor to a blank page "
"informing the visitor that the access to your profile has been restricted."
msgstr ""
#: addon/statusnet/statusnet.php:363
msgid "Allow posting to GNU Social"
msgstr ""
#: addon/statusnet/statusnet.php:366
msgid "Send public postings to GNU Social by default"
msgstr ""
#: addon/statusnet/statusnet.php:370
msgid ""
"Mirror all posts from GNU Social that are no replies or repeated messages"
msgstr ""
#: addon/statusnet/statusnet.php:381
msgid "Full Timeline"
msgstr ""
#: addon/statusnet/statusnet.php:382
msgid "Only Mentions"
msgstr ""
#: addon/statusnet/statusnet.php:391
msgid "Clear OAuth configuration"
msgstr ""
#: addon/statusnet/statusnet.php:711 src/Module/Admin/Site.php:572
msgid "Site name"
msgstr ""
#: addon/statusnet/statusnet.php:713 addon/tumblr/tumblr.php:83
#: mod/settings.php:668 mod/settings.php:694
msgid "Consumer Secret"
msgstr ""
#: addon/statusnet/statusnet.php:714 addon/tumblr/tumblr.php:82
#: mod/settings.php:667 mod/settings.php:693
msgid "Consumer Key"
msgstr ""
#: addon/startpage/startpage.php:82 addon/startpage/startpage.php:86
msgid "Startpage"
msgstr ""
#: addon/startpage/startpage.php:89
msgid "Home page to load after login - leave blank for profile wall"
msgstr ""
#: addon/startpage/startpage.php:92
msgid "Examples: &quot;network&quot; or &quot;notifications/system&quot;"
msgstr ""
#: addon/superblock/superblock.php:48 addon/superblock/superblock.php:52
msgid "Superblock"
msgstr ""
#: addon/superblock/superblock.php:55
msgid "Comma separated profile URLS to block"
msgstr ""
#: addon/superblock/superblock.php:72
msgid "SUPERBLOCK Settings saved."
msgstr ""
#: addon/superblock/superblock.php:145
msgid "Block Completely"
msgstr ""
#: addon/superblock/superblock.php:166
msgid "superblock settings updated"
msgstr ""
#: addon/nsfw/nsfw.php:77 addon/nsfw/nsfw.php:81
msgid "Content Filter (NSFW and more)"
msgstr ""
#: addon/nsfw/nsfw.php:85
msgid ""
"This addon searches for specified words/text in posts and collapses them. It "
"can be used to filter content tagged with for instance #NSFW that may be "
"deemed inappropriate at certain times or places, such as being at work. It "
"is also useful for hiding irrelevant or annoying content from direct view."
msgstr ""
#: addon/nsfw/nsfw.php:86
msgid "Enable Content filter"
msgstr ""
#: addon/nsfw/nsfw.php:89
msgid "Comma separated list of keywords to hide"
msgstr ""
#: addon/nsfw/nsfw.php:94
msgid "Use /expression/ to provide regular expressions"
msgstr ""
#: addon/nsfw/nsfw.php:109
msgid "NSFW Settings saved."
msgstr ""
#: addon/nsfw/nsfw.php:162
#, php-format
msgid "Filtered tag: %s"
msgstr ""
#: addon/nsfw/nsfw.php:164
#, php-format
msgid "Filtered word: %s"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:52
msgid "Remote Permissions Settings"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:53
msgid ""
"Allow recipients of your private posts to see the other recipients of the "
"posts"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:65
msgid "Remote Permissions settings updated."
msgstr ""
#: addon/remote_permissions/remote_permissions.php:133 mod/lockview.php:69
msgid "Visible to:"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:187
msgid "Visible to"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:187
msgid "may only be a partial list"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:206
msgid "Global"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:206
msgid "The posts of every user on this server show the post recipients"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:207
msgid "Individual"
msgstr ""
#: addon/remote_permissions/remote_permissions.php:207
msgid "Each user chooses whether his/her posts show the post recipients"
msgstr ""
#: addon/membersince/membersince.php:42 addon/membersince/membersince.php:57
#: src/Model/Profile.php:762
msgid "Member since:"
msgstr ""
#: addon/securemail/securemail.php:62
msgid "\"Secure Mail\" Settings"
msgstr ""
#: addon/securemail/securemail.php:64 addon/securemail/securemail.php:92
msgid "Save and send test"
msgstr ""
#: addon/securemail/securemail.php:65
msgid "Enable Secure Mail"
msgstr ""
#: addon/securemail/securemail.php:66
msgid "Public key"
msgstr ""
#: addon/securemail/securemail.php:66
msgid "Your public PGP key, ascii armored format"
msgstr ""
#: addon/securemail/securemail.php:90
msgid "Secure Mail Settings saved."
msgstr ""
#: addon/securemail/securemail.php:127
msgid "Test email sent"
msgstr ""
#: addon/securemail/securemail.php:129
msgid "There was an error sending the test email"
msgstr ""
#: addon/forumdirectory/forumdirectory.php:38
#: addon/forumdirectory/forumdirectory.php:148
msgid "Forum Directory"
msgstr ""
#: addon/forumdirectory/forumdirectory.php:58 src/Module/Directory.php:31
#: src/Module/Debug/WebFinger.php:19 src/Module/Debug/Probe.php:20
#: src/Module/Search/Index.php:30 src/Module/Search/Index.php:35
#: mod/community.php:25 mod/display.php:168 mod/dfrn_request.php:600
#: mod/photos.php:837 mod/videos.php:112
msgid "Public access denied."
msgstr ""
#: addon/forumdirectory/forumdirectory.php:136 src/Module/Directory.php:59
msgid "No entries (some entries may be hidden)."
msgstr ""
#: addon/forumdirectory/forumdirectory.php:142 view/theme/vier/theme.php:184
#: src/Content/Widget.php:70 src/Module/Directory.php:76
msgid "Global Directory"
msgstr ""
#: addon/forumdirectory/forumdirectory.php:144 src/Module/Directory.php:78
msgid "Find on this site"
msgstr ""
#: addon/forumdirectory/forumdirectory.php:146 src/Module/Directory.php:80
msgid "Results for:"
msgstr ""
#: addon/forumdirectory/forumdirectory.php:150 view/theme/vier/theme.php:179
#: src/Content/Widget.php:65 src/Module/Directory.php:84
#: src/Module/Contact.php:819
msgid "Find"
msgstr ""
#: addon/xmpp/xmpp.php:44
msgid "XMPP settings updated."
msgstr ""
#: addon/xmpp/xmpp.php:69 addon/xmpp/xmpp.php:73
msgid "XMPP-Chat (Jabber)"
msgstr ""
#: addon/xmpp/xmpp.php:77
msgid "Enable Webchat"
msgstr ""
#: addon/xmpp/xmpp.php:82
msgid "Individual Credentials"
msgstr ""
#: addon/xmpp/xmpp.php:115
msgid "Use central userbase"
msgstr ""
#: addon/xmpp/xmpp.php:115
msgid ""
"If enabled, users will automatically login to an ejabberd server that has to "
"be installed on this machine with synchronized credentials via the "
"\"auth_ejabberd.php\" script."
msgstr ""
#: addon/markdown/markdown.php:31 src/Module/Debug/Babel.php:184
msgid "Markdown"
msgstr ""
#: addon/markdown/markdown.php:32
msgid "Enable Markdown parsing"
msgstr ""
#: addon/markdown/markdown.php:32
msgid ""
"If enabled, self created items will additionally be parsed via Markdown."
msgstr ""
#: addon/tumblr/tumblr.php:50 addon/pumpio/pumpio.php:69
#: addon/buffer/buffer.php:51 include/items.php:433
#: src/Module/Delegation.php:98 src/Module/Notifications/Notify.php:18
#: src/Module/Attach.php:41 src/Module/Settings/Delegation.php:23
#: src/Module/Settings/Delegation.php:51 src/Module/Group.php:30
#: src/Module/Group.php:76 src/Module/FollowConfirm.php:16
#: src/Module/Profile/Contacts.php:50 src/Module/Contact.php:360
#: src/Module/Invite.php:21 src/Module/Invite.php:109
#: src/Module/Register.php:44 src/Module/Register.php:57
#: src/Module/Register.php:177 src/Module/Register.php:216
#: src/Module/Search/Directory.php:19 src/Module/Base/Api.php:40
#: src/Module/Base/Api.php:46 mod/notes.php:27 mod/uimport.php:17
#: mod/fsuggest.php:62 mod/common.php:27 mod/events.php:212 mod/api.php:35
#: mod/api.php:40 mod/cal.php:288 mod/crepair.php:90 mod/notifications.php:49
#: mod/wallmessage.php:18 mod/wallmessage.php:42 mod/wallmessage.php:81
#: mod/wallmessage.php:105 mod/ostatus_subscribe.php:16 mod/follow.php:56
#: mod/follow.php:133 mod/network.php:36 mod/unfollow.php:21
#: mod/unfollow.php:76 mod/unfollow.php:108 mod/profile_photo.php:31
#: mod/profile_photo.php:176 mod/profile_photo.php:196 mod/poke.php:142
#: mod/photos.php:161 mod/photos.php:923 mod/profiles.php:180
#: mod/profiles.php:497 mod/wall_attach.php:62 mod/wall_attach.php:65
#: mod/item.php:172 mod/regmod.php:85 mod/settings.php:49 mod/settings.php:162
#: mod/settings.php:654 mod/suggest.php:38 mod/dfrn_confirm.php:64
#: mod/wall_upload.php:94 mod/wall_upload.php:97 mod/editpost.php:22
#: mod/message.php:54 mod/message.php:99 mod/repair_ostatus.php:15
msgid "Permission denied."
msgstr ""
#: addon/tumblr/tumblr.php:190
msgid "You are now authenticated to tumblr."
msgstr ""
#: addon/tumblr/tumblr.php:191 addon/pumpio/pumpio.php:206
#: addon/buffer/buffer.php:122
msgid "return to the connector page"
msgstr ""
#: addon/tumblr/tumblr.php:207
msgid "Post to Tumblr"
msgstr ""
#: addon/tumblr/tumblr.php:237 addon/tumblr/tumblr.php:241
msgid "Tumblr Export"
msgstr ""
#: addon/tumblr/tumblr.php:245
msgid "(Re-)Authenticate your tumblr page"
msgstr ""
#: addon/tumblr/tumblr.php:249
msgid "Enable Tumblr Post Addon"
msgstr ""
#: addon/tumblr/tumblr.php:255
msgid "Post to Tumblr by default"
msgstr ""
#: addon/tumblr/tumblr.php:276
msgid "Post to page:"
msgstr ""
#: addon/tumblr/tumblr.php:290
msgid "You are not authenticated to tumblr"
msgstr ""
#: addon/rendertime/rendertime.php:42
#, php-format
msgid ""
"Database: %s/%s, Network: %s, Rendering: %s, Session: %s, I/O: %s, Other: "
"%s, Total: %s"
msgstr ""
#: addon/langfilter/langfilter.php:56
msgid "Language Filter"
msgstr ""
#: addon/langfilter/langfilter.php:57
msgid ""
"This addon tries to identify the language posts are writen in. If it does "
"not match any language specifed below, posts will be hidden by collapsing "
"them."
msgstr ""
#: addon/langfilter/langfilter.php:58
msgid "Use the language filter"
msgstr ""
#: addon/langfilter/langfilter.php:59
msgid "Able to read"
msgstr ""
#: addon/langfilter/langfilter.php:59
msgid ""
"List of abbreviations (iso2 codes) for languages you speak, comma separated. "
"For example \"de,it\"."
msgstr ""
#: addon/langfilter/langfilter.php:60
msgid "Minimum confidence in language detection"
msgstr ""
#: addon/langfilter/langfilter.php:60
msgid ""
"Minimum confidence in language detection being correct, from 0 to 100. Posts "
"will not be filtered when the confidence of language detection is below this "
"percent value."
msgstr ""
#: addon/langfilter/langfilter.php:61
msgid "Minimum length of message body"
msgstr ""
#: addon/langfilter/langfilter.php:61
msgid ""
"Minimum number of characters in message body for filter to be used. Posts "
"shorter than this will not be filtered. Note: Language detection is "
"unreliable for short content (<200 characters)."
msgstr ""
#: addon/langfilter/langfilter.php:103
msgid "Language Filter Settings saved."
msgstr ""
#: addon/langfilter/langfilter.php:200
#, php-format
msgid "Filtered language: %s"
msgstr ""
#: addon/public_server/public_server.php:131
msgid "Your Friendica account is about to expire."
msgstr ""
#: addon/public_server/public_server.php:132
#, php-format
msgid ""
"Hi %1$s,\n"
"\n"
"Your account on %2$s will expire in less than five days. You may keep your "
"account by logging in at least once every 30 days"
msgstr ""
#: addon/public_server/public_server.php:163
msgid "Settings saved"
msgstr ""
#: addon/public_server/public_server.php:173
msgid "Set any of these options to 0 to deactivate it."
msgstr ""
#: addon/krynn/krynn.php:156 addon/krynn/krynn.php:160
msgid "Krynn"
msgstr ""
#: addon/krynn/krynn.php:165
msgid "Krynn Settings"
msgstr ""
#: addon/krynn/krynn.php:167
msgid "Enable Krynn Addon"
msgstr ""
#: addon/libravatar/libravatar.php:98
msgid "Warning"
msgstr ""
#: addon/libravatar/libravatar.php:99
#, php-format
msgid "Your PHP version %s is lower than the required PHP >= 5.3."
msgstr ""
#: addon/libravatar/libravatar.php:100
msgid "This addon is not functional on your server."
msgstr ""
#: addon/libravatar/libravatar.php:109
msgid ""
"Gravatar addon is installed. Please disable the Gravatar addon.<br>The "
"Libravatar addon will fall back to Gravatar if nothing was found at "
"Libravatar."
msgstr ""
#: addon/libravatar/libravatar.php:116
msgid "Select default avatar image if none was found. See README"
msgstr ""
#: addon/libravatar/libravatar.php:129
msgid "Libravatar settings updated."
msgstr ""
#: addon/discourse/discourse.php:50 src/Content/ContactSelector.php:128
msgid "Discourse"
msgstr ""
#: addon/discourse/discourse.php:51
msgid "Enable processing of Discourse mailing list mails"
msgstr ""
#: addon/discourse/discourse.php:51
msgid ""
"If enabled, incoming mails from Discourse will be improved so they look much "
"better. To make it work, you have to configure the e-mail settings in "
"Friendica. You also have to enable the mailing list mode in Discourse. Then "
"you have to add the Discourse mail account as contact."
msgstr ""
#: addon/blockem/blockem.php:55 addon/blockem/blockem.php:59
msgid "Blockem"
msgstr ""
#: addon/blockem/blockem.php:63
msgid ""
"Hides user's content by collapsing posts. Also replaces their avatar with "
"generic image."
msgstr ""
#: addon/blockem/blockem.php:64
msgid "Comma separated profile URLS:"
msgstr ""
#: addon/blockem/blockem.php:82
msgid "BLOCKEM Settings saved."
msgstr ""
#: addon/blockem/blockem.php:144
#, php-format
msgid "Filtered user: %s"
msgstr ""
#: addon/blockem/blockem.php:203
msgid "Unblock Author"
msgstr ""
#: addon/blockem/blockem.php:205
msgid "Block Author"
msgstr ""
#: addon/blockem/blockem.php:245
msgid "blockem settings updated"
msgstr ""
#: addon/catavatar/catavatar.php:62
msgid "Use Cat as Avatar"
msgstr ""
#: addon/catavatar/catavatar.php:63
msgid "More Random Cat!"
msgstr ""
#: addon/catavatar/catavatar.php:64
msgid "Reset to email Cat"
msgstr ""
#: addon/catavatar/catavatar.php:66
msgid "Cat Avatar Settings"
msgstr ""
#: addon/catavatar/catavatar.php:91
msgid "The cat hadn't found itself."
msgstr ""
#: addon/catavatar/catavatar.php:100
msgid "There was an error, the cat ran away."
msgstr ""
#: addon/catavatar/catavatar.php:106 include/api.php:4618
#: src/Model/User.php:839 src/Model/User.php:847 src/Model/User.php:855
#: mod/profile_photo.php:84 mod/profile_photo.php:93 mod/profile_photo.php:102
#: mod/profile_photo.php:209 mod/profile_photo.php:297
#: mod/profile_photo.php:307 mod/photos.php:88 mod/photos.php:179
#: mod/photos.php:625 mod/photos.php:1047 mod/photos.php:1064
#: mod/photos.php:1571
msgid "Profile Photos"
msgstr ""
#: addon/catavatar/catavatar.php:121
msgid "Meow!"
msgstr ""
#: addon/ljpost/ljpost.php:49
msgid "Post to LiveJournal"
msgstr ""
#: addon/ljpost/ljpost.php:83
msgid "LiveJournal Post Settings"
msgstr ""
#: addon/ljpost/ljpost.php:85
msgid "Enable LiveJournal Post Addon"
msgstr ""
#: addon/ljpost/ljpost.php:90
msgid "LiveJournal username"
msgstr ""
#: addon/ljpost/ljpost.php:95
msgid "LiveJournal password"
msgstr ""
#: addon/ljpost/ljpost.php:100
msgid "Post to LiveJournal by default"
msgstr ""
#: addon/buglink/buglink.php:25
msgid "Report Bug"
msgstr ""
#: addon/ijpost/ijpost.php:49
msgid "Post to Insanejournal"
msgstr ""
#: addon/ijpost/ijpost.php:81 addon/ijpost/ijpost.php:85
msgid "InsaneJournal Export"
msgstr ""
#: addon/ijpost/ijpost.php:89
msgid "Enable InsaneJournal Post Addon"
msgstr ""
#: addon/ijpost/ijpost.php:94
msgid "InsaneJournal username"
msgstr ""
#: addon/ijpost/ijpost.php:99
msgid "InsaneJournal password"
msgstr ""
#: addon/ijpost/ijpost.php:104
msgid "Post to InsaneJournal by default"
msgstr ""
#: addon/geonames/geonames.php:114
msgid "Geonames settings updated."
msgstr ""
#: addon/geonames/geonames.php:146
msgid "Geonames Settings"
msgstr ""
#: addon/geonames/geonames.php:147
msgid ""
"Replace numerical coordinates by the nearest populated location name in your "
"posts."
msgstr ""
#: addon/geonames/geonames.php:148
msgid "Enable Geonames Addon"
msgstr ""
#: addon/geocoordinates/geocoordinates.php:96
msgid "API Key"
msgstr ""
#: addon/geocoordinates/geocoordinates.php:97
msgid "Language code (IETF format)"
msgstr ""
#: addon/pumpio/pumpio.php:164
#, php-format
msgid "Unable to register the client at the pump.io server '%s'."
msgstr ""
#: addon/pumpio/pumpio.php:205
msgid "You are now authenticated to pumpio."
msgstr ""
#: addon/pumpio/pumpio.php:226
msgid "Post to pumpio"
msgstr ""
#: addon/pumpio/pumpio.php:267 addon/pumpio/pumpio.php:271
msgid "Pump.io Import/Export/Mirror"
msgstr ""
#: addon/pumpio/pumpio.php:275
msgid "pump.io username (without the servername)"
msgstr ""
#: addon/pumpio/pumpio.php:280
msgid "pump.io servername (without \"http://\" or \"https://\" )"
msgstr ""
#: addon/pumpio/pumpio.php:291
msgid "Authenticate your pump.io connection"
msgstr ""
#: addon/pumpio/pumpio.php:300
msgid "Enable pump.io Post Addon"
msgstr ""
#: addon/pumpio/pumpio.php:305
msgid "Post to pump.io by default"
msgstr ""
#: addon/pumpio/pumpio.php:310
msgid "Should posts be public?"
msgstr ""
#: addon/pumpio/pumpio.php:315
msgid "Mirror all public posts"
msgstr ""
#: addon/pumpio/pumpio.php:320 addon/buffer/buffer.php:198
msgid "Check to delete this preset"
msgstr ""
#: addon/pumpio/pumpio.php:999 include/conversation.php:165
#: include/conversation.php:175 include/conversation.php:302
#: include/conversation.php:311 mod/tagger.php:72 mod/subthread.php:91
msgid "status"
msgstr ""
#: addon/pumpio/pumpio.php:1003 include/conversation.php:183
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:181
msgid "View Larger"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:209
msgid "Tile Server URL"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:209
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank"
"\">public tile servers</a>"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:210
msgid "Nominatim (reverse geocoding) Server URL"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:210
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" target="
"\"_blank\">Nominatim servers</a>"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:211
msgid "Default zoom"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:211
msgid ""
"The default zoom level. (1:world, 18:highest, also depends on tile server)"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:212
msgid "Include marker on map"
msgstr ""
#: addon/openstreetmap/openstreetmap.php:212
msgid "Include a marker on the map."
msgstr ""
#: addon/mailstream/mailstream.php:81
msgid "From Address"
msgstr ""
#: addon/mailstream/mailstream.php:83
msgid "Email address that stream items will appear to be from."
msgstr ""
#: addon/mailstream/mailstream.php:240
msgid "Re:"
msgstr ""
#: addon/mailstream/mailstream.php:248
msgid "Friendica post"
msgstr ""
#: addon/mailstream/mailstream.php:251
msgid "Diaspora post"
msgstr ""
#: addon/mailstream/mailstream.php:261
msgid "Feed item"
msgstr ""
#: addon/mailstream/mailstream.php:264 src/Content/ContactSelector.php:119
#: src/Module/Admin/Users.php:270 src/Module/Admin/Users.php:281
#: src/Module/Admin/Users.php:295 src/Module/Admin/Users.php:313
msgid "Email"
msgstr ""
#: addon/mailstream/mailstream.php:266
msgid "Friendica Item"
msgstr ""
#: addon/mailstream/mailstream.php:311
msgid "Upstream"
msgstr ""
#: addon/mailstream/mailstream.php:312
msgid "Local"
msgstr ""
#: addon/mailstream/mailstream.php:385
msgid "Leave blank to use your account email address"
msgstr ""
#: addon/mailstream/mailstream.php:388
msgid "Exclude Likes"
msgstr ""
#: addon/mailstream/mailstream.php:390
msgid "Check this to omit mailing \"Like\" notifications"
msgstr ""
#: addon/mailstream/mailstream.php:393
msgid "Attach Images"
msgstr ""
#: addon/mailstream/mailstream.php:395
msgid ""
"Download images in posts and attach them to the email. Useful for reading "
"email while offline."
msgstr ""
#: addon/mailstream/mailstream.php:396
msgid "Mail Stream Settings"
msgstr ""
#: addon/dwpost/dwpost.php:51
msgid "Post to Dreamwidth"
msgstr ""
#: addon/dwpost/dwpost.php:82 addon/dwpost/dwpost.php:86
msgid "Dreamwidth Export"
msgstr ""
#: addon/dwpost/dwpost.php:90
msgid "Enable dreamwidth Post Addon"
msgstr ""
#: addon/dwpost/dwpost.php:95
msgid "dreamwidth username"
msgstr ""
#: addon/dwpost/dwpost.php:100
msgid "dreamwidth password"
msgstr ""
#: addon/dwpost/dwpost.php:105
msgid "Post to dreamwidth by default"
msgstr ""
#: addon/blackout/blackout.php:101
msgid ""
"The end-date is prior to the start-date of the blackout, you should fix this"
msgstr ""
#: addon/blackout/blackout.php:103
#, php-format
msgid ""
"Please double check that the current settings for the blackout. Begin will "
"be <strong>%s</strong> and it will end <strong>%s</strong>."
msgstr ""
#: addon/blackout/blackout.php:107
msgid "Redirect URL"
msgstr ""
#: addon/blackout/blackout.php:107
msgid "all your visitors from the web will be redirected to this URL"
msgstr ""
#: addon/blackout/blackout.php:108
msgid "Begin of the Blackout"
msgstr ""
#: addon/blackout/blackout.php:108
msgid ""
"Format is <tt>YYYY-MM-DD hh:mm</tt>; <em>YYYY</em> year, <em>MM</em> month, "
"<em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute."
msgstr ""
#: addon/blackout/blackout.php:109
msgid "End of the Blackout"
msgstr ""
#: addon/blackout/blackout.php:111
msgid ""
"<strong>Note</strong>: The redirect will be active from the moment you press "
"the submit button. Users currently logged in will <strong>not</strong> be "
"thrown out but can't login again after logging out should the blackout is "
"still in place."
msgstr ""
#: addon/qcomment/qcomment.php:47
msgid ":-)"
msgstr ""
#: addon/qcomment/qcomment.php:47
msgid ":-("
msgstr ""
#: addon/qcomment/qcomment.php:47
msgid "lol"
msgstr ""
#: addon/qcomment/qcomment.php:50
msgid "Quick Comment Settings"
msgstr ""
#: addon/qcomment/qcomment.php:52
msgid ""
"Quick comments are found near comment boxes, sometimes hidden. Click them to "
"provide simple replies."
msgstr ""
#: addon/qcomment/qcomment.php:53
msgid "Enter quick comments, one per line"
msgstr ""
#: addon/qcomment/qcomment.php:71
msgid "Quick Comment settings saved."
msgstr ""
#: addon/buffer/buffer.php:82
msgid "Client ID"
msgstr ""
#: addon/buffer/buffer.php:83
msgid "Client Secret"
msgstr ""
#: addon/buffer/buffer.php:101
msgid "Error when registering buffer connection:"
msgstr ""
#: addon/buffer/buffer.php:121
msgid "You are now authenticated to buffer. "
msgstr ""
#: addon/buffer/buffer.php:140
msgid "Post to Buffer"
msgstr ""
#: addon/buffer/buffer.php:169 addon/buffer/buffer.php:173
msgid "Buffer Export"
msgstr ""
#: addon/buffer/buffer.php:184
msgid "Authenticate your Buffer connection"
msgstr ""
#: addon/buffer/buffer.php:188
msgid "Enable Buffer Post Addon"
msgstr ""
#: addon/buffer/buffer.php:193
msgid "Post to Buffer by default"
msgstr ""
#: addon/buffer/buffer.php:210
msgid "Posts are going to all accounts that are enabled by default:"
msgstr ""
#: addon/planets/planets.php:153 addon/planets/planets.php:157
msgid "Planets"
msgstr ""
#: addon/planets/planets.php:161
msgid "Planets Settings"
msgstr ""
#: addon/planets/planets.php:163
msgid "Enable Planets Addon"
msgstr ""
#: addon/irc/irc.php:43
msgid "IRC Settings"
msgstr ""
#: addon/irc/irc.php:44
msgid ""
"Here you can change the system wide settings for the channels to "
"automatically join and access via the side bar. Note the changes you do "
"here, only effect the channel selection if you are logged in."
msgstr ""
#: addon/irc/irc.php:46 addon/irc/irc.php:147
msgid "Channel(s) to auto connect (comma separated)"
msgstr ""
#: addon/irc/irc.php:46 addon/irc/irc.php:147
msgid ""
"List of channels that shall automatically connected to when the app is "
"launched."
msgstr ""
#: addon/irc/irc.php:47 addon/irc/irc.php:148
msgid "Popular Channels (comma separated)"
msgstr ""
#: addon/irc/irc.php:47 addon/irc/irc.php:148
msgid ""
"List of popular channels, will be displayed at the side and hotlinked for "
"easy joining."
msgstr ""
#: addon/irc/irc.php:67 addon/irc/irc.php:138
msgid "IRC settings saved."
msgstr ""
#: addon/irc/irc.php:72
msgid "IRC Chatroom"
msgstr ""
#: addon/irc/irc.php:100
msgid "Popular Channels"
msgstr ""
#: addon/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php:23
msgid "Infinite Improbability Drive"
msgstr ""
#: addon/widgets/widget_like.php:61
#, php-format
msgid "%d person likes this"
msgid_plural "%d people like this"
msgstr[0] ""
msgstr[1] ""
#: addon/widgets/widget_like.php:64
#, php-format
msgid "%d person doesn't like this"
msgid_plural "%d people don't like this"
msgstr[0] ""
msgstr[1] ""
#: addon/widgets/widget_friendheader.php:50
msgid "Get added to this list!"
msgstr ""
#: addon/widgets/widget_friends.php:53
msgid "Connect on Friendica!"
msgstr ""
#: addon/widgets/widgets.php:67
msgid "Widgets key"
msgstr ""
#: addon/widgets/widgets.php:69
msgid "Widgets available"
msgstr ""
#: addon/widgets/widgets.php:130 mod/settings.php:748
msgid "Addon Settings"
msgstr ""
#: include/api.php:1113
#, php-format
msgid "Daily posting limit of %d post reached. The post was rejected."
msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
msgstr[0] ""
msgstr[1] ""
#: include/api.php:1138
#: include/api.php:1127
#, php-format
msgid "Weekly posting limit of %d post reached. The post was rejected."
msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
msgstr[0] ""
msgstr[1] ""
#: include/api.php:1152
#: include/api.php:1141
#, php-format
msgid "Monthly posting limit of %d post reached. The post was rejected."
msgstr ""
#: include/api.php:4576 src/Model/User.php:841 src/Model/User.php:849
#: src/Model/User.php:857 mod/profile_photo.php:85 mod/profile_photo.php:94
#: mod/profile_photo.php:103 mod/profile_photo.php:210
#: mod/profile_photo.php:298 mod/profile_photo.php:308 mod/photos.php:90
#: mod/photos.php:181 mod/photos.php:628 mod/photos.php:1055
#: mod/photos.php:1072 mod/photos.php:1580
msgid "Profile Photos"
msgstr ""
#: include/enotify.php:58
#: include/enotify.php:59
msgid "Friendica Notification"
msgstr ""
#: include/enotify.php:61
#: include/enotify.php:62
msgid "Thank You,"
msgstr ""
#: include/enotify.php:64
#, php-format
msgid "%1$s, %2$s Administrator"
msgstr ""
#: include/enotify.php:66
#, php-format
msgid "%s Administrator"
msgstr ""
#: include/enotify.php:135
#: include/enotify.php:136
#, php-format
msgid "[Friendica:Notify] New mail received at %s"
msgstr ""
#: include/enotify.php:137
#: include/enotify.php:138
#, php-format
msgid "%1$s sent you a new private message at %2$s."
msgstr ""
#: include/enotify.php:138
#: include/enotify.php:139
msgid "a private message"
msgstr ""
#: include/enotify.php:138
#: include/enotify.php:139
#, php-format
msgid "%1$s sent you %2$s."
msgstr ""
#: include/enotify.php:140
#: include/enotify.php:141
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr ""
#: include/enotify.php:173
#, php-format
msgid "%1$s tagged you on [url=%2$s]a %3$s[/url]"
msgstr ""
#: include/enotify.php:179
#, php-format
msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
msgstr ""
#: include/enotify.php:189
#, php-format
msgid "%1$s tagged you on [url=%2$s]%3$s's %4$s[/url]"
msgstr ""
#: include/enotify.php:196
#, php-format
msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
msgstr ""
#: include/enotify.php:208
#, php-format
msgid "%1$s tagged you on [url=%2$s]your %3$s[/url]"
msgstr ""
#: include/enotify.php:214
#, php-format
msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
msgstr ""
#: include/enotify.php:225
#, php-format
msgid "%1$s tagged you on [url=%2$s]their %3$s[/url]"
msgstr ""
#: include/enotify.php:231
#, php-format
msgid "%1$s commented on [url=%2$s]their %3$s[/url]"
msgstr ""
#: include/enotify.php:244
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr ""
#: include/enotify.php:246
#: include/enotify.php:227
#, php-format
msgid "%1$s tagged you at %2$s"
msgstr ""
#: include/enotify.php:248
#: include/enotify.php:229
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
msgstr ""
#: include/enotify.php:250
#: include/enotify.php:231
#, php-format
msgid "%s commented on an item/conversation you have been following."
msgstr ""
#: include/enotify.php:255 include/enotify.php:270 include/enotify.php:285
#: include/enotify.php:304 include/enotify.php:320
#: include/enotify.php:236 include/enotify.php:251 include/enotify.php:266
#: include/enotify.php:285 include/enotify.php:301
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
#: include/enotify.php:262
#: include/enotify.php:243
#, php-format
msgid "[Friendica:Notify] %s posted to your profile wall"
msgstr ""
#: include/enotify.php:264
#: include/enotify.php:245
#, php-format
msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
#: include/enotify.php:265
#: include/enotify.php:246
#, php-format
msgid "%1$s posted to [url=%2$s]your wall[/url]"
msgstr ""
#: include/enotify.php:277
#: include/enotify.php:258
#, php-format
msgid "[Friendica:Notify] %s shared a new post"
msgstr ""
#: include/enotify.php:279
#: include/enotify.php:260
#, php-format
msgid "%1$s shared a new post at %2$s"
msgstr ""
#: include/enotify.php:280
#: include/enotify.php:261
#, php-format
msgid "%1$s [url=%2$s]shared a post[/url]."
msgstr ""
#: include/enotify.php:292
#: include/enotify.php:273
#, php-format
msgid "[Friendica:Notify] %1$s poked you"
msgstr ""
#: include/enotify.php:294
#: include/enotify.php:275
#, php-format
msgid "%1$s poked you at %2$s"
msgstr ""
#: include/enotify.php:295
#: include/enotify.php:276
#, php-format
msgid "%1$s [url=%2$s]poked you[/url]."
msgstr ""
#: include/enotify.php:312
#: include/enotify.php:293
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgstr ""
#: include/enotify.php:314
#: include/enotify.php:295
#, php-format
msgid "%1$s tagged your post at %2$s"
msgstr ""
#: include/enotify.php:315
#: include/enotify.php:296
#, php-format
msgid "%1$s tagged [url=%2$s]your post[/url]"
msgstr ""
#: include/enotify.php:327
#: include/enotify.php:308
msgid "[Friendica:Notify] Introduction received"
msgstr ""
#: include/enotify.php:329
#: include/enotify.php:310
#, php-format
msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
#: include/enotify.php:330
#: include/enotify.php:311
#, php-format
msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr ""
#: include/enotify.php:335 include/enotify.php:381
#: include/enotify.php:316 include/enotify.php:362
#, php-format
msgid "You may visit their profile at %s"
msgstr ""
#: include/enotify.php:337
#: include/enotify.php:318
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr ""
#: include/enotify.php:344
#: include/enotify.php:325
msgid "[Friendica:Notify] A new person is sharing with you"
msgstr ""
#: include/enotify.php:346 include/enotify.php:347
#: include/enotify.php:327 include/enotify.php:328
#, php-format
msgid "%1$s is sharing with you at %2$s"
msgstr ""
#: include/enotify.php:354
#: include/enotify.php:335
msgid "[Friendica:Notify] You have a new follower"
msgstr ""
#: include/enotify.php:356 include/enotify.php:357
#: include/enotify.php:337 include/enotify.php:338
#, php-format
msgid "You have a new follower at %2$s : %1$s"
msgstr ""
#: include/enotify.php:370
#: include/enotify.php:351
msgid "[Friendica:Notify] Friend suggestion received"
msgstr ""
#: include/enotify.php:372
#: include/enotify.php:353
#, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
#: include/enotify.php:373
#: include/enotify.php:354
#, php-format
msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr ""
#: include/enotify.php:379
#: include/enotify.php:360
msgid "Name:"
msgstr ""
#: include/enotify.php:380
#: include/enotify.php:361
msgid "Photo:"
msgstr ""
#: include/enotify.php:383
#: include/enotify.php:364
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
#: include/enotify.php:391 include/enotify.php:406
#: include/enotify.php:372 include/enotify.php:387
msgid "[Friendica:Notify] Connection accepted"
msgstr ""
#: include/enotify.php:393 include/enotify.php:408
#: include/enotify.php:374 include/enotify.php:389
#, php-format
msgid "'%1$s' has accepted your connection request at %2$s"
msgstr ""
#: include/enotify.php:394 include/enotify.php:409
#: include/enotify.php:375 include/enotify.php:390
#, php-format
msgid "%2$s has accepted your [url=%1$s]connection request[/url]."
msgstr ""
#: include/enotify.php:399
#: include/enotify.php:380
msgid ""
"You are now mutual friends and may exchange status updates, photos, and "
"email without restriction."
msgstr ""
#: include/enotify.php:401
#: include/enotify.php:382
#, php-format
msgid "Please visit %s if you wish to make any changes to this relationship."
msgstr ""
#: include/enotify.php:414
#: include/enotify.php:395
#, php-format
msgid ""
"'%1$s' has chosen to accept you a fan, which restricts some forms of "
@ -317,37 +3121,37 @@ msgid ""
"automatically."
msgstr ""
#: include/enotify.php:416
#: include/enotify.php:397
#, php-format
msgid ""
"'%1$s' may choose to extend this into a two-way or more permissive "
"relationship in the future."
msgstr ""
#: include/enotify.php:418
#: include/enotify.php:399
#, php-format
msgid "Please visit %s if you wish to make any changes to this relationship."
msgstr ""
#: include/enotify.php:428 mod/removeme.php:46
#: include/enotify.php:409 mod/removeme.php:46
msgid "[Friendica System Notify]"
msgstr ""
#: include/enotify.php:428
#: include/enotify.php:409
msgid "registration request"
msgstr ""
#: include/enotify.php:430
#: include/enotify.php:411
#, php-format
msgid "You've received a registration request from '%1$s' at %2$s"
msgstr ""
#: include/enotify.php:431
#: include/enotify.php:412
#, php-format
msgid "You've received a [url=%1$s]registration request[/url] from %2$s."
msgstr ""
#: include/enotify.php:436
#: include/enotify.php:417
#, php-format
msgid ""
"Full Name:\t%s\n"
@ -355,540 +3159,491 @@ msgid ""
"Login Name:\t%s (%s)"
msgstr ""
#: include/enotify.php:442
#: include/enotify.php:423
#, php-format
msgid "Please visit %s to approve or reject the request."
msgstr ""
#: include/conversation.php:167 include/conversation.php:304
#: include/conversation.php:162 include/conversation.php:299
#: src/Model/Item.php:3394
msgid "event"
msgstr ""
#: include/conversation.php:170 include/conversation.php:180
#: include/conversation.php:307 include/conversation.php:316 mod/tagger.php:72
#: mod/subthread.php:91
msgid "status"
msgstr ""
#: include/conversation.php:175 include/conversation.php:312
#: include/conversation.php:170 include/conversation.php:307
#: src/Model/Item.php:3396 mod/tagger.php:72 mod/subthread.php:91
msgid "photo"
msgstr ""
#: include/conversation.php:188
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
#: include/conversation.php:190
#: include/conversation.php:185
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
#: include/conversation.php:192
#: include/conversation.php:187
#, php-format
msgid "%1$s attends %2$s's %3$s"
msgstr ""
#: include/conversation.php:194
#: include/conversation.php:189
#, php-format
msgid "%1$s doesn't attend %2$s's %3$s"
msgstr ""
#: include/conversation.php:196
#: include/conversation.php:191
#, php-format
msgid "%1$s attends maybe %2$s's %3$s"
msgstr ""
#: include/conversation.php:231
#: include/conversation.php:226
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr ""
#: include/conversation.php:272
#: include/conversation.php:267
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: include/conversation.php:326 mod/tagger.php:105
#: include/conversation.php:321 mod/tagger.php:105
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
#: include/conversation.php:348
#: include/conversation.php:343
msgid "post/item"
msgstr ""
#: include/conversation.php:349
#: include/conversation.php:344
#, php-format
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr ""
#: include/conversation.php:574 mod/photos.php:1407 mod/profiles.php:352
#: include/conversation.php:568 mod/photos.php:1399 mod/profiles.php:350
msgid "Likes"
msgstr ""
#: include/conversation.php:575 mod/photos.php:1407 mod/profiles.php:355
#: include/conversation.php:569 mod/photos.php:1399 mod/profiles.php:353
msgid "Dislikes"
msgstr ""
#: include/conversation.php:576 include/conversation.php:1603
#: mod/photos.php:1408
#: include/conversation.php:570 include/conversation.php:1591
#: mod/photos.php:1400
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:577 mod/photos.php:1408
#: include/conversation.php:571 mod/photos.php:1400
msgid "Not attending"
msgstr ""
#: include/conversation.php:578 mod/photos.php:1408
#: include/conversation.php:572 mod/photos.php:1400
msgid "Might attend"
msgstr ""
#: include/conversation.php:579
#: include/conversation.php:573
msgid "Reshares"
msgstr ""
#: include/conversation.php:659 src/Object/Post.php:211 mod/photos.php:1469
#: include/conversation.php:653 src/Object/Post.php:208 mod/photos.php:1460
msgid "Select"
msgstr ""
#: include/conversation.php:660 src/Module/Admin/Users.php:288
#: src/Module/Contact.php:826 src/Module/Contact.php:1107 mod/photos.php:1470
#: mod/settings.php:731 mod/settings.php:873
#: include/conversation.php:654 src/Module/Admin/Users.php:286
#: src/Module/Contact.php:829 src/Module/Contact.php:1110 mod/photos.php:1461
#: mod/settings.php:725 mod/settings.php:867
msgid "Delete"
msgstr ""
#: include/conversation.php:689 src/Object/Post.php:407 src/Object/Post.php:408
#: include/conversation.php:680 src/Object/Post.php:401 src/Object/Post.php:402
#, php-format
msgid "View %s's profile @ %s"
msgstr ""
#: include/conversation.php:702 src/Object/Post.php:395
#: include/conversation.php:693 src/Object/Post.php:389
msgid "Categories:"
msgstr ""
#: include/conversation.php:703 src/Object/Post.php:396
#: include/conversation.php:694 src/Object/Post.php:390
msgid "Filed under:"
msgstr ""
#: include/conversation.php:710 src/Object/Post.php:421
#: include/conversation.php:701 src/Object/Post.php:415
#, php-format
msgid "%s from %s"
msgstr ""
#: include/conversation.php:725
#: include/conversation.php:716
msgid "View in context"
msgstr ""
#: include/conversation.php:727 include/conversation.php:1249
#: src/Object/Post.php:451 src/Module/Item/Compose.php:143
#: mod/wallmessage.php:141 mod/photos.php:1380 mod/editpost.php:87
#: mod/message.php:260 mod/message.php:442
#: include/conversation.php:718 include/conversation.php:1237
#: src/Object/Post.php:445 src/Module/Item/Compose.php:140
#: mod/wallmessage.php:140 mod/photos.php:1372 mod/editpost.php:87
#: mod/message.php:258 mod/message.php:440
msgid "Please wait"
msgstr ""
#: include/conversation.php:791
#: include/conversation.php:782
msgid "remove"
msgstr ""
#: include/conversation.php:795
#: include/conversation.php:786
msgid "Delete Selected Items"
msgstr ""
#: include/conversation.php:956 view/theme/frio/theme.php:363
#: include/conversation.php:947 view/theme/frio/theme.php:363
msgid "Follow Thread"
msgstr ""
#: include/conversation.php:957 src/Model/Contact.php:1255
#: include/conversation.php:948 src/Model/Contact.php:1279
msgid "View Status"
msgstr ""
#: include/conversation.php:958 include/conversation.php:976
#: src/Model/Contact.php:1185 src/Model/Contact.php:1247
#: src/Model/Contact.php:1256 src/Module/Directory.php:148
#: src/Module/BaseSearchModule.php:137 src/Module/AllFriends.php:74
#: mod/match.php:87 mod/suggest.php:87
#: include/conversation.php:949 include/conversation.php:967
#: src/Model/Contact.php:1209 src/Model/Contact.php:1271
#: src/Model/Contact.php:1280 src/Module/Directory.php:148
#: src/Module/BaseSearchModule.php:132 src/Module/AllFriends.php:74
#: mod/match.php:86 mod/suggest.php:86
msgid "View Profile"
msgstr ""
#: include/conversation.php:959 src/Model/Contact.php:1257
#: include/conversation.php:950 src/Model/Contact.php:1281
msgid "View Photos"
msgstr ""
#: include/conversation.php:960 src/Model/Contact.php:1248
#: src/Model/Contact.php:1258
#: include/conversation.php:951 src/Model/Contact.php:1272
#: src/Model/Contact.php:1282
msgid "Network Posts"
msgstr ""
#: include/conversation.php:961 src/Model/Contact.php:1249
#: src/Model/Contact.php:1259
#: include/conversation.php:952 src/Model/Contact.php:1273
#: src/Model/Contact.php:1283
msgid "View Contact"
msgstr ""
#: include/conversation.php:962 src/Model/Contact.php:1261
#: include/conversation.php:953 src/Model/Contact.php:1285
msgid "Send PM"
msgstr ""
#: include/conversation.php:963 src/Module/Admin/Blocklist/Contact.php:67
#: src/Module/Admin/Users.php:289 src/Module/Contact.php:606
#: src/Module/Contact.php:823 src/Module/Contact.php:1082
#: include/conversation.php:954 src/Module/Admin/Blocklist/Contact.php:65
#: src/Module/Admin/Users.php:287 src/Module/Contact.php:605
#: src/Module/Contact.php:826 src/Module/Contact.php:1085
msgid "Block"
msgstr ""
#: include/conversation.php:964 src/Module/Contact.php:607
#: src/Module/Contact.php:824 src/Module/Contact.php:1090
#: mod/notifications.php:66 mod/notifications.php:201 mod/notifications.php:294
#: include/conversation.php:955 src/Module/Contact.php:606
#: src/Module/Contact.php:827 src/Module/Contact.php:1093
#: mod/notifications.php:37 mod/notifications.php:173 mod/notifications.php:266
msgid "Ignore"
msgstr ""
#: include/conversation.php:968 src/Model/Contact.php:1262
#: include/conversation.php:959 src/Model/Contact.php:1286
msgid "Poke"
msgstr ""
#: include/conversation.php:973 view/theme/vier/theme.php:178
#: src/Content/Widget.php:67 src/Model/Contact.php:1250
#: src/Model/Contact.php:1263 src/Module/BaseSearchModule.php:138
#: src/Module/AllFriends.php:75 mod/follow.php:160 mod/match.php:88
#: mod/suggest.php:88
#: include/conversation.php:964 view/theme/vier/theme.php:177
#: src/Content/Widget.php:63 src/Model/Contact.php:1274
#: src/Model/Contact.php:1287 src/Module/BaseSearchModule.php:133
#: src/Module/AllFriends.php:75 mod/follow.php:159 mod/match.php:87
#: mod/suggest.php:87
msgid "Connect/Follow"
msgstr ""
#: include/conversation.php:1101
#: include/conversation.php:1089
#, php-format
msgid "%s likes this."
msgstr ""
#: include/conversation.php:1104
#: include/conversation.php:1092
#, php-format
msgid "%s doesn't like this."
msgstr ""
#: include/conversation.php:1107
#: include/conversation.php:1095
#, php-format
msgid "%s attends."
msgstr ""
#: include/conversation.php:1110
#: include/conversation.php:1098
#, php-format
msgid "%s doesn't attend."
msgstr ""
#: include/conversation.php:1113
#: include/conversation.php:1101
#, php-format
msgid "%s attends maybe."
msgstr ""
#: include/conversation.php:1116 include/conversation.php:1159
#: include/conversation.php:1104 include/conversation.php:1147
#, php-format
msgid "%s reshared this."
msgstr ""
#: include/conversation.php:1124
#: include/conversation.php:1112
msgid "and"
msgstr ""
#: include/conversation.php:1130
#: include/conversation.php:1118
#, php-format
msgid "and %d other people"
msgstr ""
#: include/conversation.php:1138
#: include/conversation.php:1126
#, php-format
msgid "<span %1$s>%2$d people</span> like this"
msgstr ""
#: include/conversation.php:1139
#: include/conversation.php:1127
#, php-format
msgid "%s like this."
msgstr ""
#: include/conversation.php:1142
#: include/conversation.php:1130
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this"
msgstr ""
#: include/conversation.php:1143
#: include/conversation.php:1131
#, php-format
msgid "%s don't like this."
msgstr ""
#: include/conversation.php:1146
#: include/conversation.php:1134
#, php-format
msgid "<span %1$s>%2$d people</span> attend"
msgstr ""
#: include/conversation.php:1147
#: include/conversation.php:1135
#, php-format
msgid "%s attend."
msgstr ""
#: include/conversation.php:1150
#: include/conversation.php:1138
#, php-format
msgid "<span %1$s>%2$d people</span> don't attend"
msgstr ""
#: include/conversation.php:1151
#: include/conversation.php:1139
#, php-format
msgid "%s don't attend."
msgstr ""
#: include/conversation.php:1154
#: include/conversation.php:1142
#, php-format
msgid "<span %1$s>%2$d people</span> attend maybe"
msgstr ""
#: include/conversation.php:1155
#: include/conversation.php:1143
#, php-format
msgid "%s attend maybe."
msgstr ""
#: include/conversation.php:1158
#: include/conversation.php:1146
#, php-format
msgid "<span %1$s>%2$d people</span> reshared this"
msgstr ""
#: include/conversation.php:1188
#: include/conversation.php:1176
msgid "Visible to <strong>everybody</strong>"
msgstr ""
#: include/conversation.php:1189 src/Object/Post.php:920
#: src/Module/Item/Compose.php:137
#: include/conversation.php:1177 src/Object/Post.php:913
#: src/Module/Item/Compose.php:134
msgid "Please enter a image/video/audio/webpage URL:"
msgstr ""
#: include/conversation.php:1190
#: include/conversation.php:1178
msgid "Tag term:"
msgstr ""
#: include/conversation.php:1191 src/Module/Filer/SaveTag.php:48
#: include/conversation.php:1179 src/Module/Filer/SaveTag.php:47
msgid "Save to Folder:"
msgstr ""
#: include/conversation.php:1192
#: include/conversation.php:1180
msgid "Where are you right now?"
msgstr ""
#: include/conversation.php:1193
#: include/conversation.php:1181
msgid "Delete item(s)?"
msgstr ""
#: include/conversation.php:1225
#: include/conversation.php:1213
msgid "New Post"
msgstr ""
#: include/conversation.php:1228
#: include/conversation.php:1216
msgid "Share"
msgstr ""
#: include/conversation.php:1229 mod/wallmessage.php:139 mod/editpost.php:73
#: mod/message.php:258 mod/message.php:439
#: include/conversation.php:1217 mod/wallmessage.php:138 mod/editpost.php:73
#: mod/message.php:256 mod/message.php:437
msgid "Upload photo"
msgstr ""
#: include/conversation.php:1230 mod/editpost.php:74
#: include/conversation.php:1218 mod/editpost.php:74
msgid "upload photo"
msgstr ""
#: include/conversation.php:1231 mod/editpost.php:75
#: include/conversation.php:1219 mod/editpost.php:75
msgid "Attach file"
msgstr ""
#: include/conversation.php:1232 mod/editpost.php:76
#: include/conversation.php:1220 mod/editpost.php:76
msgid "attach file"
msgstr ""
#: include/conversation.php:1233 src/Object/Post.php:912
#: src/Module/Item/Compose.php:129
#: include/conversation.php:1221 src/Object/Post.php:905
#: src/Module/Item/Compose.php:126
msgid "Bold"
msgstr ""
#: include/conversation.php:1234 src/Object/Post.php:913
#: src/Module/Item/Compose.php:130
#: include/conversation.php:1222 src/Object/Post.php:906
#: src/Module/Item/Compose.php:127
msgid "Italic"
msgstr ""
#: include/conversation.php:1235 src/Object/Post.php:914
#: src/Module/Item/Compose.php:131
#: include/conversation.php:1223 src/Object/Post.php:907
#: src/Module/Item/Compose.php:128
msgid "Underline"
msgstr ""
#: include/conversation.php:1236 src/Object/Post.php:915
#: src/Module/Item/Compose.php:132
#: include/conversation.php:1224 src/Object/Post.php:908
#: src/Module/Item/Compose.php:129
msgid "Quote"
msgstr ""
#: include/conversation.php:1237 src/Object/Post.php:916
#: src/Module/Item/Compose.php:133
#: include/conversation.php:1225 src/Object/Post.php:909
#: src/Module/Item/Compose.php:130
msgid "Code"
msgstr ""
#: include/conversation.php:1238 src/Object/Post.php:917
#: src/Module/Item/Compose.php:134
#: include/conversation.php:1226 src/Object/Post.php:910
#: src/Module/Item/Compose.php:131
msgid "Image"
msgstr ""
#: include/conversation.php:1239 src/Object/Post.php:918
#: src/Module/Item/Compose.php:135
#: include/conversation.php:1227 src/Object/Post.php:911
#: src/Module/Item/Compose.php:132
msgid "Link"
msgstr ""
#: include/conversation.php:1240 src/Object/Post.php:919
#: src/Module/Item/Compose.php:136
#: include/conversation.php:1228 src/Object/Post.php:912
#: src/Module/Item/Compose.php:133
msgid "Link or Media"
msgstr ""
#: include/conversation.php:1241 src/Module/Item/Compose.php:139
#: include/conversation.php:1229 src/Module/Item/Compose.php:136
#: mod/editpost.php:83
msgid "Set your location"
msgstr ""
#: include/conversation.php:1242 mod/editpost.php:84
#: include/conversation.php:1230 mod/editpost.php:84
msgid "set location"
msgstr ""
#: include/conversation.php:1243 mod/editpost.php:85
#: include/conversation.php:1231 mod/editpost.php:85
msgid "Clear browser location"
msgstr ""
#: include/conversation.php:1244 mod/editpost.php:86
#: include/conversation.php:1232 mod/editpost.php:86
msgid "clear location"
msgstr ""
#: include/conversation.php:1246 src/Module/Item/Compose.php:144
#: include/conversation.php:1234 src/Module/Item/Compose.php:141
#: mod/editpost.php:100
msgid "Set title"
msgstr ""
#: include/conversation.php:1248 src/Module/Item/Compose.php:145
#: include/conversation.php:1236 src/Module/Item/Compose.php:142
#: mod/editpost.php:102
msgid "Categories (comma-separated list)"
msgstr ""
#: include/conversation.php:1250 mod/editpost.php:88
#: include/conversation.php:1238 mod/editpost.php:88
msgid "Permission settings"
msgstr ""
#: include/conversation.php:1251 mod/editpost.php:117
#: include/conversation.php:1239 mod/editpost.php:117
msgid "permissions"
msgstr ""
#: include/conversation.php:1260 mod/editpost.php:97
#: include/conversation.php:1248 mod/editpost.php:97
msgid "Public post"
msgstr ""
#: include/conversation.php:1264 src/Object/Post.php:921
#: src/Module/Item/Compose.php:138 mod/events.php:556 mod/photos.php:1398
#: mod/photos.php:1437 mod/photos.php:1502 mod/editpost.php:108
#: include/conversation.php:1252 src/Object/Post.php:914
#: src/Module/Item/Compose.php:135 mod/events.php:549 mod/photos.php:1390
#: mod/photos.php:1429 mod/photos.php:1493 mod/editpost.php:108
msgid "Preview"
msgstr ""
#: include/conversation.php:1268 include/items.php:392
#: src/Module/Contact.php:447 mod/dfrn_request.php:652 mod/follow.php:174
#: mod/fbrowser.php:110 mod/fbrowser.php:139 mod/unfollow.php:132
#: mod/photos.php:1049 mod/photos.php:1156 mod/settings.php:671
#: mod/settings.php:697 mod/suggest.php:76 mod/editpost.php:111
#: mod/message.php:153 mod/tagrm.php:20 mod/tagrm.php:115
msgid "Cancel"
msgstr ""
#: include/conversation.php:1273
#: include/conversation.php:1261
msgid "Post to Groups"
msgstr ""
#: include/conversation.php:1274
#: include/conversation.php:1262
msgid "Post to Contacts"
msgstr ""
#: include/conversation.php:1275
#: include/conversation.php:1263
msgid "Private post"
msgstr ""
#: include/conversation.php:1280 src/Model/Profile.php:546
#: src/Module/Contact.php:322 mod/editpost.php:115
msgid "Message"
msgstr ""
#: include/conversation.php:1281 mod/editpost.php:116
#: include/conversation.php:1269 mod/editpost.php:116
msgid "Browser"
msgstr ""
#: include/conversation.php:1573
#: include/conversation.php:1561
msgid "View all"
msgstr ""
#: include/conversation.php:1597
#: include/conversation.php:1585
msgid "Like"
msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1600
#: include/conversation.php:1588
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1606
#: include/conversation.php:1594
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1609 src/Content/ContactSelector.php:245
#: include/conversation.php:1597 src/Content/ContactSelector.php:249
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
#: include/items.php:355 src/Module/Admin/Themes/Details.php:53
#: src/Module/Admin/Themes/Index.php:43 src/Module/Debug/ItemBody.php:27
#: include/items.php:349 src/Module/Admin/Themes/Details.php:53
#: src/Module/Admin/Themes/Index.php:41 src/Module/Debug/ItemBody.php:27
#: src/Module/Debug/ItemBody.php:40
msgid "Item not found."
msgstr ""
#: include/items.php:387
#: include/items.php:381
msgid "Do you really want to delete this item?"
msgstr ""
#: include/items.php:389 src/Module/Contact.php:444 src/Module/Register.php:91
#: mod/api.php:110 mod/dfrn_request.php:642 mod/follow.php:163
#: mod/profiles.php:526 mod/profiles.php:529 mod/profiles.php:551
#: mod/settings.php:1090 mod/settings.php:1096 mod/settings.php:1103
#: mod/settings.php:1107 mod/settings.php:1111 mod/settings.php:1115
#: mod/settings.php:1119 mod/settings.php:1123 mod/settings.php:1143
#: mod/settings.php:1144 mod/settings.php:1145 mod/settings.php:1146
#: mod/settings.php:1147 mod/suggest.php:73 mod/message.php:150
#: include/items.php:383 src/Module/Contact.php:443 src/Module/Register.php:97
#: mod/api.php:110 mod/dfrn_request.php:643 mod/follow.php:162
#: mod/profiles.php:524 mod/profiles.php:527 mod/profiles.php:549
#: mod/settings.php:1084 mod/settings.php:1090 mod/settings.php:1097
#: mod/settings.php:1101 mod/settings.php:1105 mod/settings.php:1109
#: mod/settings.php:1113 mod/settings.php:1117 mod/settings.php:1137
#: mod/settings.php:1138 mod/settings.php:1139 mod/settings.php:1140
#: mod/settings.php:1141 mod/suggest.php:72 mod/message.php:148
msgid "Yes"
msgstr ""
#: include/items.php:439 src/Module/Delegation.php:101
#: src/Module/Notifications/Notify.php:20 src/Module/Attach.php:42
#: src/Module/Settings/Delegation.php:26 src/Module/Settings/Delegation.php:54
#: src/Module/Group.php:31 src/Module/Group.php:77
#: src/Module/FollowConfirm.php:27 src/Module/Profile/Contacts.php:50
#: src/Module/Contact.php:361 src/Module/Invite.php:22
#: src/Module/Invite.php:110 src/Module/Register.php:186
#: src/Module/Search/Directory.php:19 mod/notes.php:27 mod/uimport.php:17
#: mod/fsuggest.php:63 mod/common.php:27 mod/events.php:215 mod/api.php:35
#: mod/api.php:40 mod/cal.php:291 mod/crepair.php:90 mod/notifications.php:76
#: mod/wallmessage.php:19 mod/wallmessage.php:43 mod/wallmessage.php:82
#: mod/wallmessage.php:106 mod/ostatus_subscribe.php:18 mod/follow.php:57
#: mod/follow.php:134 mod/network.php:38 mod/unfollow.php:22
#: mod/unfollow.php:77 mod/unfollow.php:109 mod/profile_photo.php:32
#: mod/profile_photo.php:177 mod/profile_photo.php:197 mod/poke.php:142
#: mod/photos.php:163 mod/photos.php:927 mod/profiles.php:182
#: mod/profiles.php:499 mod/wall_attach.php:63 mod/wall_attach.php:66
#: mod/item.php:174 mod/regmod.php:89 mod/settings.php:54 mod/settings.php:167
#: mod/settings.php:660 mod/suggest.php:39 mod/dfrn_confirm.php:65
#: mod/wall_upload.php:95 mod/wall_upload.php:98 mod/editpost.php:22
#: mod/message.php:56 mod/message.php:101 mod/repair_ostatus.php:16
msgid "Permission denied."
msgstr ""
#: update.php:218
#, php-format
msgid "%s: Updating author-id and owner-id in item and thread table. "
@ -899,163 +3654,126 @@ msgstr ""
msgid "%s: Updating post-type."
msgstr ""
#: view/theme/vier/theme.php:128 view/theme/vier/config.php:126
#: view/theme/vier/theme.php:127 view/theme/vier/config.php:124
msgid "Community Profiles"
msgstr ""
#: view/theme/vier/theme.php:158 view/theme/vier/config.php:130
#: view/theme/vier/theme.php:157 view/theme/vier/config.php:128
msgid "Last users"
msgstr ""
#: view/theme/vier/theme.php:176 src/Content/Widget.php:65
#: view/theme/vier/theme.php:175 src/Content/Widget.php:61
msgid "Find People"
msgstr ""
#: view/theme/vier/theme.php:177 src/Content/Widget.php:66
#: view/theme/vier/theme.php:176 src/Content/Widget.php:62
msgid "Enter name or interest"
msgstr ""
#: view/theme/vier/theme.php:179 src/Content/Widget.php:68
#: view/theme/vier/theme.php:178 src/Content/Widget.php:64
msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
#: view/theme/vier/theme.php:180 src/Content/Widget.php:69
#: src/Module/Directory.php:84 src/Module/Contact.php:816
msgid "Find"
msgstr ""
#: view/theme/vier/theme.php:181 src/Content/Widget.php:70 mod/suggest.php:119
#: view/theme/vier/theme.php:180 src/Content/Widget.php:66 mod/suggest.php:118
msgid "Friend Suggestions"
msgstr ""
#: view/theme/vier/theme.php:182 src/Content/Widget.php:71
#: view/theme/vier/theme.php:181 src/Content/Widget.php:67
msgid "Similar Interests"
msgstr ""
#: view/theme/vier/theme.php:183 src/Content/Widget.php:72
#: view/theme/vier/theme.php:182 src/Content/Widget.php:68
msgid "Random Profile"
msgstr ""
#: view/theme/vier/theme.php:184 src/Content/Widget.php:73
#: view/theme/vier/theme.php:183 src/Content/Widget.php:69
msgid "Invite Friends"
msgstr ""
#: view/theme/vier/theme.php:185 src/Content/Widget.php:74
#: src/Module/Directory.php:76
msgid "Global Directory"
msgstr ""
#: view/theme/vier/theme.php:187 src/Content/Widget.php:76
#: view/theme/vier/theme.php:186 src/Content/Widget.php:72
msgid "Local Directory"
msgstr ""
#: view/theme/vier/theme.php:227 src/Content/Text/HTML.php:926
#: src/Content/ForumManager.php:130 src/Content/Nav.php:209
#: view/theme/vier/theme.php:226 src/Content/Text/HTML.php:915
#: src/Content/ForumManager.php:129 src/Content/Nav.php:208
msgid "Forums"
msgstr ""
#: view/theme/vier/theme.php:229 src/Content/ForumManager.php:132
#: view/theme/vier/theme.php:228 src/Content/ForumManager.php:131
msgid "External link to forum"
msgstr ""
#: view/theme/vier/theme.php:232 src/Content/Widget.php:409
#: src/Content/Widget.php:509 src/Content/ForumManager.php:135
msgid "show more"
msgstr ""
#: view/theme/vier/theme.php:265
#: view/theme/vier/theme.php:264
msgid "Quick Start"
msgstr ""
#: view/theme/vier/theme.php:271 src/Content/Nav.php:192 src/Module/Help.php:50
#: src/Module/Settings/TwoFactor/Verify.php:117
#: src/Module/Settings/TwoFactor/AppSpecific.php:99
#: src/Module/Settings/TwoFactor/Index.php:90
#: src/Module/Settings/TwoFactor/Recovery.php:77
msgid "Help"
msgstr ""
#: view/theme/vier/theme.php:350 view/theme/vier/config.php:128
#: view/theme/vier/theme.php:349 view/theme/vier/config.php:126
msgid "Connect Services"
msgstr ""
#: view/theme/vier/config.php:78
#: view/theme/vier/config.php:76
msgid "Comma separated list of helper forums"
msgstr ""
#: view/theme/vier/config.php:118
#: view/theme/vier/config.php:116
msgid "don't show"
msgstr ""
#: view/theme/vier/config.php:118
#: view/theme/vier/config.php:116
msgid "show"
msgstr ""
#: view/theme/vier/config.php:122 view/theme/duepuntozero/config.php:72
#: view/theme/frio/config.php:127 view/theme/quattro/config.php:74
#: src/Object/Post.php:911 src/Module/Delegation.php:134
#: src/Module/Install.php:212 src/Module/Install.php:252
#: src/Module/Install.php:288 src/Module/Debug/Localtime.php:45
#: src/Module/Contact.php:581 src/Module/Invite.php:157
#: src/Module/Item/Compose.php:128 mod/fsuggest.php:92 mod/events.php:558
#: mod/crepair.php:149 mod/poke.php:185 mod/photos.php:956 mod/photos.php:1066
#: mod/photos.php:1352 mod/photos.php:1397 mod/photos.php:1436
#: mod/photos.php:1501 mod/profiles.php:562 mod/message.php:261
#: mod/message.php:441
msgid "Submit"
msgstr ""
#: view/theme/vier/config.php:123 view/theme/duepuntozero/config.php:73
#: view/theme/frio/config.php:128 view/theme/quattro/config.php:75
#: mod/settings.php:976
#: view/theme/vier/config.php:121 view/theme/duepuntozero/config.php:71
#: view/theme/frio/config.php:126 view/theme/quattro/config.php:73
#: mod/settings.php:970
msgid "Theme settings"
msgstr ""
#: view/theme/vier/config.php:124
#: view/theme/vier/config.php:122
msgid "Set style"
msgstr ""
#: view/theme/vier/config.php:125
#: view/theme/vier/config.php:123
msgid "Community Pages"
msgstr ""
#: view/theme/vier/config.php:127
#: view/theme/vier/config.php:125
msgid "Help or @NewHere ?"
msgstr ""
#: view/theme/vier/config.php:129
#: view/theme/vier/config.php:127
msgid "Find Friends"
msgstr ""
#: view/theme/duepuntozero/config.php:55 src/Model/User.php:790
#: view/theme/duepuntozero/config.php:53 src/Model/User.php:788
msgid "default"
msgstr ""
#: view/theme/duepuntozero/config.php:56
#: view/theme/duepuntozero/config.php:54
msgid "greenzero"
msgstr ""
#: view/theme/duepuntozero/config.php:57
#: view/theme/duepuntozero/config.php:55
msgid "purplezero"
msgstr ""
#: view/theme/duepuntozero/config.php:58
#: view/theme/duepuntozero/config.php:56
msgid "easterbunny"
msgstr ""
#: view/theme/duepuntozero/config.php:59
#: view/theme/duepuntozero/config.php:57
msgid "darkzero"
msgstr ""
#: view/theme/duepuntozero/config.php:60
#: view/theme/duepuntozero/config.php:58
msgid "comix"
msgstr ""
#: view/theme/duepuntozero/config.php:61
#: view/theme/duepuntozero/config.php:59
msgid "slackr"
msgstr ""
#: view/theme/duepuntozero/config.php:74
#: view/theme/duepuntozero/config.php:72
msgid "Variations"
msgstr ""
@ -1103,204 +3821,197 @@ msgstr ""
msgid "Visitor"
msgstr ""
#: view/theme/frio/theme.php:267 src/Content/Nav.php:160
#: src/Model/Profile.php:913 src/Module/Settings/TwoFactor/Index.php:91
#: src/Module/Contact.php:637 src/Module/Contact.php:852
#: view/theme/frio/theme.php:267 src/Content/Nav.php:159
#: src/Model/Profile.php:912 src/Module/Settings/TwoFactor/Index.php:88
#: src/Module/Contact.php:636 src/Module/Contact.php:855
msgid "Status"
msgstr ""
#: view/theme/frio/theme.php:267 src/Content/Nav.php:160
#: src/Content/Nav.php:244
#: view/theme/frio/theme.php:267 src/Content/Nav.php:159
#: src/Content/Nav.php:242
msgid "Your posts and conversations"
msgstr ""
#: view/theme/frio/theme.php:268 src/Content/Nav.php:161
#: src/Model/Profile.php:885 src/Model/Profile.php:921
#: src/Module/Welcome.php:38 src/Module/Contact.php:639
#: src/Module/Contact.php:868 mod/profperm.php:117
#: view/theme/frio/theme.php:268 src/Content/Nav.php:160
#: src/Model/Profile.php:884 src/Model/Profile.php:920
#: src/Module/Welcome.php:38 src/Module/Contact.php:638
#: src/Module/Contact.php:871 mod/profperm.php:116
msgid "Profile"
msgstr ""
#: view/theme/frio/theme.php:268 src/Content/Nav.php:161
#: view/theme/frio/theme.php:268 src/Content/Nav.php:160
msgid "Your profile page"
msgstr ""
#: view/theme/frio/theme.php:269 src/Content/Nav.php:162
#: src/Model/Profile.php:929 mod/fbrowser.php:43
#: view/theme/frio/theme.php:269 src/Content/Nav.php:161
#: src/Model/Profile.php:928 mod/fbrowser.php:42
msgid "Photos"
msgstr ""
#: view/theme/frio/theme.php:269 src/Content/Nav.php:162
#: view/theme/frio/theme.php:269 src/Content/Nav.php:161
msgid "Your photos"
msgstr ""
#: view/theme/frio/theme.php:270 src/Content/Nav.php:163
#: src/Model/Profile.php:937 src/Model/Profile.php:940
#: view/theme/frio/theme.php:270 src/Content/Nav.php:162
#: src/Model/Profile.php:936 src/Model/Profile.php:939
msgid "Videos"
msgstr ""
#: view/theme/frio/theme.php:270 src/Content/Nav.php:163
#: view/theme/frio/theme.php:270 src/Content/Nav.php:162
msgid "Your videos"
msgstr ""
#: view/theme/frio/theme.php:271 view/theme/frio/theme.php:275
#: src/Content/Nav.php:164 src/Content/Nav.php:228 src/Model/Profile.php:949
#: src/Model/Profile.php:960 mod/events.php:396 mod/cal.php:261
#: src/Content/Nav.php:163 src/Content/Nav.php:227 src/Model/Profile.php:948
#: src/Model/Profile.php:959 mod/events.php:393 mod/cal.php:258
msgid "Events"
msgstr ""
#: view/theme/frio/theme.php:271 src/Content/Nav.php:164
#: view/theme/frio/theme.php:271 src/Content/Nav.php:163
msgid "Your events"
msgstr ""
#: view/theme/frio/theme.php:274 src/Content/Nav.php:241
#: view/theme/frio/theme.php:274 src/Content/Nav.php:240
msgid "Network"
msgstr ""
#: view/theme/frio/theme.php:274 src/Content/Nav.php:241
#: view/theme/frio/theme.php:274 src/Content/Nav.php:240
msgid "Conversations from your friends"
msgstr ""
#: view/theme/frio/theme.php:275 src/Content/Nav.php:228
#: src/Model/Profile.php:952 src/Model/Profile.php:963
#: view/theme/frio/theme.php:275 src/Content/Nav.php:227
#: src/Model/Profile.php:951 src/Model/Profile.php:962
msgid "Events and Calendar"
msgstr ""
#: view/theme/frio/theme.php:276 src/Content/Nav.php:254 mod/message.php:123
#: view/theme/frio/theme.php:276 src/Content/Nav.php:252 mod/message.php:121
msgid "Messages"
msgstr ""
#: view/theme/frio/theme.php:276 src/Content/Nav.php:254
#: view/theme/frio/theme.php:276 src/Content/Nav.php:252
msgid "Private mail"
msgstr ""
#: view/theme/frio/theme.php:277 src/Content/Nav.php:263
#: src/Module/Admin/Addons/Details.php:102
#: src/Module/Admin/Themes/Details.php:107 src/Module/Welcome.php:33
#: src/Module/BaseSettingsModule.php:105 mod/settings.php:149
msgid "Settings"
msgstr ""
#: view/theme/frio/theme.php:277 src/Content/Nav.php:263
#: view/theme/frio/theme.php:277 src/Content/Nav.php:261
msgid "Account settings"
msgstr ""
#: view/theme/frio/theme.php:278 src/Content/Text/HTML.php:922
#: src/Content/Nav.php:205 src/Content/Nav.php:269 src/Model/Profile.php:992
#: src/Model/Profile.php:995 src/Module/Contact.php:795
#: src/Module/Contact.php:880
#: view/theme/frio/theme.php:278 src/Content/Text/HTML.php:911
#: src/Content/Nav.php:204 src/Content/Nav.php:267 src/Model/Profile.php:991
#: src/Model/Profile.php:994 src/Module/Contact.php:798
#: src/Module/Contact.php:883
msgid "Contacts"
msgstr ""
#: view/theme/frio/theme.php:278 src/Content/Nav.php:269
#: view/theme/frio/theme.php:278 src/Content/Nav.php:267
msgid "Manage/edit friends and contacts"
msgstr ""
#: view/theme/frio/config.php:111
#: view/theme/frio/config.php:109
msgid "Custom"
msgstr ""
#: view/theme/frio/config.php:123
#: view/theme/frio/config.php:121
msgid "Note"
msgstr ""
#: view/theme/frio/config.php:123
#: view/theme/frio/config.php:121
msgid "Check image permissions if all users are allowed to see the image"
msgstr ""
#: view/theme/frio/config.php:129
#: view/theme/frio/config.php:127
msgid "Select color scheme"
msgstr ""
#: view/theme/frio/config.php:130
#: view/theme/frio/config.php:128
msgid "Copy or paste schemestring"
msgstr ""
#: view/theme/frio/config.php:130
#: view/theme/frio/config.php:128
msgid ""
"You can copy this string to share your theme with others. Pasting here "
"applies the schemestring"
msgstr ""
#: view/theme/frio/config.php:131
#: view/theme/frio/config.php:129
msgid "Navigation bar background color"
msgstr ""
#: view/theme/frio/config.php:132
#: view/theme/frio/config.php:130
msgid "Navigation bar icon color "
msgstr ""
#: view/theme/frio/config.php:133
#: view/theme/frio/config.php:131
msgid "Link color"
msgstr ""
#: view/theme/frio/config.php:134
#: view/theme/frio/config.php:132
msgid "Set the background color"
msgstr ""
#: view/theme/frio/config.php:135
#: view/theme/frio/config.php:133
msgid "Content background opacity"
msgstr ""
#: view/theme/frio/config.php:136
#: view/theme/frio/config.php:134
msgid "Set the background image"
msgstr ""
#: view/theme/frio/config.php:137
#: view/theme/frio/config.php:135
msgid "Background image style"
msgstr ""
#: view/theme/frio/config.php:139
#: view/theme/frio/config.php:137
msgid "Enable Compose page"
msgstr ""
#: view/theme/frio/config.php:139
#: view/theme/frio/config.php:137
msgid ""
"This replaces the jot modal window for writing new posts with a link to <a "
"href=\"compose\">the new Compose page</a>."
msgstr ""
#: view/theme/frio/config.php:143
#: view/theme/frio/config.php:141
msgid "Login page background image"
msgstr ""
#: view/theme/frio/config.php:147
#: view/theme/frio/config.php:145
msgid "Login page background color"
msgstr ""
#: view/theme/frio/config.php:147
#: view/theme/frio/config.php:145
msgid "Leave background image and color empty for theme defaults"
msgstr ""
#: view/theme/quattro/config.php:76
#: view/theme/quattro/config.php:74
msgid "Alignment"
msgstr ""
#: view/theme/quattro/config.php:76
#: view/theme/quattro/config.php:74
msgid "Left"
msgstr ""
#: view/theme/quattro/config.php:76
#: view/theme/quattro/config.php:74
msgid "Center"
msgstr ""
#: view/theme/quattro/config.php:77
#: view/theme/quattro/config.php:75
msgid "Color scheme"
msgstr ""
#: view/theme/quattro/config.php:78
#: view/theme/quattro/config.php:76
msgid "Posts font size"
msgstr ""
#: view/theme/quattro/config.php:79
#: view/theme/quattro/config.php:77
msgid "Textareas font size"
msgstr ""
#: src/Database/DBStructure.php:50
#: src/Database/DBStructure.php:49
msgid "There are no tables on MyISAM."
msgstr ""
#: src/Database/DBStructure.php:74
#: src/Database/DBStructure.php:73
#, php-format
msgid ""
"\n"
@ -1308,313 +4019,309 @@ msgid ""
"%s\n"
msgstr ""
#: src/Database/DBStructure.php:77
#: src/Database/DBStructure.php:76
msgid "Errors encountered performing database changes: "
msgstr ""
#: src/Database/DBStructure.php:266
#: src/Database/DBStructure.php:265
#, php-format
msgid "%s: Database update"
msgstr ""
#: src/Database/DBStructure.php:527
#: src/Database/DBStructure.php:526
#, php-format
msgid "%s: updating %s table."
msgstr ""
#: src/Object/Post.php:135
#: src/Object/Post.php:132
msgid "This entry was edited"
msgstr ""
#: src/Object/Post.php:158
#: src/Object/Post.php:155
msgid "Private Message"
msgstr ""
#: src/Object/Post.php:168 src/Object/Post.php:170 mod/settings.php:730
#: src/Object/Post.php:165 src/Object/Post.php:167 mod/settings.php:724
msgid "Edit"
msgstr ""
#: src/Object/Post.php:197
#: src/Object/Post.php:194
msgid "pinned item"
msgstr ""
#: src/Object/Post.php:202
#: src/Object/Post.php:199
msgid "Delete locally"
msgstr ""
#: src/Object/Post.php:205
#: src/Object/Post.php:202
msgid "Delete globally"
msgstr ""
#: src/Object/Post.php:205
#: src/Object/Post.php:202
msgid "Remove locally"
msgstr ""
#: src/Object/Post.php:219
#: src/Object/Post.php:216
msgid "save to folder"
msgstr ""
#: src/Object/Post.php:254
#: src/Object/Post.php:251
msgid "I will attend"
msgstr ""
#: src/Object/Post.php:254
#: src/Object/Post.php:251
msgid "I will not attend"
msgstr ""
#: src/Object/Post.php:254
#: src/Object/Post.php:251
msgid "I might attend"
msgstr ""
#: src/Object/Post.php:282
#: src/Object/Post.php:279
msgid "ignore thread"
msgstr ""
#: src/Object/Post.php:283
#: src/Object/Post.php:280
msgid "unignore thread"
msgstr ""
#: src/Object/Post.php:284
#: src/Object/Post.php:281
msgid "toggle ignore status"
msgstr ""
#: src/Object/Post.php:287 mod/ostatus_subscribe.php:89
#: src/Object/Post.php:284 mod/ostatus_subscribe.php:85
msgid "ignored"
msgstr ""
#: src/Object/Post.php:296
#: src/Object/Post.php:293
msgid "pin"
msgstr ""
#: src/Object/Post.php:297
#: src/Object/Post.php:294
msgid "unpin"
msgstr ""
#: src/Object/Post.php:298
#: src/Object/Post.php:295
msgid "toggle pin status"
msgstr ""
#: src/Object/Post.php:301
#: src/Object/Post.php:298
msgid "pinned"
msgstr ""
#: src/Object/Post.php:308
#: src/Object/Post.php:305
msgid "add star"
msgstr ""
#: src/Object/Post.php:309
#: src/Object/Post.php:306
msgid "remove star"
msgstr ""
#: src/Object/Post.php:310
#: src/Object/Post.php:307
msgid "toggle star status"
msgstr ""
#: src/Object/Post.php:313
#: src/Object/Post.php:310
msgid "starred"
msgstr ""
#: src/Object/Post.php:317
#: src/Object/Post.php:314
msgid "add tag"
msgstr ""
#: src/Object/Post.php:328 mod/photos.php:1378
#: src/Object/Post.php:325 mod/photos.php:1370
msgid "I like this (toggle)"
msgstr ""
#: src/Object/Post.php:328
#: src/Object/Post.php:325
msgid "like"
msgstr ""
#: src/Object/Post.php:329 mod/photos.php:1379
#: src/Object/Post.php:326 mod/photos.php:1371
msgid "I don't like this (toggle)"
msgstr ""
#: src/Object/Post.php:329
#: src/Object/Post.php:326
msgid "dislike"
msgstr ""
#: src/Object/Post.php:332
#: src/Object/Post.php:329
msgid "Share this"
msgstr ""
#: src/Object/Post.php:332
#: src/Object/Post.php:329
msgid "share"
msgstr ""
#: src/Object/Post.php:384
#: src/Object/Post.php:378
#, php-format
msgid "%s (Received %s)"
msgstr ""
#: src/Object/Post.php:409
#: src/Object/Post.php:403
msgid "to"
msgstr ""
#: src/Object/Post.php:410
#: src/Object/Post.php:404
msgid "via"
msgstr ""
#: src/Object/Post.php:411
#: src/Object/Post.php:405
msgid "Wall-to-Wall"
msgstr ""
#: src/Object/Post.php:412
#: src/Object/Post.php:406
msgid "via Wall-To-Wall:"
msgstr ""
#: src/Object/Post.php:447 src/Object/Post.php:910 mod/photos.php:1396
#: mod/photos.php:1435 mod/photos.php:1500
#: src/Object/Post.php:441 src/Object/Post.php:903 mod/photos.php:1388
#: mod/photos.php:1427 mod/photos.php:1491
msgid "Comment"
msgstr ""
#: src/Object/Post.php:448
#: src/Object/Post.php:442
#, php-format
msgid "Reply to %s"
msgstr ""
#: src/Object/Post.php:464
#: src/Object/Post.php:458
msgid "Notifier task is pending"
msgstr ""
#: src/Object/Post.php:465
#: src/Object/Post.php:459
msgid "Delivery to remote servers is pending"
msgstr ""
#: src/Object/Post.php:466
#: src/Object/Post.php:460
msgid "Delivery to remote servers is underway"
msgstr ""
#: src/Object/Post.php:467
#: src/Object/Post.php:461
msgid "Delivery to remote servers is mostly done"
msgstr ""
#: src/Object/Post.php:468
#: src/Object/Post.php:462
msgid "Delivery to remote servers is done"
msgstr ""
#: src/Object/Post.php:488
#: src/Object/Post.php:482
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
#: src/Object/Post.php:489
#: src/Object/Post.php:483
msgid "Show more"
msgstr ""
#: src/Object/Post.php:490
#: src/Object/Post.php:484
msgid "Show fewer"
msgstr ""
#: src/Object/Post.php:501 src/Model/Item.php:3400
#: src/Object/Post.php:495 src/Model/Item.php:3400
msgid "comment"
msgid_plural "comments"
msgstr[0] ""
msgstr[1] ""
#: src/Object/Post.php:908 src/Module/Contact.php:1023
#: src/Module/Item/Compose.php:126 mod/photos.php:1394 mod/photos.php:1433
#: mod/photos.php:1498
#: src/Object/Post.php:901 src/Module/Contact.php:1026
#: src/Module/Item/Compose.php:123 mod/photos.php:1386 mod/photos.php:1425
#: mod/photos.php:1489
msgid "This is you"
msgstr ""
#: src/App.php:521
#: src/App.php:333
msgid "No system theme config value set."
msgstr ""
#: src/Content/Text/BBCode.php:490
msgid "view full size"
msgstr ""
#: src/Content/Text/BBCode.php:927 src/Content/Text/BBCode.php:1603
#: src/Content/Text/BBCode.php:1604
#: src/Content/Text/BBCode.php:908 src/Content/Text/BBCode.php:1604
#: src/Content/Text/BBCode.php:1605
msgid "Image/photo"
msgstr ""
#: src/Content/Text/BBCode.php:1045
#: src/Content/Text/BBCode.php:1025
#, php-format
msgid "<a href=\"%1$s\" target=\"_blank\">%2$s</a> %3$s"
msgstr ""
#: src/Content/Text/BBCode.php:1521 src/Content/Text/HTML.php:963
#: src/Content/Text/BBCode.php:1522 src/Content/Text/HTML.php:952
msgid "Click to open/close"
msgstr ""
#: src/Content/Text/BBCode.php:1552
#: src/Content/Text/BBCode.php:1553
msgid "$1 wrote:"
msgstr ""
#: src/Content/Text/BBCode.php:1606 src/Content/Text/BBCode.php:1607
#: src/Content/Text/BBCode.php:1607 src/Content/Text/BBCode.php:1608
msgid "Encrypted content"
msgstr ""
#: src/Content/Text/BBCode.php:1829
#: src/Content/Text/BBCode.php:1833
msgid "Invalid source protocol"
msgstr ""
#: src/Content/Text/BBCode.php:1844
#: src/Content/Text/BBCode.php:1848
msgid "Invalid link protocol"
msgstr ""
#: src/Content/Text/HTML.php:811
#: src/Content/Text/HTML.php:800
msgid "Loading more entries..."
msgstr ""
#: src/Content/Text/HTML.php:812
#: src/Content/Text/HTML.php:801
msgid "The end"
msgstr ""
#: src/Content/Text/HTML.php:905 src/Module/Filer/SaveTag.php:49
#: src/Content/Text/HTML.php:894 src/Module/Filer/SaveTag.php:48
#: mod/notes.php:46 mod/editpost.php:72
msgid "Save"
msgstr ""
#: src/Content/Text/HTML.php:905 src/Model/Profile.php:540
#: src/Module/Contact.php:318
#: src/Content/Text/HTML.php:894 src/Model/Profile.php:539
#: src/Module/Contact.php:317
msgid "Follow"
msgstr ""
#: src/Content/Text/HTML.php:911 src/Content/Nav.php:200
#: src/Module/Search/Index.php:80
#: src/Content/Text/HTML.php:900 src/Content/Nav.php:199
#: src/Module/Search/Index.php:79
msgid "Search"
msgstr ""
#: src/Content/Text/HTML.php:913 src/Content/Nav.php:79
#: src/Content/Text/HTML.php:902 src/Content/Nav.php:78
msgid "@name, !forum, #tags, content"
msgstr ""
#: src/Content/Text/HTML.php:920 src/Content/Nav.php:203
#: src/Content/Text/HTML.php:909 src/Content/Nav.php:202
msgid "Full Text"
msgstr ""
#: src/Content/Text/HTML.php:921 src/Content/Nav.php:204
#: src/Content/Widget/TagCloud.php:54
#: src/Content/Text/HTML.php:910 src/Content/Nav.php:203
#: src/Content/Widget/TagCloud.php:53
msgid "Tags"
msgstr ""
#: src/Content/ContactSelector.php:58
#: src/Content/ContactSelector.php:57
msgid "Frequently"
msgstr ""
#: src/Content/ContactSelector.php:59
#: src/Content/ContactSelector.php:58
msgid "Hourly"
msgstr ""
#: src/Content/ContactSelector.php:60
#: src/Content/ContactSelector.php:59
msgid "Twice daily"
msgstr ""
#: src/Content/ContactSelector.php:61
#: src/Content/ContactSelector.php:60
msgid "Daily"
msgstr ""
#: src/Content/ContactSelector.php:62
#: src/Content/ContactSelector.php:61
msgid "Weekly"
msgstr ""
#: src/Content/ContactSelector.php:63
#: src/Content/ContactSelector.php:62
msgid "Monthly"
msgstr ""
@ -1630,13 +4337,7 @@ msgstr ""
msgid "RSS/Atom"
msgstr ""
#: src/Content/ContactSelector.php:119 src/Module/Admin/Users.php:272
#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297
#: src/Module/Admin/Users.php:315
msgid "Email"
msgstr ""
#: src/Content/ContactSelector.php:120 mod/settings.php:800
#: src/Content/ContactSelector.php:120 mod/settings.php:794
msgid "Diaspora"
msgstr ""
@ -1668,10 +4369,6 @@ msgstr ""
msgid "Twitter"
msgstr ""
#: src/Content/ContactSelector.php:128
msgid "Discourse"
msgstr ""
#: src/Content/ContactSelector.php:129
msgid "Diaspora Connector"
msgstr ""
@ -1688,635 +4385,629 @@ msgstr ""
msgid "pnut"
msgstr ""
#: src/Content/ContactSelector.php:231 src/Content/ContactSelector.php:271
#: src/Content/ContactSelector.php:309
#: src/Content/ContactSelector.php:166
#, php-format
msgid "%s (via %s)"
msgstr ""
#: src/Content/ContactSelector.php:235 src/Content/ContactSelector.php:275
#: src/Content/ContactSelector.php:313
msgid "No answer"
msgstr ""
#: src/Content/ContactSelector.php:232
#: src/Content/ContactSelector.php:236
msgid "Male"
msgstr ""
#: src/Content/ContactSelector.php:233
#: src/Content/ContactSelector.php:237
msgid "Female"
msgstr ""
#: src/Content/ContactSelector.php:234
#: src/Content/ContactSelector.php:238
msgid "Currently Male"
msgstr ""
#: src/Content/ContactSelector.php:235
#: src/Content/ContactSelector.php:239
msgid "Currently Female"
msgstr ""
#: src/Content/ContactSelector.php:236
#: src/Content/ContactSelector.php:240
msgid "Mostly Male"
msgstr ""
#: src/Content/ContactSelector.php:237
#: src/Content/ContactSelector.php:241
msgid "Mostly Female"
msgstr ""
#: src/Content/ContactSelector.php:238
#: src/Content/ContactSelector.php:242
msgid "Transgender"
msgstr ""
#: src/Content/ContactSelector.php:239
#: src/Content/ContactSelector.php:243
msgid "Intersex"
msgstr ""
#: src/Content/ContactSelector.php:240
#: src/Content/ContactSelector.php:244
msgid "Transsexual"
msgstr ""
#: src/Content/ContactSelector.php:241
#: src/Content/ContactSelector.php:245
msgid "Hermaphrodite"
msgstr ""
#: src/Content/ContactSelector.php:242
#: src/Content/ContactSelector.php:246
msgid "Neuter"
msgstr ""
#: src/Content/ContactSelector.php:243
#: src/Content/ContactSelector.php:247
msgid "Non-specific"
msgstr ""
#: src/Content/ContactSelector.php:244
#: src/Content/ContactSelector.php:248 src/Module/Admin/Federation.php:34
msgid "Other"
msgstr ""
#: src/Content/ContactSelector.php:272
#: src/Content/ContactSelector.php:276
msgid "Males"
msgstr ""
#: src/Content/ContactSelector.php:273
#: src/Content/ContactSelector.php:277
msgid "Females"
msgstr ""
#: src/Content/ContactSelector.php:274
#: src/Content/ContactSelector.php:278
msgid "Gay"
msgstr ""
#: src/Content/ContactSelector.php:275
#: src/Content/ContactSelector.php:279
msgid "Lesbian"
msgstr ""
#: src/Content/ContactSelector.php:276
#: src/Content/ContactSelector.php:280
msgid "No Preference"
msgstr ""
#: src/Content/ContactSelector.php:277
#: src/Content/ContactSelector.php:281
msgid "Bisexual"
msgstr ""
#: src/Content/ContactSelector.php:278
#: src/Content/ContactSelector.php:282
msgid "Autosexual"
msgstr ""
#: src/Content/ContactSelector.php:279
#: src/Content/ContactSelector.php:283
msgid "Abstinent"
msgstr ""
#: src/Content/ContactSelector.php:280
#: src/Content/ContactSelector.php:284
msgid "Virgin"
msgstr ""
#: src/Content/ContactSelector.php:281
#: src/Content/ContactSelector.php:285
msgid "Deviant"
msgstr ""
#: src/Content/ContactSelector.php:282
#: src/Content/ContactSelector.php:286
msgid "Fetish"
msgstr ""
#: src/Content/ContactSelector.php:283
#: src/Content/ContactSelector.php:287
msgid "Oodles"
msgstr ""
#: src/Content/ContactSelector.php:284
#: src/Content/ContactSelector.php:288
msgid "Nonsexual"
msgstr ""
#: src/Content/ContactSelector.php:310
#: src/Content/ContactSelector.php:314
msgid "Single"
msgstr ""
#: src/Content/ContactSelector.php:311
#: src/Content/ContactSelector.php:315
msgid "Lonely"
msgstr ""
#: src/Content/ContactSelector.php:312
#: src/Content/ContactSelector.php:316
msgid "In a relation"
msgstr ""
#: src/Content/ContactSelector.php:313
#: src/Content/ContactSelector.php:317
msgid "Has crush"
msgstr ""
#: src/Content/ContactSelector.php:314
#: src/Content/ContactSelector.php:318
msgid "Infatuated"
msgstr ""
#: src/Content/ContactSelector.php:315
#: src/Content/ContactSelector.php:319
msgid "Dating"
msgstr ""
#: src/Content/ContactSelector.php:316
#: src/Content/ContactSelector.php:320
msgid "Unfaithful"
msgstr ""
#: src/Content/ContactSelector.php:317
#: src/Content/ContactSelector.php:321
msgid "Sex Addict"
msgstr ""
#: src/Content/ContactSelector.php:318 src/Model/User.php:807
#: src/Content/ContactSelector.php:322 src/Model/User.php:805
msgid "Friends"
msgstr ""
#: src/Content/ContactSelector.php:319
#: src/Content/ContactSelector.php:323
msgid "Friends/Benefits"
msgstr ""
#: src/Content/ContactSelector.php:320
#: src/Content/ContactSelector.php:324
msgid "Casual"
msgstr ""
#: src/Content/ContactSelector.php:321
#: src/Content/ContactSelector.php:325
msgid "Engaged"
msgstr ""
#: src/Content/ContactSelector.php:322
#: src/Content/ContactSelector.php:326
msgid "Married"
msgstr ""
#: src/Content/ContactSelector.php:323
#: src/Content/ContactSelector.php:327
msgid "Imaginarily married"
msgstr ""
#: src/Content/ContactSelector.php:324
#: src/Content/ContactSelector.php:328
msgid "Partners"
msgstr ""
#: src/Content/ContactSelector.php:325
#: src/Content/ContactSelector.php:329
msgid "Cohabiting"
msgstr ""
#: src/Content/ContactSelector.php:326
#: src/Content/ContactSelector.php:330
msgid "Common law"
msgstr ""
#: src/Content/ContactSelector.php:327
#: src/Content/ContactSelector.php:331
msgid "Happy"
msgstr ""
#: src/Content/ContactSelector.php:328
#: src/Content/ContactSelector.php:332
msgid "Not looking"
msgstr ""
#: src/Content/ContactSelector.php:329
#: src/Content/ContactSelector.php:333
msgid "Swinger"
msgstr ""
#: src/Content/ContactSelector.php:330
#: src/Content/ContactSelector.php:334
msgid "Betrayed"
msgstr ""
#: src/Content/ContactSelector.php:331
#: src/Content/ContactSelector.php:335
msgid "Separated"
msgstr ""
#: src/Content/ContactSelector.php:332
#: src/Content/ContactSelector.php:336
msgid "Unstable"
msgstr ""
#: src/Content/ContactSelector.php:333
#: src/Content/ContactSelector.php:337
msgid "Divorced"
msgstr ""
#: src/Content/ContactSelector.php:334
#: src/Content/ContactSelector.php:338
msgid "Imaginarily divorced"
msgstr ""
#: src/Content/ContactSelector.php:335
#: src/Content/ContactSelector.php:339
msgid "Widowed"
msgstr ""
#: src/Content/ContactSelector.php:336
#: src/Content/ContactSelector.php:340
msgid "Uncertain"
msgstr ""
#: src/Content/ContactSelector.php:337
#: src/Content/ContactSelector.php:341
msgid "It's complicated"
msgstr ""
#: src/Content/ContactSelector.php:338
#: src/Content/ContactSelector.php:342
msgid "Don't care"
msgstr ""
#: src/Content/ContactSelector.php:339
#: src/Content/ContactSelector.php:343
msgid "Ask me"
msgstr ""
#: src/Content/Widget.php:39
#: src/Content/Widget.php:36
msgid "Add New Contact"
msgstr ""
#: src/Content/Widget.php:40
#: src/Content/Widget.php:37
msgid "Enter address or web location"
msgstr ""
#: src/Content/Widget.php:41
#: src/Content/Widget.php:38
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr ""
#: src/Content/Widget.php:43 src/Module/BaseSearchModule.php:135
#: src/Module/AllFriends.php:91 mod/match.php:102 mod/suggest.php:106
#: src/Content/Widget.php:40 src/Module/BaseSearchModule.php:130
#: src/Module/AllFriends.php:91 mod/match.php:101 mod/suggest.php:105
msgid "Connect"
msgstr ""
#: src/Content/Widget.php:59
#: src/Content/Widget.php:55
#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] ""
msgstr[1] ""
#: src/Content/Widget.php:197 src/Core/ACL.php:283
#: src/Module/Profile/Contacts.php:126 src/Module/Contact.php:792
#: mod/lockview.php:78 mod/lockview.php:113
#: src/Content/Widget.php:193 src/Core/ACL.php:269
#: src/Module/Profile/Contacts.php:126 src/Module/Contact.php:795
#: mod/lockview.php:75 mod/lockview.php:110
msgid "Followers"
msgstr ""
#: src/Content/Widget.php:198 src/Module/Profile/Contacts.php:127
#: src/Module/Contact.php:793
#: src/Content/Widget.php:194 src/Module/Profile/Contacts.php:127
#: src/Module/Contact.php:796
msgid "Following"
msgstr ""
#: src/Content/Widget.php:199 src/Module/Profile/Contacts.php:128
#: src/Module/Contact.php:794
#: src/Content/Widget.php:195 src/Module/Profile/Contacts.php:128
#: src/Module/Contact.php:797
msgid "Mutual friends"
msgstr ""
#: src/Content/Widget.php:204
#: src/Content/Widget.php:200
msgid "Relationships"
msgstr ""
#: src/Content/Widget.php:206 src/Module/Group.php:287
#: src/Module/Contact.php:681
#: src/Content/Widget.php:202 src/Module/Group.php:280
#: src/Module/Contact.php:684
msgid "All Contacts"
msgstr ""
#: src/Content/Widget.php:249
#: src/Content/Widget.php:245
msgid "Protocols"
msgstr ""
#: src/Content/Widget.php:251
#: src/Content/Widget.php:247
msgid "All Protocols"
msgstr ""
#: src/Content/Widget.php:288
#: src/Content/Widget.php:284
msgid "Saved Folders"
msgstr ""
#: src/Content/Widget.php:290 src/Content/Widget.php:329
#: src/Content/Widget.php:286 src/Content/Widget.php:325
msgid "Everything"
msgstr ""
#: src/Content/Widget.php:327
#: src/Content/Widget.php:323
msgid "Categories"
msgstr ""
#: src/Content/Widget.php:404
#: src/Content/Widget.php:400
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
msgstr[0] ""
msgstr[1] ""
#: src/Content/Widget.php:503 src/Content/Feature.php:100
#: src/Content/Widget.php:499 src/Content/Feature.php:99
msgid "Archives"
msgstr ""
#: src/Content/OEmbed.php:254
#: src/Content/OEmbed.php:253
msgid "Embedding disabled"
msgstr ""
#: src/Content/OEmbed.php:377
#: src/Content/OEmbed.php:376
msgid "Embedded content"
msgstr ""
#: src/Content/Feature.php:82
#: src/Content/Feature.php:81
msgid "General Features"
msgstr ""
#: src/Content/Feature.php:84
#: src/Content/Feature.php:83
msgid "Multiple Profiles"
msgstr ""
#: src/Content/Feature.php:84
#: src/Content/Feature.php:83
msgid "Ability to create multiple profiles"
msgstr ""
#: src/Content/Feature.php:85
#: src/Content/Feature.php:84
msgid "Photo Location"
msgstr ""
#: src/Content/Feature.php:85
#: src/Content/Feature.php:84
msgid ""
"Photo metadata is normally stripped. This extracts the location (if present) "
"prior to stripping metadata and links it to a map."
msgstr ""
#: src/Content/Feature.php:86
#: src/Content/Feature.php:85
msgid "Export Public Calendar"
msgstr ""
#: src/Content/Feature.php:86
#: src/Content/Feature.php:85
msgid "Ability for visitors to download the public calendar"
msgstr ""
#: src/Content/Feature.php:87
#: src/Content/Feature.php:86
msgid "Trending Tags"
msgstr ""
#: src/Content/Feature.php:87
#: src/Content/Feature.php:86
msgid ""
"Show a community page widget with a list of the most popular tags in recent "
"public posts."
msgstr ""
#: src/Content/Feature.php:92
#: src/Content/Feature.php:91
msgid "Post Composition Features"
msgstr ""
#: src/Content/Feature.php:93
#: src/Content/Feature.php:92
msgid "Auto-mention Forums"
msgstr ""
#: src/Content/Feature.php:93
#: src/Content/Feature.php:92
msgid ""
"Add/remove mention when a forum page is selected/deselected in ACL window."
msgstr ""
#: src/Content/Feature.php:94
#: src/Content/Feature.php:93
msgid "Explicit Mentions"
msgstr ""
#: src/Content/Feature.php:94
#: src/Content/Feature.php:93
msgid ""
"Add explicit mentions to comment box for manual control over who gets "
"mentioned in replies."
msgstr ""
#: src/Content/Feature.php:99
#: src/Content/Feature.php:98
msgid "Network Sidebar"
msgstr ""
#: src/Content/Feature.php:100
#: src/Content/Feature.php:99
msgid "Ability to select posts by date ranges"
msgstr ""
#: src/Content/Feature.php:101
#: src/Content/Feature.php:100
msgid "Protocol Filter"
msgstr ""
#: src/Content/Feature.php:101
#: src/Content/Feature.php:100
msgid "Enable widget to display Network posts only from selected protocols"
msgstr ""
#: src/Content/Feature.php:106
#: src/Content/Feature.php:105
msgid "Network Tabs"
msgstr ""
#: src/Content/Feature.php:107
#: src/Content/Feature.php:106
msgid "Network New Tab"
msgstr ""
#: src/Content/Feature.php:107
#: src/Content/Feature.php:106
msgid "Enable tab to display only new Network posts (from the last 12 hours)"
msgstr ""
#: src/Content/Feature.php:108
#: src/Content/Feature.php:107
msgid "Network Shared Links Tab"
msgstr ""
#: src/Content/Feature.php:108
#: src/Content/Feature.php:107
msgid "Enable tab to display only Network posts with links in them"
msgstr ""
#: src/Content/Feature.php:113
#: src/Content/Feature.php:112
msgid "Post/Comment Tools"
msgstr ""
#: src/Content/Feature.php:114
#: src/Content/Feature.php:113
msgid "Post Categories"
msgstr ""
#: src/Content/Feature.php:114
#: src/Content/Feature.php:113
msgid "Add categories to your posts"
msgstr ""
#: src/Content/Feature.php:119
#: src/Content/Feature.php:118
msgid "Advanced Profile Settings"
msgstr ""
#: src/Content/Feature.php:120
#: src/Content/Feature.php:119
msgid "List Forums"
msgstr ""
#: src/Content/Feature.php:120
#: src/Content/Feature.php:119
msgid "Show visitors public community forums at the Advanced Profile Page"
msgstr ""
#: src/Content/Feature.php:121
#: src/Content/Feature.php:120
msgid "Tag Cloud"
msgstr ""
#: src/Content/Feature.php:121
#: src/Content/Feature.php:120
msgid "Provide a personal tag cloud on your profile page"
msgstr ""
#: src/Content/Feature.php:122
#: src/Content/Feature.php:121
msgid "Display Membership Date"
msgstr ""
#: src/Content/Feature.php:122
#: src/Content/Feature.php:121
msgid "Display membership date in profile"
msgstr ""
#: src/Content/Nav.php:74
#: src/Content/Nav.php:73
msgid "Nothing new here"
msgstr ""
#: src/Content/Nav.php:78
#: src/Content/Nav.php:77
msgid "Clear notifications"
msgstr ""
#: src/Content/Nav.php:153 src/Module/Login.php:136
#: src/Content/Nav.php:152 src/Module/Security/Login.php:129
msgid "Logout"
msgstr ""
#: src/Content/Nav.php:153
#: src/Content/Nav.php:152
msgid "End this session"
msgstr ""
#: src/Content/Nav.php:155 src/Module/Login.php:137
#: src/Module/Bookmarklet.php:25
#: src/Content/Nav.php:154 src/Module/Security/Login.php:130
#: src/Module/Bookmarklet.php:26
msgid "Login"
msgstr ""
#: src/Content/Nav.php:155
#: src/Content/Nav.php:154
msgid "Sign in"
msgstr ""
#: src/Content/Nav.php:165
#: src/Content/Nav.php:164
msgid "Personal notes"
msgstr ""
#: src/Content/Nav.php:165
#: src/Content/Nav.php:164
msgid "Your personal notes"
msgstr ""
#: src/Content/Nav.php:182 src/Content/Nav.php:244
#: src/Content/Nav.php:181 src/Content/Nav.php:242
msgid "Home"
msgstr ""
#: src/Content/Nav.php:182
#: src/Content/Nav.php:181
msgid "Home Page"
msgstr ""
#: src/Content/Nav.php:186 src/Module/Login.php:97 src/Module/Register.php:130
#: src/Content/Nav.php:185 src/Module/Security/Login.php:90
#: src/Module/Register.php:137
msgid "Register"
msgstr ""
#: src/Content/Nav.php:186
#: src/Content/Nav.php:185
msgid "Create an account"
msgstr ""
#: src/Content/Nav.php:192
#: src/Content/Nav.php:191
msgid "Help and documentation"
msgstr ""
#: src/Content/Nav.php:196
#: src/Content/Nav.php:195
msgid "Apps"
msgstr ""
#: src/Content/Nav.php:196
#: src/Content/Nav.php:195
msgid "Addon applications, utilities, games"
msgstr ""
#: src/Content/Nav.php:200
#: src/Content/Nav.php:199
msgid "Search site content"
msgstr ""
#: src/Content/Nav.php:224
#: src/Content/Nav.php:223
msgid "Community"
msgstr ""
#: src/Content/Nav.php:224
#: src/Content/Nav.php:223
msgid "Conversations on this and other servers"
msgstr ""
#: src/Content/Nav.php:231
#: src/Content/Nav.php:230
msgid "Directory"
msgstr ""
#: src/Content/Nav.php:231
#: src/Content/Nav.php:230
msgid "People directory"
msgstr ""
#: src/Content/Nav.php:233 src/Module/BaseAdminModule.php:75
msgid "Information"
msgstr ""
#: src/Content/Nav.php:233
#: src/Content/Nav.php:232
msgid "Information about this friendica instance"
msgstr ""
#: src/Content/Nav.php:236 src/Module/Tos.php:73
#: src/Module/BaseAdminModule.php:85 src/Module/Admin/Tos.php:43
#: src/Module/Register.php:138
#: src/Content/Nav.php:235 src/Module/Tos.php:72
#: src/Module/BaseAdminModule.php:83 src/Module/Admin/Tos.php:43
#: src/Module/Register.php:145
msgid "Terms of Service"
msgstr ""
#: src/Content/Nav.php:236
#: src/Content/Nav.php:235
msgid "Terms of Service of this Friendica instance"
msgstr ""
#: src/Content/Nav.php:242
msgid "Network Reset"
msgstr ""
#: src/Content/Nav.php:242
msgid "Load Network page with no filters"
msgstr ""
#: src/Content/Nav.php:248
#: src/Content/Nav.php:246
msgid "Introductions"
msgstr ""
#: src/Content/Nav.php:248
#: src/Content/Nav.php:246
msgid "Friend Requests"
msgstr ""
#: src/Content/Nav.php:249 mod/notifications.php:100
#: src/Content/Nav.php:247 mod/notifications.php:72
msgid "Notifications"
msgstr ""
#: src/Content/Nav.php:250
#: src/Content/Nav.php:248
msgid "See all notifications"
msgstr ""
#: src/Content/Nav.php:251 mod/settings.php:873
#: src/Content/Nav.php:249 mod/settings.php:867
msgid "Mark as seen"
msgstr ""
#: src/Content/Nav.php:251
#: src/Content/Nav.php:249
msgid "Mark all system notifications seen"
msgstr ""
#: src/Content/Nav.php:255
#: src/Content/Nav.php:253
msgid "Inbox"
msgstr ""
#: src/Content/Nav.php:256
#: src/Content/Nav.php:254
msgid "Outbox"
msgstr ""
#: src/Content/Nav.php:257 mod/message.php:33 mod/message.php:116
#: src/Content/Nav.php:255 mod/message.php:31 mod/message.php:114
msgid "New Message"
msgstr ""
#: src/Content/Nav.php:260
#: src/Content/Nav.php:258
msgid "Delegation"
msgstr ""
#: src/Content/Nav.php:260
#: src/Content/Nav.php:258
msgid "Manage other pages"
msgstr ""
#: src/Content/Nav.php:266 src/Model/Profile.php:398
#: src/Module/BaseSettingsModule.php:38 mod/settings.php:82
#: src/Content/Nav.php:264 src/Model/Profile.php:397
#: src/Module/BaseSettingsModule.php:38 mod/settings.php:77
msgid "Profiles"
msgstr ""
#: src/Content/Nav.php:266
#: src/Content/Nav.php:264
msgid "Manage/Edit Profiles"
msgstr ""
#: src/Content/Nav.php:274 src/Module/BaseAdminModule.php:114
#: src/Content/Nav.php:272 src/Module/BaseAdminModule.php:112
msgid "Admin"
msgstr ""
#: src/Content/Nav.php:274
#: src/Content/Nav.php:272
msgid "Site setup and configuration"
msgstr ""
#: src/Content/Nav.php:277
#: src/Content/Nav.php:275
msgid "Navigation"
msgstr ""
#: src/Content/Nav.php:277
#: src/Content/Nav.php:275
msgid "Site map"
msgstr ""
@ -2340,29 +5031,29 @@ msgstr ""
msgid "Export calendar as csv"
msgstr ""
#: src/Content/Widget/TrendingTags.php:34
#: src/Content/Widget/TrendingTags.php:32
#, php-format
msgid "Trending Tags (last %d hour)"
msgid_plural "Trending Tags (last %d hours)"
msgstr[0] ""
msgstr[1] ""
#: src/Content/Widget/TrendingTags.php:35
#: src/Content/Widget/TrendingTags.php:33
msgid "More Trending Tags"
msgstr ""
#: src/Content/Widget/ContactBlock.php:58
#: src/Content/Widget/ContactBlock.php:57
msgid "No contacts"
msgstr ""
#: src/Content/Widget/ContactBlock.php:90
#: src/Content/Widget/ContactBlock.php:89
#, php-format
msgid "%d Contact"
msgid_plural "%d Contacts"
msgstr[0] ""
msgstr[1] ""
#: src/Content/Widget/ContactBlock.php:109
#: src/Content/Widget/ContactBlock.php:108
msgid "View Contacts"
msgstr ""
@ -2374,7 +5065,7 @@ msgstr ""
msgid "older"
msgstr ""
#: src/Content/Pager.php:198 mod/match.php:115
#: src/Content/Pager.php:198 mod/match.php:114
msgid "first"
msgstr ""
@ -2382,7 +5073,7 @@ msgstr ""
msgid "prev"
msgstr ""
#: src/Content/Pager.php:258 mod/match.php:120
#: src/Content/Pager.php:258 mod/match.php:119
msgid "next"
msgstr ""
@ -2390,624 +5081,615 @@ msgstr ""
msgid "last"
msgstr ""
#: src/Model/Profile.php:213 src/Model/Profile.php:424
#: src/Model/Profile.php:881
#: src/Model/Profile.php:210 src/Model/Profile.php:423
#: src/Model/Profile.php:880
msgid "Edit profile"
msgstr ""
#: src/Model/Profile.php:398
#: src/Model/Profile.php:397
msgid "Manage/edit profiles"
msgstr ""
#: src/Model/Profile.php:405 src/Model/Profile.php:426 mod/profiles.php:669
#: src/Model/Profile.php:404 src/Model/Profile.php:425 mod/profiles.php:667
msgid "Change profile photo"
msgstr ""
#: src/Model/Profile.php:406 mod/profiles.php:670
#: src/Model/Profile.php:405 mod/profiles.php:668
msgid "Create New Profile"
msgstr ""
#: src/Model/Profile.php:415 mod/profiles.php:659
#: src/Model/Profile.php:414 mod/profiles.php:657
msgid "Profile Image"
msgstr ""
#: src/Model/Profile.php:418 mod/profiles.php:661
#: src/Model/Profile.php:417 mod/profiles.php:659
msgid "visible to everybody"
msgstr ""
#: src/Model/Profile.php:419 mod/profiles.php:567 mod/profiles.php:662
#: src/Model/Profile.php:418 mod/profiles.php:565 mod/profiles.php:660
msgid "Edit visibility"
msgstr ""
#: src/Model/Profile.php:443 src/Model/Event.php:69 src/Model/Event.php:96
#: src/Model/Event.php:438 src/Model/Event.php:934 src/Module/Directory.php:135
#: src/Module/Contact.php:628 mod/events.php:546 mod/notifications.php:276
#: src/Model/Profile.php:442 src/Model/Event.php:67 src/Model/Event.php:94
#: src/Model/Event.php:436 src/Model/Event.php:932 src/Module/Directory.php:135
#: src/Module/Contact.php:627 mod/events.php:539 mod/notifications.php:248
msgid "Location:"
msgstr ""
#: src/Model/Profile.php:446 src/Model/Profile.php:767
#: src/Module/Directory.php:140 mod/notifications.php:282
#: src/Model/Profile.php:445 src/Model/Profile.php:766
#: src/Module/Directory.php:140 mod/notifications.php:254
msgid "Gender:"
msgstr ""
#: src/Model/Profile.php:447 src/Model/Profile.php:791
#: src/Model/Profile.php:446 src/Model/Profile.php:790
#: src/Module/Directory.php:141
msgid "Status:"
msgstr ""
#: src/Model/Profile.php:448 src/Model/Profile.php:808
#: src/Model/Profile.php:447 src/Model/Profile.php:807
#: src/Module/Directory.php:142
msgid "Homepage:"
msgstr ""
#: src/Model/Profile.php:449 src/Model/Profile.php:828
#: src/Module/Directory.php:143 src/Module/Contact.php:632
#: mod/notifications.php:278
#: src/Model/Profile.php:448 src/Model/Profile.php:827
#: src/Module/Directory.php:143 src/Module/Contact.php:631
#: mod/notifications.php:250
msgid "About:"
msgstr ""
#: src/Model/Profile.php:450 src/Module/Contact.php:630
#: src/Model/Profile.php:449 src/Module/Contact.php:629
msgid "XMPP:"
msgstr ""
#: src/Model/Profile.php:542 src/Module/Contact.php:320
#: src/Model/Profile.php:541 src/Module/Contact.php:319
msgid "Unfollow"
msgstr ""
#: src/Model/Profile.php:544
#: src/Model/Profile.php:543
msgid "Atom feed"
msgstr ""
#: src/Model/Profile.php:554 src/Module/Contact.php:316
#: mod/notifications.php:289
#: src/Model/Profile.php:553 src/Module/Contact.php:315
#: mod/notifications.php:261
msgid "Network:"
msgstr ""
#: src/Model/Profile.php:584 src/Model/Profile.php:681
#: src/Model/Profile.php:583 src/Model/Profile.php:680
msgid "g A l F d"
msgstr ""
#: src/Model/Profile.php:585
#: src/Model/Profile.php:584
msgid "F d"
msgstr ""
#: src/Model/Profile.php:647 src/Model/Profile.php:732
#: src/Model/Profile.php:646 src/Model/Profile.php:731
msgid "[today]"
msgstr ""
#: src/Model/Profile.php:657
#: src/Model/Profile.php:656
msgid "Birthday Reminders"
msgstr ""
#: src/Model/Profile.php:658
#: src/Model/Profile.php:657
msgid "Birthdays this week:"
msgstr ""
#: src/Model/Profile.php:719
#: src/Model/Profile.php:718
msgid "[No description]"
msgstr ""
#: src/Model/Profile.php:745
#: src/Model/Profile.php:744
msgid "Event Reminders"
msgstr ""
#: src/Model/Profile.php:746
#: src/Model/Profile.php:745
msgid "Upcoming events the next 7 days:"
msgstr ""
#: src/Model/Profile.php:760 mod/settings.php:1195
#: src/Model/Profile.php:759 mod/settings.php:1189
msgid "Full Name:"
msgstr ""
#: src/Model/Profile.php:763
msgid "Member since:"
msgstr ""
#: src/Model/Profile.php:771
#: src/Model/Profile.php:770
msgid "j F, Y"
msgstr ""
#: src/Model/Profile.php:772
#: src/Model/Profile.php:771
msgid "j F"
msgstr ""
#: src/Model/Profile.php:780 src/Util/Temporal.php:146
#: src/Model/Profile.php:779 src/Util/Temporal.php:145
msgid "Birthday:"
msgstr ""
#: src/Model/Profile.php:787
#: src/Model/Profile.php:786
msgid "Age:"
msgstr ""
#: src/Model/Profile.php:800
#: src/Model/Profile.php:799
#, php-format
msgid "for %1$d %2$s"
msgstr ""
#: src/Model/Profile.php:804 mod/profiles.php:586
#: src/Model/Profile.php:803 mod/profiles.php:584
msgid "Sexual Preference:"
msgstr ""
#: src/Model/Profile.php:812 mod/profiles.php:613
#: src/Model/Profile.php:811 mod/profiles.php:611
msgid "Hometown:"
msgstr ""
#: src/Model/Profile.php:816 src/Module/Contact.php:634
#: mod/notifications.php:280 mod/follow.php:183
#: src/Model/Profile.php:815 src/Module/Contact.php:633
#: mod/notifications.php:252 mod/follow.php:182
msgid "Tags:"
msgstr ""
#: src/Model/Profile.php:820 mod/profiles.php:614
#: src/Model/Profile.php:819 mod/profiles.php:612
msgid "Political Views:"
msgstr ""
#: src/Model/Profile.php:824
#: src/Model/Profile.php:823
msgid "Religion:"
msgstr ""
#: src/Model/Profile.php:832
#: src/Model/Profile.php:831
msgid "Hobbies/Interests:"
msgstr ""
#: src/Model/Profile.php:836 mod/profiles.php:618
#: src/Model/Profile.php:835 mod/profiles.php:616
msgid "Likes:"
msgstr ""
#: src/Model/Profile.php:840 mod/profiles.php:619
#: src/Model/Profile.php:839 mod/profiles.php:617
msgid "Dislikes:"
msgstr ""
#: src/Model/Profile.php:844
#: src/Model/Profile.php:843
msgid "Contact information and Social Networks:"
msgstr ""
#: src/Model/Profile.php:848
#: src/Model/Profile.php:847
msgid "Musical interests:"
msgstr ""
#: src/Model/Profile.php:852
#: src/Model/Profile.php:851
msgid "Books, literature:"
msgstr ""
#: src/Model/Profile.php:856
#: src/Model/Profile.php:855
msgid "Television:"
msgstr ""
#: src/Model/Profile.php:860
#: src/Model/Profile.php:859
msgid "Film/dance/culture/entertainment:"
msgstr ""
#: src/Model/Profile.php:864
#: src/Model/Profile.php:863
msgid "Love/Romance:"
msgstr ""
#: src/Model/Profile.php:868
#: src/Model/Profile.php:867
msgid "Work/employment:"
msgstr ""
#: src/Model/Profile.php:872
#: src/Model/Profile.php:871
msgid "School/education:"
msgstr ""
#: src/Model/Profile.php:877
#: src/Model/Profile.php:876
msgid "Forums:"
msgstr ""
#: src/Model/Profile.php:886 mod/events.php:559
#: src/Model/Profile.php:885 mod/events.php:552
msgid "Basic"
msgstr ""
#: src/Model/Profile.php:887 src/Module/Admin/Site.php:573
#: src/Module/Contact.php:901 mod/events.php:560
#: src/Model/Profile.php:886 src/Module/Admin/Site.php:562
#: src/Module/Contact.php:904 mod/events.php:553
msgid "Advanced"
msgstr ""
#: src/Model/Profile.php:916 src/Module/Contact.php:863 mod/follow.php:195
#: mod/unfollow.php:147
#: src/Model/Profile.php:915 src/Module/Contact.php:866 mod/follow.php:194
#: mod/unfollow.php:146
msgid "Status Messages and Posts"
msgstr ""
#: src/Model/Profile.php:924 src/Module/Contact.php:871
#: src/Model/Profile.php:923 src/Module/Contact.php:874
msgid "Profile Details"
msgstr ""
#: src/Model/Profile.php:932 mod/photos.php:112
#: src/Model/Profile.php:931 mod/photos.php:110
msgid "Photo Albums"
msgstr ""
#: src/Model/Profile.php:971 mod/notes.php:34
#: src/Model/Profile.php:970 mod/notes.php:34
msgid "Personal Notes"
msgstr ""
#: src/Model/Profile.php:974
#: src/Model/Profile.php:973
msgid "Only You Can See This"
msgstr ""
#: src/Model/Profile.php:982 src/Model/Profile.php:985
msgid "Tips for New Members"
msgstr ""
#: src/Model/Profile.php:1180
#: src/Model/Profile.php:1177
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr ""
#: src/Model/Event.php:35 src/Model/Event.php:848
#: src/Model/Event.php:33 src/Model/Event.php:846
#: src/Module/Debug/Localtime.php:17
msgid "l F d, Y \\@ g:i A"
msgstr ""
#: src/Model/Event.php:62 src/Model/Event.php:79 src/Model/Event.php:436
#: src/Model/Event.php:916
#: src/Model/Event.php:60 src/Model/Event.php:77 src/Model/Event.php:434
#: src/Model/Event.php:914
msgid "Starts:"
msgstr ""
#: src/Model/Event.php:65 src/Model/Event.php:85 src/Model/Event.php:437
#: src/Model/Event.php:920
#: src/Model/Event.php:63 src/Model/Event.php:83 src/Model/Event.php:435
#: src/Model/Event.php:918
msgid "Finishes:"
msgstr ""
#: src/Model/Event.php:386
#: src/Model/Event.php:384
msgid "all-day"
msgstr ""
#: src/Model/Event.php:388 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:386 src/Core/L10n.php:369
msgid "Sun"
msgstr ""
#: src/Model/Event.php:389 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:387 src/Core/L10n.php:369
msgid "Mon"
msgstr ""
#: src/Model/Event.php:390 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:388 src/Core/L10n.php:369
msgid "Tue"
msgstr ""
#: src/Model/Event.php:391 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:389 src/Core/L10n.php:369
msgid "Wed"
msgstr ""
#: src/Model/Event.php:392 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:390 src/Core/L10n.php:369
msgid "Thu"
msgstr ""
#: src/Model/Event.php:393 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:391 src/Core/L10n.php:369
msgid "Fri"
msgstr ""
#: src/Model/Event.php:394 src/Core/L10n/L10n.php:424
#: src/Model/Event.php:392 src/Core/L10n.php:369
msgid "Sat"
msgstr ""
#: src/Model/Event.php:396 src/Core/L10n/L10n.php:404 mod/settings.php:936
#: src/Model/Event.php:394 src/Core/L10n.php:349 mod/settings.php:930
msgid "Sunday"
msgstr ""
#: src/Model/Event.php:397 src/Core/L10n/L10n.php:404 mod/settings.php:936
#: src/Model/Event.php:395 src/Core/L10n.php:349 mod/settings.php:930
msgid "Monday"
msgstr ""
#: src/Model/Event.php:398 src/Core/L10n/L10n.php:404
#: src/Model/Event.php:396 src/Core/L10n.php:349
msgid "Tuesday"
msgstr ""
#: src/Model/Event.php:399 src/Core/L10n/L10n.php:404
#: src/Model/Event.php:397 src/Core/L10n.php:349
msgid "Wednesday"
msgstr ""
#: src/Model/Event.php:400 src/Core/L10n/L10n.php:404
#: src/Model/Event.php:398 src/Core/L10n.php:349
msgid "Thursday"
msgstr ""
#: src/Model/Event.php:401 src/Core/L10n/L10n.php:404
#: src/Model/Event.php:399 src/Core/L10n.php:349
msgid "Friday"
msgstr ""
#: src/Model/Event.php:402 src/Core/L10n/L10n.php:404
#: src/Model/Event.php:400 src/Core/L10n.php:349
msgid "Saturday"
msgstr ""
#: src/Model/Event.php:404 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:402 src/Core/L10n.php:373
msgid "Jan"
msgstr ""
#: src/Model/Event.php:405 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:403 src/Core/L10n.php:373
msgid "Feb"
msgstr ""
#: src/Model/Event.php:406 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:404 src/Core/L10n.php:373
msgid "Mar"
msgstr ""
#: src/Model/Event.php:407 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:405 src/Core/L10n.php:373
msgid "Apr"
msgstr ""
#: src/Model/Event.php:408 src/Core/L10n/L10n.php:408
#: src/Core/L10n/L10n.php:428
#: src/Model/Event.php:406 src/Core/L10n.php:353 src/Core/L10n.php:373
msgid "May"
msgstr ""
#: src/Model/Event.php:409 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:407 src/Core/L10n.php:373
msgid "Jun"
msgstr ""
#: src/Model/Event.php:410 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:408 src/Core/L10n.php:373
msgid "Jul"
msgstr ""
#: src/Model/Event.php:411 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:409 src/Core/L10n.php:373
msgid "Aug"
msgstr ""
#: src/Model/Event.php:412
#: src/Model/Event.php:410
msgid "Sept"
msgstr ""
#: src/Model/Event.php:413 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:411 src/Core/L10n.php:373
msgid "Oct"
msgstr ""
#: src/Model/Event.php:414 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:412 src/Core/L10n.php:373
msgid "Nov"
msgstr ""
#: src/Model/Event.php:415 src/Core/L10n/L10n.php:428
#: src/Model/Event.php:413 src/Core/L10n.php:373
msgid "Dec"
msgstr ""
#: src/Model/Event.php:417 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:415 src/Core/L10n.php:353
msgid "January"
msgstr ""
#: src/Model/Event.php:418 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:416 src/Core/L10n.php:353
msgid "February"
msgstr ""
#: src/Model/Event.php:419 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:417 src/Core/L10n.php:353
msgid "March"
msgstr ""
#: src/Model/Event.php:420 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:418 src/Core/L10n.php:353
msgid "April"
msgstr ""
#: src/Model/Event.php:421 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:419 src/Core/L10n.php:353
msgid "June"
msgstr ""
#: src/Model/Event.php:422 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:420 src/Core/L10n.php:353
msgid "July"
msgstr ""
#: src/Model/Event.php:423 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:421 src/Core/L10n.php:353
msgid "August"
msgstr ""
#: src/Model/Event.php:424 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:422 src/Core/L10n.php:353
msgid "September"
msgstr ""
#: src/Model/Event.php:425 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:423 src/Core/L10n.php:353
msgid "October"
msgstr ""
#: src/Model/Event.php:426 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:424 src/Core/L10n.php:353
msgid "November"
msgstr ""
#: src/Model/Event.php:427 src/Core/L10n/L10n.php:408
#: src/Model/Event.php:425 src/Core/L10n.php:353
msgid "December"
msgstr ""
#: src/Model/Event.php:429 mod/events.php:405 mod/cal.php:267
#: src/Model/Event.php:427 mod/events.php:402 mod/cal.php:264
msgid "today"
msgstr ""
#: src/Model/Event.php:430 src/Util/Temporal.php:313 mod/events.php:406
#: mod/cal.php:268
#: src/Model/Event.php:428 src/Util/Temporal.php:312 mod/events.php:403
#: mod/cal.php:265
msgid "month"
msgstr ""
#: src/Model/Event.php:431 src/Util/Temporal.php:314 mod/events.php:407
#: mod/cal.php:269
#: src/Model/Event.php:429 src/Util/Temporal.php:313 mod/events.php:404
#: mod/cal.php:266
msgid "week"
msgstr ""
#: src/Model/Event.php:432 src/Util/Temporal.php:315 mod/events.php:408
#: mod/cal.php:270
#: src/Model/Event.php:430 src/Util/Temporal.php:314 mod/events.php:405
#: mod/cal.php:267
msgid "day"
msgstr ""
#: src/Model/Event.php:434
#: src/Model/Event.php:432
msgid "No events to display"
msgstr ""
#: src/Model/Event.php:562
#: src/Model/Event.php:560
msgid "l, F j"
msgstr ""
#: src/Model/Event.php:593
#: src/Model/Event.php:591
msgid "Edit event"
msgstr ""
#: src/Model/Event.php:594
#: src/Model/Event.php:592
msgid "Duplicate event"
msgstr ""
#: src/Model/Event.php:595
#: src/Model/Event.php:593
msgid "Delete event"
msgstr ""
#: src/Model/Event.php:627 src/Model/Item.php:3656 src/Model/Item.php:3663
#: src/Model/Event.php:625 src/Model/Item.php:3656 src/Model/Item.php:3663
msgid "link to source"
msgstr ""
#: src/Model/Event.php:849
#: src/Model/Event.php:847
msgid "D g:i A"
msgstr ""
#: src/Model/Event.php:850
#: src/Model/Event.php:848
msgid "g:i A"
msgstr ""
#: src/Model/Event.php:935 src/Model/Event.php:937
#: src/Model/Event.php:933 src/Model/Event.php:935
msgid "Show map"
msgstr ""
#: src/Model/Event.php:936
#: src/Model/Event.php:934
msgid "Hide map"
msgstr ""
#: src/Model/Event.php:1028
#: src/Model/Event.php:1026
#, php-format
msgid "%s's birthday"
msgstr ""
#: src/Model/Event.php:1029
#: src/Model/Event.php:1027
#, php-format
msgid "Happy Birthday %s"
msgstr ""
#: src/Model/Photo.php:560 src/Model/Photo.php:569 mod/fbrowser.php:52
#: mod/fbrowser.php:76 mod/photos.php:181 mod/photos.php:938
#: mod/photos.php:1055 mod/photos.php:1072 mod/photos.php:1554
#: mod/photos.php:1569
#: src/Model/Photo.php:553 src/Model/Photo.php:562 mod/fbrowser.php:51
#: mod/fbrowser.php:75 mod/photos.php:179 mod/photos.php:934
#: mod/photos.php:1047 mod/photos.php:1064 mod/photos.php:1545
#: mod/photos.php:1560
msgid "Contact Photos"
msgstr ""
#: src/Model/User.php:357
#: src/Model/User.php:356
msgid "Login failed"
msgstr ""
#: src/Model/User.php:389
#: src/Model/User.php:388
msgid "Not enough information to authenticate"
msgstr ""
#: src/Model/User.php:415 src/Console/NewPassword.php:88 mod/cal.php:284
#: src/Model/User.php:414 src/Console/NewPassword.php:88 mod/cal.php:281
msgid "User not found"
msgstr ""
#: src/Model/User.php:483
#: src/Model/User.php:482
msgid "Password can't be empty"
msgstr ""
#: src/Model/User.php:502
#: src/Model/User.php:501
msgid "Empty passwords are not allowed."
msgstr ""
#: src/Model/User.php:506
#: src/Model/User.php:505
msgid ""
"The new password has been exposed in a public data dump, please choose "
"another."
msgstr ""
#: src/Model/User.php:512
#: src/Model/User.php:511
msgid ""
"The password can't contain accentuated letters, white spaces or colons (:)"
msgstr ""
#: src/Model/User.php:612
#: src/Model/User.php:610
msgid "Passwords do not match. Password unchanged."
msgstr ""
#: src/Model/User.php:619
#: src/Model/User.php:617
msgid "An invitation is required."
msgstr ""
#: src/Model/User.php:623
#: src/Model/User.php:621
msgid "Invitation could not be verified."
msgstr ""
#: src/Model/User.php:631
#: src/Model/User.php:629
msgid "Invalid OpenID url"
msgstr ""
#: src/Model/User.php:644 src/Core/Authentication.php:190
#: src/Model/User.php:642 src/App/Authentication.php:209
msgid ""
"We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID."
msgstr ""
#: src/Model/User.php:644 src/Core/Authentication.php:190
#: src/Model/User.php:642 src/App/Authentication.php:209
msgid "The error message was:"
msgstr ""
#: src/Model/User.php:650
#: src/Model/User.php:648
msgid "Please enter the required information."
msgstr ""
#: src/Model/User.php:664
#: src/Model/User.php:662
#, php-format
msgid ""
"system.username_min_length (%s) and system.username_max_length (%s) are "
"excluding each other, swapping values."
msgstr ""
#: src/Model/User.php:671
#: src/Model/User.php:669
#, php-format
msgid "Username should be at least %s character."
msgid_plural "Username should be at least %s characters."
msgstr[0] ""
msgstr[1] ""
#: src/Model/User.php:675
#: src/Model/User.php:673
#, php-format
msgid "Username should be at most %s character."
msgid_plural "Username should be at most %s characters."
msgstr[0] ""
msgstr[1] ""
#: src/Model/User.php:683
#: src/Model/User.php:681
msgid "That doesn't appear to be your full (First Last) name."
msgstr ""
#: src/Model/User.php:688
#: src/Model/User.php:686
msgid "Your email domain is not among those allowed on this site."
msgstr ""
#: src/Model/User.php:692
#: src/Model/User.php:690
msgid "Not a valid email address."
msgstr ""
#: src/Model/User.php:695
#: src/Model/User.php:693
msgid "The nickname was blocked from registration by the nodes admin."
msgstr ""
#: src/Model/User.php:699 src/Model/User.php:707
#: src/Model/User.php:697 src/Model/User.php:705
msgid "Cannot use that email."
msgstr ""
#: src/Model/User.php:714
#: src/Model/User.php:712
msgid "Your nickname can only contain a-z, 0-9 and _."
msgstr ""
#: src/Model/User.php:722 src/Model/User.php:779
#: src/Model/User.php:720 src/Model/User.php:777
msgid "Nickname is already registered. Please choose another."
msgstr ""
#: src/Model/User.php:732
#: src/Model/User.php:730
msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr ""
#: src/Model/User.php:766 src/Model/User.php:770
#: src/Model/User.php:764 src/Model/User.php:768
msgid "An error occurred during registration. Please try again."
msgstr ""
#: src/Model/User.php:795
#: src/Model/User.php:793
msgid "An error occurred creating your default profile. Please try again."
msgstr ""
#: src/Model/User.php:802
#: src/Model/User.php:800
msgid "An error occurred creating your self contact. Please try again."
msgstr ""
#: src/Model/User.php:811
#: src/Model/User.php:809
msgid ""
"An error occurred creating your default contact group. Please try again."
msgstr ""
#: src/Model/User.php:888
#: src/Model/User.php:886
#, php-format
msgid ""
"\n"
@ -3023,7 +5705,7 @@ msgid ""
"\t\t"
msgstr ""
#: src/Model/User.php:909
#: src/Model/User.php:907
#, php-format
msgid "Registration at %s"
msgstr ""
@ -3076,159 +5758,159 @@ msgid ""
"\t\t\tThank you and welcome to %2$s."
msgstr ""
#: src/Model/User.php:976 src/Module/Admin/Users.php:88
#: src/Model/User.php:976 src/Module/Admin/Users.php:86
#, php-format
msgid "Registration details for %s"
msgstr ""
#: src/Model/Mail.php:114 src/Model/Mail.php:251
#: src/Model/Mail.php:112 src/Model/Mail.php:247
msgid "[no subject]"
msgstr ""
#: src/Model/Group.php:77
#: src/Model/Group.php:76
msgid ""
"A deleted group with this name was revived. Existing item permissions "
"<strong>may</strong> apply to this group and any future members. If this is "
"not what you intended, please create another group with a different name."
msgstr ""
#: src/Model/Group.php:426
#: src/Model/Group.php:425
msgid "Default privacy group for new contacts"
msgstr ""
#: src/Model/Group.php:458
#: src/Model/Group.php:457
msgid "Everybody"
msgstr ""
#: src/Model/Group.php:477
#: src/Model/Group.php:476
msgid "edit"
msgstr ""
#: src/Model/Group.php:502
#: src/Model/Group.php:501
msgid "add"
msgstr ""
#: src/Model/Group.php:503 src/Module/Welcome.php:57 src/Module/Contact.php:729
#: src/Model/Group.php:502 src/Module/Welcome.php:57 src/Module/Contact.php:732
msgid "Groups"
msgstr ""
#: src/Model/Group.php:507
#: src/Model/Group.php:506
msgid "Edit group"
msgstr ""
#: src/Model/Group.php:508 src/Module/Group.php:186
#: src/Model/Group.php:507 src/Module/Group.php:179
msgid "Contacts not in any group"
msgstr ""
#: src/Model/Group.php:510
#: src/Model/Group.php:509
msgid "Create a new group"
msgstr ""
#: src/Model/Group.php:511 src/Module/Group.php:171 src/Module/Group.php:194
#: src/Module/Group.php:271
#: src/Model/Group.php:510 src/Module/Group.php:164 src/Module/Group.php:187
#: src/Module/Group.php:264
msgid "Group Name: "
msgstr ""
#: src/Model/Group.php:512
#: src/Model/Group.php:511
msgid "Edit groups"
msgstr ""
#: src/Model/FileTag.php:265
#: src/Model/FileTag.php:264
msgid "Item filed"
msgstr ""
#: src/Model/Contact.php:1251 src/Model/Contact.php:1264
#: src/Model/Contact.php:1275 src/Model/Contact.php:1288
msgid "UnFollow"
msgstr ""
#: src/Model/Contact.php:1260
#: src/Model/Contact.php:1284
msgid "Drop Contact"
msgstr ""
#: src/Model/Contact.php:1270 src/Module/Admin/Users.php:286
#: mod/notifications.php:198 mod/notifications.php:292
#: src/Model/Contact.php:1294 src/Module/Admin/Users.php:284
#: mod/notifications.php:170 mod/notifications.php:264
msgid "Approve"
msgstr ""
#: src/Model/Contact.php:1818
#: src/Model/Contact.php:1853
msgid "Organisation"
msgstr ""
#: src/Model/Contact.php:1822
#: src/Model/Contact.php:1857
msgid "News"
msgstr ""
#: src/Model/Contact.php:1826
#: src/Model/Contact.php:1861
msgid "Forum"
msgstr ""
#: src/Model/Contact.php:2216 mod/dfrn_request.php:342
#: src/Model/Contact.php:2265 mod/dfrn_request.php:343
msgid "Disallowed profile URL."
msgstr ""
#: src/Model/Contact.php:2221 src/Module/Friendica.php:59
#: mod/dfrn_request.php:348
#: src/Model/Contact.php:2270 src/Module/Friendica.php:58
#: mod/dfrn_request.php:349
msgid "Blocked domain"
msgstr ""
#: src/Model/Contact.php:2226
#: src/Model/Contact.php:2275
msgid "Connect URL missing."
msgstr ""
#: src/Model/Contact.php:2235
#: src/Model/Contact.php:2284
msgid ""
"The contact could not be added. Please check the relevant network "
"credentials in your Settings -> Social Networks page."
msgstr ""
#: src/Model/Contact.php:2276
#: src/Model/Contact.php:2325
msgid ""
"This site is not configured to allow communications with other networks."
msgstr ""
#: src/Model/Contact.php:2277 src/Model/Contact.php:2290
#: src/Model/Contact.php:2326 src/Model/Contact.php:2339
msgid "No compatible communication protocols or feeds were discovered."
msgstr ""
#: src/Model/Contact.php:2288
#: src/Model/Contact.php:2337
msgid "The profile address specified does not provide adequate information."
msgstr ""
#: src/Model/Contact.php:2293
#: src/Model/Contact.php:2342
msgid "An author or name was not found."
msgstr ""
#: src/Model/Contact.php:2296
#: src/Model/Contact.php:2345
msgid "No browser URL could be matched to this address."
msgstr ""
#: src/Model/Contact.php:2299
#: src/Model/Contact.php:2348
msgid ""
"Unable to match @-style Identity Address with a known protocol or email "
"contact."
msgstr ""
#: src/Model/Contact.php:2300
#: src/Model/Contact.php:2349
msgid "Use mailto: in front of address to force email check."
msgstr ""
#: src/Model/Contact.php:2306
#: src/Model/Contact.php:2355
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr ""
#: src/Model/Contact.php:2311
#: src/Model/Contact.php:2360
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr ""
#: src/Model/Contact.php:2372
#: src/Model/Contact.php:2421
msgid "Unable to retrieve contact information."
msgstr ""
#: src/Model/Contact.php:2593 mod/dfrn_request.php:562 mod/dfrn_confirm.php:539
#: src/Model/Contact.php:2642 mod/dfrn_request.php:563 mod/dfrn_confirm.php:538
msgid "[Name Withheld]"
msgstr ""
@ -3245,7 +5927,7 @@ msgstr ""
msgid "Content warning: %s"
msgstr ""
#: src/Model/Item.php:3586 mod/videos.php:238
#: src/Model/Item.php:3586 mod/videos.php:235
msgid "View Video"
msgstr ""
@ -3261,39 +5943,39 @@ msgstr ""
msgid "view on separate page"
msgstr ""
#: src/Model/Storage/Database.php:36
#: src/Model/Storage/Database.php:59
#, php-format
msgid "Database storage failed to update %s"
msgstr ""
#: src/Model/Storage/Database.php:43
#: src/Model/Storage/Database.php:67
msgid "Database storage failed to insert data"
msgstr ""
#: src/Model/Storage/Filesystem.php:63
#: src/Model/Storage/Filesystem.php:85
#, php-format
msgid ""
"Filesystem storage failed to create \"%s\". Check you write permissions."
msgstr ""
#: src/Model/Storage/Filesystem.php:105
#: src/Model/Storage/Filesystem.php:133
#, php-format
msgid ""
"Filesystem storage failed to save data to \"%s\". Check your write "
"permissions"
msgstr ""
#: src/Model/Storage/Filesystem.php:126
#: src/Model/Storage/Filesystem.php:161
msgid "Storage base path"
msgstr ""
#: src/Model/Storage/Filesystem.php:128
#: src/Model/Storage/Filesystem.php:163
msgid ""
"Folder where uploaded files are saved. For maximum security, This should be "
"a path outside web server folder tree"
msgstr ""
#: src/Model/Storage/Filesystem.php:138
#: src/Model/Storage/Filesystem.php:176
msgid "Enter a valid existing folder"
msgstr ""
@ -3349,41 +6031,41 @@ msgstr ""
msgid "New Follower"
msgstr ""
#: src/Protocol/OStatus.php:1277 src/Module/Profile.php:117
#: src/Module/Profile.php:120
#: src/Protocol/OStatus.php:1272 src/Module/Profile.php:116
#: src/Module/Profile.php:119
#, php-format
msgid "%s's timeline"
msgstr ""
#: src/Protocol/OStatus.php:1281 src/Module/Profile.php:118
#: src/Protocol/OStatus.php:1276 src/Module/Profile.php:117
#, php-format
msgid "%s's posts"
msgstr ""
#: src/Protocol/OStatus.php:1284 src/Module/Profile.php:119
#: src/Protocol/OStatus.php:1279 src/Module/Profile.php:118
#, php-format
msgid "%s's comments"
msgstr ""
#: src/Protocol/OStatus.php:1839
#: src/Protocol/OStatus.php:1834
#, php-format
msgid "%s is now following %s."
msgstr ""
#: src/Protocol/OStatus.php:1840
#: src/Protocol/OStatus.php:1835
msgid "following"
msgstr ""
#: src/Protocol/OStatus.php:1843
#: src/Protocol/OStatus.php:1838
#, php-format
msgid "%s stopped following %s."
msgstr ""
#: src/Protocol/OStatus.php:1844
#: src/Protocol/OStatus.php:1839
msgid "stopped following"
msgstr ""
#: src/Protocol/Diaspora.php:3585
#: src/Protocol/Diaspora.php:3576
msgid "Attachments:"
msgstr ""
@ -3392,12 +6074,64 @@ msgstr ""
msgid "Legacy module file not found: %s"
msgstr ""
#: src/Core/Update.php:193
#: src/Core/L10n.php:373
msgid "Sep"
msgstr ""
#: src/Core/L10n.php:392
msgid "poke"
msgstr ""
#: src/Core/L10n.php:392
msgid "poked"
msgstr ""
#: src/Core/L10n.php:393
msgid "ping"
msgstr ""
#: src/Core/L10n.php:393
msgid "pinged"
msgstr ""
#: src/Core/L10n.php:394
msgid "prod"
msgstr ""
#: src/Core/L10n.php:394
msgid "prodded"
msgstr ""
#: src/Core/L10n.php:395
msgid "slap"
msgstr ""
#: src/Core/L10n.php:395
msgid "slapped"
msgstr ""
#: src/Core/L10n.php:396
msgid "finger"
msgstr ""
#: src/Core/L10n.php:396
msgid "fingered"
msgstr ""
#: src/Core/L10n.php:397
msgid "rebuff"
msgstr ""
#: src/Core/L10n.php:397
msgid "rebuffed"
msgstr ""
#: src/Core/Update.php:194
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
#: src/Core/Update.php:257
#: src/Core/Update.php:258
#, php-format
msgid ""
"\n"
@ -3409,14 +6143,14 @@ msgid ""
"might be invalid."
msgstr ""
#: src/Core/Update.php:263
#: src/Core/Update.php:264
#, php-format
msgid ""
"The error message is\n"
"[pre]%s[/pre]"
msgstr ""
#: src/Core/Update.php:269 src/Core/Update.php:308
#: src/Core/Update.php:270 src/Core/Update.php:308
msgid "[Friendica Notify] Database update"
msgstr ""
@ -3427,135 +6161,56 @@ msgid ""
"\t\t\t\t\tThe friendica database was successfully updated from %s to %s."
msgstr ""
#: src/Core/L10n/L10n.php:428
msgid "Sep"
msgstr ""
#: src/Core/L10n/L10n.php:447
msgid "poke"
msgstr ""
#: src/Core/L10n/L10n.php:447
msgid "poked"
msgstr ""
#: src/Core/L10n/L10n.php:448
msgid "ping"
msgstr ""
#: src/Core/L10n/L10n.php:448
msgid "pinged"
msgstr ""
#: src/Core/L10n/L10n.php:449
msgid "prod"
msgstr ""
#: src/Core/L10n/L10n.php:449
msgid "prodded"
msgstr ""
#: src/Core/L10n/L10n.php:450
msgid "slap"
msgstr ""
#: src/Core/L10n/L10n.php:450
msgid "slapped"
msgstr ""
#: src/Core/L10n/L10n.php:451
msgid "finger"
msgstr ""
#: src/Core/L10n/L10n.php:451
msgid "fingered"
msgstr ""
#: src/Core/L10n/L10n.php:452
msgid "rebuff"
msgstr ""
#: src/Core/L10n/L10n.php:452
msgid "rebuffed"
msgstr ""
#: src/Core/Authentication.php:176 src/Core/Authentication.php:228
#: mod/openid.php:79
msgid "Login failed."
msgstr ""
#: src/Core/Authentication.php:239
msgid "Login failed. Please check your credentials."
msgstr ""
#: src/Core/Authentication.php:355
#, php-format
msgid "Welcome %s"
msgstr ""
#: src/Core/Authentication.php:356
msgid "Please upload a profile photo."
msgstr ""
#: src/Core/Authentication.php:359
#, php-format
msgid "Welcome back %s"
msgstr ""
#: src/Core/ACL.php:290 mod/lockview.php:84 mod/lockview.php:119
#: src/Core/ACL.php:276 mod/lockview.php:81 mod/lockview.php:116
msgid "Mutuals"
msgstr ""
#: src/Core/ACL.php:376
#: src/Core/ACL.php:366
msgid "Post to Email"
msgstr ""
#: src/Core/ACL.php:394
msgid "Public"
msgstr ""
#: src/Core/ACL.php:395
#: src/Core/ACL.php:385
msgid ""
"This content will be shown to all your followers and can be seen in the "
"community pages and by anyone with its link."
msgstr ""
#: src/Core/ACL.php:396
#: src/Core/ACL.php:386
msgid "Limited/Private"
msgstr ""
#: src/Core/ACL.php:397
#: src/Core/ACL.php:387
msgid ""
"This content will be shown only to the people in the first box, to the "
"exception of the people mentioned in the second box. It won't appear "
"anywhere public."
msgstr ""
#: src/Core/ACL.php:398
#: src/Core/ACL.php:388
msgid "Show to:"
msgstr ""
#: src/Core/ACL.php:399
#: src/Core/ACL.php:389
msgid "Except to:"
msgstr ""
#: src/Core/ACL.php:400 mod/editpost.php:96
#: src/Core/ACL.php:390 mod/editpost.php:96
msgid "CC: email addresses"
msgstr ""
#: src/Core/ACL.php:401 mod/editpost.php:103
#: src/Core/ACL.php:391 mod/editpost.php:103
msgid "Example: bob@example.com, mary@example.com"
msgstr ""
#: src/Core/ACL.php:402
#: src/Core/ACL.php:392
msgid "Connectors"
msgstr ""
#: src/Core/ACL.php:403
#: src/Core/ACL.php:393
msgid "Hide your profile details from unknown viewers?"
msgstr ""
#: src/Core/ACL.php:403
#: src/Core/ACL.php:393
#, php-format
msgid "Connectors disabled, since \"%s\" is enabled."
msgstr ""
@ -3605,8 +6260,8 @@ msgid ""
"or mysql."
msgstr ""
#: src/Core/Installer.php:182 src/Module/Install.php:173
#: src/Module/Install.php:329
#: src/Core/Installer.php:182 src/Module/Install.php:172
#: src/Module/Install.php:326
msgid "Please see the file \"INSTALL.txt\"."
msgstr ""
@ -3851,8 +6506,8 @@ msgstr ""
msgid "ImageMagick PHP extension is installed"
msgstr ""
#: src/Core/Installer.php:582 tests/src/Core/InstallerTest.php:366
#: tests/src/Core/InstallerTest.php:389
#: src/Core/Installer.php:582 tests/src/Core/InstallerTest.php:367
#: tests/src/Core/InstallerTest.php:390
msgid "ImageMagick supports GIF"
msgstr ""
@ -3864,87 +6519,68 @@ msgstr ""
msgid "Could not connect to database."
msgstr ""
#: src/Module/Directory.php:31 src/Module/Debug/WebFinger.php:19
#: src/Module/Debug/Probe.php:20 src/Module/Search/Index.php:31
#: src/Module/Search/Index.php:36 mod/community.php:25 mod/display.php:169
#: mod/dfrn_request.php:599 mod/photos.php:841 mod/videos.php:115
msgid "Public access denied."
msgstr ""
#: src/Module/Directory.php:59
msgid "No entries (some entries may be hidden)."
msgstr ""
#: src/Module/Directory.php:78
msgid "Find on this site"
msgstr ""
#: src/Module/Directory.php:80
msgid "Results for:"
msgstr ""
#: src/Module/Directory.php:82
msgid "Site Directory"
msgstr ""
#: src/Module/Special/HTTPException.php:32
#: src/Module/Special/HTTPException.php:30
msgid "Bad Request"
msgstr ""
#: src/Module/Special/HTTPException.php:33
#: src/Module/Special/HTTPException.php:31
msgid "Unauthorized"
msgstr ""
#: src/Module/Special/HTTPException.php:34
#: src/Module/Special/HTTPException.php:32
msgid "Forbidden"
msgstr ""
#: src/Module/Special/HTTPException.php:35
#: src/Module/Special/HTTPException.php:33
msgid "Not Found"
msgstr ""
#: src/Module/Special/HTTPException.php:36
#: src/Module/Special/HTTPException.php:34
msgid "Internal Server Error"
msgstr ""
#: src/Module/Special/HTTPException.php:37
#: src/Module/Special/HTTPException.php:35
msgid "Service Unavailable"
msgstr ""
#: src/Module/Special/HTTPException.php:44
#: src/Module/Special/HTTPException.php:42
msgid ""
"The server cannot or will not process the request due to an apparent client "
"error."
msgstr ""
#: src/Module/Special/HTTPException.php:45
#: src/Module/Special/HTTPException.php:43
msgid "Authentication is required and has failed or has not yet been provided."
msgstr ""
#: src/Module/Special/HTTPException.php:46
#: src/Module/Special/HTTPException.php:44
msgid ""
"The request was valid, but the server is refusing action. The user might not "
"have the necessary permissions for a resource, or may need an account."
msgstr ""
#: src/Module/Special/HTTPException.php:47
#: src/Module/Special/HTTPException.php:45
msgid ""
"The requested resource could not be found but may be available in the future."
msgstr ""
#: src/Module/Special/HTTPException.php:48
#: src/Module/Special/HTTPException.php:46
msgid ""
"An unexpected condition was encountered and no more specific message is "
"suitable."
msgstr ""
#: src/Module/Special/HTTPException.php:49
#: src/Module/Special/HTTPException.php:47
msgid ""
"The server is currently unavailable (because it is overloaded or down for "
"maintenance). Please try again later."
msgstr ""
#: src/Module/Special/HTTPException.php:55
#: src/Module/Special/HTTPException.php:53
msgid "Go back"
msgstr ""
@ -3952,21 +6588,21 @@ msgstr ""
msgid "Help:"
msgstr ""
#: src/Module/Delegation.php:130
#: src/Module/Delegation.php:127
msgid "Manage Identities and/or Pages"
msgstr ""
#: src/Module/Delegation.php:131
#: src/Module/Delegation.php:128
msgid ""
"Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions"
msgstr ""
#: src/Module/Delegation.php:132
#: src/Module/Delegation.php:129
msgid "Select an identity to manage: "
msgstr ""
#: src/Module/Tos.php:35 src/Module/Tos.php:77
#: src/Module/Tos.php:34 src/Module/Tos.php:76
msgid ""
"At the time of registration, and for providing communications between the "
"user account and their contacts, the user has to provide a display name (pen "
@ -3979,14 +6615,14 @@ msgid ""
"settings, it is not necessary for communication."
msgstr ""
#: src/Module/Tos.php:36 src/Module/Tos.php:78
#: src/Module/Tos.php:35 src/Module/Tos.php:77
msgid ""
"This data is required for communication and is passed on to the nodes of the "
"communication partners and is stored there. Users can enter additional "
"private data that may be transmitted to the communication partners accounts."
msgstr ""
#: src/Module/Tos.php:37 src/Module/Tos.php:79
#: src/Module/Tos.php:36 src/Module/Tos.php:78
#, php-format
msgid ""
"At any point in time a logged in user can export their account data from the "
@ -3996,170 +6632,170 @@ msgid ""
"data will also be requested from the nodes of the communication partners."
msgstr ""
#: src/Module/Tos.php:40 src/Module/Tos.php:76
#: src/Module/Tos.php:39 src/Module/Tos.php:75
msgid "Privacy Statement"
msgstr ""
#: src/Module/Install.php:159
#: src/Module/Install.php:158
msgid "Friendica Communications Server - Setup"
msgstr ""
#: src/Module/Install.php:170
#: src/Module/Install.php:169
msgid "System check"
msgstr ""
#: src/Module/Install.php:174 mod/events.php:400 mod/cal.php:264
#: src/Module/Install.php:173 mod/events.php:397 mod/cal.php:261
msgid "Next"
msgstr ""
#: src/Module/Install.php:175
#: src/Module/Install.php:174
msgid "Check again"
msgstr ""
#: src/Module/Install.php:182 src/Module/Admin/Site.php:514
#: src/Module/Install.php:181 src/Module/Admin/Site.php:507
msgid "No SSL policy, links will track page SSL state"
msgstr ""
#: src/Module/Install.php:183 src/Module/Admin/Site.php:515
#: src/Module/Install.php:182 src/Module/Admin/Site.php:508
msgid "Force all links to use SSL"
msgstr ""
#: src/Module/Install.php:184 src/Module/Admin/Site.php:516
#: src/Module/Install.php:183 src/Module/Admin/Site.php:509
msgid "Self-signed certificate, use SSL for local links only (discouraged)"
msgstr ""
#: src/Module/Install.php:190
#: src/Module/Install.php:189
msgid "Base settings"
msgstr ""
#: src/Module/Install.php:192 src/Module/Admin/Site.php:592
#: src/Module/Install.php:191 src/Module/Admin/Site.php:581
msgid "SSL link policy"
msgstr ""
#: src/Module/Install.php:194 src/Module/Admin/Site.php:592
#: src/Module/Install.php:193 src/Module/Admin/Site.php:581
msgid "Determines whether generated links should be forced to use SSL"
msgstr ""
#: src/Module/Install.php:197
#: src/Module/Install.php:196
msgid "Host name"
msgstr ""
#: src/Module/Install.php:199
#: src/Module/Install.php:198
msgid ""
"Overwrite this field in case the determinated hostname isn't right, "
"otherweise leave it as is."
msgstr ""
#: src/Module/Install.php:202
#: src/Module/Install.php:201
msgid "Base path to installation"
msgstr ""
#: src/Module/Install.php:204
#: src/Module/Install.php:203
msgid ""
"If the system cannot detect the correct path to your installation, enter the "
"correct path here. This setting should only be set if you are using a "
"restricted system and symbolic links to your webroot."
msgstr ""
#: src/Module/Install.php:207
#: src/Module/Install.php:206
msgid "Sub path of the URL"
msgstr ""
#: src/Module/Install.php:209
#: src/Module/Install.php:208
msgid ""
"Overwrite this field in case the sub path determination isn't right, "
"otherwise leave it as is. Leaving this field blank means the installation is "
"at the base URL without sub path."
msgstr ""
#: src/Module/Install.php:220
#: src/Module/Install.php:219
msgid "Database connection"
msgstr ""
#: src/Module/Install.php:221
#: src/Module/Install.php:220
msgid ""
"In order to install Friendica we need to know how to connect to your "
"database."
msgstr ""
#: src/Module/Install.php:222
#: src/Module/Install.php:221
msgid ""
"Please contact your hosting provider or site administrator if you have "
"questions about these settings."
msgstr ""
#: src/Module/Install.php:223
#: src/Module/Install.php:222
msgid ""
"The database you specify below should already exist. If it does not, please "
"create it before continuing."
msgstr ""
#: src/Module/Install.php:230
#: src/Module/Install.php:229
msgid "Database Server Name"
msgstr ""
#: src/Module/Install.php:235
#: src/Module/Install.php:234
msgid "Database Login Name"
msgstr ""
#: src/Module/Install.php:241
#: src/Module/Install.php:240
msgid "Database Login Password"
msgstr ""
#: src/Module/Install.php:243
#: src/Module/Install.php:242
msgid "For security reasons the password must not be empty"
msgstr ""
#: src/Module/Install.php:246
#: src/Module/Install.php:245
msgid "Database Name"
msgstr ""
#: src/Module/Install.php:250 src/Module/Install.php:279
#: src/Module/Install.php:249 src/Module/Install.php:278
msgid "Please select a default timezone for your website"
msgstr ""
#: src/Module/Install.php:264
#: src/Module/Install.php:263
msgid "Site settings"
msgstr ""
#: src/Module/Install.php:274
#: src/Module/Install.php:273
msgid "Site administrator email address"
msgstr ""
#: src/Module/Install.php:276
#: src/Module/Install.php:275
msgid ""
"Your account email address must match this in order to use the web admin "
"panel."
msgstr ""
#: src/Module/Install.php:283
#: src/Module/Install.php:282
msgid "System Language:"
msgstr ""
#: src/Module/Install.php:285
#: src/Module/Install.php:284
msgid ""
"Set the default language for your Friendica installation interface and to "
"send emails."
msgstr ""
#: src/Module/Install.php:297
#: src/Module/Install.php:296
msgid "Your Friendica site database has been installed."
msgstr ""
#: src/Module/Install.php:305
#: src/Module/Install.php:304
msgid "Installation finished"
msgstr ""
#: src/Module/Install.php:327
#: src/Module/Install.php:324
msgid "<h1>What next</h1>"
msgstr ""
#: src/Module/Install.php:328
#: src/Module/Install.php:325
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the worker."
msgstr ""
#: src/Module/Install.php:331
#: src/Module/Install.php:328
#, php-format
msgid ""
"Go to your new Friendica node <a href=\"%s/register\">registration page</a> "
@ -4167,263 +6803,285 @@ msgid ""
"administrator email. This will allow you to enter the site admin panel."
msgstr ""
#: src/Module/BaseAdminModule.php:56 mod/api.php:95
#: src/Module/BaseAdminModule.php:54 mod/api.php:95
msgid "Please login to continue."
msgstr ""
#: src/Module/BaseAdminModule.php:62
#: src/Module/BaseAdminModule.php:60
msgid ""
"Submanaged account can't access the administation pages. Please log back in "
"as the master account."
msgstr ""
#: src/Module/BaseAdminModule.php:76
#: src/Module/BaseAdminModule.php:74
msgid "Overview"
msgstr ""
#: src/Module/BaseAdminModule.php:77 src/Module/Admin/Federation.php:188
#: src/Module/BaseAdminModule.php:75 src/Module/Admin/Federation.php:123
msgid "Federation Statistics"
msgstr ""
#: src/Module/BaseAdminModule.php:79
#: src/Module/BaseAdminModule.php:77
msgid "Configuration"
msgstr ""
#: src/Module/BaseAdminModule.php:80 src/Module/Admin/Site.php:567
#: src/Module/BaseAdminModule.php:78 src/Module/Admin/Site.php:556
msgid "Site"
msgstr ""
#: src/Module/BaseAdminModule.php:81 src/Module/Admin/Users.php:278
#: src/Module/Admin/Users.php:295 src/Module/Admin/Site.php:471
#: src/Module/BaseAdminModule.php:79 src/Module/Admin/Users.php:276
#: src/Module/Admin/Users.php:293 src/Module/Admin/Site.php:464
msgid "Users"
msgstr ""
#: src/Module/BaseAdminModule.php:82 src/Module/Admin/Addons/Details.php:100
#: src/Module/Admin/Addons/Index.php:51 src/Module/BaseSettingsModule.php:68
#: mod/settings.php:112
#: src/Module/BaseAdminModule.php:80 src/Module/Admin/Addons/Details.php:100
#: src/Module/Admin/Addons/Index.php:49 src/Module/BaseSettingsModule.php:68
#: mod/settings.php:107
msgid "Addons"
msgstr ""
#: src/Module/BaseAdminModule.php:83 src/Module/Admin/Themes/Details.php:105
#: src/Module/Admin/Themes/Index.php:96
#: src/Module/BaseAdminModule.php:81 src/Module/Admin/Themes/Details.php:105
#: src/Module/Admin/Themes/Index.php:94
msgid "Themes"
msgstr ""
#: src/Module/BaseAdminModule.php:84 src/Module/BaseSettingsModule.php:46
#: mod/settings.php:90
#: src/Module/BaseAdminModule.php:82 src/Module/BaseSettingsModule.php:46
#: mod/settings.php:85
msgid "Additional features"
msgstr ""
#: src/Module/BaseAdminModule.php:87
#: src/Module/BaseAdminModule.php:85
msgid "Database"
msgstr ""
#: src/Module/BaseAdminModule.php:88
#: src/Module/BaseAdminModule.php:86
msgid "DB updates"
msgstr ""
#: src/Module/BaseAdminModule.php:89
#: src/Module/BaseAdminModule.php:87
msgid "Inspect Deferred Workers"
msgstr ""
#: src/Module/BaseAdminModule.php:90
#: src/Module/BaseAdminModule.php:88
msgid "Inspect worker Queue"
msgstr ""
#: src/Module/BaseAdminModule.php:92
#: src/Module/BaseAdminModule.php:90
msgid "Tools"
msgstr ""
#: src/Module/BaseAdminModule.php:93
#: src/Module/BaseAdminModule.php:91
msgid "Contact Blocklist"
msgstr ""
#: src/Module/BaseAdminModule.php:94
#: src/Module/BaseAdminModule.php:92
msgid "Server Blocklist"
msgstr ""
#: src/Module/BaseAdminModule.php:95 src/Module/Admin/Item/Delete.php:47
#: src/Module/BaseAdminModule.php:93 src/Module/Admin/Item/Delete.php:47
msgid "Delete Item"
msgstr ""
#: src/Module/BaseAdminModule.php:97 src/Module/BaseAdminModule.php:98
#: src/Module/Admin/Logs/Settings.php:64
#: src/Module/BaseAdminModule.php:95 src/Module/BaseAdminModule.php:96
#: src/Module/Admin/Logs/Settings.php:62
msgid "Logs"
msgstr ""
#: src/Module/BaseAdminModule.php:99 src/Module/Admin/Logs/View.php:47
#: src/Module/BaseAdminModule.php:97 src/Module/Admin/Logs/View.php:47
msgid "View Logs"
msgstr ""
#: src/Module/BaseAdminModule.php:101
#: src/Module/BaseAdminModule.php:99
msgid "Diagnostics"
msgstr ""
#: src/Module/BaseAdminModule.php:102
#: src/Module/BaseAdminModule.php:100
msgid "PHP Info"
msgstr ""
#: src/Module/BaseAdminModule.php:103
#: src/Module/BaseAdminModule.php:101
msgid "probe address"
msgstr ""
#: src/Module/BaseAdminModule.php:104
#: src/Module/BaseAdminModule.php:102
msgid "check webfinger"
msgstr ""
#: src/Module/BaseAdminModule.php:105
#: src/Module/BaseAdminModule.php:103
msgid "Item Source"
msgstr ""
#: src/Module/BaseAdminModule.php:106
#: src/Module/BaseAdminModule.php:104
msgid "Babel"
msgstr ""
#: src/Module/BaseAdminModule.php:115
#: src/Module/BaseAdminModule.php:113
msgid "Addon Features"
msgstr ""
#: src/Module/BaseAdminModule.php:116
#: src/Module/BaseAdminModule.php:114
msgid "User registrations waiting for confirmation"
msgstr ""
#: src/Module/Login.php:96
#: src/Module/Security/Login.php:89
msgid "Create a New Account"
msgstr ""
#: src/Module/Login.php:121
#: src/Module/Security/Login.php:114
msgid "Your OpenID: "
msgstr ""
#: src/Module/Login.php:124
#: src/Module/Security/Login.php:117
msgid ""
"Please enter your username and password to add the OpenID to your existing "
"account."
msgstr ""
#: src/Module/Login.php:126
#: src/Module/Security/Login.php:119
msgid "Or login using OpenID: "
msgstr ""
#: src/Module/Login.php:139 mod/lostpass.php:120
#: src/Module/Security/Login.php:132 mod/lostpass.php:119
msgid "Nickname or Email: "
msgstr ""
#: src/Module/Login.php:140
#: src/Module/Security/Login.php:133
msgid "Password: "
msgstr ""
#: src/Module/Login.php:141
#: src/Module/Security/Login.php:134
msgid "Remember me"
msgstr ""
#: src/Module/Login.php:150
#: src/Module/Security/Login.php:143
msgid "Forgot your password?"
msgstr ""
#: src/Module/Login.php:151 mod/lostpass.php:136
#: src/Module/Security/Login.php:144 mod/lostpass.php:135
msgid "Password Reset"
msgstr ""
#: src/Module/Login.php:153
#: src/Module/Security/Login.php:146
msgid "Website Terms of Service"
msgstr ""
#: src/Module/Login.php:154
#: src/Module/Security/Login.php:147
msgid "terms of service"
msgstr ""
#: src/Module/Login.php:156
#: src/Module/Security/Login.php:149
msgid "Website Privacy Policy"
msgstr ""
#: src/Module/Login.php:157
#: src/Module/Security/Login.php:150
msgid "privacy policy"
msgstr ""
#: src/Module/Profile.php:175 mod/cal.php:130 mod/display.php:265
msgid "Access to this profile has been restricted."
msgstr ""
#: src/Module/TwoFactor/Verify.php:46 src/Module/TwoFactor/Recovery.php:49
#: src/Module/Settings/TwoFactor/Verify.php:67
#: src/Module/Security/TwoFactor/Verify.php:42
#: src/Module/Security/TwoFactor/Recovery.php:45
#: src/Module/Settings/TwoFactor/Verify.php:63
msgid "Invalid code, please retry."
msgstr ""
#: src/Module/TwoFactor/Verify.php:65
#: src/Module/Settings/TwoFactor/Index.php:89
#: src/Module/BaseSettingsModule.php:31 mod/settings.php:75
#: src/Module/Security/TwoFactor/Verify.php:61
#: src/Module/Settings/TwoFactor/Index.php:86
#: src/Module/BaseSettingsModule.php:31 mod/settings.php:70
msgid "Two-factor authentication"
msgstr ""
#: src/Module/TwoFactor/Verify.php:66
#: src/Module/Security/TwoFactor/Verify.php:62
msgid ""
"<p>Open the two-factor authentication app on your device to get an "
"authentication code and verify your identity.</p>"
msgstr ""
#: src/Module/TwoFactor/Verify.php:67 mod/repair_ostatus.php:37
#: src/Module/Security/TwoFactor/Verify.php:63 mod/repair_ostatus.php:34
msgid "Error"
msgid_plural "Errors"
msgstr[0] ""
msgstr[1] ""
#: src/Module/TwoFactor/Verify.php:69 src/Module/TwoFactor/Recovery.php:70
#: src/Module/Security/TwoFactor/Verify.php:65
#: src/Module/Security/TwoFactor/Recovery.php:66
#, php-format
msgid ""
"Dont have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>"
msgstr ""
#: src/Module/TwoFactor/Verify.php:70
#: src/Module/Settings/TwoFactor/Verify.php:126
#: src/Module/Security/TwoFactor/Verify.php:66
#: src/Module/Settings/TwoFactor/Verify.php:122
msgid "Please enter a code from your authentication app"
msgstr ""
#: src/Module/TwoFactor/Verify.php:71
#: src/Module/Security/TwoFactor/Verify.php:67
msgid "Verify code and complete login"
msgstr ""
#: src/Module/TwoFactor/Recovery.php:42
#: src/Module/Security/TwoFactor/Recovery.php:41
#, php-format
msgid "Remaining recovery codes: %d"
msgstr ""
#: src/Module/TwoFactor/Recovery.php:68
#: src/Module/Security/TwoFactor/Recovery.php:64
msgid "Two-factor recovery"
msgstr ""
#: src/Module/TwoFactor/Recovery.php:69
#: src/Module/Security/TwoFactor/Recovery.php:65
msgid ""
"<p>You can enter one of your one-time recovery codes in case you lost access "
"to your mobile device.</p>"
msgstr ""
#: src/Module/TwoFactor/Recovery.php:71
#: src/Module/Security/TwoFactor/Recovery.php:67
msgid "Please enter a recovery code"
msgstr ""
#: src/Module/TwoFactor/Recovery.php:72
#: src/Module/Security/TwoFactor/Recovery.php:68
msgid "Submit recovery code and complete login"
msgstr ""
#: src/Module/Maintenance.php:29
#: src/Module/Security/OpenID.php:35
msgid "OpenID protocol error. No ID returned"
msgstr ""
#: src/Module/Security/OpenID.php:73
msgid ""
"Account not found. Please login to your existing account to add the OpenID "
"to it."
msgstr ""
#: src/Module/Security/OpenID.php:75
msgid ""
"Account not found. Please register a new account or login to your existing "
"account to add the OpenID to it."
msgstr ""
#: src/Module/Security/Logout.php:39
msgid "Logged out."
msgstr ""
#: src/Module/Profile.php:171 mod/cal.php:127 mod/display.php:270
msgid "Access to this profile has been restricted."
msgstr ""
#: src/Module/Maintenance.php:27
msgid "System down for maintenance"
msgstr ""
#: src/Module/Bookmarklet.php:35
#: src/Module/Bookmarklet.php:36
msgid "This page is missing a url parameter."
msgstr ""
#: src/Module/Bookmarklet.php:57
#: src/Module/Bookmarklet.php:58
msgid "The post was created"
msgstr ""
#: src/Module/Photo.php:87
#: src/Module/Photo.php:86
#, php-format
msgid "Invalid photo with id %s."
msgstr ""
#: src/Module/Attach.php:36 src/Module/Attach.php:48
#: src/Module/Attach.php:35 src/Module/Attach.php:47
msgid "Item was not found."
msgstr ""
@ -4435,54 +7093,54 @@ msgstr ""
msgid "Site blocklist updated."
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:64
#: src/Module/Admin/Blocklist/Server.php:89
#: src/Module/Admin/Blocklist/Server.php:62
#: src/Module/Admin/Blocklist/Server.php:87
msgid "Blocked server domain pattern"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:65
#: src/Module/Admin/Blocklist/Server.php:90 src/Module/Friendica.php:60
#: src/Module/Admin/Blocklist/Server.php:63
#: src/Module/Admin/Blocklist/Server.php:88 src/Module/Friendica.php:59
msgid "Reason for the block"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:66
#: src/Module/Admin/Blocklist/Server.php:64
msgid "Delete server domain pattern"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:66
#: src/Module/Admin/Blocklist/Server.php:64
msgid "Check to delete this entry from the blocklist"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:73
#: src/Module/Admin/Blocklist/Contact.php:61 src/Module/Admin/Tos.php:42
#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50
#: src/Module/Admin/Themes/Details.php:104 src/Module/Admin/Themes/Index.php:95
#: src/Module/Admin/Users.php:277 src/Module/Admin/Site.php:566
#: src/Module/Admin/Federation.php:187 src/Module/Admin/Queue.php:56
#: src/Module/Admin/Item/Delete.php:46 src/Module/Admin/Logs/Settings.php:63
#: src/Module/Admin/Logs/View.php:46 src/Module/Admin/Summary.php:192
#: src/Module/Admin/Blocklist/Server.php:71
#: src/Module/Admin/Blocklist/Contact.php:59 src/Module/Admin/Tos.php:42
#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:48
#: src/Module/Admin/Themes/Details.php:104 src/Module/Admin/Themes/Index.php:93
#: src/Module/Admin/Users.php:275 src/Module/Admin/Site.php:555
#: src/Module/Admin/Federation.php:122 src/Module/Admin/Queue.php:56
#: src/Module/Admin/Item/Delete.php:46 src/Module/Admin/Logs/Settings.php:61
#: src/Module/Admin/Logs/View.php:46 src/Module/Admin/Summary.php:190
msgid "Administration"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:74
#: src/Module/Admin/Blocklist/Server.php:72
msgid "Server Domain Pattern Blocklist"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:75
#: src/Module/Admin/Blocklist/Server.php:73
msgid ""
"This page can be used to define a blacklist of server domain patterns from "
"the federated network that are not allowed to interact with your node. For "
"each domain pattern you should also provide the reason why you block it."
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:76
#: src/Module/Admin/Blocklist/Server.php:74
msgid ""
"The list of blocked server domain patterns will be made publically available "
"on the <a href=\"/friendica\">/friendica</a> page so that your users and "
"people investigating communication problems can find the reason easily."
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:77
#: src/Module/Admin/Blocklist/Server.php:75
msgid ""
"<p>The server domain pattern syntax is case-insensitive shell wildcard, "
"comprising the following special characters:</p>\n"
@ -4493,45 +7151,45 @@ msgid ""
"</ul>"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:83
#: src/Module/Admin/Blocklist/Server.php:81
msgid "Add new entry to block list"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:84
#: src/Module/Admin/Blocklist/Server.php:82
msgid "Server Domain Pattern"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:84
#: src/Module/Admin/Blocklist/Server.php:82
msgid ""
"The domain pattern of the new server to add to the block list. Do not "
"include the protocol."
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:85
#: src/Module/Admin/Blocklist/Server.php:83
msgid "Block reason"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:85
#: src/Module/Admin/Blocklist/Server.php:83
msgid "The reason why you blocked this server domain pattern."
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:86
#: src/Module/Admin/Blocklist/Server.php:84
msgid "Add Entry"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:87
#: src/Module/Admin/Blocklist/Server.php:85
msgid "Save changes to the blocklist"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:88
#: src/Module/Admin/Blocklist/Server.php:86
msgid "Current Entries in the Blocklist"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:91
#: src/Module/Admin/Blocklist/Server.php:89
msgid "Delete entry from blocklist"
msgstr ""
#: src/Module/Admin/Blocklist/Server.php:94
#: src/Module/Admin/Blocklist/Server.php:92
msgid "Delete entry from blocklist?"
msgstr ""
@ -4553,79 +7211,79 @@ msgid_plural "%s contacts unblocked"
msgstr[0] ""
msgstr[1] ""
#: src/Module/Admin/Blocklist/Contact.php:62
#: src/Module/Admin/Blocklist/Contact.php:60
msgid "Remote Contact Blocklist"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:63
#: src/Module/Admin/Blocklist/Contact.php:61
msgid ""
"This page allows you to prevent any message from a remote contact to reach "
"your node."
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:64
#: src/Module/Admin/Blocklist/Contact.php:62
msgid "Block Remote Contact"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:65 src/Module/Admin/Users.php:280
#: src/Module/Admin/Blocklist/Contact.php:63 src/Module/Admin/Users.php:278
msgid "select all"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:66
#: src/Module/Admin/Blocklist/Contact.php:64
msgid "select none"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:68 src/Module/Admin/Users.php:291
#: src/Module/Contact.php:606 src/Module/Contact.php:823
#: src/Module/Contact.php:1082
#: src/Module/Admin/Blocklist/Contact.php:66 src/Module/Admin/Users.php:289
#: src/Module/Contact.php:605 src/Module/Contact.php:826
#: src/Module/Contact.php:1085
msgid "Unblock"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:69
#: src/Module/Admin/Blocklist/Contact.php:67
msgid "No remote contact is blocked from this node."
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:71
#: src/Module/Admin/Blocklist/Contact.php:69
msgid "Blocked Remote Contacts"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:72
#: src/Module/Admin/Blocklist/Contact.php:70
msgid "Block New Remote Contact"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:73
#: src/Module/Admin/Blocklist/Contact.php:71
msgid "Photo"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:73 src/Module/Admin/Users.php:272
#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297
#: src/Module/Admin/Users.php:313 mod/crepair.php:159 mod/settings.php:672
#: mod/settings.php:698
#: src/Module/Admin/Blocklist/Contact.php:71 src/Module/Admin/Users.php:270
#: src/Module/Admin/Users.php:281 src/Module/Admin/Users.php:295
#: src/Module/Admin/Users.php:311 mod/crepair.php:159 mod/settings.php:666
#: mod/settings.php:692
msgid "Name"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:73
#: src/Module/Admin/Blocklist/Contact.php:71
msgid "Reason"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:81
#: src/Module/Admin/Blocklist/Contact.php:79
#, php-format
msgid "%s total blocked contact"
msgid_plural "%s total blocked contacts"
msgstr[0] ""
msgstr[1] ""
#: src/Module/Admin/Blocklist/Contact.php:83 src/Module/Contact.php:624
#: mod/notifications.php:194 mod/notifications.php:286 mod/follow.php:179
#: mod/unfollow.php:137
#: src/Module/Admin/Blocklist/Contact.php:81 src/Module/Contact.php:623
#: mod/notifications.php:166 mod/notifications.php:258 mod/follow.php:178
#: mod/unfollow.php:136
msgid "Profile URL"
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:83
#: src/Module/Admin/Blocklist/Contact.php:81
msgid "URL of the remote contact to block."
msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:84
#: src/Module/Admin/Blocklist/Contact.php:82
msgid "Block Reason"
msgstr ""
@ -4668,25 +7326,16 @@ msgid ""
"of sections should be [h2] and below."
msgstr ""
#: src/Module/Admin/Tos.php:50 src/Module/Admin/Addons/Index.php:52
#: src/Module/Admin/Themes/Index.php:97 src/Module/Admin/Site.php:568
#: src/Module/Admin/Features.php:69 src/Module/Admin/Logs/Settings.php:65
#: src/Module/Settings/Delegation.php:158 mod/settings.php:670
#: mod/settings.php:777 mod/settings.php:875 mod/settings.php:954
#: mod/settings.php:1179
msgid "Save Settings"
msgstr ""
#: src/Module/Admin/Addons/Details.php:51
msgid "Addon not found."
msgstr ""
#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:32
#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:30
#, php-format
msgid "Addon %s disabled."
msgstr ""
#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:34
#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:32
#, php-format
msgid "Addon %s enabled."
msgstr ""
@ -4716,16 +7365,16 @@ msgstr ""
msgid "Maintainer: "
msgstr ""
#: src/Module/Admin/Addons/Index.php:36
#: src/Module/Admin/Addons/Index.php:34
#, php-format
msgid "Addon %s failed to install."
msgstr ""
#: src/Module/Admin/Addons/Index.php:53
#: src/Module/Admin/Addons/Index.php:51
msgid "Reload active addons"
msgstr ""
#: src/Module/Admin/Addons/Index.php:58
#: src/Module/Admin/Addons/Index.php:56
#, php-format
msgid ""
"There are currently no addons available on your node. You can find the "
@ -4741,17 +7390,17 @@ msgstr ""
msgid "Unknown theme."
msgstr ""
#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:49
#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:47
#, php-format
msgid "Theme %s disabled."
msgstr ""
#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:51
#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:49
#, php-format
msgid "Theme %s successfully enabled."
msgstr ""
#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:53
#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:51
#, php-format
msgid "Theme %s failed to install."
msgstr ""
@ -4760,24 +7409,24 @@ msgstr ""
msgid "Screenshot"
msgstr ""
#: src/Module/Admin/Themes/Index.php:98
#: src/Module/Admin/Themes/Index.php:96
msgid "Reload active themes"
msgstr ""
#: src/Module/Admin/Themes/Index.php:103
#: src/Module/Admin/Themes/Index.php:101
#, php-format
msgid "No themes found on the system. They should be placed in %1$s"
msgstr ""
#: src/Module/Admin/Themes/Index.php:104
#: src/Module/Admin/Themes/Index.php:102
msgid "[Experimental]"
msgstr ""
#: src/Module/Admin/Themes/Index.php:105
#: src/Module/Admin/Themes/Index.php:103
msgid "[Unsupported]"
msgstr ""
#: src/Module/Admin/Users.php:48
#: src/Module/Admin/Users.php:46
#, php-format
msgid ""
"\n"
@ -4785,7 +7434,7 @@ msgid ""
"\t\t\t\tthe administrator of %2$s has set up an account for you."
msgstr ""
#: src/Module/Admin/Users.php:51
#: src/Module/Admin/Users.php:49
#, php-format
msgid ""
"\n"
@ -4824,175 +7473,175 @@ msgid ""
"\t\t\tThank you and welcome to %4$s."
msgstr ""
#: src/Module/Admin/Users.php:96
#: src/Module/Admin/Users.php:94
#, php-format
msgid "%s user blocked"
msgid_plural "%s users blocked"
msgstr[0] ""
msgstr[1] ""
#: src/Module/Admin/Users.php:102
#: src/Module/Admin/Users.php:100
#, php-format
msgid "%s user unblocked"
msgid_plural "%s users unblocked"
msgstr[0] ""
msgstr[1] ""
#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160
#: src/Module/Admin/Users.php:108 src/Module/Admin/Users.php:158
msgid "You can't remove yourself"
msgstr ""
#: src/Module/Admin/Users.php:114
#: src/Module/Admin/Users.php:112
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] ""
msgstr[1] ""
#: src/Module/Admin/Users.php:158
#: src/Module/Admin/Users.php:156
#, php-format
msgid "User \"%s\" deleted"
msgstr ""
#: src/Module/Admin/Users.php:167
#: src/Module/Admin/Users.php:165
#, php-format
msgid "User \"%s\" blocked"
msgstr ""
#: src/Module/Admin/Users.php:173
#: src/Module/Admin/Users.php:171
#, php-format
msgid "User \"%s\" unblocked"
msgstr ""
#: src/Module/Admin/Users.php:222 mod/settings.php:1054
#: src/Module/Admin/Users.php:220 mod/settings.php:1048
msgid "Normal Account Page"
msgstr ""
#: src/Module/Admin/Users.php:223 mod/settings.php:1058
#: src/Module/Admin/Users.php:221 mod/settings.php:1052
msgid "Soapbox Page"
msgstr ""
#: src/Module/Admin/Users.php:224 mod/settings.php:1062
#: src/Module/Admin/Users.php:222 mod/settings.php:1056
msgid "Public Forum"
msgstr ""
#: src/Module/Admin/Users.php:225 mod/settings.php:1066
#: src/Module/Admin/Users.php:223 mod/settings.php:1060
msgid "Automatic Friend Page"
msgstr ""
#: src/Module/Admin/Users.php:226
#: src/Module/Admin/Users.php:224
msgid "Private Forum"
msgstr ""
#: src/Module/Admin/Users.php:229 mod/settings.php:1038
#: src/Module/Admin/Users.php:227 mod/settings.php:1032
msgid "Personal Page"
msgstr ""
#: src/Module/Admin/Users.php:230 mod/settings.php:1042
#: src/Module/Admin/Users.php:228 mod/settings.php:1036
msgid "Organisation Page"
msgstr ""
#: src/Module/Admin/Users.php:231 mod/settings.php:1046
#: src/Module/Admin/Users.php:229 mod/settings.php:1040
msgid "News Page"
msgstr ""
#: src/Module/Admin/Users.php:232 mod/settings.php:1050
#: src/Module/Admin/Users.php:230 mod/settings.php:1044
msgid "Community Forum"
msgstr ""
#: src/Module/Admin/Users.php:233
#: src/Module/Admin/Users.php:231
msgid "Relay"
msgstr ""
#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
#: src/Module/Admin/Users.php:270 src/Module/Admin/Users.php:295
msgid "Register date"
msgstr ""
#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
#: src/Module/Admin/Users.php:270 src/Module/Admin/Users.php:295
msgid "Last login"
msgstr ""
#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
#: src/Module/Admin/Users.php:270 src/Module/Admin/Users.php:295
msgid "Last item"
msgstr ""
#: src/Module/Admin/Users.php:272
#: src/Module/Admin/Users.php:270
msgid "Type"
msgstr ""
#: src/Module/Admin/Users.php:279
#: src/Module/Admin/Users.php:277
msgid "Add User"
msgstr ""
#: src/Module/Admin/Users.php:281
#: src/Module/Admin/Users.php:279
msgid "User registrations waiting for confirm"
msgstr ""
#: src/Module/Admin/Users.php:282
#: src/Module/Admin/Users.php:280
msgid "User waiting for permanent deletion"
msgstr ""
#: src/Module/Admin/Users.php:283
#: src/Module/Admin/Users.php:281
msgid "Request date"
msgstr ""
#: src/Module/Admin/Users.php:284
#: src/Module/Admin/Users.php:282
msgid "No registrations."
msgstr ""
#: src/Module/Admin/Users.php:285
#: src/Module/Admin/Users.php:283
msgid "Note from the user"
msgstr ""
#: src/Module/Admin/Users.php:287
#: src/Module/Admin/Users.php:285
msgid "Deny"
msgstr ""
#: src/Module/Admin/Users.php:290
#: src/Module/Admin/Users.php:288
msgid "User blocked"
msgstr ""
#: src/Module/Admin/Users.php:292
#: src/Module/Admin/Users.php:290
msgid "Site admin"
msgstr ""
#: src/Module/Admin/Users.php:293
#: src/Module/Admin/Users.php:291
msgid "Account expired"
msgstr ""
#: src/Module/Admin/Users.php:296
#: src/Module/Admin/Users.php:294
msgid "New User"
msgstr ""
#: src/Module/Admin/Users.php:297
#: src/Module/Admin/Users.php:295
msgid "Permanent deletion"
msgstr ""
#: src/Module/Admin/Users.php:302
#: src/Module/Admin/Users.php:300
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
#: src/Module/Admin/Users.php:303
#: src/Module/Admin/Users.php:301
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
#: src/Module/Admin/Users.php:313
#: src/Module/Admin/Users.php:311
msgid "Name of the new user."
msgstr ""
#: src/Module/Admin/Users.php:314
#: src/Module/Admin/Users.php:312
msgid "Nickname"
msgstr ""
#: src/Module/Admin/Users.php:314
#: src/Module/Admin/Users.php:312
msgid "Nickname of the new user."
msgstr ""
#: src/Module/Admin/Users.php:315
#: src/Module/Admin/Users.php:313
msgid "Email address of the new user."
msgstr ""
@ -5000,244 +7649,234 @@ msgstr ""
msgid "Can not parse base url. Must have at least <scheme>://<domain>"
msgstr ""
#: src/Module/Admin/Site.php:234
#: src/Module/Admin/Site.php:230
msgid "Invalid storage backend setting value."
msgstr ""
#: src/Module/Admin/Site.php:410
#: src/Module/Admin/Site.php:405
msgid "Site settings updated."
msgstr ""
#: src/Module/Admin/Site.php:433 mod/settings.php:898
#: src/Module/Admin/Site.php:426 mod/settings.php:892
msgid "No special theme for mobile devices"
msgstr ""
#: src/Module/Admin/Site.php:450 mod/settings.php:908
#: src/Module/Admin/Site.php:443 mod/settings.php:902
#, php-format
msgid "%s - (Experimental)"
msgstr ""
#: src/Module/Admin/Site.php:462
#: src/Module/Admin/Site.php:455
msgid "No community page for local users"
msgstr ""
#: src/Module/Admin/Site.php:463
#: src/Module/Admin/Site.php:456
msgid "No community page"
msgstr ""
#: src/Module/Admin/Site.php:464
#: src/Module/Admin/Site.php:457
msgid "Public postings from users of this site"
msgstr ""
#: src/Module/Admin/Site.php:465
#: src/Module/Admin/Site.php:458
msgid "Public postings from the federated network"
msgstr ""
#: src/Module/Admin/Site.php:466
#: src/Module/Admin/Site.php:459
msgid "Public postings from local users and the federated network"
msgstr ""
#: src/Module/Admin/Site.php:470 src/Module/Admin/Site.php:665
#: src/Module/Admin/Site.php:675 src/Module/Settings/TwoFactor/Index.php:97
#: src/Module/Contact.php:546
msgid "Disabled"
msgstr ""
#: src/Module/Admin/Site.php:472
#: src/Module/Admin/Site.php:465
msgid "Users, Global Contacts"
msgstr ""
#: src/Module/Admin/Site.php:473
#: src/Module/Admin/Site.php:466
msgid "Users, Global Contacts/fallback"
msgstr ""
#: src/Module/Admin/Site.php:477
#: src/Module/Admin/Site.php:470
msgid "One month"
msgstr ""
#: src/Module/Admin/Site.php:478
#: src/Module/Admin/Site.php:471
msgid "Three months"
msgstr ""
#: src/Module/Admin/Site.php:479
#: src/Module/Admin/Site.php:472
msgid "Half a year"
msgstr ""
#: src/Module/Admin/Site.php:480
#: src/Module/Admin/Site.php:473
msgid "One year"
msgstr ""
#: src/Module/Admin/Site.php:486
#: src/Module/Admin/Site.php:479
msgid "Multi user instance"
msgstr ""
#: src/Module/Admin/Site.php:508
#: src/Module/Admin/Site.php:501
msgid "Closed"
msgstr ""
#: src/Module/Admin/Site.php:509
#: src/Module/Admin/Site.php:502
msgid "Requires approval"
msgstr ""
#: src/Module/Admin/Site.php:510
#: src/Module/Admin/Site.php:503
msgid "Open"
msgstr ""
#: src/Module/Admin/Site.php:520
#: src/Module/Admin/Site.php:513
msgid "Don't check"
msgstr ""
#: src/Module/Admin/Site.php:521
#: src/Module/Admin/Site.php:514
msgid "check the stable version"
msgstr ""
#: src/Module/Admin/Site.php:522
#: src/Module/Admin/Site.php:515
msgid "check the development version"
msgstr ""
#: src/Module/Admin/Site.php:542
#: src/Module/Admin/Site.php:532
msgid "Database (legacy)"
msgstr ""
#: src/Module/Admin/Site.php:569
#: src/Module/Admin/Site.php:558
msgid "Republish users to directory"
msgstr ""
#: src/Module/Admin/Site.php:570 src/Module/Register.php:115
#: src/Module/Admin/Site.php:559 src/Module/Register.php:121
msgid "Registration"
msgstr ""
#: src/Module/Admin/Site.php:571
#: src/Module/Admin/Site.php:560
msgid "File upload"
msgstr ""
#: src/Module/Admin/Site.php:572
#: src/Module/Admin/Site.php:561
msgid "Policies"
msgstr ""
#: src/Module/Admin/Site.php:574
#: src/Module/Admin/Site.php:563
msgid "Auto Discovered Contact Directory"
msgstr ""
#: src/Module/Admin/Site.php:575
#: src/Module/Admin/Site.php:564
msgid "Performance"
msgstr ""
#: src/Module/Admin/Site.php:576
#: src/Module/Admin/Site.php:565
msgid "Worker"
msgstr ""
#: src/Module/Admin/Site.php:577
#: src/Module/Admin/Site.php:566
msgid "Message Relay"
msgstr ""
#: src/Module/Admin/Site.php:578
#: src/Module/Admin/Site.php:567
msgid "Relocate Instance"
msgstr ""
#: src/Module/Admin/Site.php:579
#: src/Module/Admin/Site.php:568
msgid "Warning! Advanced function. Could make this server unreachable."
msgstr ""
#: src/Module/Admin/Site.php:583
msgid "Site name"
msgstr ""
#: src/Module/Admin/Site.php:584
#: src/Module/Admin/Site.php:573
msgid "Sender Email"
msgstr ""
#: src/Module/Admin/Site.php:584
#: src/Module/Admin/Site.php:573
msgid ""
"The email address your server shall use to send notification emails from."
msgstr ""
#: src/Module/Admin/Site.php:585
#: src/Module/Admin/Site.php:574
msgid "Banner/Logo"
msgstr ""
#: src/Module/Admin/Site.php:586
#: src/Module/Admin/Site.php:575
msgid "Shortcut icon"
msgstr ""
#: src/Module/Admin/Site.php:586
#: src/Module/Admin/Site.php:575
msgid "Link to an icon that will be used for browsers."
msgstr ""
#: src/Module/Admin/Site.php:587
#: src/Module/Admin/Site.php:576
msgid "Touch icon"
msgstr ""
#: src/Module/Admin/Site.php:587
#: src/Module/Admin/Site.php:576
msgid "Link to an icon that will be used for tablets and mobiles."
msgstr ""
#: src/Module/Admin/Site.php:588
#: src/Module/Admin/Site.php:577
msgid "Additional Info"
msgstr ""
#: src/Module/Admin/Site.php:588
#: src/Module/Admin/Site.php:577
#, php-format
msgid ""
"For public servers: you can add additional information here that will be "
"listed at %s/servers."
msgstr ""
#: src/Module/Admin/Site.php:589
#: src/Module/Admin/Site.php:578
msgid "System language"
msgstr ""
#: src/Module/Admin/Site.php:590
#: src/Module/Admin/Site.php:579
msgid "System theme"
msgstr ""
#: src/Module/Admin/Site.php:590
#: src/Module/Admin/Site.php:579
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href=\"/"
"admin/themes\" id=\"cnftheme\">Change default theme settings</a>"
msgstr ""
#: src/Module/Admin/Site.php:591
#: src/Module/Admin/Site.php:580
msgid "Mobile system theme"
msgstr ""
#: src/Module/Admin/Site.php:591
#: src/Module/Admin/Site.php:580
msgid "Theme for mobile devices"
msgstr ""
#: src/Module/Admin/Site.php:593
#: src/Module/Admin/Site.php:582
msgid "Force SSL"
msgstr ""
#: src/Module/Admin/Site.php:593
#: src/Module/Admin/Site.php:582
msgid ""
"Force all Non-SSL requests to SSL - Attention: on some systems it could lead "
"to endless loops."
msgstr ""
#: src/Module/Admin/Site.php:594
#: src/Module/Admin/Site.php:583
msgid "Hide help entry from navigation menu"
msgstr ""
#: src/Module/Admin/Site.php:594
#: src/Module/Admin/Site.php:583
msgid ""
"Hides the menu entry for the Help pages from the navigation menu. You can "
"still access it calling /help directly."
msgstr ""
#: src/Module/Admin/Site.php:595
#: src/Module/Admin/Site.php:584
msgid "Single user instance"
msgstr ""
#: src/Module/Admin/Site.php:595
#: src/Module/Admin/Site.php:584
msgid "Make this instance multi-user or single-user for the named user"
msgstr ""
#: src/Module/Admin/Site.php:597
#: src/Module/Admin/Site.php:586
msgid "File storage backend"
msgstr ""
#: src/Module/Admin/Site.php:597
#: src/Module/Admin/Site.php:586
msgid ""
"The backend used to store uploaded data. If you change the storage backend, "
"you can manually move the existing files. If you do not do so, the files "
@ -5246,201 +7885,201 @@ msgid ""
"for more information about the choices and the moving procedure."
msgstr ""
#: src/Module/Admin/Site.php:599
#: src/Module/Admin/Site.php:588
msgid "Maximum image size"
msgstr ""
#: src/Module/Admin/Site.php:599
#: src/Module/Admin/Site.php:588
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
#: src/Module/Admin/Site.php:600
#: src/Module/Admin/Site.php:589
msgid "Maximum image length"
msgstr ""
#: src/Module/Admin/Site.php:600
#: src/Module/Admin/Site.php:589
msgid ""
"Maximum length in pixels of the longest side of uploaded images. Default is "
"-1, which means no limits."
msgstr ""
#: src/Module/Admin/Site.php:601
#: src/Module/Admin/Site.php:590
msgid "JPEG image quality"
msgstr ""
#: src/Module/Admin/Site.php:601
#: src/Module/Admin/Site.php:590
msgid ""
"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is "
"100, which is full quality."
msgstr ""
#: src/Module/Admin/Site.php:603
#: src/Module/Admin/Site.php:592
msgid "Register policy"
msgstr ""
#: src/Module/Admin/Site.php:604
#: src/Module/Admin/Site.php:593
msgid "Maximum Daily Registrations"
msgstr ""
#: src/Module/Admin/Site.php:604
#: src/Module/Admin/Site.php:593
msgid ""
"If registration is permitted above, this sets the maximum number of new user "
"registrations to accept per day. If register is set to closed, this setting "
"has no effect."
msgstr ""
#: src/Module/Admin/Site.php:605
#: src/Module/Admin/Site.php:594
msgid "Register text"
msgstr ""
#: src/Module/Admin/Site.php:605
#: src/Module/Admin/Site.php:594
msgid ""
"Will be displayed prominently on the registration page. You can use BBCode "
"here."
msgstr ""
#: src/Module/Admin/Site.php:606
#: src/Module/Admin/Site.php:595
msgid "Forbidden Nicknames"
msgstr ""
#: src/Module/Admin/Site.php:606
#: src/Module/Admin/Site.php:595
msgid ""
"Comma separated list of nicknames that are forbidden from registration. "
"Preset is a list of role names according RFC 2142."
msgstr ""
#: src/Module/Admin/Site.php:607
#: src/Module/Admin/Site.php:596
msgid "Accounts abandoned after x days"
msgstr ""
#: src/Module/Admin/Site.php:607
#: src/Module/Admin/Site.php:596
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
#: src/Module/Admin/Site.php:608
#: src/Module/Admin/Site.php:597
msgid "Allowed friend domains"
msgstr ""
#: src/Module/Admin/Site.php:608
#: src/Module/Admin/Site.php:597
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
#: src/Module/Admin/Site.php:609
#: src/Module/Admin/Site.php:598
msgid "Allowed email domains"
msgstr ""
#: src/Module/Admin/Site.php:609
#: src/Module/Admin/Site.php:598
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr ""
#: src/Module/Admin/Site.php:610
#: src/Module/Admin/Site.php:599
msgid "No OEmbed rich content"
msgstr ""
#: src/Module/Admin/Site.php:610
#: src/Module/Admin/Site.php:599
msgid ""
"Don't show the rich content (e.g. embedded PDF), except from the domains "
"listed below."
msgstr ""
#: src/Module/Admin/Site.php:611
#: src/Module/Admin/Site.php:600
msgid "Allowed OEmbed domains"
msgstr ""
#: src/Module/Admin/Site.php:611
#: src/Module/Admin/Site.php:600
msgid ""
"Comma separated list of domains which oembed content is allowed to be "
"displayed. Wildcards are accepted."
msgstr ""
#: src/Module/Admin/Site.php:612
#: src/Module/Admin/Site.php:601
msgid "Block public"
msgstr ""
#: src/Module/Admin/Site.php:612
#: src/Module/Admin/Site.php:601
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr ""
#: src/Module/Admin/Site.php:613
#: src/Module/Admin/Site.php:602
msgid "Force publish"
msgstr ""
#: src/Module/Admin/Site.php:613
#: src/Module/Admin/Site.php:602
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
#: src/Module/Admin/Site.php:613
#: src/Module/Admin/Site.php:602
msgid "Enabling this may violate privacy laws like the GDPR"
msgstr ""
#: src/Module/Admin/Site.php:614
#: src/Module/Admin/Site.php:603
msgid "Global directory URL"
msgstr ""
#: src/Module/Admin/Site.php:614
#: src/Module/Admin/Site.php:603
msgid ""
"URL to the global directory. If this is not set, the global directory is "
"completely unavailable to the application."
msgstr ""
#: src/Module/Admin/Site.php:615
#: src/Module/Admin/Site.php:604
msgid "Private posts by default for new users"
msgstr ""
#: src/Module/Admin/Site.php:615
#: src/Module/Admin/Site.php:604
msgid ""
"Set default post permissions for all new members to the default privacy "
"group rather than public."
msgstr ""
#: src/Module/Admin/Site.php:616
#: src/Module/Admin/Site.php:605
msgid "Don't include post content in email notifications"
msgstr ""
#: src/Module/Admin/Site.php:616
#: src/Module/Admin/Site.php:605
msgid ""
"Don't include the content of a post/comment/private message/etc. in the "
"email notifications that are sent out from this site, as a privacy measure."
msgstr ""
#: src/Module/Admin/Site.php:617
#: src/Module/Admin/Site.php:606
msgid "Disallow public access to addons listed in the apps menu."
msgstr ""
#: src/Module/Admin/Site.php:617
#: src/Module/Admin/Site.php:606
msgid ""
"Checking this box will restrict addons listed in the apps menu to members "
"only."
msgstr ""
#: src/Module/Admin/Site.php:618
#: src/Module/Admin/Site.php:607
msgid "Don't embed private images in posts"
msgstr ""
#: src/Module/Admin/Site.php:618
#: src/Module/Admin/Site.php:607
msgid ""
"Don't replace locally-hosted private photos in posts with an embedded copy "
"of the image. This means that contacts who receive posts containing private "
"photos will have to authenticate and load each image, which may take a while."
msgstr ""
#: src/Module/Admin/Site.php:619
#: src/Module/Admin/Site.php:608
msgid "Explicit Content"
msgstr ""
#: src/Module/Admin/Site.php:619
#: src/Module/Admin/Site.php:608
msgid ""
"Set this to announce that your node is used mostly for explicit content that "
"might not be suited for minors. This information will be published in the "
@ -5449,200 +8088,200 @@ msgid ""
"will be shown at the user registration page."
msgstr ""
#: src/Module/Admin/Site.php:620
#: src/Module/Admin/Site.php:609
msgid "Allow Users to set remote_self"
msgstr ""
#: src/Module/Admin/Site.php:620
#: src/Module/Admin/Site.php:609
msgid ""
"With checking this, every user is allowed to mark every contact as a "
"remote_self in the repair contact dialog. Setting this flag on a contact "
"causes mirroring every posting of that contact in the users stream."
msgstr ""
#: src/Module/Admin/Site.php:621
#: src/Module/Admin/Site.php:610
msgid "Block multiple registrations"
msgstr ""
#: src/Module/Admin/Site.php:621
#: src/Module/Admin/Site.php:610
msgid "Disallow users to register additional accounts for use as pages."
msgstr ""
#: src/Module/Admin/Site.php:622
#: src/Module/Admin/Site.php:611
msgid "Disable OpenID"
msgstr ""
#: src/Module/Admin/Site.php:622
#: src/Module/Admin/Site.php:611
msgid "Disable OpenID support for registration and logins."
msgstr ""
#: src/Module/Admin/Site.php:623
#: src/Module/Admin/Site.php:612
msgid "No Fullname check"
msgstr ""
#: src/Module/Admin/Site.php:623
#: src/Module/Admin/Site.php:612
msgid ""
"Allow users to register without a space between the first name and the last "
"name in their full name."
msgstr ""
#: src/Module/Admin/Site.php:624
#: src/Module/Admin/Site.php:613
msgid "Community pages for visitors"
msgstr ""
#: src/Module/Admin/Site.php:624
#: src/Module/Admin/Site.php:613
msgid ""
"Which community pages should be available for visitors. Local users always "
"see both pages."
msgstr ""
#: src/Module/Admin/Site.php:625
#: src/Module/Admin/Site.php:614
msgid "Posts per user on community page"
msgstr ""
#: src/Module/Admin/Site.php:625
#: src/Module/Admin/Site.php:614
msgid ""
"The maximum number of posts per user on the community page. (Not valid for "
"\"Global Community\")"
msgstr ""
#: src/Module/Admin/Site.php:626
#: src/Module/Admin/Site.php:615
msgid "Disable OStatus support"
msgstr ""
#: src/Module/Admin/Site.php:626
#: src/Module/Admin/Site.php:615
msgid ""
"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr ""
#: src/Module/Admin/Site.php:627
#: src/Module/Admin/Site.php:616
msgid "OStatus support can only be enabled if threading is enabled."
msgstr ""
#: src/Module/Admin/Site.php:629
#: src/Module/Admin/Site.php:618
msgid ""
"Diaspora support can't be enabled because Friendica was installed into a sub "
"directory."
msgstr ""
#: src/Module/Admin/Site.php:630
#: src/Module/Admin/Site.php:619
msgid "Enable Diaspora support"
msgstr ""
#: src/Module/Admin/Site.php:630
#: src/Module/Admin/Site.php:619
msgid "Provide built-in Diaspora network compatibility."
msgstr ""
#: src/Module/Admin/Site.php:631
#: src/Module/Admin/Site.php:620
msgid "Only allow Friendica contacts"
msgstr ""
#: src/Module/Admin/Site.php:631
#: src/Module/Admin/Site.php:620
msgid ""
"All contacts must use Friendica protocols. All other built-in communication "
"protocols disabled."
msgstr ""
#: src/Module/Admin/Site.php:632
#: src/Module/Admin/Site.php:621
msgid "Verify SSL"
msgstr ""
#: src/Module/Admin/Site.php:632
#: src/Module/Admin/Site.php:621
msgid ""
"If you wish, you can turn on strict certificate checking. This will mean you "
"cannot connect (at all) to self-signed SSL sites."
msgstr ""
#: src/Module/Admin/Site.php:633
#: src/Module/Admin/Site.php:622
msgid "Proxy user"
msgstr ""
#: src/Module/Admin/Site.php:634
#: src/Module/Admin/Site.php:623
msgid "Proxy URL"
msgstr ""
#: src/Module/Admin/Site.php:635
#: src/Module/Admin/Site.php:624
msgid "Network timeout"
msgstr ""
#: src/Module/Admin/Site.php:635
#: src/Module/Admin/Site.php:624
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
#: src/Module/Admin/Site.php:636
#: src/Module/Admin/Site.php:625
msgid "Maximum Load Average"
msgstr ""
#: src/Module/Admin/Site.php:636
#: src/Module/Admin/Site.php:625
#, php-format
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default %d."
msgstr ""
#: src/Module/Admin/Site.php:637
#: src/Module/Admin/Site.php:626
msgid "Maximum Load Average (Frontend)"
msgstr ""
#: src/Module/Admin/Site.php:637
#: src/Module/Admin/Site.php:626
msgid "Maximum system load before the frontend quits service - default 50."
msgstr ""
#: src/Module/Admin/Site.php:638
#: src/Module/Admin/Site.php:627
msgid "Minimal Memory"
msgstr ""
#: src/Module/Admin/Site.php:638
#: src/Module/Admin/Site.php:627
msgid ""
"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - "
"default 0 (deactivated)."
msgstr ""
#: src/Module/Admin/Site.php:639
#: src/Module/Admin/Site.php:628
msgid "Maximum table size for optimization"
msgstr ""
#: src/Module/Admin/Site.php:639
#: src/Module/Admin/Site.php:628
msgid ""
"Maximum table size (in MB) for the automatic optimization. Enter -1 to "
"disable it."
msgstr ""
#: src/Module/Admin/Site.php:640
#: src/Module/Admin/Site.php:629
msgid "Minimum level of fragmentation"
msgstr ""
#: src/Module/Admin/Site.php:640
#: src/Module/Admin/Site.php:629
msgid ""
"Minimum fragmenation level to start the automatic optimization - default "
"value is 30%."
msgstr ""
#: src/Module/Admin/Site.php:642
#: src/Module/Admin/Site.php:631
msgid "Periodical check of global contacts"
msgstr ""
#: src/Module/Admin/Site.php:642
#: src/Module/Admin/Site.php:631
msgid ""
"If enabled, the global contacts are checked periodically for missing or "
"outdated data and the vitality of the contacts and servers."
msgstr ""
#: src/Module/Admin/Site.php:643
#: src/Module/Admin/Site.php:632
msgid "Days between requery"
msgstr ""
#: src/Module/Admin/Site.php:643
#: src/Module/Admin/Site.php:632
msgid "Number of days after which a server is requeried for his contacts."
msgstr ""
#: src/Module/Admin/Site.php:644
#: src/Module/Admin/Site.php:633
msgid "Discover contacts from other servers"
msgstr ""
#: src/Module/Admin/Site.php:644
#: src/Module/Admin/Site.php:633
msgid ""
"Periodically query other servers for contacts. You can choose between \"Users"
"\": the users on the remote system, \"Global Contacts\": active contacts "
@ -5652,32 +8291,32 @@ msgid ""
"Global Contacts\"."
msgstr ""
#: src/Module/Admin/Site.php:645
#: src/Module/Admin/Site.php:634
msgid "Timeframe for fetching global contacts"
msgstr ""
#: src/Module/Admin/Site.php:645
#: src/Module/Admin/Site.php:634
msgid ""
"When the discovery is activated, this value defines the timeframe for the "
"activity of the global contacts that are fetched from other servers."
msgstr ""
#: src/Module/Admin/Site.php:646
#: src/Module/Admin/Site.php:635
msgid "Search the local directory"
msgstr ""
#: src/Module/Admin/Site.php:646
#: src/Module/Admin/Site.php:635
msgid ""
"Search the local directory instead of the global directory. When searching "
"locally, every search will be executed on the global directory in the "
"background. This improves the search results when the search is repeated."
msgstr ""
#: src/Module/Admin/Site.php:648
#: src/Module/Admin/Site.php:637
msgid "Publish server information"
msgstr ""
#: src/Module/Admin/Site.php:648
#: src/Module/Admin/Site.php:637
msgid ""
"If enabled, general server and usage data will be published. The data "
"contains the name and version of the server, number of users with public "
@ -5685,50 +8324,50 @@ msgid ""
"href=\"http://the-federation.info/\">the-federation.info</a> for details."
msgstr ""
#: src/Module/Admin/Site.php:650
#: src/Module/Admin/Site.php:639
msgid "Check upstream version"
msgstr ""
#: src/Module/Admin/Site.php:650
#: src/Module/Admin/Site.php:639
msgid ""
"Enables checking for new Friendica versions at github. If there is a new "
"version, you will be informed in the admin panel overview."
msgstr ""
#: src/Module/Admin/Site.php:651
#: src/Module/Admin/Site.php:640
msgid "Suppress Tags"
msgstr ""
#: src/Module/Admin/Site.php:651
#: src/Module/Admin/Site.php:640
msgid "Suppress showing a list of hashtags at the end of the posting."
msgstr ""
#: src/Module/Admin/Site.php:652
#: src/Module/Admin/Site.php:641
msgid "Clean database"
msgstr ""
#: src/Module/Admin/Site.php:652
#: src/Module/Admin/Site.php:641
msgid ""
"Remove old remote items, orphaned database records and old content from some "
"other helper tables."
msgstr ""
#: src/Module/Admin/Site.php:653
#: src/Module/Admin/Site.php:642
msgid "Lifespan of remote items"
msgstr ""
#: src/Module/Admin/Site.php:653
#: src/Module/Admin/Site.php:642
msgid ""
"When the database cleanup is enabled, this defines the days after which "
"remote items will be deleted. Own items, and marked or filed items are "
"always kept. 0 disables this behaviour."
msgstr ""
#: src/Module/Admin/Site.php:654
#: src/Module/Admin/Site.php:643
msgid "Lifespan of unclaimed items"
msgstr ""
#: src/Module/Admin/Site.php:654
#: src/Module/Admin/Site.php:643
msgid ""
"When the database cleanup is enabled, this defines the days after which "
"unclaimed remote items (mostly content from the relay) will be deleted. "
@ -5736,130 +8375,126 @@ msgid ""
"items if set to 0."
msgstr ""
#: src/Module/Admin/Site.php:655
#: src/Module/Admin/Site.php:644
msgid "Lifespan of raw conversation data"
msgstr ""
#: src/Module/Admin/Site.php:655
#: src/Module/Admin/Site.php:644
msgid ""
"The conversation data is used for ActivityPub and OStatus, as well as for "
"debug purposes. It should be safe to remove it after 14 days, default is 90 "
"days."
msgstr ""
#: src/Module/Admin/Site.php:656
#: src/Module/Admin/Site.php:645
msgid "Path to item cache"
msgstr ""
#: src/Module/Admin/Site.php:656
#: src/Module/Admin/Site.php:645
msgid "The item caches buffers generated bbcode and external images."
msgstr ""
#: src/Module/Admin/Site.php:657
#: src/Module/Admin/Site.php:646
msgid "Cache duration in seconds"
msgstr ""
#: src/Module/Admin/Site.php:657
#: src/Module/Admin/Site.php:646
msgid ""
"How long should the cache files be hold? Default value is 86400 seconds (One "
"day). To disable the item cache, set the value to -1."
msgstr ""
#: src/Module/Admin/Site.php:658
#: src/Module/Admin/Site.php:647
msgid "Maximum numbers of comments per post"
msgstr ""
#: src/Module/Admin/Site.php:658
#: src/Module/Admin/Site.php:647
msgid "How much comments should be shown for each post? Default value is 100."
msgstr ""
#: src/Module/Admin/Site.php:659
#: src/Module/Admin/Site.php:648
msgid "Temp path"
msgstr ""
#: src/Module/Admin/Site.php:659
#: src/Module/Admin/Site.php:648
msgid ""
"If you have a restricted system where the webserver can't access the system "
"temp path, enter another path here."
msgstr ""
#: src/Module/Admin/Site.php:660
#: src/Module/Admin/Site.php:649
msgid "Disable picture proxy"
msgstr ""
#: src/Module/Admin/Site.php:660
#: src/Module/Admin/Site.php:649
msgid ""
"The picture proxy increases performance and privacy. It shouldn't be used on "
"systems with very low bandwidth."
msgstr ""
#: src/Module/Admin/Site.php:661
#: src/Module/Admin/Site.php:650
msgid "Only search in tags"
msgstr ""
#: src/Module/Admin/Site.php:661
#: src/Module/Admin/Site.php:650
msgid "On large systems the text search can slow down the system extremely."
msgstr ""
#: src/Module/Admin/Site.php:663
#: src/Module/Admin/Site.php:652
msgid "New base url"
msgstr ""
#: src/Module/Admin/Site.php:663
#: src/Module/Admin/Site.php:652
msgid ""
"Change base url for this server. Sends relocate message to all Friendica and "
"Diaspora* contacts of all users."
msgstr ""
#: src/Module/Admin/Site.php:665
#: src/Module/Admin/Site.php:654
msgid "RINO Encryption"
msgstr ""
#: src/Module/Admin/Site.php:665
#: src/Module/Admin/Site.php:654
msgid "Encryption layer between nodes."
msgstr ""
#: src/Module/Admin/Site.php:665
msgid "Enabled"
msgstr ""
#: src/Module/Admin/Site.php:667
#: src/Module/Admin/Site.php:656
msgid "Maximum number of parallel workers"
msgstr ""
#: src/Module/Admin/Site.php:667
#: src/Module/Admin/Site.php:656
#, php-format
msgid ""
"On shared hosters set this to %d. On larger systems, values of %d are great. "
"Default value is %d."
msgstr ""
#: src/Module/Admin/Site.php:668
#: src/Module/Admin/Site.php:657
msgid "Don't use \"proc_open\" with the worker"
msgstr ""
#: src/Module/Admin/Site.php:668
#: src/Module/Admin/Site.php:657
msgid ""
"Enable this if your system doesn't allow the use of \"proc_open\". This can "
"happen on shared hosters. If this is enabled you should increase the "
"frequency of worker calls in your crontab."
msgstr ""
#: src/Module/Admin/Site.php:669
#: src/Module/Admin/Site.php:658
msgid "Enable fastlane"
msgstr ""
#: src/Module/Admin/Site.php:669
#: src/Module/Admin/Site.php:658
msgid ""
"When enabed, the fastlane mechanism starts an additional worker if processes "
"with higher priority are blocked by processes of lower priority."
msgstr ""
#: src/Module/Admin/Site.php:670
#: src/Module/Admin/Site.php:659
msgid "Enable frontend worker"
msgstr ""
#: src/Module/Admin/Site.php:670
#: src/Module/Admin/Site.php:659
#, php-format
msgid ""
"When enabled the Worker process is triggered when backend access is "
@ -5869,94 +8504,94 @@ msgid ""
"server."
msgstr ""
#: src/Module/Admin/Site.php:672
#: src/Module/Admin/Site.php:661
msgid "Subscribe to relay"
msgstr ""
#: src/Module/Admin/Site.php:672
#: src/Module/Admin/Site.php:661
msgid ""
"Enables the receiving of public posts from the relay. They will be included "
"in the search, subscribed tags and on the global community page."
msgstr ""
#: src/Module/Admin/Site.php:673
#: src/Module/Admin/Site.php:662
msgid "Relay server"
msgstr ""
#: src/Module/Admin/Site.php:673
#: src/Module/Admin/Site.php:662
msgid ""
"Address of the relay server where public posts should be send to. For "
"example https://relay.diasp.org"
msgstr ""
#: src/Module/Admin/Site.php:674
#: src/Module/Admin/Site.php:663
msgid "Direct relay transfer"
msgstr ""
#: src/Module/Admin/Site.php:674
#: src/Module/Admin/Site.php:663
msgid ""
"Enables the direct transfer to other servers without using the relay servers"
msgstr ""
#: src/Module/Admin/Site.php:675
#: src/Module/Admin/Site.php:664
msgid "Relay scope"
msgstr ""
#: src/Module/Admin/Site.php:675
#: src/Module/Admin/Site.php:664
msgid ""
"Can be \"all\" or \"tags\". \"all\" means that every public post should be "
"received. \"tags\" means that only posts with selected tags should be "
"received."
msgstr ""
#: src/Module/Admin/Site.php:675
#: src/Module/Admin/Site.php:664
msgid "all"
msgstr ""
#: src/Module/Admin/Site.php:675
#: src/Module/Admin/Site.php:664
msgid "tags"
msgstr ""
#: src/Module/Admin/Site.php:676
#: src/Module/Admin/Site.php:665
msgid "Server tags"
msgstr ""
#: src/Module/Admin/Site.php:676
#: src/Module/Admin/Site.php:665
msgid "Comma separated list of tags for the \"tags\" subscription."
msgstr ""
#: src/Module/Admin/Site.php:677
#: src/Module/Admin/Site.php:666
msgid "Allow user tags"
msgstr ""
#: src/Module/Admin/Site.php:677
#: src/Module/Admin/Site.php:666
msgid ""
"If enabled, the tags from the saved searches will used for the \"tags\" "
"subscription in addition to the \"relay_server_tags\"."
msgstr ""
#: src/Module/Admin/Site.php:680
#: src/Module/Admin/Site.php:669
msgid "Start Relocation"
msgstr ""
#: src/Module/Admin/Federation.php:76
#: src/Module/Admin/Federation.php:88 src/Module/Admin/Federation.php:250
msgid "unknown"
msgstr ""
#: src/Module/Admin/Federation.php:181
#: src/Module/Admin/Federation.php:116
msgid ""
"This page offers you some numbers to the known part of the federated social "
"network your Friendica node is part of. These numbers are not complete but "
"only reflect the part of the network your node is aware of."
msgstr ""
#: src/Module/Admin/Federation.php:182
#: src/Module/Admin/Federation.php:117
msgid ""
"The <em>Auto Discovered Contact Directory</em> feature is not enabled, it "
"will improve the data displayed here."
msgstr ""
#: src/Module/Admin/Federation.php:194
#: src/Module/Admin/Federation.php:129
#, php-format
msgid ""
"Currently this node is aware of %d nodes with %d registered users from the "
@ -5964,12 +8599,12 @@ msgid ""
msgstr ""
#: src/Module/Admin/Features.php:58 src/Module/Admin/Features.php:59
#: mod/settings.php:768
#: mod/settings.php:762
msgid "Off"
msgstr ""
#: src/Module/Admin/Features.php:58 src/Module/Admin/Features.php:59
#: mod/settings.php:768
#: mod/settings.php:762
msgid "On"
msgstr ""
@ -6060,41 +8695,41 @@ msgstr ""
msgid "Log settings updated."
msgstr ""
#: src/Module/Admin/Logs/Settings.php:55
#: src/Module/Admin/Logs/Settings.php:53
msgid "PHP log currently enabled."
msgstr ""
#: src/Module/Admin/Logs/Settings.php:57
#: src/Module/Admin/Logs/Settings.php:55
msgid "PHP log currently disabled."
msgstr ""
#: src/Module/Admin/Logs/Settings.php:66
#: src/Module/Admin/Logs/Settings.php:64
msgid "Clear"
msgstr ""
#: src/Module/Admin/Logs/Settings.php:70
#: src/Module/Admin/Logs/Settings.php:68
msgid "Enable Debugging"
msgstr ""
#: src/Module/Admin/Logs/Settings.php:71
#: src/Module/Admin/Logs/Settings.php:69
msgid "Log file"
msgstr ""
#: src/Module/Admin/Logs/Settings.php:71
#: src/Module/Admin/Logs/Settings.php:69
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr ""
#: src/Module/Admin/Logs/Settings.php:72
#: src/Module/Admin/Logs/Settings.php:70
msgid "Log level"
msgstr ""
#: src/Module/Admin/Logs/Settings.php:74
#: src/Module/Admin/Logs/Settings.php:72
msgid "PHP logging"
msgstr ""
#: src/Module/Admin/Logs/Settings.php:75
#: src/Module/Admin/Logs/Settings.php:73
msgid ""
"To temporarily enable logging of PHP errors and warnings you can prepend the "
"following to the index.php file of your installation. The filename set in "
@ -6117,7 +8752,7 @@ msgid ""
"%1$s is readable."
msgstr ""
#: src/Module/Admin/Summary.php:32
#: src/Module/Admin/Summary.php:31
#, php-format
msgid ""
"Your DB still runs with MyISAM tables. You should change the engine type to "
@ -6128,39 +8763,39 @@ msgid ""
"automatic conversion.<br />"
msgstr ""
#: src/Module/Admin/Summary.php:40
#: src/Module/Admin/Summary.php:39
#, php-format
msgid ""
"There is a new version of Friendica available for download. Your current "
"version is %1$s, upstream version is %2$s"
msgstr ""
#: src/Module/Admin/Summary.php:49
#: src/Module/Admin/Summary.php:48
msgid ""
"The database update failed. Please run \"php bin/console.php dbstructure "
"update\" from the command line and have a look at the errors that might "
"appear."
msgstr ""
#: src/Module/Admin/Summary.php:53
#: src/Module/Admin/Summary.php:52
msgid ""
"The last update failed. Please run \"php bin/console.php dbstructure update"
"\" from the command line and have a look at the errors that might appear. "
"(Some of the errors are possibly inside the logfile.)"
msgstr ""
#: src/Module/Admin/Summary.php:58
#: src/Module/Admin/Summary.php:57
msgid "The worker was never executed. Please check your database structure!"
msgstr ""
#: src/Module/Admin/Summary.php:60
#: src/Module/Admin/Summary.php:59
#, php-format
msgid ""
"The last worker execution was on %s UTC. This is older than one hour. Please "
"check your crontab settings."
msgstr ""
#: src/Module/Admin/Summary.php:65
#: src/Module/Admin/Summary.php:64
#, php-format
msgid ""
"Friendica's configuration now is stored in config/local.config.php, please "
@ -6169,7 +8804,7 @@ msgid ""
"with the transition."
msgstr ""
#: src/Module/Admin/Summary.php:69
#: src/Module/Admin/Summary.php:68
#, php-format
msgid ""
"Friendica's configuration now is stored in config/local.config.php, please "
@ -6178,7 +8813,7 @@ msgid ""
"with the transition."
msgstr ""
#: src/Module/Admin/Summary.php:75
#: src/Module/Admin/Summary.php:74
#, php-format
msgid ""
"<a href=\"%s\">%s</a> is not reachable on your system. This is a severe "
@ -6186,86 +8821,86 @@ msgid ""
"href=\"%s\">the installation page</a> for help."
msgstr ""
#: src/Module/Admin/Summary.php:94
#: src/Module/Admin/Summary.php:92
#, php-format
msgid "The logfile '%s' is not usable. No logging possible (error: '%s')"
msgstr ""
#: src/Module/Admin/Summary.php:109
#: src/Module/Admin/Summary.php:107
#, php-format
msgid "The debug logfile '%s' is not usable. No logging possible (error: '%s')"
msgstr ""
#: src/Module/Admin/Summary.php:125
#: src/Module/Admin/Summary.php:123
#, php-format
msgid ""
"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the "
"system.basepath from your db to avoid differences."
msgstr ""
#: src/Module/Admin/Summary.php:133
#: src/Module/Admin/Summary.php:131
#, php-format
msgid ""
"Friendica's current system.basepath '%s' is wrong and the config file '%s' "
"isn't used."
msgstr ""
#: src/Module/Admin/Summary.php:141
#: src/Module/Admin/Summary.php:139
#, php-format
msgid ""
"Friendica's current system.basepath '%s' is not equal to the config file "
"'%s'. Please fix your configuration."
msgstr ""
#: src/Module/Admin/Summary.php:148
#: src/Module/Admin/Summary.php:146
msgid "Normal Account"
msgstr ""
#: src/Module/Admin/Summary.php:149
#: src/Module/Admin/Summary.php:147
msgid "Automatic Follower Account"
msgstr ""
#: src/Module/Admin/Summary.php:150
#: src/Module/Admin/Summary.php:148
msgid "Public Forum Account"
msgstr ""
#: src/Module/Admin/Summary.php:151
#: src/Module/Admin/Summary.php:149
msgid "Automatic Friend Account"
msgstr ""
#: src/Module/Admin/Summary.php:152
#: src/Module/Admin/Summary.php:150
msgid "Blog Account"
msgstr ""
#: src/Module/Admin/Summary.php:153
#: src/Module/Admin/Summary.php:151
msgid "Private Forum Account"
msgstr ""
#: src/Module/Admin/Summary.php:173
#: src/Module/Admin/Summary.php:171
msgid "Message queues"
msgstr ""
#: src/Module/Admin/Summary.php:179
#: src/Module/Admin/Summary.php:177
msgid "Server Settings"
msgstr ""
#: src/Module/Admin/Summary.php:193
#: src/Module/Admin/Summary.php:191
msgid "Summary"
msgstr ""
#: src/Module/Admin/Summary.php:195
#: src/Module/Admin/Summary.php:193
msgid "Registered users"
msgstr ""
#: src/Module/Admin/Summary.php:197
#: src/Module/Admin/Summary.php:195
msgid "Pending registrations"
msgstr ""
#: src/Module/Admin/Summary.php:198
#: src/Module/Admin/Summary.php:196
msgid "Version"
msgstr ""
#: src/Module/Admin/Summary.php:202
#: src/Module/Admin/Summary.php:200
msgid "Active addons"
msgstr ""
@ -6328,132 +8963,146 @@ msgstr ""
msgid "Attempt to execute this update step automatically"
msgstr ""
#: src/Module/Settings/Delegation.php:37
#: src/Module/Settings/Delegation.php:34
msgid "Delegation successfully granted."
msgstr ""
#: src/Module/Settings/Delegation.php:39
#: src/Module/Settings/Delegation.php:36
msgid "Parent user not found, unavailable or password doesn't match."
msgstr ""
#: src/Module/Settings/Delegation.php:43
#: src/Module/Settings/Delegation.php:40
msgid "Delegation successfully revoked."
msgstr ""
#: src/Module/Settings/Delegation.php:66 src/Module/Settings/Delegation.php:88
#: src/Module/Settings/Delegation.php:62 src/Module/Settings/Delegation.php:84
msgid ""
"Delegated administrators can view but not change delegation permissions."
msgstr ""
#: src/Module/Settings/Delegation.php:80
#: src/Module/Settings/Delegation.php:76
msgid "Delegate user not found."
msgstr ""
#: src/Module/Settings/Delegation.php:137
#: src/Module/Settings/Delegation.php:123
msgid "No parent user"
msgstr ""
#: src/Module/Settings/Delegation.php:149
#: src/Module/Settings/Delegation.php:135 src/Module/Register.php:152
msgid "Parent Password:"
msgstr ""
#: src/Module/Settings/Delegation.php:149
#: src/Module/Settings/Delegation.php:135 src/Module/Register.php:152
msgid ""
"Please enter the password of the parent account to legitimize your request."
msgstr ""
#: src/Module/Settings/Delegation.php:154
#: src/Module/Settings/Delegation.php:142
msgid "Additional Accounts"
msgstr ""
#: src/Module/Settings/Delegation.php:143
msgid ""
"Register additional accounts that are automatically connected to your "
"existing account so you can manage it from this account."
msgstr ""
#: src/Module/Settings/Delegation.php:144
msgid "Register an additional account"
msgstr ""
#: src/Module/Settings/Delegation.php:145
msgid "Parent User"
msgstr ""
#: src/Module/Settings/Delegation.php:157
#: src/Module/Settings/Delegation.php:148
msgid ""
"Parent users have total control about this account, including the account "
"settings. Please double check whom you give this access."
msgstr ""
#: src/Module/Settings/Delegation.php:159
msgid "Delegate Page Management"
#: src/Module/Settings/Delegation.php:151
msgid "Manage Accounts"
msgstr ""
#: src/Module/Settings/Delegation.php:160
#: src/Module/Settings/Delegation.php:152
msgid "Delegates"
msgstr ""
#: src/Module/Settings/Delegation.php:162
#: src/Module/Settings/Delegation.php:154
msgid ""
"Delegates are able to manage all aspects of this account/page except for "
"basic account settings. Please do not delegate your personal account to "
"anybody that you do not trust completely."
msgstr ""
#: src/Module/Settings/Delegation.php:163
#: src/Module/Settings/Delegation.php:155
msgid "Existing Page Delegates"
msgstr ""
#: src/Module/Settings/Delegation.php:165
#: src/Module/Settings/Delegation.php:157
msgid "Potential Delegates"
msgstr ""
#: src/Module/Settings/Delegation.php:167 mod/tagrm.php:114
#: src/Module/Settings/Delegation.php:159 mod/tagrm.php:114
msgid "Remove"
msgstr ""
#: src/Module/Settings/Delegation.php:168
#: src/Module/Settings/Delegation.php:160
msgid "Add"
msgstr ""
#: src/Module/Settings/Delegation.php:169
#: src/Module/Settings/Delegation.php:161
msgid "No entries."
msgstr ""
#: src/Module/Settings/UserExport.php:44
#: src/Module/Settings/UserExport.php:41
msgid "Export account"
msgstr ""
#: src/Module/Settings/UserExport.php:44
#: src/Module/Settings/UserExport.php:41
msgid ""
"Export your account info and contacts. Use this to make a backup of your "
"account and/or to move it to another server."
msgstr ""
#: src/Module/Settings/UserExport.php:45
#: src/Module/Settings/UserExport.php:42
msgid "Export all"
msgstr ""
#: src/Module/Settings/UserExport.php:45
#: src/Module/Settings/UserExport.php:42
msgid ""
"Export your accout info, contacts and all your items as json. Could be a "
"very big file, and could take a lot of time. Use this to make a full backup "
"of your account (photos are not exported)"
msgstr ""
#: src/Module/Settings/UserExport.php:46
#: src/Module/Settings/UserExport.php:43
msgid "Export Contacts to CSV"
msgstr ""
#: src/Module/Settings/UserExport.php:46
#: src/Module/Settings/UserExport.php:43
msgid ""
"Export the list of the accounts you are following as CSV file. Compatible to "
"e.g. Mastodon."
msgstr ""
#: src/Module/Settings/UserExport.php:52 src/Module/BaseSettingsModule.php:89
#: mod/settings.php:133
#: src/Module/Settings/UserExport.php:49 src/Module/BaseSettingsModule.php:89
#: mod/settings.php:128
msgid "Export personal data"
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:41
#: src/Module/Settings/TwoFactor/AppSpecific.php:36
#: src/Module/Settings/TwoFactor/Recovery.php:34
#: src/Module/Settings/TwoFactor/Verify.php:37
#: src/Module/Settings/TwoFactor/AppSpecific.php:33
#: src/Module/Settings/TwoFactor/Recovery.php:31
msgid "Please enter your password to access this page."
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:63
#: src/Module/Settings/TwoFactor/Verify.php:59
msgid "Two-factor authentication successfully activated."
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:96
#: src/Module/Settings/TwoFactor/Verify.php:92
#, php-format
msgid ""
"<p>Or you can submit the authentication settings manually:</p>\n"
@ -6473,204 +9122,204 @@ msgid ""
"</dl>"
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:116
#: src/Module/Settings/TwoFactor/Verify.php:112
msgid "Two-factor code verification"
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:118
#: src/Module/Settings/TwoFactor/Verify.php:114
msgid ""
"<p>Please scan this QR Code with your authenticator app and submit the "
"provided code.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:120
#: src/Module/Settings/TwoFactor/Verify.php:116
#, php-format
msgid ""
"<p>Or you can open the following URL in your mobile devicde:</p><p><a href="
"\"%s\">%s</a></p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:127
#: src/Module/Settings/TwoFactor/Verify.php:123
msgid "Verify code and enable two-factor authentication"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:54
#: src/Module/Settings/TwoFactor/AppSpecific.php:51
msgid "App-specific password generation failed: The description is empty."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:57
#: src/Module/Settings/TwoFactor/AppSpecific.php:54
msgid ""
"App-specific password generation failed: This description already exists."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:61
#: src/Module/Settings/TwoFactor/AppSpecific.php:58
msgid "New app-specific password generated."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:67
#: src/Module/Settings/TwoFactor/AppSpecific.php:64
msgid "App-specific passwords successfully revoked."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:77
#: src/Module/Settings/TwoFactor/AppSpecific.php:74
msgid "App-specific password successfully revoked."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:98
#: src/Module/Settings/TwoFactor/AppSpecific.php:95
msgid "Two-factor app-specific passwords"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:100
#: src/Module/Settings/TwoFactor/AppSpecific.php:97
msgid ""
"<p>App-specific passwords are randomly generated passwords used instead your "
"regular password to authenticate your account on third-party applications "
"that don't support two-factor authentication.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:101
#: src/Module/Settings/TwoFactor/AppSpecific.php:98
msgid ""
"Make sure to copy your new app-specific password now. You wont be able to "
"see it again!"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:104
#: src/Module/Settings/TwoFactor/AppSpecific.php:101
msgid "Description"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:105
#: src/Module/Settings/TwoFactor/AppSpecific.php:102
msgid "Last Used"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:106
#: src/Module/Settings/TwoFactor/AppSpecific.php:103
msgid "Revoke"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:107
#: src/Module/Settings/TwoFactor/AppSpecific.php:104
msgid "Revoke All"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:110
#: src/Module/Settings/TwoFactor/AppSpecific.php:107
msgid ""
"When you generate a new app-specific password, you must use it right away, "
"it will be shown to you once after you generate it."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:111
#: src/Module/Settings/TwoFactor/AppSpecific.php:108
msgid "Generate new app-specific password"
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:112
#: src/Module/Settings/TwoFactor/AppSpecific.php:109
msgid "Friendiqa on my Fairphone 2..."
msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:113
#: src/Module/Settings/TwoFactor/AppSpecific.php:110
msgid "Generate"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:51
#: src/Module/Settings/TwoFactor/Index.php:48
msgid "Two-factor authentication successfully disabled."
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:72 mod/settings.php:541
#: src/Module/Settings/TwoFactor/Index.php:69 mod/settings.php:536
msgid "Wrong Password"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:92
#: src/Module/Settings/TwoFactor/Index.php:89
msgid ""
"<p>Use an application on a mobile device to get two-factor authentication "
"codes when prompted on login.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:96
#: src/Module/Settings/TwoFactor/Index.php:93
msgid "Authenticator app"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:97
#: src/Module/Settings/TwoFactor/Index.php:94
msgid "Configured"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:97
#: src/Module/Settings/TwoFactor/Index.php:94
msgid "Not Configured"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:98
#: src/Module/Settings/TwoFactor/Index.php:95
msgid "<p>You haven't finished configuring your authenticator app.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:99
#: src/Module/Settings/TwoFactor/Index.php:96
msgid "<p>Your authenticator app is correctly configured.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:101
#: src/Module/Settings/TwoFactor/Index.php:98
msgid "Recovery codes"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:102
#: src/Module/Settings/TwoFactor/Index.php:99
msgid "Remaining valid codes"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:104
#: src/Module/Settings/TwoFactor/Index.php:101
msgid ""
"<p>These one-use codes can replace an authenticator app code in case you "
"have lost access to it.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:106
#: src/Module/Settings/TwoFactor/Index.php:103
msgid "App-specific passwords"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:107
#: src/Module/Settings/TwoFactor/Index.php:104
msgid "Generated app-specific passwords"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:109
#: src/Module/Settings/TwoFactor/Index.php:106
msgid ""
"<p>These randomly generated passwords allow you to authenticate on apps not "
"supporting two-factor authentication.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:111 src/Module/Contact.php:635
#: src/Module/Settings/TwoFactor/Index.php:108 src/Module/Contact.php:634
msgid "Actions"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:112
#: src/Module/Settings/TwoFactor/Index.php:109
msgid "Current password:"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:112
#: src/Module/Settings/TwoFactor/Index.php:109
msgid ""
"You need to provide your current password to change two-factor "
"authentication settings."
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:113
#: src/Module/Settings/TwoFactor/Index.php:110
msgid "Enable two-factor authentication"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:114
#: src/Module/Settings/TwoFactor/Index.php:111
msgid "Disable two-factor authentication"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:115
#: src/Module/Settings/TwoFactor/Index.php:112
msgid "Show recovery codes"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:116
#: src/Module/Settings/TwoFactor/Index.php:113
msgid "Manage app-specific passwords"
msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:117
#: src/Module/Settings/TwoFactor/Index.php:114
msgid "Finish app configuration"
msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:50
#: src/Module/Settings/TwoFactor/Recovery.php:47
msgid "New recovery codes successfully generated."
msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:76
#: src/Module/Settings/TwoFactor/Recovery.php:73
msgid "Two-factor recovery codes"
msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:78
#: src/Module/Settings/TwoFactor/Recovery.php:75
msgid ""
"<p>Recovery codes can be used to access your account in the event you lose "
"access to your device and cannot receive two-factor authentication codes.</"
@ -6678,17 +9327,17 @@ msgid ""
"dont have the recovery codes you will lose access to your account.</p>"
msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:80
#: src/Module/Settings/TwoFactor/Recovery.php:77
msgid ""
"When you generate new recovery codes, you must copy the new codes. Your old "
"codes wont work anymore."
msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:81
#: src/Module/Settings/TwoFactor/Recovery.php:78
msgid "Generate new recovery codes"
msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:83
#: src/Module/Settings/TwoFactor/Recovery.php:80
msgid "Next: Verification"
msgstr ""
@ -6696,21 +9345,21 @@ msgstr ""
msgid "Method Not Allowed."
msgstr ""
#: src/Module/HTTPException/PageNotFound.php:13 src/App/Router.php:186
#: src/Module/HTTPException/PageNotFound.php:13 src/App/Router.php:185
msgid "Page not found."
msgstr ""
#: src/Module/BaseSearchModule.php:54
#: src/Module/BaseSearchModule.php:52
#, php-format
msgid "People Search - %s"
msgstr ""
#: src/Module/BaseSearchModule.php:64
#: src/Module/BaseSearchModule.php:62
#, php-format
msgid "Forum Search - %s"
msgstr ""
#: src/Module/BaseSearchModule.php:96 mod/match.php:130
#: src/Module/BaseSearchModule.php:93 mod/match.php:129
msgid "No matches"
msgstr ""
@ -6722,135 +9371,119 @@ msgstr ""
msgid "Applications"
msgstr ""
#: src/Module/Credits.php:25
#: src/Module/Credits.php:24
msgid "Credits"
msgstr ""
#: src/Module/Credits.php:26
#: src/Module/Credits.php:25
msgid ""
"Friendica is a community project, that would not be possible without the "
"help of many people. Here is a list of those who have contributed to the "
"code or the translation of Friendica. Thank you all!"
msgstr ""
#: src/Module/Logout.php:41
msgid "Logged out."
msgstr ""
#: src/Module/Group.php:42
#: src/Module/Group.php:41
msgid "Group created."
msgstr ""
#: src/Module/Group.php:48
#: src/Module/Group.php:47
msgid "Could not create group."
msgstr ""
#: src/Module/Group.php:59 src/Module/Group.php:207 src/Module/Group.php:233
#: src/Module/Group.php:58 src/Module/Group.php:200 src/Module/Group.php:226
msgid "Group not found."
msgstr ""
#: src/Module/Group.php:65
#: src/Module/Group.php:64
msgid "Group name changed."
msgstr ""
#: src/Module/Group.php:87
#: src/Module/Group.php:86
msgid "Unknown group."
msgstr ""
#: src/Module/Group.php:92 src/Module/FollowConfirm.php:46 mod/fsuggest.php:32
#: mod/fsuggest.php:75 mod/crepair.php:102 mod/dfrn_confirm.php:126
#: mod/redir.php:32 mod/redir.php:122 mod/redir.php:137
#: src/Module/Group.php:91 mod/fsuggest.php:31 mod/fsuggest.php:74
#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/redir.php:32
#: mod/redir.php:122 mod/redir.php:137
msgid "Contact not found."
msgstr ""
#: src/Module/Group.php:96
msgid "Contact is unavailable."
msgstr ""
#: src/Module/Group.php:100
#: src/Module/Group.php:95
msgid "Contact is deleted."
msgstr ""
#: src/Module/Group.php:106
msgid "Contact is blocked, unable to add it to a group."
msgstr ""
#: src/Module/Group.php:110
#: src/Module/Group.php:101
msgid "Unable to add the contact to the group."
msgstr ""
#: src/Module/Group.php:112
#: src/Module/Group.php:104
msgid "Contact successfully added to group."
msgstr ""
#: src/Module/Group.php:116
#: src/Module/Group.php:108
msgid "Unable to remove the contact from the group."
msgstr ""
#: src/Module/Group.php:118
#: src/Module/Group.php:111
msgid "Contact successfully removed from group."
msgstr ""
#: src/Module/Group.php:121
#: src/Module/Group.php:114
msgid "Unknown group command."
msgstr ""
#: src/Module/Group.php:124
#: src/Module/Group.php:117
msgid "Bad request."
msgstr ""
#: src/Module/Group.php:163
#: src/Module/Group.php:156
msgid "Save Group"
msgstr ""
#: src/Module/Group.php:164
#: src/Module/Group.php:157
msgid "Filter"
msgstr ""
#: src/Module/Group.php:170
#: src/Module/Group.php:163
msgid "Create a group of contacts/friends."
msgstr ""
#: src/Module/Group.php:212
#: src/Module/Group.php:205
msgid "Group removed."
msgstr ""
#: src/Module/Group.php:214
#: src/Module/Group.php:207
msgid "Unable to remove group."
msgstr ""
#: src/Module/Group.php:265
#: src/Module/Group.php:258
msgid "Delete Group"
msgstr ""
#: src/Module/Group.php:275
#: src/Module/Group.php:268
msgid "Edit Group Name"
msgstr ""
#: src/Module/Group.php:285
#: src/Module/Group.php:278
msgid "Members"
msgstr ""
#: src/Module/Group.php:288 mod/network.php:616
#: src/Module/Group.php:281 mod/network.php:584
msgid "Group is empty"
msgstr ""
#: src/Module/Group.php:301
#: src/Module/Group.php:294
msgid "Remove contact from group"
msgstr ""
#: src/Module/Group.php:321 mod/profperm.php:119
#: src/Module/Group.php:314 mod/profperm.php:118
msgid "Click on a contact to add or remove."
msgstr ""
#: src/Module/Group.php:335
#: src/Module/Group.php:328
msgid "Add contact to group"
msgstr ""
#: src/Module/FollowConfirm.php:37
msgid "No given contact."
msgstr ""
#: src/Module/Debug/WebFinger.php:18 src/Module/Debug/Probe.php:19
msgid "Only logged in users are permitted to perform a probing."
msgstr ""
@ -6884,129 +9517,129 @@ msgstr ""
msgid "Please select your timezone:"
msgstr ""
#: src/Module/Debug/Babel.php:32
#: src/Module/Debug/Babel.php:31
msgid "Source input"
msgstr ""
#: src/Module/Debug/Babel.php:38
#: src/Module/Debug/Babel.php:37
msgid "BBCode::toPlaintext"
msgstr ""
#: src/Module/Debug/Babel.php:44
#: src/Module/Debug/Babel.php:43
msgid "BBCode::convert (raw HTML)"
msgstr ""
#: src/Module/Debug/Babel.php:49
#: src/Module/Debug/Babel.php:48
msgid "BBCode::convert"
msgstr ""
#: src/Module/Debug/Babel.php:55
#: src/Module/Debug/Babel.php:54
msgid "BBCode::convert => HTML::toBBCode"
msgstr ""
#: src/Module/Debug/Babel.php:61
#: src/Module/Debug/Babel.php:60
msgid "BBCode::toMarkdown"
msgstr ""
#: src/Module/Debug/Babel.php:67
#: src/Module/Debug/Babel.php:66
msgid "BBCode::toMarkdown => Markdown::convert (raw HTML)"
msgstr ""
#: src/Module/Debug/Babel.php:70
msgid "BBCode::toMarkdown => Markdown::convert"
msgstr ""
#: src/Module/Debug/Babel.php:73
#: src/Module/Debug/Babel.php:76
msgid "BBCode::toMarkdown => Markdown::toBBCode"
msgstr ""
#: src/Module/Debug/Babel.php:79
#: src/Module/Debug/Babel.php:82
msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"
msgstr ""
#: src/Module/Debug/Babel.php:90
#: src/Module/Debug/Babel.php:93
msgid "Item Body"
msgstr ""
#: src/Module/Debug/Babel.php:94
#: src/Module/Debug/Babel.php:97
msgid "Item Tags"
msgstr ""
#: src/Module/Debug/Babel.php:101
#: src/Module/Debug/Babel.php:104
msgid "Source input (Diaspora format)"
msgstr ""
#: src/Module/Debug/Babel.php:107
#: src/Module/Debug/Babel.php:110
msgid "Markdown::convert (raw HTML)"
msgstr ""
#: src/Module/Debug/Babel.php:112
#: src/Module/Debug/Babel.php:115
msgid "Markdown::convert"
msgstr ""
#: src/Module/Debug/Babel.php:118
#: src/Module/Debug/Babel.php:121
msgid "Markdown::toBBCode"
msgstr ""
#: src/Module/Debug/Babel.php:125
#: src/Module/Debug/Babel.php:128
msgid "Raw HTML input"
msgstr ""
#: src/Module/Debug/Babel.php:130
#: src/Module/Debug/Babel.php:133
msgid "HTML Input"
msgstr ""
#: src/Module/Debug/Babel.php:136
#: src/Module/Debug/Babel.php:139
msgid "HTML::toBBCode"
msgstr ""
#: src/Module/Debug/Babel.php:142
#: src/Module/Debug/Babel.php:145
msgid "HTML::toBBCode => BBCode::convert"
msgstr ""
#: src/Module/Debug/Babel.php:147
#: src/Module/Debug/Babel.php:150
msgid "HTML::toBBCode => BBCode::convert (raw HTML)"
msgstr ""
#: src/Module/Debug/Babel.php:153
#: src/Module/Debug/Babel.php:156
msgid "HTML::toBBCode => BBCode::toPlaintext"
msgstr ""
#: src/Module/Debug/Babel.php:159
#: src/Module/Debug/Babel.php:162
msgid "HTML::toMarkdown"
msgstr ""
#: src/Module/Debug/Babel.php:165
#: src/Module/Debug/Babel.php:168
msgid "HTML::toPlaintext"
msgstr ""
#: src/Module/Debug/Babel.php:171
#: src/Module/Debug/Babel.php:174
msgid "HTML::toPlaintext (compact)"
msgstr ""
#: src/Module/Debug/Babel.php:179
#: src/Module/Debug/Babel.php:182
msgid "Source text"
msgstr ""
#: src/Module/Debug/Babel.php:180
#: src/Module/Debug/Babel.php:183
msgid "BBCode"
msgstr ""
#: src/Module/Debug/Babel.php:181
msgid "Markdown"
msgstr ""
#: src/Module/Debug/Babel.php:182
#: src/Module/Debug/Babel.php:185
msgid "HTML"
msgstr ""
#: src/Module/Debug/ItemBody.php:18 src/Module/Item/Ignore.php:25
#: src/Module/Diaspora/Receive.php:39 mod/community.php:32 mod/cal.php:31
#: mod/cal.php:35 mod/follow.php:20
#: src/Module/Debug/ItemBody.php:18 src/Module/Item/Ignore.php:22
#: src/Module/Diaspora/Receive.php:32 mod/community.php:32 mod/cal.php:28
#: mod/cal.php:32 mod/follow.php:19
msgid "Access denied."
msgstr ""
#: src/Module/Debug/Feed.php:20 src/Module/Filer/SaveTag.php:20
#: src/Module/Debug/Feed.php:20 src/Module/Filer/SaveTag.php:19
msgid "You must be logged in to use this module"
msgstr ""
#: src/Module/Debug/Feed.php:49
#: src/Module/Debug/Feed.php:46
msgid "Source URL"
msgstr ""
@ -7014,7 +9647,7 @@ msgstr ""
msgid "Lookup address"
msgstr ""
#: src/Module/Home.php:34
#: src/Module/Home.php:35
#, php-format
msgid "Welcome to %s"
msgstr ""
@ -7069,7 +9702,7 @@ msgid ""
"potential friends know exactly how to find you."
msgstr ""
#: src/Module/Welcome.php:39 mod/profile_photo.php:246 mod/profiles.php:583
#: src/Module/Welcome.php:39 mod/profile_photo.php:245 mod/profiles.php:581
msgid "Upload Profile Photo"
msgstr ""
@ -7189,6 +9822,7 @@ msgid ""
msgstr ""
#: src/Module/Profile/Contacts.php:24 src/Module/Profile/Contacts.php:37
#: src/Module/Register.php:242
msgid "User not found."
msgstr ""
@ -7196,8 +9830,8 @@ msgstr ""
msgid "No contacts."
msgstr ""
#: src/Module/Profile/Contacts.php:93 src/Module/Contact.php:590
#: src/Module/Contact.php:1029
#: src/Module/Profile/Contacts.php:93 src/Module/Contact.php:589
#: src/Module/Contact.php:1032
#, php-format
msgid "Visit %s's profile [%s]"
msgstr ""
@ -7234,17 +9868,17 @@ msgstr[1] ""
msgid "All contacts"
msgstr ""
#: src/Module/Filer/SaveTag.php:39
#: src/Module/Filer/SaveTag.php:38
#, php-format
msgid "Filetag %s saved to item"
msgstr ""
#: src/Module/Filer/SaveTag.php:48
#: src/Module/Filer/SaveTag.php:47
msgid "- select -"
msgstr ""
#: src/Module/AllFriends.php:35 src/Module/AllFriends.php:43
#: mod/network.php:649
#: mod/network.php:617
msgid "Invalid contact."
msgstr ""
@ -7252,415 +9886,415 @@ msgstr ""
msgid "No friends to display."
msgstr ""
#: src/Module/Contact.php:72
#: src/Module/Contact.php:71
#, php-format
msgid "%d contact edited."
msgid_plural "%d contacts edited."
msgstr[0] ""
msgstr[1] ""
#: src/Module/Contact.php:99
#: src/Module/Contact.php:98
msgid "Could not access contact record."
msgstr ""
#: src/Module/Contact.php:109
#: src/Module/Contact.php:108
msgid "Could not locate selected profile."
msgstr ""
#: src/Module/Contact.php:141
#: src/Module/Contact.php:140
msgid "Contact updated."
msgstr ""
#: src/Module/Contact.php:143 mod/dfrn_request.php:415
#: src/Module/Contact.php:142 mod/dfrn_request.php:416
msgid "Failed to update contact record."
msgstr ""
#: src/Module/Contact.php:376
#: src/Module/Contact.php:375
msgid "Contact not found"
msgstr ""
#: src/Module/Contact.php:395
#: src/Module/Contact.php:394
msgid "Contact has been blocked"
msgstr ""
#: src/Module/Contact.php:395
#: src/Module/Contact.php:394
msgid "Contact has been unblocked"
msgstr ""
#: src/Module/Contact.php:405
#: src/Module/Contact.php:404
msgid "Contact has been ignored"
msgstr ""
#: src/Module/Contact.php:405
#: src/Module/Contact.php:404
msgid "Contact has been unignored"
msgstr ""
#: src/Module/Contact.php:415
#: src/Module/Contact.php:414
msgid "Contact has been archived"
msgstr ""
#: src/Module/Contact.php:415
#: src/Module/Contact.php:414
msgid "Contact has been unarchived"
msgstr ""
#: src/Module/Contact.php:439
#: src/Module/Contact.php:438
msgid "Drop contact"
msgstr ""
#: src/Module/Contact.php:442 src/Module/Contact.php:819
#: src/Module/Contact.php:441 src/Module/Contact.php:822
msgid "Do you really want to delete this contact?"
msgstr ""
#: src/Module/Contact.php:456
#: src/Module/Contact.php:455
msgid "Contact has been removed."
msgstr ""
#: src/Module/Contact.php:486
#: src/Module/Contact.php:485
#, php-format
msgid "You are mutual friends with %s"
msgstr ""
#: src/Module/Contact.php:491
#: src/Module/Contact.php:490
#, php-format
msgid "You are sharing with %s"
msgstr ""
#: src/Module/Contact.php:496
#: src/Module/Contact.php:495
#, php-format
msgid "%s is sharing with you"
msgstr ""
#: src/Module/Contact.php:520
#: src/Module/Contact.php:519
msgid "Private communications are not available for this contact."
msgstr ""
#: src/Module/Contact.php:522
#: src/Module/Contact.php:521
msgid "Never"
msgstr ""
#: src/Module/Contact.php:525
#: src/Module/Contact.php:524
msgid "(Update was successful)"
msgstr ""
#: src/Module/Contact.php:525
#: src/Module/Contact.php:524
msgid "(Update was not successful)"
msgstr ""
#: src/Module/Contact.php:527 src/Module/Contact.php:1063
#: src/Module/Contact.php:526 src/Module/Contact.php:1066
msgid "Suggest friends"
msgstr ""
#: src/Module/Contact.php:531
#: src/Module/Contact.php:530
#, php-format
msgid "Network type: %s"
msgstr ""
#: src/Module/Contact.php:536
#: src/Module/Contact.php:535
msgid "Communications lost with this contact!"
msgstr ""
#: src/Module/Contact.php:542
#: src/Module/Contact.php:541
msgid "Fetch further information for feeds"
msgstr ""
#: src/Module/Contact.php:544
#: src/Module/Contact.php:543
msgid ""
"Fetch information like preview pictures, title and teaser from the feed "
"item. You can activate this if the feed doesn't contain much text. Keywords "
"are taken from the meta header in the feed item and are posted as hash tags."
msgstr ""
#: src/Module/Contact.php:547
#: src/Module/Contact.php:546
msgid "Fetch information"
msgstr ""
#: src/Module/Contact.php:548
#: src/Module/Contact.php:547
msgid "Fetch keywords"
msgstr ""
#: src/Module/Contact.php:549
#: src/Module/Contact.php:548
msgid "Fetch information and keywords"
msgstr ""
#: src/Module/Contact.php:568
#: src/Module/Contact.php:567
msgid "Profile Visibility"
msgstr ""
#: src/Module/Contact.php:569
#: src/Module/Contact.php:568
msgid "Contact Information / Notes"
msgstr ""
#: src/Module/Contact.php:570
#: src/Module/Contact.php:569
msgid "Contact Settings"
msgstr ""
#: src/Module/Contact.php:579
#: src/Module/Contact.php:578
msgid "Contact"
msgstr ""
#: src/Module/Contact.php:583
#: src/Module/Contact.php:582
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
#: src/Module/Contact.php:585
#: src/Module/Contact.php:584
msgid "Their personal note"
msgstr ""
#: src/Module/Contact.php:587
#: src/Module/Contact.php:586
msgid "Edit contact notes"
msgstr ""
#: src/Module/Contact.php:591
#: src/Module/Contact.php:590
msgid "Block/Unblock contact"
msgstr ""
#: src/Module/Contact.php:592
#: src/Module/Contact.php:591
msgid "Ignore contact"
msgstr ""
#: src/Module/Contact.php:593
#: src/Module/Contact.php:592
msgid "Repair URL settings"
msgstr ""
#: src/Module/Contact.php:594
#: src/Module/Contact.php:593
msgid "View conversations"
msgstr ""
#: src/Module/Contact.php:599
#: src/Module/Contact.php:598
msgid "Last update:"
msgstr ""
#: src/Module/Contact.php:601
#: src/Module/Contact.php:600
msgid "Update public posts"
msgstr ""
#: src/Module/Contact.php:603 src/Module/Contact.php:1073
#: src/Module/Contact.php:602 src/Module/Contact.php:1076
msgid "Update now"
msgstr ""
#: src/Module/Contact.php:607 src/Module/Contact.php:824
#: src/Module/Contact.php:1090
#: src/Module/Contact.php:606 src/Module/Contact.php:827
#: src/Module/Contact.php:1093
msgid "Unignore"
msgstr ""
#: src/Module/Contact.php:611
#: src/Module/Contact.php:610
msgid "Currently blocked"
msgstr ""
#: src/Module/Contact.php:612
#: src/Module/Contact.php:611
msgid "Currently ignored"
msgstr ""
#: src/Module/Contact.php:613
#: src/Module/Contact.php:612
msgid "Currently archived"
msgstr ""
#: src/Module/Contact.php:614
#: src/Module/Contact.php:613
msgid "Awaiting connection acknowledge"
msgstr ""
#: src/Module/Contact.php:615 mod/notifications.php:196
#: mod/notifications.php:283
#: src/Module/Contact.php:614 mod/notifications.php:168
#: mod/notifications.php:255
msgid "Hide this contact from others"
msgstr ""
#: src/Module/Contact.php:615
#: src/Module/Contact.php:614
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
#: src/Module/Contact.php:616
#: src/Module/Contact.php:615
msgid "Notification for new posts"
msgstr ""
#: src/Module/Contact.php:616
#: src/Module/Contact.php:615
msgid "Send a notification of every new post of this contact"
msgstr ""
#: src/Module/Contact.php:618
#: src/Module/Contact.php:617
msgid "Blacklisted keywords"
msgstr ""
#: src/Module/Contact.php:618
#: src/Module/Contact.php:617
msgid ""
"Comma separated list of keywords that should not be converted to hashtags, "
"when \"Fetch information and keywords\" is selected"
msgstr ""
#: src/Module/Contact.php:684
#: src/Module/Contact.php:687
msgid "Show all contacts"
msgstr ""
#: src/Module/Contact.php:689 src/Module/Contact.php:799
#: src/Module/Contact.php:692 src/Module/Contact.php:802
msgid "Pending"
msgstr ""
#: src/Module/Contact.php:692
#: src/Module/Contact.php:695
msgid "Only show pending contacts"
msgstr ""
#: src/Module/Contact.php:697 src/Module/Contact.php:800
#: src/Module/Contact.php:700 src/Module/Contact.php:803
msgid "Blocked"
msgstr ""
#: src/Module/Contact.php:700
#: src/Module/Contact.php:703
msgid "Only show blocked contacts"
msgstr ""
#: src/Module/Contact.php:705 src/Module/Contact.php:802
#: src/Module/Contact.php:708 src/Module/Contact.php:805
msgid "Ignored"
msgstr ""
#: src/Module/Contact.php:708
#: src/Module/Contact.php:711
msgid "Only show ignored contacts"
msgstr ""
#: src/Module/Contact.php:713 src/Module/Contact.php:803
#: src/Module/Contact.php:716 src/Module/Contact.php:806
msgid "Archived"
msgstr ""
#: src/Module/Contact.php:716
#: src/Module/Contact.php:719
msgid "Only show archived contacts"
msgstr ""
#: src/Module/Contact.php:721 src/Module/Contact.php:801
#: src/Module/Contact.php:724 src/Module/Contact.php:804
msgid "Hidden"
msgstr ""
#: src/Module/Contact.php:724
#: src/Module/Contact.php:727
msgid "Only show hidden contacts"
msgstr ""
#: src/Module/Contact.php:732
#: src/Module/Contact.php:735
msgid "Organize your contact groups"
msgstr ""
#: src/Module/Contact.php:814
#: src/Module/Contact.php:817
msgid "Search your contacts"
msgstr ""
#: src/Module/Contact.php:815 src/Module/Search/Index.php:185
#: src/Module/Contact.php:818 src/Module/Search/Index.php:176
#, php-format
msgid "Results for: %s"
msgstr ""
#: src/Module/Contact.php:822 mod/settings.php:194 mod/settings.php:696
#: src/Module/Contact.php:825 mod/settings.php:189 mod/settings.php:690
msgid "Update"
msgstr ""
#: src/Module/Contact.php:825 src/Module/Contact.php:1099
#: src/Module/Contact.php:828 src/Module/Contact.php:1102
msgid "Archive"
msgstr ""
#: src/Module/Contact.php:825 src/Module/Contact.php:1099
#: src/Module/Contact.php:828 src/Module/Contact.php:1102
msgid "Unarchive"
msgstr ""
#: src/Module/Contact.php:828
#: src/Module/Contact.php:831
msgid "Batch Actions"
msgstr ""
#: src/Module/Contact.php:855
#: src/Module/Contact.php:858
msgid "Conversations started by this contact"
msgstr ""
#: src/Module/Contact.php:860
#: src/Module/Contact.php:863
msgid "Posts and Comments"
msgstr ""
#: src/Module/Contact.php:883
#: src/Module/Contact.php:886
msgid "View all contacts"
msgstr ""
#: src/Module/Contact.php:891 mod/common.php:141
#: src/Module/Contact.php:894 mod/common.php:141
msgid "Common Friends"
msgstr ""
#: src/Module/Contact.php:894
#: src/Module/Contact.php:897
msgid "View all common friends"
msgstr ""
#: src/Module/Contact.php:904
#: src/Module/Contact.php:907
msgid "Advanced Contact Settings"
msgstr ""
#: src/Module/Contact.php:987
#: src/Module/Contact.php:990
msgid "Mutual Friendship"
msgstr ""
#: src/Module/Contact.php:992
#: src/Module/Contact.php:995
msgid "is a fan of yours"
msgstr ""
#: src/Module/Contact.php:997
#: src/Module/Contact.php:1000
msgid "you are a fan of"
msgstr ""
#: src/Module/Contact.php:1015
#: src/Module/Contact.php:1018
msgid "Pending outgoing contact request"
msgstr ""
#: src/Module/Contact.php:1017
#: src/Module/Contact.php:1020
msgid "Pending incoming contact request"
msgstr ""
#: src/Module/Contact.php:1030
#: src/Module/Contact.php:1033
msgid "Edit contact"
msgstr ""
#: src/Module/Contact.php:1084
#: src/Module/Contact.php:1087
msgid "Toggle Blocked status"
msgstr ""
#: src/Module/Contact.php:1092
#: src/Module/Contact.php:1095
msgid "Toggle Ignored status"
msgstr ""
#: src/Module/Contact.php:1101
#: src/Module/Contact.php:1104
msgid "Toggle Archive status"
msgstr ""
#: src/Module/Contact.php:1109
#: src/Module/Contact.php:1112
msgid "Delete contact"
msgstr ""
#: src/Module/Invite.php:37
#: src/Module/Invite.php:36
msgid "Total invitation limit exceeded."
msgstr ""
#: src/Module/Invite.php:60
#: src/Module/Invite.php:59
#, php-format
msgid "%s : Not a valid email address."
msgstr ""
#: src/Module/Invite.php:87
#: src/Module/Invite.php:86
msgid "Please join us on Friendica"
msgstr ""
#: src/Module/Invite.php:96
#: src/Module/Invite.php:95
msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr ""
#: src/Module/Invite.php:100
#: src/Module/Invite.php:99
#, php-format
msgid "%s : Message delivery failed."
msgstr ""
#: src/Module/Invite.php:104
#: src/Module/Invite.php:103
#, php-format
msgid "%d message sent."
msgid_plural "%d messages sent."
msgstr[0] ""
msgstr[1] ""
#: src/Module/Invite.php:122
#: src/Module/Invite.php:121
msgid "You have no more invitations available"
msgstr ""
#: src/Module/Invite.php:129
#: src/Module/Invite.php:128
#, php-format
msgid ""
"Visit %s for a list of public sites that you can join. Friendica members on "
@ -7668,14 +10302,14 @@ msgid ""
"other social networks."
msgstr ""
#: src/Module/Invite.php:131
#: src/Module/Invite.php:130
#, php-format
msgid ""
"To accept this invitation, please visit and register at %s or any other "
"public Friendica website."
msgstr ""
#: src/Module/Invite.php:132
#: src/Module/Invite.php:131
#, php-format
msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social "
@ -7684,327 +10318,355 @@ msgid ""
"sites you can join."
msgstr ""
#: src/Module/Invite.php:136
#: src/Module/Invite.php:135
msgid ""
"Our apologies. This system is not currently configured to connect with other "
"public sites or invite members."
msgstr ""
#: src/Module/Invite.php:139
#: src/Module/Invite.php:138
msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social "
"web that is owned and controlled by its members. They can also connect with "
"many traditional social networks."
msgstr ""
#: src/Module/Invite.php:138
#: src/Module/Invite.php:137
#, php-format
msgid "To accept this invitation, please visit and register at %s."
msgstr ""
#: src/Module/Invite.php:146
#: src/Module/Invite.php:145
msgid "Send invitations"
msgstr ""
#: src/Module/Invite.php:147
#: src/Module/Invite.php:146
msgid "Enter email addresses, one per line:"
msgstr ""
#: src/Module/Invite.php:150 mod/wallmessage.php:137 mod/message.php:255
#: mod/message.php:435
#: src/Module/Invite.php:149 mod/wallmessage.php:136 mod/message.php:253
#: mod/message.php:433
msgid "Your message:"
msgstr ""
#: src/Module/Invite.php:151
#: src/Module/Invite.php:150
msgid ""
"You are cordially invited to join me and other close friends on Friendica - "
"and help us to create a better social web."
msgstr ""
#: src/Module/Invite.php:153
#: src/Module/Invite.php:152
msgid "You will need to supply this invitation code: $invite_code"
msgstr ""
#: src/Module/Invite.php:153
#: src/Module/Invite.php:152
msgid ""
"Once you have registered, please connect with me via my profile page at:"
msgstr ""
#: src/Module/Invite.php:155
#: src/Module/Invite.php:154
msgid ""
"For more information about the Friendica project and why we feel it is "
"important, please visit http://friendi.ca"
msgstr ""
#: src/Module/BaseSettingsModule.php:18 mod/photos.php:133 mod/settings.php:62
#: src/Module/BaseSettingsModule.php:18 mod/photos.php:131 mod/settings.php:57
msgid "everybody"
msgstr ""
#: src/Module/BaseSettingsModule.php:24 mod/settings.php:67
#: src/Module/BaseSettingsModule.php:24 mod/settings.php:62
msgid "Account"
msgstr ""
#: src/Module/BaseSettingsModule.php:54 mod/settings.php:98
#: src/Module/BaseSettingsModule.php:54 mod/settings.php:93
msgid "Display"
msgstr ""
#: src/Module/BaseSettingsModule.php:61 mod/settings.php:105
#: mod/settings.php:843
#: src/Module/BaseSettingsModule.php:61 mod/settings.php:100
#: mod/settings.php:837
msgid "Social Networks"
msgstr ""
#: src/Module/BaseSettingsModule.php:75 mod/settings.php:119
#: src/Module/BaseSettingsModule.php:75 mod/settings.php:114
msgid "Delegations"
msgstr ""
#: src/Module/BaseSettingsModule.php:82 mod/settings.php:126
#: src/Module/BaseSettingsModule.php:82 mod/settings.php:121
msgid "Connected apps"
msgstr ""
#: src/Module/BaseSettingsModule.php:96 mod/settings.php:140
#: src/Module/BaseSettingsModule.php:96 mod/settings.php:135
msgid "Remove account"
msgstr ""
#: src/Module/Item/Compose.php:34
#: src/Module/Item/Compose.php:27
msgid "Please enter a post body."
msgstr ""
#: src/Module/Item/Compose.php:47
#: src/Module/Item/Compose.php:40
msgid "This feature is only available with the frio theme."
msgstr ""
#: src/Module/Item/Compose.php:75
#: src/Module/Item/Compose.php:67
msgid "Compose new personal note"
msgstr ""
#: src/Module/Item/Compose.php:84
#: src/Module/Item/Compose.php:76
msgid "Compose new post"
msgstr ""
#: src/Module/Item/Compose.php:119
#: src/Module/Item/Compose.php:116
msgid "Visibility"
msgstr ""
#: src/Module/Item/Compose.php:140
#: src/Module/Item/Compose.php:137
msgid "Clear the location"
msgstr ""
#: src/Module/Item/Compose.php:141
#: src/Module/Item/Compose.php:138
msgid "Location services are unavailable on your device"
msgstr ""
#: src/Module/Item/Compose.php:142
#: src/Module/Item/Compose.php:139
msgid ""
"Location services are disabled. Please check the website's permissions on "
"your device"
msgstr ""
#: src/Module/Friendica.php:40
#: src/Module/Friendica.php:39
msgid "Installed addons/apps:"
msgstr ""
#: src/Module/Friendica.php:45
#: src/Module/Friendica.php:44
msgid "No installed addons/apps"
msgstr ""
#: src/Module/Friendica.php:50
#: src/Module/Friendica.php:49
#, php-format
msgid "Read about the <a href=\"%1$s/tos\">Terms of Service</a> of this node."
msgstr ""
#: src/Module/Friendica.php:57
#: src/Module/Friendica.php:56
msgid "On this server the following remote servers are blocked."
msgstr ""
#: src/Module/Friendica.php:75
#: src/Module/Friendica.php:74
#, php-format
msgid ""
"This is Friendica, version %s that is running at the web location %s. The "
"database version is %s, the post update version is %s."
msgstr ""
#: src/Module/Friendica.php:80
#: src/Module/Friendica.php:79
msgid ""
"Please visit <a href=\"https://friendi.ca\">Friendi.ca</a> to learn more "
"about the Friendica project."
msgstr ""
#: src/Module/Friendica.php:81
#: src/Module/Friendica.php:80
msgid "Bug reports and issues: please visit"
msgstr ""
#: src/Module/Friendica.php:81
#: src/Module/Friendica.php:80
msgid "the bugtracker at github"
msgstr ""
#: src/Module/Friendica.php:82
#: src/Module/Friendica.php:81
msgid ""
"Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"
msgstr ""
#: src/Module/Register.php:60 mod/uimport.php:39
#: src/Module/HoverCard.php:30
msgid "No profile"
msgstr ""
#: src/Module/Register.php:51
msgid "Only parent users can create additional accounts."
msgstr ""
#: src/Module/Register.php:66 mod/uimport.php:39
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr ""
#: src/Module/Register.php:77
#: src/Module/Register.php:83
msgid ""
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
"and clicking \"Register\"."
msgstr ""
#: src/Module/Register.php:78
#: src/Module/Register.php:84
msgid ""
"If you are not familiar with OpenID, please leave that field blank and fill "
"in the rest of the items."
msgstr ""
#: src/Module/Register.php:79
#: src/Module/Register.php:85
msgid "Your OpenID (optional): "
msgstr ""
#: src/Module/Register.php:88
#: src/Module/Register.php:94
msgid "Include your profile in member directory?"
msgstr ""
#: src/Module/Register.php:92 mod/api.php:111 mod/dfrn_request.php:642
#: mod/follow.php:163 mod/profiles.php:526 mod/profiles.php:530
#: mod/profiles.php:551 mod/settings.php:1090 mod/settings.php:1096
#: mod/settings.php:1103 mod/settings.php:1107 mod/settings.php:1111
#: mod/settings.php:1115 mod/settings.php:1119 mod/settings.php:1123
#: mod/settings.php:1143 mod/settings.php:1144 mod/settings.php:1145
#: mod/settings.php:1146 mod/settings.php:1147
#: src/Module/Register.php:98 mod/api.php:111 mod/dfrn_request.php:643
#: mod/follow.php:162 mod/profiles.php:524 mod/profiles.php:528
#: mod/profiles.php:549 mod/settings.php:1084 mod/settings.php:1090
#: mod/settings.php:1097 mod/settings.php:1101 mod/settings.php:1105
#: mod/settings.php:1109 mod/settings.php:1113 mod/settings.php:1117
#: mod/settings.php:1137 mod/settings.php:1138 mod/settings.php:1139
#: mod/settings.php:1140 mod/settings.php:1141
msgid "No"
msgstr ""
#: src/Module/Register.php:111
#: src/Module/Register.php:117
msgid "Note for the admin"
msgstr ""
#: src/Module/Register.php:111
#: src/Module/Register.php:117
msgid "Leave a message for the admin, why you want to join this node"
msgstr ""
#: src/Module/Register.php:112
#: src/Module/Register.php:118
msgid "Membership on this site is by invitation only."
msgstr ""
#: src/Module/Register.php:113
#: src/Module/Register.php:119
msgid "Your invitation code: "
msgstr ""
#: src/Module/Register.php:121
#: src/Module/Register.php:127
msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
msgstr ""
#: src/Module/Register.php:122
#: src/Module/Register.php:128
msgid ""
"Your Email Address: (Initial information will be send there, so this has to "
"be an existing address.)"
msgstr ""
#: src/Module/Register.php:124 mod/settings.php:1186
#: src/Module/Register.php:129
msgid "Please repeat your e-mail address:"
msgstr ""
#: src/Module/Register.php:131 mod/settings.php:1180
msgid "New Password:"
msgstr ""
#: src/Module/Register.php:124
#: src/Module/Register.php:131
msgid "Leave empty for an auto generated password."
msgstr ""
#: src/Module/Register.php:125 mod/settings.php:1187
#: src/Module/Register.php:132 mod/settings.php:1181
msgid "Confirm:"
msgstr ""
#: src/Module/Register.php:126
#: src/Module/Register.php:133
#, php-format
msgid ""
"Choose a profile nickname. This must begin with a text character. Your "
"profile address on this site will then be \"<strong>nickname@%s</strong>\"."
msgstr ""
#: src/Module/Register.php:127
#: src/Module/Register.php:134
msgid "Choose a nickname: "
msgstr ""
#: src/Module/Register.php:135 mod/uimport.php:46
#: src/Module/Register.php:142 mod/uimport.php:46
msgid "Import"
msgstr ""
#: src/Module/Register.php:136
#: src/Module/Register.php:143
msgid "Import your profile to this friendica instance"
msgstr ""
#: src/Module/Register.php:143
#: src/Module/Register.php:150
msgid "Note: This node explicitly contains adult content"
msgstr ""
#: src/Module/Register.php:238
#: src/Module/Register.php:183
msgid "Password doesn't match."
msgstr ""
#: src/Module/Register.php:189
msgid "Please enter your password."
msgstr ""
#: src/Module/Register.php:231
msgid "You have entered too much information."
msgstr ""
#: src/Module/Register.php:255
msgid "Please enter the identical mail address in the second field."
msgstr ""
#: src/Module/Register.php:282
msgid "The additional account was created."
msgstr ""
#: src/Module/Register.php:307
msgid ""
"Registration successful. Please check your email for further instructions."
msgstr ""
#: src/Module/Register.php:242
#: src/Module/Register.php:311
#, php-format
msgid ""
"Failed to send email message. Here your accout details:<br> login: %s<br> "
"password: %s<br><br>You can change your password after login."
msgstr ""
#: src/Module/Register.php:248
#: src/Module/Register.php:317
msgid "Registration successful."
msgstr ""
#: src/Module/Register.php:253 src/Module/Register.php:260
#: src/Module/Register.php:322 src/Module/Register.php:329
msgid "Your registration can not be processed."
msgstr ""
#: src/Module/Register.php:259
#: src/Module/Register.php:328
msgid "You have to leave a request note for the admin."
msgstr ""
#: src/Module/Register.php:266
msgid "You have entered too much information."
msgstr ""
#: src/Module/Register.php:312
#: src/Module/Register.php:376
msgid "Your registration is pending approval by the site owner."
msgstr ""
#: src/Module/Search/Saved.php:29
#: src/Module/Search/Saved.php:25
msgid "Search term successfully saved."
msgstr ""
#: src/Module/Search/Saved.php:31
#: src/Module/Search/Saved.php:27
msgid "Search term already saved."
msgstr ""
#: src/Module/Search/Saved.php:37
#: src/Module/Search/Saved.php:33
msgid "Search term successfully removed."
msgstr ""
#: src/Module/Search/Index.php:35
#: src/Module/Search/Index.php:34
msgid "Only logged in users are permitted to perform a search."
msgstr ""
#: src/Module/Search/Index.php:57
#: src/Module/Search/Index.php:56
msgid "Only one search per minute is permitted for not logged in users."
msgstr ""
#: src/Module/Search/Index.php:178 mod/community.php:155
#: src/Module/Search/Index.php:169 mod/community.php:155
msgid "No results."
msgstr ""
#: src/Module/Search/Index.php:183
#: src/Module/Search/Index.php:174
#, php-format
msgid "Items tagged with: %s"
msgstr ""
#: src/Module/Search/Acl.php:37
#: src/Module/Search/Acl.php:36
msgid "You must be logged in to use this module."
msgstr ""
#: src/BaseModule.php:133
#: src/BaseModule.php:132
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@ -8018,90 +10680,108 @@ msgstr ""
msgid "toggle mobile"
msgstr ""
#: src/App/Router.php:184
#: src/App/Router.php:183
#, php-format
msgid "Method not allowed for this module. Allowed method(s): %s"
msgstr ""
#: src/App/Authentication.php:195 src/App/Authentication.php:247
msgid "Login failed."
msgstr ""
#: src/App/Authentication.php:258
msgid "Login failed. Please check your credentials."
msgstr ""
#: src/App/Authentication.php:374
#, php-format
msgid "Welcome %s"
msgstr ""
#: src/App/Authentication.php:375
msgid "Please upload a profile photo."
msgstr ""
#: src/App/Authentication.php:378
#, php-format
msgid "Welcome back %s"
msgstr ""
#: src/App/Module.php:221
msgid "You must be logged in to use addons. "
msgstr ""
#: src/Util/Temporal.php:79 src/Util/Temporal.php:81 mod/profiles.php:581
#: src/Util/Temporal.php:78 src/Util/Temporal.php:80 mod/profiles.php:579
msgid "Miscellaneous"
msgstr ""
#: src/Util/Temporal.php:148 mod/profiles.php:604
#: src/Util/Temporal.php:147 mod/profiles.php:602
msgid "Age: "
msgstr ""
#: src/Util/Temporal.php:150
#: src/Util/Temporal.php:149
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
#: src/Util/Temporal.php:297
#: src/Util/Temporal.php:296
msgid "never"
msgstr ""
#: src/Util/Temporal.php:304
#: src/Util/Temporal.php:303
msgid "less than a second ago"
msgstr ""
#: src/Util/Temporal.php:312
#: src/Util/Temporal.php:311
msgid "year"
msgstr ""
#: src/Util/Temporal.php:312
#: src/Util/Temporal.php:311
msgid "years"
msgstr ""
#: src/Util/Temporal.php:313
#: src/Util/Temporal.php:312
msgid "months"
msgstr ""
#: src/Util/Temporal.php:314
#: src/Util/Temporal.php:313
msgid "weeks"
msgstr ""
#: src/Util/Temporal.php:315
#: src/Util/Temporal.php:314
msgid "days"
msgstr ""
#: src/Util/Temporal.php:316
#: src/Util/Temporal.php:315
msgid "hour"
msgstr ""
#: src/Util/Temporal.php:316
#: src/Util/Temporal.php:315
msgid "hours"
msgstr ""
#: src/Util/Temporal.php:317
#: src/Util/Temporal.php:316
msgid "minute"
msgstr ""
#: src/Util/Temporal.php:317
msgid "minutes"
msgstr ""
#: src/Util/Temporal.php:318
msgid "second"
msgstr ""
#: src/Util/Temporal.php:318
#: src/Util/Temporal.php:317
msgid "seconds"
msgstr ""
#: src/Util/Temporal.php:328
#: src/Util/Temporal.php:327
#, php-format
msgid "in %1$d %2$s"
msgstr ""
#: src/Util/Temporal.php:331
#: src/Util/Temporal.php:330
#, php-format
msgid "%1$d %2$s ago"
msgstr ""
#: src/Worker/Delivery.php:532
#: src/Worker/Delivery.php:539
msgid "(no subject)"
msgstr ""
@ -8130,32 +10810,32 @@ msgstr ""
msgid "Enter new password: "
msgstr ""
#: src/Console/NewPassword.php:101 mod/settings.php:443
#: src/Console/NewPassword.php:101 mod/settings.php:438
msgid "Password update failed. Please try again."
msgstr ""
#: src/Console/NewPassword.php:104 mod/settings.php:446
#: src/Console/NewPassword.php:104 mod/settings.php:441
msgid "Password changed."
msgstr ""
#: src/Console/ArchiveContact.php:86
#: src/Console/ArchiveContact.php:85
#, php-format
msgid "Could not find any unarchived contact entry for this URL (%s)"
msgstr ""
#: src/Console/ArchiveContact.php:89
#: src/Console/ArchiveContact.php:88
msgid "The contact entries have been archived"
msgstr ""
#: mod/lostpass.php:27
#: mod/lostpass.php:26
msgid "No valid account found."
msgstr ""
#: mod/lostpass.php:39
#: mod/lostpass.php:38
msgid "Password reset request issued. Check your email."
msgstr ""
#: mod/lostpass.php:45
#: mod/lostpass.php:44
#, php-format
msgid ""
"\n"
@ -8173,7 +10853,7 @@ msgid ""
"\t\tissued this request."
msgstr ""
#: mod/lostpass.php:56
#: mod/lostpass.php:55
#, php-format
msgid ""
"\n"
@ -8191,58 +10871,58 @@ msgid ""
"\t\tLogin Name:\t%3$s"
msgstr ""
#: mod/lostpass.php:75
#: mod/lostpass.php:74
#, php-format
msgid "Password reset requested at %s"
msgstr ""
#: mod/lostpass.php:90
#: mod/lostpass.php:89
msgid ""
"Request could not be verified. (You may have previously submitted it.) "
"Password reset failed."
msgstr ""
#: mod/lostpass.php:103
#: mod/lostpass.php:102
msgid "Request has expired, please make a new one."
msgstr ""
#: mod/lostpass.php:118
#: mod/lostpass.php:117
msgid "Forgot your Password?"
msgstr ""
#: mod/lostpass.php:119
#: mod/lostpass.php:118
msgid ""
"Enter your email address and submit to have your password reset. Then check "
"your email for further instructions."
msgstr ""
#: mod/lostpass.php:121
#: mod/lostpass.php:120
msgid "Reset"
msgstr ""
#: mod/lostpass.php:137
#: mod/lostpass.php:136
msgid "Your password has been reset as requested."
msgstr ""
#: mod/lostpass.php:138
#: mod/lostpass.php:137
msgid "Your new password is"
msgstr ""
#: mod/lostpass.php:139
#: mod/lostpass.php:138
msgid "Save or copy your new password - and then"
msgstr ""
#: mod/lostpass.php:140
#: mod/lostpass.php:139
msgid "click here to login"
msgstr ""
#: mod/lostpass.php:141
#: mod/lostpass.php:140
msgid ""
"Your password may be changed from the <em>Settings</em> page after "
"successful login."
msgstr ""
#: mod/lostpass.php:148
#: mod/lostpass.php:147
#, php-format
msgid ""
"\n"
@ -8253,7 +10933,7 @@ msgid ""
"\t\t"
msgstr ""
#: mod/lostpass.php:154
#: mod/lostpass.php:153
#, php-format
msgid ""
"\n"
@ -8268,14 +10948,14 @@ msgid ""
"\t\t"
msgstr ""
#: mod/lostpass.php:170
#: mod/lostpass.php:169
#, php-format
msgid "Your password has been changed at %s"
msgstr ""
#: mod/update_contact.php:23 mod/update_profile.php:34 mod/update_notes.php:36
#: mod/update_community.php:23 mod/update_display.php:24
#: mod/update_network.php:33
#: mod/update_contact.php:22 mod/update_profile.php:33 mod/update_notes.php:35
#: mod/update_community.php:22 mod/update_display.php:23
#: mod/update_network.php:32
msgid "[Embedded content - reload page to view]"
msgstr ""
@ -8344,19 +11024,19 @@ msgid ""
"not reflect the opinions of this nodes users."
msgstr ""
#: mod/fsuggest.php:44
#: mod/fsuggest.php:43
msgid "Suggested contact not found."
msgstr ""
#: mod/fsuggest.php:57
#: mod/fsuggest.php:56
msgid "Friend suggestion sent."
msgstr ""
#: mod/fsuggest.php:79
#: mod/fsuggest.php:78
msgid "Suggest Friends"
msgstr ""
#: mod/fsuggest.php:81
#: mod/fsuggest.php:80
#, php-format
msgid "Suggest a friend for %s"
msgstr ""
@ -8365,95 +11045,91 @@ msgstr ""
msgid "No contacts in common."
msgstr ""
#: mod/ping.php:272
#: mod/ping.php:270
msgid "{0} wants to be your friend"
msgstr ""
#: mod/ping.php:288
#: mod/ping.php:286
msgid "{0} requested registration"
msgstr ""
#: mod/lockview.php:49 mod/lockview.php:60
#: mod/lockview.php:47 mod/lockview.php:58
msgid "Remote privacy information not available."
msgstr ""
#: mod/lockview.php:72
msgid "Visible to:"
msgstr ""
#: mod/events.php:121 mod/events.php:123
#: mod/events.php:119 mod/events.php:121
msgid "Event can not end before it has started."
msgstr ""
#: mod/events.php:130 mod/events.php:132
#: mod/events.php:128 mod/events.php:130
msgid "Event title and start time are required."
msgstr ""
#: mod/events.php:397 mod/cal.php:262
#: mod/events.php:394 mod/cal.php:259
msgid "View"
msgstr ""
#: mod/events.php:398
#: mod/events.php:395
msgid "Create New Event"
msgstr ""
#: mod/events.php:399 mod/cal.php:263
#: mod/events.php:396 mod/cal.php:260
msgid "Previous"
msgstr ""
#: mod/events.php:409 mod/cal.php:271
#: mod/events.php:406 mod/cal.php:268
msgid "list"
msgstr ""
#: mod/events.php:514
#: mod/events.php:507
msgid "Event details"
msgstr ""
#: mod/events.php:515
#: mod/events.php:508
msgid "Starting date and Title are required."
msgstr ""
#: mod/events.php:516 mod/events.php:521
#: mod/events.php:509 mod/events.php:514
msgid "Event Starts:"
msgstr ""
#: mod/events.php:516 mod/events.php:548 mod/profiles.php:592
#: mod/events.php:509 mod/events.php:541 mod/profiles.php:590
msgid "Required"
msgstr ""
#: mod/events.php:529 mod/events.php:554
#: mod/events.php:522 mod/events.php:547
msgid "Finish date/time is not known or not relevant"
msgstr ""
#: mod/events.php:531 mod/events.php:536
#: mod/events.php:524 mod/events.php:529
msgid "Event Finishes:"
msgstr ""
#: mod/events.php:542 mod/events.php:555
#: mod/events.php:535 mod/events.php:548
msgid "Adjust for viewer timezone"
msgstr ""
#: mod/events.php:544
#: mod/events.php:537
msgid "Description:"
msgstr ""
#: mod/events.php:548 mod/events.php:550
#: mod/events.php:541 mod/events.php:543
msgid "Title:"
msgstr ""
#: mod/events.php:551 mod/events.php:552
#: mod/events.php:544 mod/events.php:545
msgid "Share this event"
msgstr ""
#: mod/events.php:561 mod/photos.php:974 mod/photos.php:1348
#: mod/events.php:554 mod/photos.php:970 mod/photos.php:1340
msgid "Permissions"
msgstr ""
#: mod/events.php:577
#: mod/events.php:570
msgid "Failed to remove event"
msgstr ""
#: mod/events.php:579
#: mod/events.php:572
msgid "Event removed"
msgstr ""
@ -8471,194 +11147,194 @@ msgid ""
"and/or create new posts for you?"
msgstr ""
#: mod/dfrn_poll.php:127 mod/dfrn_poll.php:530
#: mod/dfrn_poll.php:122 mod/dfrn_poll.php:525
#, php-format
msgid "%1$s welcomes %2$s"
msgstr ""
#: mod/cal.php:300
#: mod/cal.php:297
msgid "This calendar format is not supported"
msgstr ""
#: mod/cal.php:302
#: mod/cal.php:299
msgid "No exportable data found"
msgstr ""
#: mod/cal.php:319
#: mod/cal.php:316
msgid "calendar"
msgstr ""
#: mod/display.php:224 mod/display.php:301
#: mod/display.php:225 mod/display.php:306
msgid "The requested item doesn't exist or has been deleted."
msgstr ""
#: mod/display.php:379
#: mod/display.php:386
msgid "The feed for this item is unavailable."
msgstr ""
#: mod/dfrn_request.php:100
#: mod/dfrn_request.php:101
msgid "This introduction has already been accepted."
msgstr ""
#: mod/dfrn_request.php:118 mod/dfrn_request.php:356
#: mod/dfrn_request.php:119 mod/dfrn_request.php:357
msgid "Profile location is not valid or does not contain profile information."
msgstr ""
#: mod/dfrn_request.php:122 mod/dfrn_request.php:360
#: mod/dfrn_request.php:123 mod/dfrn_request.php:361
msgid "Warning: profile location has no identifiable owner name."
msgstr ""
#: mod/dfrn_request.php:125 mod/dfrn_request.php:363
#: mod/dfrn_request.php:126 mod/dfrn_request.php:364
msgid "Warning: profile location has no profile photo."
msgstr ""
#: mod/dfrn_request.php:129 mod/dfrn_request.php:367
#: mod/dfrn_request.php:130 mod/dfrn_request.php:368
#, php-format
msgid "%d required parameter was not found at the given location"
msgid_plural "%d required parameters were not found at the given location"
msgstr[0] ""
msgstr[1] ""
#: mod/dfrn_request.php:167
#: mod/dfrn_request.php:168
msgid "Introduction complete."
msgstr ""
#: mod/dfrn_request.php:203
#: mod/dfrn_request.php:204
msgid "Unrecoverable protocol error."
msgstr ""
#: mod/dfrn_request.php:230
#: mod/dfrn_request.php:231
msgid "Profile unavailable."
msgstr ""
#: mod/dfrn_request.php:251
#: mod/dfrn_request.php:252
#, php-format
msgid "%s has received too many connection requests today."
msgstr ""
#: mod/dfrn_request.php:252
#: mod/dfrn_request.php:253
msgid "Spam protection measures have been invoked."
msgstr ""
#: mod/dfrn_request.php:253
#: mod/dfrn_request.php:254
msgid "Friends are advised to please try again in 24 hours."
msgstr ""
#: mod/dfrn_request.php:277
#: mod/dfrn_request.php:278
msgid "Invalid locator"
msgstr ""
#: mod/dfrn_request.php:313
#: mod/dfrn_request.php:314
msgid "You have already introduced yourself here."
msgstr ""
#: mod/dfrn_request.php:316
#: mod/dfrn_request.php:317
#, php-format
msgid "Apparently you are already friends with %s."
msgstr ""
#: mod/dfrn_request.php:336
#: mod/dfrn_request.php:337
msgid "Invalid profile URL."
msgstr ""
#: mod/dfrn_request.php:435
#: mod/dfrn_request.php:436
msgid "Your introduction has been sent."
msgstr ""
#: mod/dfrn_request.php:473
#: mod/dfrn_request.php:474
msgid ""
"Remote subscription can't be done for your network. Please subscribe "
"directly on your system."
msgstr ""
#: mod/dfrn_request.php:489
#: mod/dfrn_request.php:490
msgid "Please login to confirm introduction."
msgstr ""
#: mod/dfrn_request.php:497
#: mod/dfrn_request.php:498
msgid ""
"Incorrect identity currently logged in. Please login to <strong>this</"
"strong> profile."
msgstr ""
#: mod/dfrn_request.php:511 mod/dfrn_request.php:526
#: mod/dfrn_request.php:512 mod/dfrn_request.php:527
msgid "Confirm"
msgstr ""
#: mod/dfrn_request.php:522
#: mod/dfrn_request.php:523
msgid "Hide this contact"
msgstr ""
#: mod/dfrn_request.php:524
#, php-format
msgid "Welcome home %s."
msgstr ""
#: mod/dfrn_request.php:525
#, php-format
msgid "Welcome home %s."
msgstr ""
#: mod/dfrn_request.php:526
#, php-format
msgid "Please confirm your introduction/connection request to %s."
msgstr ""
#: mod/dfrn_request.php:634
#: mod/dfrn_request.php:635
msgid ""
"Please enter your 'Identity Address' from one of the following supported "
"communications networks:"
msgstr ""
#: mod/dfrn_request.php:636
#: mod/dfrn_request.php:637
#, php-format
msgid ""
"If you are not yet a member of the free social web, <a href=\"%s\">follow "
"this link to find a public Friendica site and join us today</a>."
msgstr ""
#: mod/dfrn_request.php:639
#: mod/dfrn_request.php:640
msgid "Friend/Connection Request"
msgstr ""
#: mod/dfrn_request.php:640
#: mod/dfrn_request.php:641
msgid ""
"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
"testuser@gnusocial.de"
msgstr ""
#: mod/dfrn_request.php:641 mod/follow.php:162
#: mod/dfrn_request.php:642 mod/follow.php:161
msgid "Please answer the following:"
msgstr ""
#: mod/dfrn_request.php:642 mod/follow.php:163
#: mod/dfrn_request.php:643 mod/follow.php:162
#, php-format
msgid "Does %s know you?"
msgstr ""
#: mod/dfrn_request.php:643 mod/follow.php:164
#: mod/dfrn_request.php:644 mod/follow.php:163
msgid "Add a personal note:"
msgstr ""
#: mod/dfrn_request.php:645
#: mod/dfrn_request.php:646
msgid "Friendica"
msgstr ""
#: mod/dfrn_request.php:646
#: mod/dfrn_request.php:647
msgid "GNU Social (Pleroma, Mastodon)"
msgstr ""
#: mod/dfrn_request.php:647
#: mod/dfrn_request.php:648
msgid "Diaspora (Socialhome, Hubzilla)"
msgstr ""
#: mod/dfrn_request.php:648
#: mod/dfrn_request.php:649
#, php-format
msgid ""
" - please do not use this form. Instead, enter %s into your Diaspora search "
"bar."
msgstr ""
#: mod/dfrn_request.php:649 mod/follow.php:170 mod/unfollow.php:128
#: mod/dfrn_request.php:650 mod/follow.php:169 mod/unfollow.php:127
msgid "Your Identity Address:"
msgstr ""
#: mod/dfrn_request.php:651 mod/follow.php:76 mod/unfollow.php:131
#: mod/dfrn_request.php:652 mod/follow.php:75 mod/unfollow.php:130
msgid "Submit Request"
msgstr ""
@ -8752,247 +11428,227 @@ msgstr ""
msgid "New photo from this URL"
msgstr ""
#: mod/openid.php:32
msgid "OpenID protocol error. No ID returned."
msgstr ""
#: mod/openid.php:71
msgid ""
"Account not found. Please login to your existing account to add the OpenID "
"to it."
msgstr ""
#: mod/openid.php:73
msgid ""
"Account not found. Please register a new account or login to your existing "
"account to add the OpenID to it."
msgstr ""
#: mod/notifications.php:39
msgid "Invalid request identifier."
msgstr ""
#: mod/notifications.php:48 mod/notifications.php:202 mod/notifications.php:258
#: mod/message.php:110
#: mod/notifications.php:34 mod/notifications.php:174 mod/notifications.php:230
#: mod/message.php:108
msgid "Discard"
msgstr ""
#: mod/notifications.php:119
#: mod/notifications.php:91
msgid "Network Notifications"
msgstr ""
#: mod/notifications.php:124
#: mod/notifications.php:96
msgid "System Notifications"
msgstr ""
#: mod/notifications.php:129
#: mod/notifications.php:101
msgid "Personal Notifications"
msgstr ""
#: mod/notifications.php:134
#: mod/notifications.php:106
msgid "Home Notifications"
msgstr ""
#: mod/notifications.php:157
#: mod/notifications.php:129
msgid "Show unread"
msgstr ""
#: mod/notifications.php:157
#: mod/notifications.php:129
msgid "Show all"
msgstr ""
#: mod/notifications.php:168
#: mod/notifications.php:140
msgid "Show Ignored Requests"
msgstr ""
#: mod/notifications.php:168
#: mod/notifications.php:140
msgid "Hide Ignored Requests"
msgstr ""
#: mod/notifications.php:181 mod/notifications.php:266
#: mod/notifications.php:153 mod/notifications.php:238
msgid "Notification type:"
msgstr ""
#: mod/notifications.php:184
#: mod/notifications.php:156
msgid "Suggested by:"
msgstr ""
#: mod/notifications.php:218
#: mod/notifications.php:190
msgid "Claims to be known to you: "
msgstr ""
#: mod/notifications.php:219
#: mod/notifications.php:191
msgid "yes"
msgstr ""
#: mod/notifications.php:219
#: mod/notifications.php:191
msgid "no"
msgstr ""
#: mod/notifications.php:220 mod/notifications.php:224
#: mod/notifications.php:192 mod/notifications.php:196
msgid "Shall your connection be bidirectional or not?"
msgstr ""
#: mod/notifications.php:221 mod/notifications.php:225
#: mod/notifications.php:193 mod/notifications.php:197
#, php-format
msgid ""
"Accepting %s as a friend allows %s to subscribe to your posts, and you will "
"also receive updates from them in your news feed."
msgstr ""
#: mod/notifications.php:222
#: mod/notifications.php:194
#, php-format
msgid ""
"Accepting %s as a subscriber allows them to subscribe to your posts, but you "
"will not receive updates from them in your news feed."
msgstr ""
#: mod/notifications.php:226
#: mod/notifications.php:198
#, php-format
msgid ""
"Accepting %s as a sharer allows them to subscribe to your posts, but you "
"will not receive updates from them in your news feed."
msgstr ""
#: mod/notifications.php:237
#: mod/notifications.php:209
msgid "Friend"
msgstr ""
#: mod/notifications.php:238
#: mod/notifications.php:210
msgid "Sharer"
msgstr ""
#: mod/notifications.php:238
#: mod/notifications.php:210
msgid "Subscriber"
msgstr ""
#: mod/notifications.php:303
#: mod/notifications.php:275
msgid "No introductions."
msgstr ""
#: mod/notifications.php:337
#: mod/notifications.php:309
#, php-format
msgid "No more %s notifications."
msgstr ""
#: mod/wallmessage.php:52 mod/wallmessage.php:115
#: mod/wallmessage.php:51 mod/wallmessage.php:114
#, php-format
msgid "Number of daily wall messages for %s exceeded. Message failed."
msgstr ""
#: mod/wallmessage.php:60 mod/message.php:70
#: mod/wallmessage.php:59 mod/message.php:68
msgid "No recipient selected."
msgstr ""
#: mod/wallmessage.php:63
#: mod/wallmessage.php:62
msgid "Unable to check your home location."
msgstr ""
#: mod/wallmessage.php:66 mod/message.php:77
#: mod/wallmessage.php:65 mod/message.php:75
msgid "Message could not be sent."
msgstr ""
#: mod/wallmessage.php:69 mod/message.php:80
#: mod/wallmessage.php:68 mod/message.php:78
msgid "Message collection failure."
msgstr ""
#: mod/wallmessage.php:72 mod/message.php:83
#: mod/wallmessage.php:71 mod/message.php:81
msgid "Message sent."
msgstr ""
#: mod/wallmessage.php:89 mod/wallmessage.php:98
#: mod/wallmessage.php:88 mod/wallmessage.php:97
msgid "No recipient."
msgstr ""
#: mod/wallmessage.php:123 mod/message.php:204 mod/message.php:360
#: mod/wallmessage.php:122 mod/message.php:202 mod/message.php:358
msgid "Please enter a link URL:"
msgstr ""
#: mod/wallmessage.php:128 mod/message.php:246
#: mod/wallmessage.php:127 mod/message.php:244
msgid "Send Private Message"
msgstr ""
#: mod/wallmessage.php:129
#: mod/wallmessage.php:128
#, php-format
msgid ""
"If you wish for %s to respond, please check that the privacy settings on "
"your site allow private mail from unknown senders."
msgstr ""
#: mod/wallmessage.php:130 mod/message.php:247 mod/message.php:430
#: mod/wallmessage.php:129 mod/message.php:245 mod/message.php:428
msgid "To:"
msgstr ""
#: mod/wallmessage.php:131 mod/message.php:251 mod/message.php:432
#: mod/wallmessage.php:130 mod/message.php:249 mod/message.php:430
msgid "Subject:"
msgstr ""
#: mod/wallmessage.php:140 mod/editpost.php:77 mod/message.php:259
#: mod/message.php:440
#: mod/wallmessage.php:139 mod/editpost.php:77 mod/message.php:257
#: mod/message.php:438
msgid "Insert web link"
msgstr ""
#: mod/ostatus_subscribe.php:23
#: mod/ostatus_subscribe.php:21
msgid "Subscribing to OStatus contacts"
msgstr ""
#: mod/ostatus_subscribe.php:35
#: mod/ostatus_subscribe.php:31
msgid "No contact provided."
msgstr ""
#: mod/ostatus_subscribe.php:42
#: mod/ostatus_subscribe.php:38
msgid "Couldn't fetch information for contact."
msgstr ""
#: mod/ostatus_subscribe.php:52
#: mod/ostatus_subscribe.php:48
msgid "Couldn't fetch friends for contact."
msgstr ""
#: mod/ostatus_subscribe.php:70 mod/repair_ostatus.php:52
#: mod/ostatus_subscribe.php:66 mod/repair_ostatus.php:49
msgid "Done"
msgstr ""
#: mod/ostatus_subscribe.php:84
#: mod/ostatus_subscribe.php:80
msgid "success"
msgstr ""
#: mod/ostatus_subscribe.php:86
#: mod/ostatus_subscribe.php:82
msgid "failed"
msgstr ""
#: mod/ostatus_subscribe.php:94 mod/repair_ostatus.php:58
#: mod/ostatus_subscribe.php:90 mod/repair_ostatus.php:55
msgid "Keep this window open until done."
msgstr ""
#: mod/follow.php:46
#: mod/follow.php:45
msgid "The contact could not be added."
msgstr ""
#: mod/follow.php:87
#: mod/follow.php:86
msgid "You already added this contact."
msgstr ""
#: mod/follow.php:99
#: mod/follow.php:98
msgid "Diaspora support isn't enabled. Contact can't be added."
msgstr ""
#: mod/follow.php:106
#: mod/follow.php:105
msgid "OStatus support is disabled. Contact can't be added."
msgstr ""
#: mod/follow.php:113
#: mod/follow.php:112
msgid "The network type couldn't be detected. Contact can't be added."
msgstr ""
#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:247
#: mod/fbrowser.php:111 mod/fbrowser.php:140 mod/profile_photo.php:246
msgid "Upload"
msgstr ""
#: mod/fbrowser.php:136
#: mod/fbrowser.php:135
msgid "Files"
msgstr ""
#: mod/network.php:525
#: mod/network.php:493
#, php-format
msgid ""
"Warning: This group contains %s member from a network that doesn't allow non "
@ -9003,154 +11659,154 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: mod/network.php:528
#: mod/network.php:496
msgid "Messages in this group won't be send to these receivers."
msgstr ""
#: mod/network.php:595
#: mod/network.php:563
msgid "No such group"
msgstr ""
#: mod/network.php:620
#: mod/network.php:588
#, php-format
msgid "Group: %s"
msgstr ""
#: mod/network.php:646
#: mod/network.php:614
msgid "Private messages to this person are at risk of public disclosure."
msgstr ""
#: mod/network.php:928
#: mod/network.php:901
msgid "Latest Activity"
msgstr ""
#: mod/network.php:931
#: mod/network.php:904
msgid "Sort by latest activity"
msgstr ""
#: mod/network.php:936
#: mod/network.php:909
msgid "Latest Posts"
msgstr ""
#: mod/network.php:939
#: mod/network.php:912
msgid "Sort by post received date"
msgstr ""
#: mod/network.php:946 mod/profiles.php:579
#: mod/network.php:919 mod/profiles.php:577
msgid "Personal"
msgstr ""
#: mod/network.php:949
#: mod/network.php:922
msgid "Posts that mention or involve you"
msgstr ""
#: mod/network.php:956
#: mod/network.php:929
msgid "New"
msgstr ""
#: mod/network.php:959
#: mod/network.php:932
msgid "Activity Stream - by date"
msgstr ""
#: mod/network.php:967
#: mod/network.php:940
msgid "Shared Links"
msgstr ""
#: mod/network.php:970
#: mod/network.php:943
msgid "Interesting Links"
msgstr ""
#: mod/network.php:977
#: mod/network.php:950
msgid "Starred"
msgstr ""
#: mod/network.php:980
#: mod/network.php:953
msgid "Favourite Posts"
msgstr ""
#: mod/unfollow.php:36 mod/unfollow.php:92
#: mod/unfollow.php:35 mod/unfollow.php:91
msgid "You aren't following this contact."
msgstr ""
#: mod/unfollow.php:46 mod/unfollow.php:98
#: mod/unfollow.php:45 mod/unfollow.php:97
msgid "Unfollowing is currently not supported by your network."
msgstr ""
#: mod/unfollow.php:67
#: mod/unfollow.php:66
msgid "Contact unfollowed"
msgstr ""
#: mod/unfollow.php:118
#: mod/unfollow.php:117
msgid "Disconnect/Unfollow"
msgstr ""
#: mod/profile_photo.php:58
#: mod/profile_photo.php:57
msgid "Image uploaded but image cropping failed."
msgstr ""
#: mod/profile_photo.php:88 mod/profile_photo.php:97 mod/profile_photo.php:106
#: mod/profile_photo.php:311
#: mod/profile_photo.php:87 mod/profile_photo.php:96 mod/profile_photo.php:105
#: mod/profile_photo.php:310
#, php-format
msgid "Image size reduction [%s] failed."
msgstr ""
#: mod/profile_photo.php:125
#: mod/profile_photo.php:124
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
msgstr ""
#: mod/profile_photo.php:133
#: mod/profile_photo.php:132
msgid "Unable to process image"
msgstr ""
#: mod/profile_photo.php:152 mod/photos.php:674 mod/photos.php:677
#: mod/photos.php:706 mod/wall_upload.php:186
#: mod/profile_photo.php:151 mod/photos.php:670 mod/photos.php:673
#: mod/photos.php:702 mod/wall_upload.php:185
#, php-format
msgid "Image exceeds size limit of %s"
msgstr ""
#: mod/profile_photo.php:161 mod/photos.php:729 mod/wall_upload.php:200
#: mod/profile_photo.php:160 mod/photos.php:725 mod/wall_upload.php:199
msgid "Unable to process image."
msgstr ""
#: mod/profile_photo.php:244
#: mod/profile_photo.php:243
msgid "Upload File:"
msgstr ""
#: mod/profile_photo.php:245
#: mod/profile_photo.php:244
msgid "Select a profile:"
msgstr ""
#: mod/profile_photo.php:250
#: mod/profile_photo.php:249
msgid "or"
msgstr ""
#: mod/profile_photo.php:251
#: mod/profile_photo.php:250
msgid "skip this step"
msgstr ""
#: mod/profile_photo.php:251
#: mod/profile_photo.php:250
msgid "select a photo from your photo albums"
msgstr ""
#: mod/profile_photo.php:264
#: mod/profile_photo.php:263
msgid "Crop Image"
msgstr ""
#: mod/profile_photo.php:265
#: mod/profile_photo.php:264
msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
#: mod/profile_photo.php:267
#: mod/profile_photo.php:266
msgid "Done Editing"
msgstr ""
#: mod/profile_photo.php:301
#: mod/profile_photo.php:300
msgid "Image uploaded successfully."
msgstr ""
#: mod/profile_photo.php:303 mod/photos.php:758 mod/wall_upload.php:239
#: mod/profile_photo.php:302 mod/photos.php:754 mod/wall_upload.php:238
msgid "Image upload failed."
msgstr ""
@ -9174,718 +11830,702 @@ msgstr ""
msgid "Make this post private"
msgstr ""
#: mod/photos.php:113 mod/photos.php:1609
#: mod/photos.php:111 mod/photos.php:1600
msgid "Recent Photos"
msgstr ""
#: mod/photos.php:115 mod/photos.php:1117 mod/photos.php:1611
#: mod/photos.php:113 mod/photos.php:1109 mod/photos.php:1602
msgid "Upload New Photos"
msgstr ""
#: mod/photos.php:170
#: mod/photos.php:168
msgid "Contact information unavailable"
msgstr ""
#: mod/photos.php:192
#: mod/photos.php:190
msgid "Album not found."
msgstr ""
#: mod/photos.php:250
#: mod/photos.php:248
msgid "Album successfully deleted"
msgstr ""
#: mod/photos.php:252
#: mod/photos.php:250
msgid "Album was empty."
msgstr ""
#: mod/photos.php:578
#: mod/photos.php:575
msgid "a photo"
msgstr ""
#: mod/photos.php:578
#: mod/photos.php:575
#, php-format
msgid "%1$s was tagged in %2$s by %3$s"
msgstr ""
#: mod/photos.php:680
#: mod/photos.php:676
msgid "Image upload didn't complete, please try again"
msgstr ""
#: mod/photos.php:683
#: mod/photos.php:679
msgid "Image file is missing"
msgstr ""
#: mod/photos.php:688
#: mod/photos.php:684
msgid ""
"Server can't accept new file upload at this time, please contact your "
"administrator"
msgstr ""
#: mod/photos.php:714
#: mod/photos.php:710
msgid "Image file is empty."
msgstr ""
#: mod/photos.php:846
#: mod/photos.php:842
msgid "No photos selected"
msgstr ""
#: mod/photos.php:912 mod/videos.php:168
#: mod/photos.php:908 mod/videos.php:165
msgid "Access to this item is restricted."
msgstr ""
#: mod/photos.php:966
#: mod/photos.php:962
msgid "Upload Photos"
msgstr ""
#: mod/photos.php:970 mod/photos.php:1062
#: mod/photos.php:966 mod/photos.php:1054
msgid "New album name: "
msgstr ""
#: mod/photos.php:971
#: mod/photos.php:967
msgid "or select existing album:"
msgstr ""
#: mod/photos.php:972
#: mod/photos.php:968
msgid "Do not show a status post for this upload"
msgstr ""
#: mod/photos.php:988 mod/photos.php:1356 mod/settings.php:1215
#: mod/photos.php:984 mod/photos.php:1348 mod/settings.php:1209
msgid "Show to Groups"
msgstr ""
#: mod/photos.php:989 mod/photos.php:1357 mod/settings.php:1216
#: mod/photos.php:985 mod/photos.php:1349 mod/settings.php:1210
msgid "Show to Contacts"
msgstr ""
#: mod/photos.php:1044
#: mod/photos.php:1036
msgid "Do you really want to delete this photo album and all its photos?"
msgstr ""
#: mod/photos.php:1046 mod/photos.php:1067
#: mod/photos.php:1038 mod/photos.php:1059
msgid "Delete Album"
msgstr ""
#: mod/photos.php:1073
#: mod/photos.php:1065
msgid "Edit Album"
msgstr ""
#: mod/photos.php:1074
#: mod/photos.php:1066
msgid "Drop Album"
msgstr ""
#: mod/photos.php:1079
#: mod/photos.php:1071
msgid "Show Newest First"
msgstr ""
#: mod/photos.php:1081
#: mod/photos.php:1073
msgid "Show Oldest First"
msgstr ""
#: mod/photos.php:1102 mod/photos.php:1594
#: mod/photos.php:1094 mod/photos.php:1585
msgid "View Photo"
msgstr ""
#: mod/photos.php:1139
#: mod/photos.php:1131
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
#: mod/photos.php:1141
#: mod/photos.php:1133
msgid "Photo not available"
msgstr ""
#: mod/photos.php:1151
#: mod/photos.php:1143
msgid "Do you really want to delete this photo?"
msgstr ""
#: mod/photos.php:1153 mod/photos.php:1353
#: mod/photos.php:1145 mod/photos.php:1345
msgid "Delete Photo"
msgstr ""
#: mod/photos.php:1244
#: mod/photos.php:1236
msgid "View photo"
msgstr ""
#: mod/photos.php:1246
#: mod/photos.php:1238
msgid "Edit photo"
msgstr ""
#: mod/photos.php:1247
#: mod/photos.php:1239
msgid "Delete photo"
msgstr ""
#: mod/photos.php:1248
#: mod/photos.php:1240
msgid "Use as profile photo"
msgstr ""
#: mod/photos.php:1255
#: mod/photos.php:1247
msgid "Private Photo"
msgstr ""
#: mod/photos.php:1261
#: mod/photos.php:1253
msgid "View Full Size"
msgstr ""
#: mod/photos.php:1321
#: mod/photos.php:1313
msgid "Tags: "
msgstr ""
#: mod/photos.php:1324
#: mod/photos.php:1316
msgid "[Select tags to remove]"
msgstr ""
#: mod/photos.php:1339
#: mod/photos.php:1331
msgid "New album name"
msgstr ""
#: mod/photos.php:1340
#: mod/photos.php:1332
msgid "Caption"
msgstr ""
#: mod/photos.php:1341
#: mod/photos.php:1333
msgid "Add a Tag"
msgstr ""
#: mod/photos.php:1341
#: mod/photos.php:1333
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr ""
#: mod/photos.php:1342
#: mod/photos.php:1334
msgid "Do not rotate"
msgstr ""
#: mod/photos.php:1343
#: mod/photos.php:1335
msgid "Rotate CW (right)"
msgstr ""
#: mod/photos.php:1344
#: mod/photos.php:1336
msgid "Rotate CCW (left)"
msgstr ""
#: mod/photos.php:1529
#: mod/photos.php:1520
msgid "Map"
msgstr ""
#: mod/photos.php:1600 mod/videos.php:245
#: mod/photos.php:1591 mod/videos.php:242
msgid "View Album"
msgstr ""
#: mod/profiles.php:43 mod/profiles.php:152 mod/profiles.php:196
#: mod/profiles.php:511 mod/dfrn_confirm.php:71
#: mod/profiles.php:41 mod/profiles.php:150 mod/profiles.php:194
#: mod/profiles.php:509 mod/dfrn_confirm.php:70
msgid "Profile not found."
msgstr ""
#: mod/profiles.php:62
#: mod/profiles.php:60
msgid "Profile deleted."
msgstr ""
#: mod/profiles.php:78 mod/profiles.php:114
#: mod/profiles.php:76 mod/profiles.php:112
msgid "Profile-"
msgstr ""
#: mod/profiles.php:97 mod/profiles.php:135
#: mod/profiles.php:95 mod/profiles.php:133
msgid "New profile created."
msgstr ""
#: mod/profiles.php:120
#: mod/profiles.php:118
msgid "Profile unavailable to clone."
msgstr ""
#: mod/profiles.php:206
#: mod/profiles.php:204
msgid "Profile Name is required."
msgstr ""
#: mod/profiles.php:346
#: mod/profiles.php:344
msgid "Marital Status"
msgstr ""
#: mod/profiles.php:349
#: mod/profiles.php:347
msgid "Romantic Partner"
msgstr ""
#: mod/profiles.php:358
#: mod/profiles.php:356
msgid "Work/Employment"
msgstr ""
#: mod/profiles.php:361
#: mod/profiles.php:359
msgid "Religion"
msgstr ""
#: mod/profiles.php:364
#: mod/profiles.php:362
msgid "Political Views"
msgstr ""
#: mod/profiles.php:367
#: mod/profiles.php:365
msgid "Gender"
msgstr ""
#: mod/profiles.php:370
#: mod/profiles.php:368
msgid "Sexual Preference"
msgstr ""
#: mod/profiles.php:373
#: mod/profiles.php:371
msgid "XMPP"
msgstr ""
#: mod/profiles.php:376
#: mod/profiles.php:374
msgid "Homepage"
msgstr ""
#: mod/profiles.php:379 mod/profiles.php:578
#: mod/profiles.php:377 mod/profiles.php:576
msgid "Interests"
msgstr ""
#: mod/profiles.php:382
#: mod/profiles.php:380
msgid "Address"
msgstr ""
#: mod/profiles.php:389 mod/profiles.php:574
#: mod/profiles.php:387 mod/profiles.php:572
msgid "Location"
msgstr ""
#: mod/profiles.php:469
#: mod/profiles.php:467
msgid "Profile updated."
msgstr ""
#: mod/profiles.php:523
#: mod/profiles.php:521
msgid "Hide contacts and friends:"
msgstr ""
#: mod/profiles.php:528
#: mod/profiles.php:526
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
#: mod/profiles.php:548
#: mod/profiles.php:546
msgid "Show more profile fields:"
msgstr ""
#: mod/profiles.php:560
#: mod/profiles.php:558
msgid "Profile Actions"
msgstr ""
#: mod/profiles.php:561
#: mod/profiles.php:559
msgid "Edit Profile Details"
msgstr ""
#: mod/profiles.php:563
#: mod/profiles.php:561
msgid "Change Profile Photo"
msgstr ""
#: mod/profiles.php:565
#: mod/profiles.php:563
msgid "View this profile"
msgstr ""
#: mod/profiles.php:566
#: mod/profiles.php:564
msgid "View all profiles"
msgstr ""
#: mod/profiles.php:568
#: mod/profiles.php:566
msgid "Create a new profile using these settings"
msgstr ""
#: mod/profiles.php:569
#: mod/profiles.php:567
msgid "Clone this profile"
msgstr ""
#: mod/profiles.php:570
#: mod/profiles.php:568
msgid "Delete this profile"
msgstr ""
#: mod/profiles.php:572
#: mod/profiles.php:570
msgid "Basic information"
msgstr ""
#: mod/profiles.php:573
#: mod/profiles.php:571
msgid "Profile picture"
msgstr ""
#: mod/profiles.php:575
#: mod/profiles.php:573
msgid "Preferences"
msgstr ""
#: mod/profiles.php:576
#: mod/profiles.php:574
msgid "Status information"
msgstr ""
#: mod/profiles.php:577
#: mod/profiles.php:575
msgid "Additional information"
msgstr ""
#: mod/profiles.php:580
#: mod/profiles.php:578
msgid "Relation"
msgstr ""
#: mod/profiles.php:584
#: mod/profiles.php:582
msgid "Your Gender:"
msgstr ""
#: mod/profiles.php:585
#: mod/profiles.php:583
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
#: mod/profiles.php:587
#: mod/profiles.php:585
msgid "Example: fishing photography software"
msgstr ""
#: mod/profiles.php:592
#: mod/profiles.php:590
msgid "Profile Name:"
msgstr ""
#: mod/profiles.php:594
#: mod/profiles.php:592
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
msgstr ""
#: mod/profiles.php:595
#: mod/profiles.php:593
msgid "Your Full Name:"
msgstr ""
#: mod/profiles.php:596
#: mod/profiles.php:594
msgid "Title/Description:"
msgstr ""
#: mod/profiles.php:599
#: mod/profiles.php:597
msgid "Street Address:"
msgstr ""
#: mod/profiles.php:600
#: mod/profiles.php:598
msgid "Locality/City:"
msgstr ""
#: mod/profiles.php:601
#: mod/profiles.php:599
msgid "Region/State:"
msgstr ""
#: mod/profiles.php:602
#: mod/profiles.php:600
msgid "Postal/Zip Code:"
msgstr ""
#: mod/profiles.php:603
#: mod/profiles.php:601
msgid "Country:"
msgstr ""
#: mod/profiles.php:607
#: mod/profiles.php:605
msgid "Who: (if applicable)"
msgstr ""
#: mod/profiles.php:607
#: mod/profiles.php:605
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
#: mod/profiles.php:608
#: mod/profiles.php:606
msgid "Since [date]:"
msgstr ""
#: mod/profiles.php:610
#: mod/profiles.php:608
msgid "Tell us about yourself..."
msgstr ""
#: mod/profiles.php:611
#: mod/profiles.php:609
msgid "XMPP (Jabber) address:"
msgstr ""
#: mod/profiles.php:611
#: mod/profiles.php:609
msgid ""
"The XMPP address will be propagated to your contacts so that they can follow "
"you."
msgstr ""
#: mod/profiles.php:612
#: mod/profiles.php:610
msgid "Homepage URL:"
msgstr ""
#: mod/profiles.php:615
#: mod/profiles.php:613
msgid "Religious Views:"
msgstr ""
#: mod/profiles.php:616
#: mod/profiles.php:614
msgid "Public Keywords:"
msgstr ""
#: mod/profiles.php:616
#: mod/profiles.php:614
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr ""
#: mod/profiles.php:617
#: mod/profiles.php:615
msgid "Private Keywords:"
msgstr ""
#: mod/profiles.php:617
#: mod/profiles.php:615
msgid "(Used for searching profiles, never shown to others)"
msgstr ""
#: mod/profiles.php:620
#: mod/profiles.php:618
msgid "Musical interests"
msgstr ""
#: mod/profiles.php:621
#: mod/profiles.php:619
msgid "Books, literature"
msgstr ""
#: mod/profiles.php:622
#: mod/profiles.php:620
msgid "Television"
msgstr ""
#: mod/profiles.php:623
#: mod/profiles.php:621
msgid "Film/dance/culture/entertainment"
msgstr ""
#: mod/profiles.php:624
#: mod/profiles.php:622
msgid "Hobbies/Interests"
msgstr ""
#: mod/profiles.php:625
#: mod/profiles.php:623
msgid "Love/romance"
msgstr ""
#: mod/profiles.php:626
#: mod/profiles.php:624
msgid "Work/employment"
msgstr ""
#: mod/profiles.php:627
#: mod/profiles.php:625
msgid "School/education"
msgstr ""
#: mod/profiles.php:628
#: mod/profiles.php:626
msgid "Contact information and Social Networks"
msgstr ""
#: mod/profiles.php:668
#: mod/profiles.php:666
msgid "Edit/Manage Profiles"
msgstr ""
#: mod/wall_attach.php:27 mod/wall_attach.php:34 mod/wall_attach.php:72
#: mod/wall_upload.php:43 mod/wall_upload.php:59 mod/wall_upload.php:104
#: mod/wall_upload.php:155 mod/wall_upload.php:158
#: mod/wall_attach.php:26 mod/wall_attach.php:33 mod/wall_attach.php:71
#: mod/wall_upload.php:42 mod/wall_upload.php:58 mod/wall_upload.php:103
#: mod/wall_upload.php:154 mod/wall_upload.php:157
msgid "Invalid request."
msgstr ""
#: mod/wall_attach.php:90
#: mod/wall_attach.php:89
msgid "Sorry, maybe your upload is bigger than the PHP configuration allows"
msgstr ""
#: mod/wall_attach.php:90
#: mod/wall_attach.php:89
msgid "Or - did you try to upload an empty file?"
msgstr ""
#: mod/wall_attach.php:101
#: mod/wall_attach.php:100
#, php-format
msgid "File exceeds size limit of %s"
msgstr ""
#: mod/wall_attach.php:116
#: mod/wall_attach.php:115
msgid "File upload failed."
msgstr ""
#: mod/item.php:127
#: mod/item.php:125
msgid "Unable to locate original post."
msgstr ""
#: mod/item.php:330
#: mod/item.php:327
msgid "Empty post discarded."
msgstr ""
#: mod/item.php:804
#: mod/item.php:799
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social network."
msgstr ""
#: mod/item.php:806
#: mod/item.php:801
#, php-format
msgid "You may visit them online at %s"
msgstr ""
#: mod/item.php:807
#: mod/item.php:802
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr ""
#: mod/item.php:811
#: mod/item.php:806
#, php-format
msgid "%s posted an update."
msgstr ""
#: mod/oexchange.php:32
#: mod/oexchange.php:31
msgid "Post successful."
msgstr ""
#: mod/regmod.php:53
#: mod/regmod.php:49
msgid "Account approved."
msgstr ""
#: mod/regmod.php:77
#: mod/regmod.php:73
#, php-format
msgid "Registration revoked for %s"
msgstr ""
#: mod/regmod.php:84
#: mod/regmod.php:80
msgid "Please login."
msgstr ""
#: mod/match.php:49
#: mod/match.php:48
msgid "No keywords to match. Please add keywords to your default profile."
msgstr ""
#: mod/match.php:135
#: mod/match.php:134
msgid "Profile Match"
msgstr ""
#: mod/settings.php:192
#: mod/settings.php:187
msgid "Missing some important data!"
msgstr ""
#: mod/settings.php:302
#: mod/settings.php:297
msgid "Failed to connect with email account using the settings provided."
msgstr ""
#: mod/settings.php:307
#: mod/settings.php:302
msgid "Email settings updated."
msgstr ""
#: mod/settings.php:323
#: mod/settings.php:318
msgid "Features updated"
msgstr ""
#: mod/settings.php:384
#: mod/settings.php:379
msgid "The theme you chose isn't available."
msgstr ""
#: mod/settings.php:400
#: mod/settings.php:395
msgid "Contact CSV file upload error"
msgstr ""
#: mod/settings.php:414
#: mod/settings.php:409
msgid "Importing Contacts done"
msgstr ""
#: mod/settings.php:423
#: mod/settings.php:418
msgid "Relocate message has been send to your contacts"
msgstr ""
#: mod/settings.php:435
#: mod/settings.php:430
msgid "Passwords do not match."
msgstr ""
#: mod/settings.php:449
#: mod/settings.php:444
msgid "Password unchanged."
msgstr ""
#: mod/settings.php:531
#: mod/settings.php:526
msgid " Please use a shorter name."
msgstr ""
#: mod/settings.php:534
#: mod/settings.php:529
msgid " Name too short."
msgstr ""
#: mod/settings.php:546
#: mod/settings.php:541
msgid "Invalid email."
msgstr ""
#: mod/settings.php:552
#: mod/settings.php:547
msgid "Cannot change to that email."
msgstr ""
#: mod/settings.php:590
#: mod/settings.php:584
msgid "Private forum has no privacy permissions. Using default privacy group."
msgstr ""
#: mod/settings.php:593
#: mod/settings.php:587
msgid "Private forum has no privacy permissions and no default privacy group."
msgstr ""
#: mod/settings.php:610
msgid "Settings updated."
msgstr ""
#: mod/settings.php:669 mod/settings.php:695 mod/settings.php:729
#: mod/settings.php:663 mod/settings.php:689 mod/settings.php:723
msgid "Add application"
msgstr ""
#: mod/settings.php:673 mod/settings.php:699
msgid "Consumer Key"
msgstr ""
#: mod/settings.php:674 mod/settings.php:700
msgid "Consumer Secret"
msgstr ""
#: mod/settings.php:675 mod/settings.php:701
#: mod/settings.php:669 mod/settings.php:695
msgid "Redirect"
msgstr ""
#: mod/settings.php:676 mod/settings.php:702
#: mod/settings.php:670 mod/settings.php:696
msgid "Icon url"
msgstr ""
#: mod/settings.php:687
#: mod/settings.php:681
msgid "You can't edit this application."
msgstr ""
#: mod/settings.php:728
#: mod/settings.php:722
msgid "Connected Apps"
msgstr ""
#: mod/settings.php:732
#: mod/settings.php:726
msgid "Client key starts with"
msgstr ""
#: mod/settings.php:733
#: mod/settings.php:727
msgid "No name"
msgstr ""
#: mod/settings.php:734
#: mod/settings.php:728
msgid "Remove authorization"
msgstr ""
#: mod/settings.php:745
#: mod/settings.php:739
msgid "No Addon settings configured"
msgstr ""
#: mod/settings.php:754
msgid "Addon Settings"
msgstr ""
#: mod/settings.php:775
#: mod/settings.php:769
msgid "Additional Features"
msgstr ""
#: mod/settings.php:800 mod/settings.php:801
#: mod/settings.php:794 mod/settings.php:795
msgid "enabled"
msgstr ""
#: mod/settings.php:800 mod/settings.php:801
#: mod/settings.php:794 mod/settings.php:795
msgid "disabled"
msgstr ""
#: mod/settings.php:800 mod/settings.php:801
#: mod/settings.php:794 mod/settings.php:795
#, php-format
msgid "Built-in support for %s connectivity is %s"
msgstr ""
#: mod/settings.php:801
#: mod/settings.php:795
msgid "GNU Social (OStatus)"
msgstr ""
#: mod/settings.php:832
#: mod/settings.php:826
msgid "Email access is disabled on this site."
msgstr ""
#: mod/settings.php:837 mod/settings.php:873
#: mod/settings.php:831 mod/settings.php:867
msgid "None"
msgstr ""
#: mod/settings.php:848
#: mod/settings.php:842
msgid "General Social Media Settings"
msgstr ""
#: mod/settings.php:849
#: mod/settings.php:843
msgid "Accept only top level posts by contacts you follow"
msgstr ""
#: mod/settings.php:849
#: mod/settings.php:843
msgid ""
"The system does an auto completion of threads when a comment arrives. This "
"has got the side effect that you can receive posts that had been started by "
@ -9894,11 +12534,11 @@ msgid ""
"posts from people you really do follow."
msgstr ""
#: mod/settings.php:850
#: mod/settings.php:844
msgid "Disable Content Warning"
msgstr ""
#: mod/settings.php:850
#: mod/settings.php:844
msgid ""
"Users on networks like Mastodon or Pleroma are able to set a content warning "
"field which collapse their post by default. This disables the automatic "
@ -9906,298 +12546,298 @@ msgid ""
"any other content filtering you eventually set up."
msgstr ""
#: mod/settings.php:851
#: mod/settings.php:845
msgid "Disable intelligent shortening"
msgstr ""
#: mod/settings.php:851
#: mod/settings.php:845
msgid ""
"Normally the system tries to find the best link to add to shortened posts. "
"If this option is enabled then every shortened post will always point to the "
"original friendica post."
msgstr ""
#: mod/settings.php:852
#: mod/settings.php:846
msgid "Attach the link title"
msgstr ""
#: mod/settings.php:852
#: mod/settings.php:846
msgid ""
"When activated, the title of the attached link will be added as a title on "
"posts to Diaspora. This is mostly helpful with \"remote-self\" contacts that "
"share feed content."
msgstr ""
#: mod/settings.php:853
#: mod/settings.php:847
msgid "Automatically follow any GNU Social (OStatus) followers/mentioners"
msgstr ""
#: mod/settings.php:853
#: mod/settings.php:847
msgid ""
"If you receive a message from an unknown OStatus user, this option decides "
"what to do. If it is checked, a new contact will be created for every "
"unknown user."
msgstr ""
#: mod/settings.php:854
#: mod/settings.php:848
msgid "Default group for OStatus contacts"
msgstr ""
#: mod/settings.php:855
#: mod/settings.php:849
msgid "Your legacy GNU Social account"
msgstr ""
#: mod/settings.php:855
#: mod/settings.php:849
msgid ""
"If you enter your old GNU Social/Statusnet account name here (in the format "
"user@domain.tld), your contacts will be added automatically. The field will "
"be emptied when done."
msgstr ""
#: mod/settings.php:858
#: mod/settings.php:852
msgid "Repair OStatus subscriptions"
msgstr ""
#: mod/settings.php:862
#: mod/settings.php:856
msgid "Email/Mailbox Setup"
msgstr ""
#: mod/settings.php:863
#: mod/settings.php:857
msgid ""
"If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox."
msgstr ""
#: mod/settings.php:864
#: mod/settings.php:858
msgid "Last successful email check:"
msgstr ""
#: mod/settings.php:866
#: mod/settings.php:860
msgid "IMAP server name:"
msgstr ""
#: mod/settings.php:867
#: mod/settings.php:861
msgid "IMAP port:"
msgstr ""
#: mod/settings.php:868
#: mod/settings.php:862
msgid "Security:"
msgstr ""
#: mod/settings.php:869
#: mod/settings.php:863
msgid "Email login name:"
msgstr ""
#: mod/settings.php:870
#: mod/settings.php:864
msgid "Email password:"
msgstr ""
#: mod/settings.php:871
#: mod/settings.php:865
msgid "Reply-to address:"
msgstr ""
#: mod/settings.php:872
#: mod/settings.php:866
msgid "Send public posts to all email contacts:"
msgstr ""
#: mod/settings.php:873
#: mod/settings.php:867
msgid "Action after import:"
msgstr ""
#: mod/settings.php:873
#: mod/settings.php:867
msgid "Move to folder"
msgstr ""
#: mod/settings.php:874
#: mod/settings.php:868
msgid "Move to folder:"
msgstr ""
#: mod/settings.php:906
#: mod/settings.php:900
#, php-format
msgid "%s - (Unsupported)"
msgstr ""
#: mod/settings.php:952
#: mod/settings.php:946
msgid "Display Settings"
msgstr ""
#: mod/settings.php:958
#: mod/settings.php:952
msgid "Display Theme:"
msgstr ""
#: mod/settings.php:959
#: mod/settings.php:953
msgid "Mobile Theme:"
msgstr ""
#: mod/settings.php:960
#: mod/settings.php:954
msgid "Suppress warning of insecure networks"
msgstr ""
#: mod/settings.php:960
#: mod/settings.php:954
msgid ""
"Should the system suppress the warning that the current group contains "
"members of networks that can't receive non public postings."
msgstr ""
#: mod/settings.php:961
#: mod/settings.php:955
msgid "Update browser every xx seconds"
msgstr ""
#: mod/settings.php:961
#: mod/settings.php:955
msgid "Minimum of 10 seconds. Enter -1 to disable it."
msgstr ""
#: mod/settings.php:962
#: mod/settings.php:956
msgid "Number of items to display per page:"
msgstr ""
#: mod/settings.php:962 mod/settings.php:963
#: mod/settings.php:956 mod/settings.php:957
msgid "Maximum of 100 items"
msgstr ""
#: mod/settings.php:963
#: mod/settings.php:957
msgid "Number of items to display per page when viewed from mobile device:"
msgstr ""
#: mod/settings.php:964
#: mod/settings.php:958
msgid "Don't show emoticons"
msgstr ""
#: mod/settings.php:965
#: mod/settings.php:959
msgid "Calendar"
msgstr ""
#: mod/settings.php:966
#: mod/settings.php:960
msgid "Beginning of week:"
msgstr ""
#: mod/settings.php:967
#: mod/settings.php:961
msgid "Don't show notices"
msgstr ""
#: mod/settings.php:968
#: mod/settings.php:962
msgid "Infinite scroll"
msgstr ""
#: mod/settings.php:969
#: mod/settings.php:963
msgid "Automatic updates only at the top of the network page"
msgstr ""
#: mod/settings.php:969
#: mod/settings.php:963
msgid ""
"When disabled, the network page is updated all the time, which could be "
"confusing while reading."
msgstr ""
#: mod/settings.php:970
#: mod/settings.php:964
msgid "Bandwidth Saver Mode"
msgstr ""
#: mod/settings.php:970
#: mod/settings.php:964
msgid ""
"When enabled, embedded content is not displayed on automatic updates, they "
"only show on page reload."
msgstr ""
#: mod/settings.php:971
#: mod/settings.php:965
msgid "Disable Smart Threading"
msgstr ""
#: mod/settings.php:971
#: mod/settings.php:965
msgid "Disable the automatic suppression of extraneous thread indentation."
msgstr ""
#: mod/settings.php:973
#: mod/settings.php:967
msgid "General Theme Settings"
msgstr ""
#: mod/settings.php:974
#: mod/settings.php:968
msgid "Custom Theme Settings"
msgstr ""
#: mod/settings.php:975
#: mod/settings.php:969
msgid "Content Settings"
msgstr ""
#: mod/settings.php:990
#: mod/settings.php:984
msgid "Unable to find your profile. Please contact your admin."
msgstr ""
#: mod/settings.php:1029
#: mod/settings.php:1023
msgid "Account Types"
msgstr ""
#: mod/settings.php:1030
#: mod/settings.php:1024
msgid "Personal Page Subtypes"
msgstr ""
#: mod/settings.php:1031
#: mod/settings.php:1025
msgid "Community Forum Subtypes"
msgstr ""
#: mod/settings.php:1039
#: mod/settings.php:1033
msgid "Account for a personal profile."
msgstr ""
#: mod/settings.php:1043
#: mod/settings.php:1037
msgid ""
"Account for an organisation that automatically approves contact requests as "
"\"Followers\"."
msgstr ""
#: mod/settings.php:1047
#: mod/settings.php:1041
msgid ""
"Account for a news reflector that automatically approves contact requests as "
"\"Followers\"."
msgstr ""
#: mod/settings.php:1051
#: mod/settings.php:1045
msgid "Account for community discussions."
msgstr ""
#: mod/settings.php:1055
#: mod/settings.php:1049
msgid ""
"Account for a regular personal profile that requires manual approval of "
"\"Friends\" and \"Followers\"."
msgstr ""
#: mod/settings.php:1059
#: mod/settings.php:1053
msgid ""
"Account for a public profile that automatically approves contact requests as "
"\"Followers\"."
msgstr ""
#: mod/settings.php:1063
#: mod/settings.php:1057
msgid "Automatically approves all contact requests."
msgstr ""
#: mod/settings.php:1067
#: mod/settings.php:1061
msgid ""
"Account for a popular profile that automatically approves contact requests "
"as \"Friends\"."
msgstr ""
#: mod/settings.php:1070
#: mod/settings.php:1064
msgid "Private Forum [Experimental]"
msgstr ""
#: mod/settings.php:1071
#: mod/settings.php:1065
msgid "Requires manual approval of contact requests."
msgstr ""
#: mod/settings.php:1082
#: mod/settings.php:1076
msgid "OpenID:"
msgstr ""
#: mod/settings.php:1082
#: mod/settings.php:1076
msgid "(Optional) Allow this OpenID to login to this account."
msgstr ""
#: mod/settings.php:1090
#: mod/settings.php:1084
msgid "Publish your default profile in your local site directory?"
msgstr ""
#: mod/settings.php:1090
#: mod/settings.php:1084
#, php-format
msgid ""
"Your profile will be published in this node's <a href=\"%s\">local "
@ -10205,410 +12845,410 @@ msgid ""
"system settings."
msgstr ""
#: mod/settings.php:1096
#: mod/settings.php:1090
msgid "Publish your default profile in the global social directory?"
msgstr ""
#: mod/settings.php:1096
#: mod/settings.php:1090
#, php-format
msgid ""
"Your profile will be published in the global friendica directories (e.g. <a "
"href=\"%s\">%s</a>). Your profile will be visible in public."
msgstr ""
#: mod/settings.php:1096
#: mod/settings.php:1090
msgid ""
"This setting also determines whether Friendica will inform search engines "
"that your profile should be indexed or not. Third-party search engines may "
"or may not respect this setting."
msgstr ""
#: mod/settings.php:1103
#: mod/settings.php:1097
msgid "Hide your contact/friend list from viewers of your default profile?"
msgstr ""
#: mod/settings.php:1103
#: mod/settings.php:1097
msgid ""
"Your contact list won't be shown in your default profile page. You can "
"decide to show your contact list separately for each additional profile you "
"create"
msgstr ""
#: mod/settings.php:1107
#: mod/settings.php:1101
msgid "Hide your profile details from anonymous viewers?"
msgstr ""
#: mod/settings.php:1107
#: mod/settings.php:1101
msgid ""
"Anonymous visitors will only see your profile picture, your display name and "
"the nickname you are using on your profile page. Your public posts and "
"replies will still be accessible by other means."
msgstr ""
#: mod/settings.php:1111
#: mod/settings.php:1105
msgid "Allow friends to post to your profile page?"
msgstr ""
#: mod/settings.php:1111
#: mod/settings.php:1105
msgid ""
"Your contacts may write posts on your profile wall. These posts will be "
"distributed to your contacts"
msgstr ""
#: mod/settings.php:1115
#: mod/settings.php:1109
msgid "Allow friends to tag your posts?"
msgstr ""
#: mod/settings.php:1115
#: mod/settings.php:1109
msgid "Your contacts can add additional tags to your posts."
msgstr ""
#: mod/settings.php:1119
#: mod/settings.php:1113
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
#: mod/settings.php:1119
#: mod/settings.php:1113
msgid "If you like, Friendica may suggest new members to add you as a contact."
msgstr ""
#: mod/settings.php:1123
#: mod/settings.php:1117
msgid "Permit unknown people to send you private mail?"
msgstr ""
#: mod/settings.php:1123
#: mod/settings.php:1117
msgid ""
"Friendica network users may send you private messages even if they are not "
"in your contact list."
msgstr ""
#: mod/settings.php:1127
#: mod/settings.php:1121
msgid "Profile is <strong>not published</strong>."
msgstr ""
#: mod/settings.php:1133
#: mod/settings.php:1127
#, php-format
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
msgstr ""
#: mod/settings.php:1140
#: mod/settings.php:1134
msgid "Automatically expire posts after this many days:"
msgstr ""
#: mod/settings.php:1140
#: mod/settings.php:1134
msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr ""
#: mod/settings.php:1141
#: mod/settings.php:1135
msgid "Advanced expiration settings"
msgstr ""
#: mod/settings.php:1142
#: mod/settings.php:1136
msgid "Advanced Expiration"
msgstr ""
#: mod/settings.php:1143
#: mod/settings.php:1137
msgid "Expire posts:"
msgstr ""
#: mod/settings.php:1144
#: mod/settings.php:1138
msgid "Expire personal notes:"
msgstr ""
#: mod/settings.php:1145
#: mod/settings.php:1139
msgid "Expire starred posts:"
msgstr ""
#: mod/settings.php:1146
#: mod/settings.php:1140
msgid "Expire photos:"
msgstr ""
#: mod/settings.php:1147
#: mod/settings.php:1141
msgid "Only expire posts by others:"
msgstr ""
#: mod/settings.php:1177
#: mod/settings.php:1171
msgid "Account Settings"
msgstr ""
#: mod/settings.php:1185
#: mod/settings.php:1179
msgid "Password Settings"
msgstr ""
#: mod/settings.php:1186
#: mod/settings.php:1180
msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)."
msgstr ""
#: mod/settings.php:1187
#: mod/settings.php:1181
msgid "Leave password fields blank unless changing"
msgstr ""
#: mod/settings.php:1188
#: mod/settings.php:1182
msgid "Current Password:"
msgstr ""
#: mod/settings.php:1188 mod/settings.php:1189
#: mod/settings.php:1182 mod/settings.php:1183
msgid "Your current password to confirm the changes"
msgstr ""
#: mod/settings.php:1189
#: mod/settings.php:1183
msgid "Password:"
msgstr ""
#: mod/settings.php:1192
#: mod/settings.php:1186
msgid "Delete OpenID URL"
msgstr ""
#: mod/settings.php:1194
#: mod/settings.php:1188
msgid "Basic Settings"
msgstr ""
#: mod/settings.php:1196
#: mod/settings.php:1190
msgid "Email Address:"
msgstr ""
#: mod/settings.php:1197
#: mod/settings.php:1191
msgid "Your Timezone:"
msgstr ""
#: mod/settings.php:1198
#: mod/settings.php:1192
msgid "Your Language:"
msgstr ""
#: mod/settings.php:1198
#: mod/settings.php:1192
msgid ""
"Set the language we use to show you friendica interface and to send you "
"emails"
msgstr ""
#: mod/settings.php:1199
#: mod/settings.php:1193
msgid "Default Post Location:"
msgstr ""
#: mod/settings.php:1200
#: mod/settings.php:1194
msgid "Use Browser Location:"
msgstr ""
#: mod/settings.php:1203
#: mod/settings.php:1197
msgid "Security and Privacy Settings"
msgstr ""
#: mod/settings.php:1205
#: mod/settings.php:1199
msgid "Maximum Friend Requests/Day:"
msgstr ""
#: mod/settings.php:1205 mod/settings.php:1234
#: mod/settings.php:1199 mod/settings.php:1228
msgid "(to prevent spam abuse)"
msgstr ""
#: mod/settings.php:1206
#: mod/settings.php:1200
msgid "Default Post Permissions"
msgstr ""
#: mod/settings.php:1207
#: mod/settings.php:1201
msgid "(click to open/close)"
msgstr ""
#: mod/settings.php:1217
#: mod/settings.php:1211
msgid "Default Private Post"
msgstr ""
#: mod/settings.php:1218
#: mod/settings.php:1212
msgid "Default Public Post"
msgstr ""
#: mod/settings.php:1222
#: mod/settings.php:1216
msgid "Default Permissions for New Posts"
msgstr ""
#: mod/settings.php:1234
#: mod/settings.php:1228
msgid "Maximum private messages per day from unknown people:"
msgstr ""
#: mod/settings.php:1237
#: mod/settings.php:1231
msgid "Notification Settings"
msgstr ""
#: mod/settings.php:1238
#: mod/settings.php:1232
msgid "Send a notification email when:"
msgstr ""
#: mod/settings.php:1239
#: mod/settings.php:1233
msgid "You receive an introduction"
msgstr ""
#: mod/settings.php:1240
#: mod/settings.php:1234
msgid "Your introductions are confirmed"
msgstr ""
#: mod/settings.php:1241
#: mod/settings.php:1235
msgid "Someone writes on your profile wall"
msgstr ""
#: mod/settings.php:1242
#: mod/settings.php:1236
msgid "Someone writes a followup comment"
msgstr ""
#: mod/settings.php:1243
#: mod/settings.php:1237
msgid "You receive a private message"
msgstr ""
#: mod/settings.php:1244
#: mod/settings.php:1238
msgid "You receive a friend suggestion"
msgstr ""
#: mod/settings.php:1245
#: mod/settings.php:1239
msgid "You are tagged in a post"
msgstr ""
#: mod/settings.php:1246
#: mod/settings.php:1240
msgid "You are poked/prodded/etc. in a post"
msgstr ""
#: mod/settings.php:1248
#: mod/settings.php:1242
msgid "Activate desktop notifications"
msgstr ""
#: mod/settings.php:1248
#: mod/settings.php:1242
msgid "Show desktop popup on new notifications"
msgstr ""
#: mod/settings.php:1250
#: mod/settings.php:1244
msgid "Text-only notification emails"
msgstr ""
#: mod/settings.php:1252
#: mod/settings.php:1246
msgid "Send text only notification emails, without the html part"
msgstr ""
#: mod/settings.php:1254
#: mod/settings.php:1248
msgid "Show detailled notifications"
msgstr ""
#: mod/settings.php:1256
#: mod/settings.php:1250
msgid ""
"Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed."
msgstr ""
#: mod/settings.php:1258
#: mod/settings.php:1252
msgid "Advanced Account/Page Type Settings"
msgstr ""
#: mod/settings.php:1259
#: mod/settings.php:1253
msgid "Change the behaviour of this account for special situations"
msgstr ""
#: mod/settings.php:1262
#: mod/settings.php:1256
msgid "Import Contacts"
msgstr ""
#: mod/settings.php:1263
#: mod/settings.php:1257
msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account."
msgstr ""
#: mod/settings.php:1264
#: mod/settings.php:1258
msgid "Upload File"
msgstr ""
#: mod/settings.php:1266
#: mod/settings.php:1260
msgid "Relocate"
msgstr ""
#: mod/settings.php:1267
#: mod/settings.php:1261
msgid ""
"If you have moved this profile from another server, and some of your "
"contacts don't receive your updates, try pushing this button."
msgstr ""
#: mod/settings.php:1268
#: mod/settings.php:1262
msgid "Resend relocate message to contacts"
msgstr ""
#: mod/suggest.php:28
#: mod/suggest.php:27
msgid "Contact suggestion successfully ignored."
msgstr ""
#: mod/suggest.php:52
#: mod/suggest.php:51
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
msgstr ""
#: mod/suggest.php:71
#: mod/suggest.php:70
msgid "Do you really want to delete this suggestion?"
msgstr ""
#: mod/suggest.php:89 mod/suggest.php:109
#: mod/suggest.php:88 mod/suggest.php:108
msgid "Ignore/Hide"
msgstr ""
#: mod/dfrn_confirm.php:127
#: mod/dfrn_confirm.php:126
msgid ""
"This may occasionally happen if contact was requested by both persons and it "
"has already been approved."
msgstr ""
#: mod/dfrn_confirm.php:228
#: mod/dfrn_confirm.php:227
msgid "Response from remote site was not understood."
msgstr ""
#: mod/dfrn_confirm.php:235 mod/dfrn_confirm.php:241
#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240
msgid "Unexpected response from remote site: "
msgstr ""
#: mod/dfrn_confirm.php:250
#: mod/dfrn_confirm.php:249
msgid "Confirmation completed successfully."
msgstr ""
#: mod/dfrn_confirm.php:262
#: mod/dfrn_confirm.php:261
msgid "Temporary failure. Please wait and try again."
msgstr ""
#: mod/dfrn_confirm.php:265
#: mod/dfrn_confirm.php:264
msgid "Introduction failed or was revoked."
msgstr ""
#: mod/dfrn_confirm.php:270
#: mod/dfrn_confirm.php:269
msgid "Remote site reported: "
msgstr ""
#: mod/dfrn_confirm.php:375
#: mod/dfrn_confirm.php:374
#, php-format
msgid "No user record found for '%s' "
msgstr ""
#: mod/dfrn_confirm.php:385
#: mod/dfrn_confirm.php:384
msgid "Our site encryption key is apparently messed up."
msgstr ""
#: mod/dfrn_confirm.php:396
#: mod/dfrn_confirm.php:395
msgid "Empty site URL was provided or URL could not be decrypted by us."
msgstr ""
#: mod/dfrn_confirm.php:412
#: mod/dfrn_confirm.php:411
msgid "Contact record was not found for you on our site."
msgstr ""
#: mod/dfrn_confirm.php:426
#: mod/dfrn_confirm.php:425
#, php-format
msgid "Site public key not available in contact record for URL %s."
msgstr ""
#: mod/dfrn_confirm.php:442
#: mod/dfrn_confirm.php:441
msgid ""
"The ID provided by your system is a duplicate on our system. It should work "
"if you try again."
msgstr ""
#: mod/dfrn_confirm.php:453
#: mod/dfrn_confirm.php:452
msgid "Unable to set your contact credentials on our system."
msgstr ""
#: mod/dfrn_confirm.php:509
#: mod/dfrn_confirm.php:508
msgid "Unable to update your contact profile details on our system"
msgstr ""
@ -10641,7 +13281,7 @@ msgstr ""
msgid "Please enter your password for verification:"
msgstr ""
#: mod/wall_upload.php:231
#: mod/wall_upload.php:230
msgid "Wall Photos"
msgstr ""
@ -10678,103 +13318,99 @@ msgstr ""
msgid "%1$s is following %2$s's %3$s"
msgstr ""
#: mod/message.php:74
#: mod/message.php:72
msgid "Unable to locate contact information."
msgstr ""
#: mod/message.php:148
#: mod/message.php:146
msgid "Do you really want to delete this message?"
msgstr ""
#: mod/message.php:166
#: mod/message.php:164
msgid "Conversation not found."
msgstr ""
#: mod/message.php:171
#: mod/message.php:169
msgid "Message deleted."
msgstr ""
#: mod/message.php:176 mod/message.php:190
#: mod/message.php:174 mod/message.php:188
msgid "Conversation removed."
msgstr ""
#: mod/message.php:289
#: mod/message.php:287
msgid "No messages."
msgstr ""
#: mod/message.php:352
#: mod/message.php:350
msgid "Message not available."
msgstr ""
#: mod/message.php:406
#: mod/message.php:404
msgid "Delete message"
msgstr ""
#: mod/message.php:408 mod/message.php:540
#: mod/message.php:406 mod/message.php:538
msgid "D, d M Y - g:i A"
msgstr ""
#: mod/message.php:423 mod/message.php:537
#: mod/message.php:421 mod/message.php:535
msgid "Delete conversation"
msgstr ""
#: mod/message.php:425
#: mod/message.php:423
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr ""
#: mod/message.php:429
#: mod/message.php:427
msgid "Send Reply"
msgstr ""
#: mod/message.php:512
#: mod/message.php:510
#, php-format
msgid "Unknown sender - %s"
msgstr ""
#: mod/message.php:514
#: mod/message.php:512
#, php-format
msgid "You and %s"
msgstr ""
#: mod/message.php:516
#: mod/message.php:514
#, php-format
msgid "%s and You"
msgstr ""
#: mod/message.php:543
#: mod/message.php:541
#, php-format
msgid "%d message"
msgid_plural "%d messages"
msgstr[0] ""
msgstr[1] ""
#: mod/repair_ostatus.php:21
#: mod/repair_ostatus.php:20
msgid "Resubscribing to OStatus contacts"
msgstr ""
#: mod/hcard.php:21
msgid "No profile"
msgstr ""
#: mod/profperm.php:30
#: mod/profperm.php:29
msgid "Permission denied"
msgstr ""
#: mod/profperm.php:36 mod/profperm.php:69
#: mod/profperm.php:35 mod/profperm.php:68
msgid "Invalid profile identifier."
msgstr ""
#: mod/profperm.php:115
#: mod/profperm.php:114
msgid "Profile Visibility Editor"
msgstr ""
#: mod/profperm.php:128
#: mod/profperm.php:127
msgid "Visible To"
msgstr ""
#: mod/profperm.php:144
#: mod/profperm.php:143
msgid "All Contacts (with secure profile access)"
msgstr ""
@ -10790,14 +13426,14 @@ msgstr ""
msgid "Select a tag to remove: "
msgstr ""
#: mod/videos.php:120
#: mod/videos.php:117
msgid "No videos selected"
msgstr ""
#: mod/videos.php:253
#: mod/videos.php:250
msgid "Recent Videos"
msgstr ""
#: mod/videos.php:255
#: mod/videos.php:252
msgid "Upload New Videos"
msgstr ""

View file

@ -5,7 +5,6 @@
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\DI;
@ -51,13 +50,13 @@ function theme_admin_post(App $a)
function clean_form(App $a, &$colorset, $user)
{
$colorset = [
'default' => L10n::t('default'),
'greenzero' => L10n::t('greenzero'),
'purplezero' => L10n::t('purplezero'),
'easterbunny' => L10n::t('easterbunny'),
'darkzero' => L10n::t('darkzero'),
'comix' => L10n::t('comix'),
'slackr' => L10n::t('slackr'),
'default' => DI::l10n()->t('default'),
'greenzero' => DI::l10n()->t('greenzero'),
'purplezero' => DI::l10n()->t('purplezero'),
'easterbunny' => DI::l10n()->t('easterbunny'),
'darkzero' => DI::l10n()->t('darkzero'),
'comix' => DI::l10n()->t('comix'),
'slackr' => DI::l10n()->t('slackr'),
];
if ($user) {
@ -68,9 +67,9 @@ function clean_form(App $a, &$colorset, $user)
$t = Renderer::getMarkupTemplate("theme_settings.tpl");
$o = Renderer::replaceMacros($t, [
'$submit' => L10n::t('Submit'),
'$title' => L10n::t("Theme settings"),
'$colorset' => ['duepuntozero_colorset', L10n::t('Variations'), $color, '', $colorset],
'$submit' => DI::l10n()->t('Submit'),
'$title' => DI::l10n()->t("Theme settings"),
'$colorset' => ['duepuntozero_colorset', DI::l10n()->t('Variations'), $color, '', $colorset],
]);
return $o;

Some files were not shown because too many files have changed in this diff Show more