Merge remote-tracking branch 'upstream/develop' into share-rework

This commit is contained in:
Michael 2022-10-25 08:31:01 +00:00
commit 1a0b63659b
176 changed files with 6001 additions and 5369 deletions

View file

@ -2,6 +2,9 @@ Version 2022.12 (unreleased)
Friendica Core Friendica Core
Friendica Addons Friendica Addons
BREAKING: The functions from the boot.php file have been moved into better fitting classes
this may break your custom addons. See the pull requests #1293 and #1294 in the
addon repository about the needed changes to your addons.
Closed Issues Closed Issues

View file

@ -27,7 +27,6 @@ use Friendica\App;
use Friendica\Content\Nav; use Friendica\Content\Nav;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -42,7 +41,7 @@ use Friendica\Util\Temporal;
function cal_init(App $a) function cal_init(App $a)
{ {
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Access denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
} }
@ -112,11 +111,11 @@ function cal_content(App $a)
$owner_uid = intval($owner['uid']); $owner_uid = intval($owner['uid']);
$nick = $owner['nickname']; $nick = $owner['nickname'];
$contact_id = Session::getRemoteContactID($owner['uid']); $contact_id = DI::userSession()->getRemoteContactID($owner['uid']);
$remote_contact = $contact_id && DBA::exists('contact', ['id' => $contact_id, 'uid' => $owner['uid']]); $remote_contact = $contact_id && DBA::exists('contact', ['id' => $contact_id, 'uid' => $owner['uid']]);
$is_owner = Session::getLocalUser() == $owner['uid']; $is_owner = DI::userSession()->getLocalUserId() == $owner['uid'];
if ($owner['hidewall'] && !$is_owner && !$remote_contact) { if ($owner['hidewall'] && !$is_owner && !$remote_contact) {
DI::sysmsg()->addNotice(DI::l10n()->t('Access to this profile has been restricted.')); DI::sysmsg()->addNotice(DI::l10n()->t('Access to this profile has been restricted.'));
@ -278,7 +277,7 @@ function cal_content(App $a)
// If it the own calendar return to the events page // If it the own calendar return to the events page
// otherwise to the profile calendar page // otherwise to the profile calendar page
if (Session::getLocalUser() === $owner_uid) { if (DI::userSession()->getLocalUserId() === $owner_uid) {
$return_path = "events"; $return_path = "events";
} else { } else {
$return_path = "cal/" . $nick; $return_path = "cal/" . $nick;

View file

@ -24,7 +24,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -46,14 +45,14 @@ function display_init(App $a)
(new Objects(DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), $_SERVER, ['guid' => DI::args()->getArgv()[1] ?? null]))->run(); (new Objects(DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), $_SERVER, ['guid' => DI::args()->getArgv()[1] ?? null]))->run();
} }
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
return; return;
} }
$nick = ((DI::args()->getArgc() > 1) ? DI::args()->getArgv()[1] : ''); $nick = ((DI::args()->getArgc() > 1) ? DI::args()->getArgv()[1] : '');
$item = null; $item = null;
$item_user = Session::getLocalUser(); $item_user = DI::userSession()->getLocalUserId();
$fields = ['uri-id', 'parent-uri-id', 'author-id', 'author-link', 'body', 'uid', 'guid', 'gravity']; $fields = ['uri-id', 'parent-uri-id', 'author-id', 'author-link', 'body', 'uid', 'guid', 'gravity'];
@ -62,18 +61,18 @@ function display_init(App $a)
$nick = ''; $nick = '';
// Does the local user have this item? // Does the local user have this item?
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['guid' => DI::args()->getArgv()[1], 'uid' => Session::getLocalUser()]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['guid' => DI::args()->getArgv()[1], 'uid' => DI::userSession()->getLocalUserId()]);
if (DBA::isResult($item)) { if (DBA::isResult($item)) {
$nick = $a->getLoggedInUserNickname(); $nick = $a->getLoggedInUserNickname();
} }
} }
// Is this item private but could be visible to the remove visitor? // Is this item private but could be visible to the remove visitor?
if (!DBA::isResult($item) && Session::getRemoteUser()) { if (!DBA::isResult($item) && DI::userSession()->getRemoteUserId()) {
$item = Post::selectFirst($fields, ['guid' => DI::args()->getArgv()[1], 'private' => Item::PRIVATE, 'origin' => true]); $item = Post::selectFirst($fields, ['guid' => DI::args()->getArgv()[1], 'private' => Item::PRIVATE, 'origin' => true]);
if (DBA::isResult($item)) { if (DBA::isResult($item)) {
if (!Contact::isFollower(Session::getRemoteUser(), $item['uid'])) { if (!Contact::isFollower(DI::userSession()->getRemoteUserId(), $item['uid'])) {
$item = null; $item = null;
} else { } else {
$item_user = $item['uid']; $item_user = $item['uid'];
@ -83,14 +82,14 @@ function display_init(App $a)
// Is it an item with uid=0? // Is it an item with uid=0?
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['guid' => DI::args()->getArgv()[1], 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['guid' => DI::args()->getArgv()[1], 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]);
} }
} elseif (DI::args()->getArgc() >= 3 && $nick == 'feed-item') { } elseif (DI::args()->getArgc() >= 3 && $nick == 'feed-item') {
$uri_id = DI::args()->getArgv()[2]; $uri_id = DI::args()->getArgv()[2];
if (substr($uri_id, -5) == '.atom') { if (substr($uri_id, -5) == '.atom') {
$uri_id = substr($uri_id, 0, -5); $uri_id = substr($uri_id, 0, -5);
} }
$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['uri-id' => $uri_id, 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['uri-id' => $uri_id, 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]);
} }
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
@ -125,7 +124,7 @@ function display_fetchauthor($item)
{ {
$shared = Item::getShareArray($item); $shared = Item::getShareArray($item);
if (empty($shared['comment']) && !empty($shared['guid']) && !empty($shared['profile'])) { if (empty($shared['comment']) && !empty($shared['guid']) && !empty($shared['profile'])) {
$contact = Contact::getByURLForUser($shared['profile'], Session::getLocalUser()); $contact = Contact::getByURLForUser($shared['profile'], DI::userSession()->getLocalUserId());
} }
if (empty($contact)) { if (empty($contact)) {
@ -137,7 +136,7 @@ function display_fetchauthor($item)
function display_content(App $a, $update = false, $update_uid = 0) function display_content(App $a, $update = false, $update_uid = 0)
{ {
if (DI::config()->get('system','block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system','block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
} }
@ -179,18 +178,18 @@ function display_content(App $a, $update = false, $update_uid = 0)
if (DI::args()->getArgc() == 2) { if (DI::args()->getArgc() == 2) {
$fields = ['uri-id', 'parent-uri-id', 'uid']; $fields = ['uri-id', 'parent-uri-id', 'uid'];
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$condition = ['guid' => DI::args()->getArgv()[1], 'uid' => [0, Session::getLocalUser()]]; $condition = ['guid' => DI::args()->getArgv()[1], 'uid' => [0, DI::userSession()->getLocalUserId()]];
$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, $condition, ['order' => ['uid' => true]]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, $condition, ['order' => ['uid' => true]]);
if (DBA::isResult($item)) { if (DBA::isResult($item)) {
$uri_id = $item['uri-id']; $uri_id = $item['uri-id'];
$parent_uri_id = $item['parent-uri-id']; $parent_uri_id = $item['parent-uri-id'];
} }
} }
if (($parent_uri_id == 0) && Session::getRemoteUser()) { if (($parent_uri_id == 0) && DI::userSession()->getRemoteUserId()) {
$item = Post::selectFirst($fields, ['guid' => DI::args()->getArgv()[1], 'private' => Item::PRIVATE, 'origin' => true]); $item = Post::selectFirst($fields, ['guid' => DI::args()->getArgv()[1], 'private' => Item::PRIVATE, 'origin' => true]);
if (DBA::isResult($item) && Contact::isFollower(Session::getRemoteUser(), $item['uid'])) { if (DBA::isResult($item) && Contact::isFollower(DI::userSession()->getRemoteUserId(), $item['uid'])) {
$uri_id = $item['uri-id']; $uri_id = $item['uri-id'];
$parent_uri_id = $item['parent-uri-id']; $parent_uri_id = $item['parent-uri-id'];
} }
@ -198,7 +197,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
if ($parent_uri_id == 0) { if ($parent_uri_id == 0) {
$condition = ['private' => [Item::PUBLIC, Item::UNLISTED], 'guid' => DI::args()->getArgv()[1], 'uid' => 0]; $condition = ['private' => [Item::PUBLIC, Item::UNLISTED], 'guid' => DI::args()->getArgv()[1], 'uid' => 0];
$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, $condition); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, $condition);
if (DBA::isResult($item)) { if (DBA::isResult($item)) {
$uri_id = $item['uri-id']; $uri_id = $item['uri-id'];
$parent_uri_id = $item['parent-uri-id']; $parent_uri_id = $item['parent-uri-id'];
@ -211,9 +210,9 @@ function display_content(App $a, $update = false, $update_uid = 0)
throw new HTTPException\NotFoundException(DI::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.'));
} }
if (!DI::pConfig()->get(Session::getLocalUser(), 'system', 'detailed_notif')) { if (!DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif')) {
DI::notification()->setAllSeenForUser(Session::getLocalUser(), ['parent-uri-id' => $item['parent-uri-id']]); DI::notification()->setAllSeenForUser(DI::userSession()->getLocalUserId(), ['parent-uri-id' => $item['parent-uri-id']]);
DI::notify()->setAllSeenForUser(Session::getLocalUser(), ['parent-uri-id' => $item['parent-uri-id']]); DI::notify()->setAllSeenForUser(DI::userSession()->getLocalUserId(), ['parent-uri-id' => $item['parent-uri-id']]);
} }
// We are displaying an "alternate" link if that post was public. See issue 2864 // We are displaying an "alternate" link if that post was public. See issue 2864
@ -232,17 +231,17 @@ function display_content(App $a, $update = false, $update_uid = 0)
'$conversation' => $conversation]); '$conversation' => $conversation]);
$is_remote_contact = false; $is_remote_contact = false;
$item_uid = Session::getLocalUser(); $item_uid = DI::userSession()->getLocalUserId();
$page_uid = 0; $page_uid = 0;
$parent = null; $parent = null;
if (!Session::getLocalUser() && !empty($parent_uri_id)) { if (!DI::userSession()->getLocalUserId() && !empty($parent_uri_id)) {
$parent = Post::selectFirst(['uid'], ['uri-id' => $parent_uri_id, 'wall' => true]); $parent = Post::selectFirst(['uid'], ['uri-id' => $parent_uri_id, 'wall' => true]);
} }
if (DBA::isResult($parent)) { if (DBA::isResult($parent)) {
$page_uid = $page_uid ?? 0 ?: $parent['uid']; $page_uid = $page_uid ?? 0 ?: $parent['uid'];
$is_remote_contact = Session::getRemoteContactID($page_uid); $is_remote_contact = DI::userSession()->getRemoteContactID($page_uid);
if ($is_remote_contact) { if ($is_remote_contact) {
$item_uid = $parent['uid']; $item_uid = $parent['uid'];
} }
@ -250,11 +249,11 @@ function display_content(App $a, $update = false, $update_uid = 0)
$page_uid = $item['uid']; $page_uid = $item['uid'];
} }
if (!empty($page_uid) && ($page_uid != Session::getLocalUser())) { if (!empty($page_uid) && ($page_uid != DI::userSession()->getLocalUserId())) {
$page_user = User::getById($page_uid); $page_user = User::getById($page_uid);
} }
$is_owner = Session::getLocalUser() && (in_array($page_uid, [Session::getLocalUser(), 0])); $is_owner = DI::userSession()->getLocalUserId() && (in_array($page_uid, [DI::userSession()->getLocalUserId(), 0]));
if (!empty($page_user['hidewall']) && !$is_owner && !$is_remote_contact) { if (!empty($page_user['hidewall']) && !$is_owner && !$is_remote_contact) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.'));
@ -266,8 +265,8 @@ function display_content(App $a, $update = false, $update_uid = 0)
} }
$sql_extra = Item::getPermissionsSQLByUserId($page_uid); $sql_extra = Item::getPermissionsSQLByUserId($page_uid);
if (Session::getLocalUser() && (Session::getLocalUser() == $page_uid)) { if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $page_uid)) {
$condition = ['parent-uri-id' => $parent_uri_id, 'uid' => Session::getLocalUser(), 'unseen' => true]; $condition = ['parent-uri-id' => $parent_uri_id, 'uid' => DI::userSession()->getLocalUserId(), 'unseen' => true];
$unseen = Post::exists($condition); $unseen = Post::exists($condition);
} else { } else {
$unseen = false; $unseen = false;
@ -288,11 +287,11 @@ function display_content(App $a, $update = false, $update_uid = 0)
$item['uri-id'] = $item['parent-uri-id']; $item['uri-id'] = $item['parent-uri-id'];
if ($unseen) { if ($unseen) {
$condition = ['parent-uri-id' => $parent_uri_id, 'uid' => Session::getLocalUser(), 'unseen' => true]; $condition = ['parent-uri-id' => $parent_uri_id, 'uid' => DI::userSession()->getLocalUserId(), 'unseen' => true];
Item::update(['unseen' => false], $condition); Item::update(['unseen' => false], $condition);
} }
if (!$update && Session::getLocalUser()) { if (!$update && DI::userSession()->getLocalUserId()) {
$o .= "<script> var netargs = '?uri_id=" . $item['uri-id'] . "'; </script>"; $o .= "<script> var netargs = '?uri_id=" . $item['uri-id'] . "'; </script>";
} }

View file

@ -23,7 +23,6 @@ use Friendica\App;
use Friendica\Content\Feature; use Friendica\Content\Feature;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -35,7 +34,7 @@ function editpost_content(App $a)
{ {
$o = ''; $o = '';
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return; return;
} }
@ -50,14 +49,14 @@ function editpost_content(App $a)
$fields = ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', $fields = ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
'body', 'title', 'uri-id', 'wall', 'post-type', 'guid']; 'body', 'title', 'uri-id', 'wall', 'post-type', 'guid'];
$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['id' => $post_id, 'uid' => Session::getLocalUser()]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['id' => $post_id, 'uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Item not found')); DI::sysmsg()->addNotice(DI::l10n()->t('Item not found'));
return; return;
} }
$user = User::getById(Session::getLocalUser()); $user = User::getById(DI::userSession()->getLocalUserId());
$geotag = ''; $geotag = '';
@ -119,8 +118,8 @@ function editpost_content(App $a)
'$jotnets' => $jotnets, '$jotnets' => $jotnets,
'$title' => $item['title'], '$title' => $item['title'],
'$placeholdertitle' => DI::l10n()->t('Set title'), '$placeholdertitle' => DI::l10n()->t('Set title'),
'$category' => Post\Category::getCSVByURIId($item['uri-id'], Session::getLocalUser(), Post\Category::CATEGORY), '$category' => Post\Category::getCSVByURIId($item['uri-id'], DI::userSession()->getLocalUserId(), Post\Category::CATEGORY),
'$placeholdercategory' => (Feature::isEnabled(Session::getLocalUser(),'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : ''), '$placeholdercategory' => (Feature::isEnabled(DI::userSession()->getLocalUserId(),'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : ''),
'$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'), '$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate, '$lockstate' => $lockstate,
'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user)), '$acl' => '', // populate_acl((($group) ? $group_acl : $a->user)),

View file

@ -27,7 +27,6 @@ use Friendica\Core\ACL;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Core\Worker; use Friendica\Core\Worker;
@ -47,7 +46,7 @@ use Friendica\Worker\Delivery;
function events_init(App $a) function events_init(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -55,7 +54,7 @@ function events_init(App $a)
DI::page()['aside'] = ''; DI::page()['aside'] = '';
} }
$cal_widget = CalendarExport::getHTML(Session::getLocalUser()); $cal_widget = CalendarExport::getHTML(DI::userSession()->getLocalUserId());
DI::page()['aside'] .= $cal_widget; DI::page()['aside'] .= $cal_widget;
@ -65,13 +64,13 @@ function events_init(App $a)
function events_post(App $a) function events_post(App $a)
{ {
Logger::debug('post', ['request' => $_REQUEST]); Logger::debug('post', ['request' => $_REQUEST]);
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$event_id = !empty($_POST['event_id']) ? intval($_POST['event_id']) : 0; $event_id = !empty($_POST['event_id']) ? intval($_POST['event_id']) : 0;
$cid = !empty($_POST['cid']) ? intval($_POST['cid']) : 0; $cid = !empty($_POST['cid']) ? intval($_POST['cid']) : 0;
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$start_text = Strings::escapeHtml($_REQUEST['start_text'] ?? ''); $start_text = Strings::escapeHtml($_REQUEST['start_text'] ?? '');
$finish_text = Strings::escapeHtml($_REQUEST['finish_text'] ?? ''); $finish_text = Strings::escapeHtml($_REQUEST['finish_text'] ?? '');
@ -215,7 +214,7 @@ function events_post(App $a)
function events_content(App $a) function events_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return Login::form(); return Login::form();
} }
@ -225,11 +224,11 @@ function events_content(App $a)
} }
if ((DI::args()->getArgc() > 2) && (DI::args()->getArgv()[1] === 'ignore') && intval(DI::args()->getArgv()[2])) { if ((DI::args()->getArgc() > 2) && (DI::args()->getArgv()[1] === 'ignore') && intval(DI::args()->getArgv()[2])) {
DBA::update('event', ['ignore' => true], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]); DBA::update('event', ['ignore' => true], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
} }
if ((DI::args()->getArgc() > 2) && (DI::args()->getArgv()[1] === 'unignore') && intval(DI::args()->getArgv()[2])) { if ((DI::args()->getArgc() > 2) && (DI::args()->getArgv()[1] === 'unignore') && intval(DI::args()->getArgv()[2])) {
DBA::update('event', ['ignore' => false], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]); DBA::update('event', ['ignore' => false], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
} }
if ($a->getThemeInfoValue('events_in_profile')) { if ($a->getThemeInfoValue('events_in_profile')) {
@ -324,9 +323,9 @@ function events_content(App $a)
// get events by id or by date // get events by id or by date
if ($event_params['event_id']) { if ($event_params['event_id']) {
$r = Event::getListById(Session::getLocalUser(), $event_params['event_id']); $r = Event::getListById(DI::userSession()->getLocalUserId(), $event_params['event_id']);
} else { } else {
$r = Event::getListByDate(Session::getLocalUser(), $event_params); $r = Event::getListByDate(DI::userSession()->getLocalUserId(), $event_params);
} }
$links = []; $links = [];
@ -397,7 +396,7 @@ function events_content(App $a)
} }
if (($mode === 'edit' || $mode === 'copy') && $event_id) { if (($mode === 'edit' || $mode === 'copy') && $event_id) {
$orig_event = DBA::selectFirst('event', [], ['id' => $event_id, 'uid' => Session::getLocalUser()]); $orig_event = DBA::selectFirst('event', [], ['id' => $event_id, 'uid' => DI::userSession()->getLocalUserId()]);
} }
// Passed parameters overrides anything found in the DB // Passed parameters overrides anything found in the DB
@ -406,8 +405,8 @@ function events_content(App $a)
$share_disabled = ''; $share_disabled = '';
if (empty($orig_event)) { if (empty($orig_event)) {
$orig_event = User::getById(Session::getLocalUser(), ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid']);; $orig_event = User::getById(DI::userSession()->getLocalUserId(), ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid']);;
} elseif ($orig_event['allow_cid'] !== '<' . Session::getLocalUser() . '>' } elseif ($orig_event['allow_cid'] !== '<' . DI::userSession()->getLocalUserId() . '>'
|| $orig_event['allow_gid'] || $orig_event['allow_gid']
|| $orig_event['deny_cid'] || $orig_event['deny_cid']
|| $orig_event['deny_gid']) { || $orig_event['deny_gid']) {
@ -525,11 +524,11 @@ function events_content(App $a)
// Remove an event from the calendar and its related items // Remove an event from the calendar and its related items
if ($mode === 'drop' && $event_id) { if ($mode === 'drop' && $event_id) {
$ev = Event::getListById(Session::getLocalUser(), $event_id); $ev = Event::getListById(DI::userSession()->getLocalUserId(), $event_id);
// Delete only real events (no birthdays) // Delete only real events (no birthdays)
if (DBA::isResult($ev) && $ev[0]['type'] == 'event') { if (DBA::isResult($ev) && $ev[0]['type'] == 'event') {
Item::deleteForUser(['id' => $ev[0]['itemid']], Session::getLocalUser()); Item::deleteForUser(['id' => $ev[0]['itemid']], DI::userSession()->getLocalUserId());
} }
if (Post::exists(['id' => $ev[0]['itemid']])) { if (Post::exists(['id' => $ev[0]['itemid']])) {

View file

@ -24,7 +24,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -39,7 +38,7 @@ use Friendica\Util\Strings;
*/ */
function fbrowser_content(App $a) function fbrowser_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
System::exit(); System::exit();
} }
@ -66,7 +65,7 @@ function fbrowser_content(App $a)
if (DI::args()->getArgc() == 2) { if (DI::args()->getArgc() == 2) {
$photos = DBA::toArray(DBA::p("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = ? AND NOT `photo-type` IN (?, ?)", $photos = DBA::toArray(DBA::p("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = ? AND NOT `photo-type` IN (?, ?)",
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
Photo::CONTACT_AVATAR, Photo::CONTACT_AVATAR,
Photo::CONTACT_BANNER Photo::CONTACT_BANNER
)); ));
@ -85,7 +84,7 @@ function fbrowser_content(App $a)
min(`scale`) AS `hiq`, max(`scale`) AS `loq`, ANY_VALUE(`desc`) AS `desc`, ANY_VALUE(`created`) AS `created` min(`scale`) AS `hiq`, max(`scale`) AS `loq`, ANY_VALUE(`desc`) AS `desc`, ANY_VALUE(`created`) AS `created`
FROM `photo` WHERE `uid` = ? $sql_extra AND NOT `photo-type` IN (?, ?) FROM `photo` WHERE `uid` = ? $sql_extra AND NOT `photo-type` IN (?, ?)
GROUP BY `resource-id` $sql_extra2", GROUP BY `resource-id` $sql_extra2",
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
Photo::CONTACT_AVATAR, Photo::CONTACT_AVATAR,
Photo::CONTACT_BANNER Photo::CONTACT_BANNER
)); ));
@ -125,7 +124,7 @@ function fbrowser_content(App $a)
break; break;
case "file": case "file":
if (DI::args()->getArgc()==2) { if (DI::args()->getArgc()==2) {
$files = DBA::selectToArray('attach', ['id', 'filename', 'filetype'], ['uid' => Session::getLocalUser()]); $files = DBA::selectToArray('attach', ['id', 'filename', 'filetype'], ['uid' => DI::userSession()->getLocalUserId()]);
function _map_files2($rr) function _map_files2($rr)
{ {

View file

@ -23,7 +23,6 @@ use Friendica\App;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Profile; use Friendica\Model\Profile;
@ -36,7 +35,7 @@ use Friendica\Util\Strings;
function follow_post(App $a) function follow_post(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.')); throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
} }
@ -53,13 +52,13 @@ function follow_content(App $a)
{ {
$return_path = 'contact'; $return_path = 'contact';
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect($return_path); DI::baseUrl()->redirect($return_path);
// NOTREACHED // NOTREACHED
} }
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$url = Probe::cleanURI(trim($_REQUEST['url'] ?? '')); $url = Probe::cleanURI(trim($_REQUEST['url'] ?? ''));
@ -196,7 +195,7 @@ function follow_process(App $a, string $url)
function follow_remote_item($url) function follow_remote_item($url)
{ {
$item_id = Item::fetchByLink($url, Session::getLocalUser()); $item_id = Item::fetchByLink($url, DI::userSession()->getLocalUserId());
if (!$item_id) { if (!$item_id) {
// If the user-specific search failed, we search and probe a public post // If the user-specific search failed, we search and probe a public post
$item_id = Item::fetchByLink($url); $item_id = Item::fetchByLink($url);

View file

@ -34,7 +34,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -58,11 +57,11 @@ use Friendica\Util\DateTimeFormat;
use Friendica\Util\ParseUrl; use Friendica\Util\ParseUrl;
function item_post(App $a) { function item_post(App $a) {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
if (!empty($_REQUEST['dropitems'])) { if (!empty($_REQUEST['dropitems'])) {
$arr_drop = explode(',', $_REQUEST['dropitems']); $arr_drop = explode(',', $_REQUEST['dropitems']);
@ -107,7 +106,7 @@ function item_post(App $a) {
$toplevel_user_id = null; $toplevel_user_id = null;
$objecttype = null; $objecttype = null;
$profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: Session::getLocalUser(); $profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: DI::userSession()->getLocalUserId();
$posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE; $posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE;
if ($parent_item_id || $thr_parent_uri) { if ($parent_item_id || $thr_parent_uri) {
@ -139,7 +138,7 @@ function item_post(App $a) {
// When commenting on a public post then store the post for the current user // When commenting on a public post then store the post for the current user
// This enables interaction like starring and saving into folders // This enables interaction like starring and saving into folders
if ($toplevel_item['uid'] == 0) { if ($toplevel_item['uid'] == 0) {
$stored = Item::storeForUserByUriId($toplevel_item['uri-id'], Session::getLocalUser(), ['post-reason' => Item::PR_ACTIVITY]); $stored = Item::storeForUserByUriId($toplevel_item['uri-id'], DI::userSession()->getLocalUserId(), ['post-reason' => Item::PR_ACTIVITY]);
Logger::info('Public item stored for user', ['uri-id' => $toplevel_item['uri-id'], 'uid' => $uid, 'stored' => $stored]); Logger::info('Public item stored for user', ['uri-id' => $toplevel_item['uri-id'], 'uid' => $uid, 'stored' => $stored]);
if ($stored) { if ($stored) {
$toplevel_item = Post::selectFirst(Item::ITEM_FIELDLIST, ['id' => $stored]); $toplevel_item = Post::selectFirst(Item::ITEM_FIELDLIST, ['id' => $stored]);
@ -169,16 +168,16 @@ function item_post(App $a) {
} }
// Ensure that the user id in a thread always stay the same // Ensure that the user id in a thread always stay the same
if (!is_null($toplevel_user_id) && in_array($toplevel_user_id, [Session::getLocalUser(), 0])) { if (!is_null($toplevel_user_id) && in_array($toplevel_user_id, [DI::userSession()->getLocalUserId(), 0])) {
$profile_uid = $toplevel_user_id; $profile_uid = $toplevel_user_id;
} }
// Allow commenting if it is an answer to a public post // Allow commenting if it is an answer to a public post
$allow_comment = Session::getLocalUser() && $toplevel_item_id && in_array($toplevel_item['private'], [Item::PUBLIC, Item::UNLISTED]) && in_array($toplevel_item['network'], Protocol::FEDERATED); $allow_comment = DI::userSession()->getLocalUserId() && $toplevel_item_id && in_array($toplevel_item['private'], [Item::PUBLIC, Item::UNLISTED]) && in_array($toplevel_item['network'], Protocol::FEDERATED);
// Now check that valid personal details have been provided // Now check that valid personal details have been provided
if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) { if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
Logger::warning('Permission denied.', ['local' => Session::getLocalUser(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]); Logger::warning('Permission denied.', ['local' => DI::userSession()->getLocalUserId(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]);
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
if ($return_path) { if ($return_path) {
DI::baseUrl()->redirect($return_path); DI::baseUrl()->redirect($return_path);
@ -324,9 +323,9 @@ function item_post(App $a) {
$pubmail_enabled = ($_REQUEST['pubmail_enable'] ?? false) && !$private; $pubmail_enabled = ($_REQUEST['pubmail_enable'] ?? false) && !$private;
// if using the API, we won't see pubmail_enable - figure out if it should be set // if using the API, we won't see pubmail_enable - figure out if it should be set
if ($api_source && $profile_uid && $profile_uid == Session::getLocalUser() && !$private) { if ($api_source && $profile_uid && $profile_uid == DI::userSession()->getLocalUserId() && !$private) {
if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) { if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) {
$pubmail_enabled = DBA::exists('mailacct', ["`uid` = ? AND `server` != ? AND `pubmail`", Session::getLocalUser(), '']); $pubmail_enabled = DBA::exists('mailacct', ["`uid` = ? AND `server` != ? AND `pubmail`", DI::userSession()->getLocalUserId(), '']);
} }
} }
@ -363,11 +362,11 @@ function item_post(App $a) {
$self = false; $self = false;
$contact_id = 0; $contact_id = 0;
if (Session::getLocalUser() && ((Session::getLocalUser() == $profile_uid) || $allow_comment)) { if (DI::userSession()->getLocalUserId() && ((DI::userSession()->getLocalUserId() == $profile_uid) || $allow_comment)) {
$self = true; $self = true;
$author = DBA::selectFirst('contact', [], ['uid' => Session::getLocalUser(), 'self' => true]); $author = DBA::selectFirst('contact', [], ['uid' => DI::userSession()->getLocalUserId(), 'self' => true]);
} elseif (!empty(Session::getRemoteContactID($profile_uid))) { } elseif (!empty(DI::userSession()->getRemoteContactID($profile_uid))) {
$author = DBA::selectFirst('contact', [], ['id' => Session::getRemoteContactID($profile_uid)]); $author = DBA::selectFirst('contact', [], ['id' => DI::userSession()->getRemoteContactID($profile_uid)]);
} }
if (DBA::isResult($author)) { if (DBA::isResult($author)) {
@ -375,7 +374,7 @@ function item_post(App $a) {
} }
// get contact info for owner // get contact info for owner
if ($profile_uid == Session::getLocalUser() || $allow_comment) { if ($profile_uid == DI::userSession()->getLocalUserId() || $allow_comment) {
$contact_record = $author ?: []; $contact_record = $author ?: [];
} else { } else {
$contact_record = DBA::selectFirst('contact', [], ['uid' => $profile_uid, 'self' => true]) ?: []; $contact_record = DBA::selectFirst('contact', [], ['uid' => $profile_uid, 'self' => true]) ?: [];
@ -385,7 +384,7 @@ function item_post(App $a) {
if ($posttype != Item::PT_PERSONAL_NOTE) { if ($posttype != Item::PT_PERSONAL_NOTE) {
// Look for any tags and linkify them // Look for any tags and linkify them
$item = [ $item = [
'uid' => Session::getLocalUser() ? Session::getLocalUser() : $profile_uid, 'uid' => DI::userSession()->getLocalUserId() ? DI::userSession()->getLocalUserId() : $profile_uid,
'gravity' => $toplevel_item_id ? Item::GRAVITY_COMMENT : Item::GRAVITY_PARENT, 'gravity' => $toplevel_item_id ? Item::GRAVITY_COMMENT : Item::GRAVITY_PARENT,
'network' => $network, 'network' => $network,
'body' => $body, 'body' => $body,
@ -734,7 +733,7 @@ function item_post(App $a) {
Hook::callAll('post_local_end', $datarray); Hook::callAll('post_local_end', $datarray);
if (strlen($emailcc) && $profile_uid == Session::getLocalUser()) { if (strlen($emailcc) && $profile_uid == DI::userSession()->getLocalUserId()) {
$recipients = explode(',', $emailcc); $recipients = explode(',', $emailcc);
if (count($recipients)) { if (count($recipients)) {
foreach ($recipients as $recipient) { foreach ($recipients as $recipient) {
@ -780,7 +779,7 @@ function item_post_return($baseurl, $api_source, $return_path)
function item_content(App $a) function item_content(App $a)
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HTTPException\UnauthorizedException(); throw new HTTPException\UnauthorizedException();
} }
@ -794,9 +793,9 @@ function item_content(App $a)
switch ($args->get(1)) { switch ($args->get(1)) {
case 'drop': case 'drop':
if (DI::mode()->isAjax()) { if (DI::mode()->isAjax()) {
Item::deleteForUser(['id' => $args->get(2)], Session::getLocalUser()); Item::deleteForUser(['id' => $args->get(2)], DI::userSession()->getLocalUserId());
// ajax return: [<item id>, 0 (no perm) | <owner id>] // ajax return: [<item id>, 0 (no perm) | <owner id>]
System::jsonExit([intval($args->get(2)), Session::getLocalUser()]); System::jsonExit([intval($args->get(2)), DI::userSession()->getLocalUserId()]);
} else { } else {
if (!empty($args->get(3))) { if (!empty($args->get(3))) {
$o = drop_item($args->get(2), $args->get(3)); $o = drop_item($args->get(2), $args->get(3));
@ -807,16 +806,16 @@ function item_content(App $a)
break; break;
case 'block': case 'block':
$item = Post::selectFirstForUser(Session::getLocalUser(), ['guid', 'author-id', 'parent', 'gravity'], ['id' => $args->get(2)]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['guid', 'author-id', 'parent', 'gravity'], ['id' => $args->get(2)]);
if (empty($item['author-id'])) { if (empty($item['author-id'])) {
throw new HTTPException\NotFoundException('Item not found'); throw new HTTPException\NotFoundException('Item not found');
} }
Contact\User::setBlocked($item['author-id'], Session::getLocalUser(), true); Contact\User::setBlocked($item['author-id'], DI::userSession()->getLocalUserId(), true);
if (DI::mode()->isAjax()) { if (DI::mode()->isAjax()) {
// ajax return: [<item id>, 0 (no perm) | <owner id>] // ajax return: [<item id>, 0 (no perm) | <owner id>]
System::jsonExit([intval($args->get(2)), Session::getLocalUser()]); System::jsonExit([intval($args->get(2)), DI::userSession()->getLocalUserId()]);
} else { } else {
item_redirect_after_action($item, $args->get(3)); item_redirect_after_action($item, $args->get(3));
} }
@ -835,7 +834,7 @@ function item_content(App $a)
function drop_item(int $id, string $return = ''): string function drop_item(int $id, string $return = ''): string
{ {
// Locate item to be deleted // Locate item to be deleted
$item = Post::selectFirstForUser(Session::getLocalUser(), ['id', 'uid', 'guid', 'contact-id', 'deleted', 'gravity', 'parent'], ['id' => $id]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['id', 'uid', 'guid', 'contact-id', 'deleted', 'gravity', 'parent'], ['id' => $id]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Item not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('Item not found.'));
@ -850,18 +849,18 @@ function drop_item(int $id, string $return = ''): string
$contact_id = 0; $contact_id = 0;
// check if logged in user is either the author or owner of this item // check if logged in user is either the author or owner of this item
if (Session::getRemoteContactID($item['uid']) == $item['contact-id']) { if (DI::userSession()->getRemoteContactID($item['uid']) == $item['contact-id']) {
$contact_id = $item['contact-id']; $contact_id = $item['contact-id'];
} }
if ((Session::getLocalUser() == $item['uid']) || $contact_id) { if ((DI::userSession()->getLocalUserId() == $item['uid']) || $contact_id) {
// delete the item // delete the item
Item::deleteForUser(['id' => $item['id']], Session::getLocalUser()); Item::deleteForUser(['id' => $item['id']], DI::userSession()->getLocalUserId());
item_redirect_after_action($item, $return); item_redirect_after_action($item, $return);
//NOTREACHED //NOTREACHED
} else { } else {
Logger::warning('Permission denied.', ['local' => Session::getLocalUser(), 'uid' => $item['uid'], 'cid' => $contact_id]); Logger::warning('Permission denied.', ['local' => DI::userSession()->getLocalUserId(), 'uid' => $item['uid'], 'cid' => $contact_id]);
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('display/' . $item['guid']); DI::baseUrl()->redirect('display/' . $item['guid']);
//NOTREACHED //NOTREACHED
@ -880,7 +879,7 @@ function item_redirect_after_action(array $item, string $returnUrlHex)
// Check if delete a comment // Check if delete a comment
if ($item['gravity'] == Item::GRAVITY_COMMENT) { if ($item['gravity'] == Item::GRAVITY_COMMENT) {
if (!empty($item['parent'])) { if (!empty($item['parent'])) {
$parentitem = Post::selectFirstForUser(Session::getLocalUser(), ['guid'], ['id' => $item['parent']]); $parentitem = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['guid'], ['id' => $item['parent']]);
} }
// Return to parent guid // Return to parent guid

View file

@ -23,7 +23,6 @@ use Friendica\App;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -45,7 +44,7 @@ use Friendica\Module\Contact as ModuleContact;
*/ */
function match_content(App $a) function match_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
@ -54,7 +53,7 @@ function match_content(App $a)
$_SESSION['return_path'] = DI::args()->getCommand(); $_SESSION['return_path'] = DI::args()->getCommand();
$profile = Profile::getByUID(Session::getLocalUser()); $profile = Profile::getByUID(DI::userSession()->getLocalUserId());
if (!DBA::isResult($profile)) { if (!DBA::isResult($profile)) {
return ''; return '';
@ -68,10 +67,10 @@ function match_content(App $a)
$tags = trim($profile['pub_keywords'] . ' ' . $profile['prv_keywords']); $tags = trim($profile['pub_keywords'] . ' ' . $profile['prv_keywords']);
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$limit = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $limit = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$limit = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $limit = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -115,12 +114,12 @@ function match_get_contacts($msearch, $entries, $limit)
} }
// Already known contact // Already known contact
$contact = Contact::getByURL($profile->url, null, ['rel'], Session::getLocalUser()); $contact = Contact::getByURL($profile->url, null, ['rel'], DI::userSession()->getLocalUserId());
if (!empty($contact) && in_array($contact['rel'], [Contact::FRIEND, Contact::SHARING])) { if (!empty($contact) && in_array($contact['rel'], [Contact::FRIEND, Contact::SHARING])) {
continue; continue;
} }
$contact = Contact::getByURLForUser($profile->url, Session::getLocalUser()); $contact = Contact::getByURLForUser($profile->url, DI::userSession()->getLocalUserId());
if (!empty($contact)) { if (!empty($contact)) {
$entries[$contact['id']] = ModuleContact::getContactTemplateVars($contact); $entries[$contact['id']] = ModuleContact::getContactTemplateVars($contact);
} }

View file

@ -25,7 +25,6 @@ use Friendica\Content\Pager;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\ACL; use Friendica\Core\ACL;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -40,7 +39,7 @@ function message_init(App $a)
$tabs = ''; $tabs = '';
if (DI::args()->getArgc() > 1 && is_numeric(DI::args()->getArgv()[1])) { if (DI::args()->getArgc() > 1 && is_numeric(DI::args()->getArgv()[1])) {
$tabs = render_messages(get_messages(Session::getLocalUser(), 0, 5), 'mail_list.tpl'); $tabs = render_messages(get_messages(DI::userSession()->getLocalUserId(), 0, 5), 'mail_list.tpl');
} }
$new = [ $new = [
@ -66,7 +65,7 @@ function message_init(App $a)
function message_post(App $a) function message_post(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return; return;
} }
@ -111,7 +110,7 @@ function message_content(App $a)
$o = ''; $o = '';
Nav::setSelected('messages'); Nav::setSelected('messages');
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return Login::form(); return Login::form();
} }
@ -145,28 +144,28 @@ function message_content(App $a)
$cmd = DI::args()->getArgv()[1]; $cmd = DI::args()->getArgv()[1];
if ($cmd === 'drop') { if ($cmd === 'drop') {
$message = DBA::selectFirst('mail', ['convid'], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]); $message = DBA::selectFirst('mail', ['convid'], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
if(!DBA::isResult($message)){ if(!DBA::isResult($message)){
DI::sysmsg()->addNotice(DI::l10n()->t('Conversation not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('Conversation not found.'));
DI::baseUrl()->redirect('message'); DI::baseUrl()->redirect('message');
} }
if (!DBA::delete('mail', ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()])) { if (!DBA::delete('mail', ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()])) {
DI::sysmsg()->addNotice(DI::l10n()->t('Message was not deleted.')); DI::sysmsg()->addNotice(DI::l10n()->t('Message was not deleted.'));
} }
$conversation = DBA::selectFirst('mail', ['id'], ['convid' => $message['convid'], 'uid' => Session::getLocalUser()]); $conversation = DBA::selectFirst('mail', ['id'], ['convid' => $message['convid'], 'uid' => DI::userSession()->getLocalUserId()]);
if(!DBA::isResult($conversation)){ if(!DBA::isResult($conversation)){
DI::baseUrl()->redirect('message'); DI::baseUrl()->redirect('message');
} }
DI::baseUrl()->redirect('message/' . $conversation['id'] ); DI::baseUrl()->redirect('message/' . $conversation['id'] );
} else { } else {
$parentmail = DBA::selectFirst('mail', ['parent-uri'], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]); $parentmail = DBA::selectFirst('mail', ['parent-uri'], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
if (DBA::isResult($parentmail)) { if (DBA::isResult($parentmail)) {
$parent = $parentmail['parent-uri']; $parent = $parentmail['parent-uri'];
if (!DBA::delete('mail', ['parent-uri' => $parent, 'uid' => Session::getLocalUser()])) { if (!DBA::delete('mail', ['parent-uri' => $parent, 'uid' => DI::userSession()->getLocalUserId()])) {
DI::sysmsg()->addNotice(DI::l10n()->t('Conversation was not removed.')); DI::sysmsg()->addNotice(DI::l10n()->t('Conversation was not removed.'));
} }
} }
@ -216,11 +215,11 @@ function message_content(App $a)
$o .= $header; $o .= $header;
$total = DBA::count('mail', ['uid' => Session::getLocalUser()], ['distinct' => true, 'expression' => 'parent-uri']); $total = DBA::count('mail', ['uid' => DI::userSession()->getLocalUserId()], ['distinct' => true, 'expression' => 'parent-uri']);
$pager = new Pager(DI::l10n(), DI::args()->getQueryString()); $pager = new Pager(DI::l10n(), DI::args()->getQueryString());
$r = get_messages(Session::getLocalUser(), $pager->getStart(), $pager->getItemsPerPage()); $r = get_messages(DI::userSession()->getLocalUserId(), $pager->getStart(), $pager->getItemsPerPage());
if (!DBA::isResult($r)) { if (!DBA::isResult($r)) {
DI::sysmsg()->addNotice(DI::l10n()->t('No messages.')); DI::sysmsg()->addNotice(DI::l10n()->t('No messages.'));
@ -244,14 +243,14 @@ function message_content(App $a)
LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
WHERE `mail`.`uid` = ? AND `mail`.`id` = ? WHERE `mail`.`uid` = ? AND `mail`.`id` = ?
LIMIT 1", LIMIT 1",
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
DI::args()->getArgv()[1] DI::args()->getArgv()[1]
); );
if (DBA::isResult($message)) { if (DBA::isResult($message)) {
$contact_id = $message['contact-id']; $contact_id = $message['contact-id'];
$params = [ $params = [
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
$message['parent-uri'] $message['parent-uri']
]; ];
@ -273,7 +272,7 @@ function message_content(App $a)
$messages = DBA::toArray($messages_stmt); $messages = DBA::toArray($messages_stmt);
DBA::update('mail', ['seen' => 1], ['parent-uri' => $message['parent-uri'], 'uid' => Session::getLocalUser()]); DBA::update('mail', ['seen' => 1], ['parent-uri' => $message['parent-uri'], 'uid' => DI::userSession()->getLocalUserId()]);
} else { } else {
$messages = false; $messages = false;
} }

View file

@ -22,7 +22,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Content\Nav; use Friendica\Content\Nav;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -31,7 +30,7 @@ use Friendica\Module\BaseProfile;
function notes_init(App $a) function notes_init(App $a)
{ {
if (! Session::getLocalUser()) { if (! DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -41,7 +40,7 @@ function notes_init(App $a)
function notes_content(App $a, bool $update = false) function notes_content(App $a, bool $update = false)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return; return;
} }
@ -53,7 +52,7 @@ function notes_content(App $a, bool $update = false)
$x = [ $x = [
'lockstate' => 'lock', 'lockstate' => 'lock',
'acl' => \Friendica\Core\ACL::getSelfOnlyHTML(Session::getLocalUser(), DI::l10n()->t('Personal notes are visible only by yourself.')), 'acl' => \Friendica\Core\ACL::getSelfOnlyHTML(DI::userSession()->getLocalUserId(), DI::l10n()->t('Personal notes are visible only by yourself.')),
'button' => DI::l10n()->t('Save'), 'button' => DI::l10n()->t('Save'),
'acl_data' => '', 'acl_data' => '',
]; ];
@ -61,14 +60,14 @@ function notes_content(App $a, bool $update = false)
$o .= DI::conversation()->statusEditor($x, $a->getContactId()); $o .= DI::conversation()->statusEditor($x, $a->getContactId());
} }
$condition = ['uid' => Session::getLocalUser(), 'post-type' => Item::PT_PERSONAL_NOTE, 'gravity' => Item::GRAVITY_PARENT, $condition = ['uid' => DI::userSession()->getLocalUserId(), 'post-type' => Item::PT_PERSONAL_NOTE, 'gravity' => Item::GRAVITY_PARENT,
'contact-id'=> $a->getContactId()]; 'contact-id'=> $a->getContactId()];
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -76,7 +75,7 @@ function notes_content(App $a, bool $update = false)
$params = ['order' => ['created' => true], $params = ['order' => ['created' => true],
'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]; 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
$r = Post::selectThreadForUser(Session::getLocalUser(), ['uri-id'], $condition, $params); $r = Post::selectThreadForUser(DI::userSession()->getLocalUserId(), ['uri-id'], $condition, $params);
$count = 0; $count = 0;

View file

@ -22,7 +22,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML; use Friendica\Content\Text\HTML;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -98,7 +97,7 @@ function oexchange_init(App $a)
function oexchange_content(App $a) function oexchange_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
$o = Login::form(); $o = Login::form();
return $o; return $o;
} }
@ -120,7 +119,7 @@ function oexchange_content(App $a)
$post = []; $post = [];
$post['profile_uid'] = Session::getLocalUser(); $post['profile_uid'] = DI::userSession()->getLocalUserId();
$post['return'] = '/oexchange/done'; $post['return'] = '/oexchange/done';
$post['body'] = HTML::toBBCode($s); $post['body'] = HTML::toBBCode($s);

View file

@ -21,7 +21,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\APContact; use Friendica\Model\APContact;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -30,7 +29,7 @@ use Friendica\Protocol\ActivityPub;
function ostatus_subscribe_content(App $a): string function ostatus_subscribe_content(App $a): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('ostatus_subscribe'); DI::baseUrl()->redirect('ostatus_subscribe');
// NOTREACHED // NOTREACHED
@ -38,7 +37,7 @@ function ostatus_subscribe_content(App $a): string
$o = '<h2>' . DI::l10n()->t('Subscribing to contacts') . '</h2>'; $o = '<h2>' . DI::l10n()->t('Subscribing to contacts') . '</h2>';
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$counter = intval($_REQUEST['counter'] ?? 0); $counter = intval($_REQUEST['counter'] ?? 0);

View file

@ -30,7 +30,6 @@ use Friendica\Core\Addon;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -57,7 +56,7 @@ use Friendica\Network\HTTPException;
function photos_init(App $a) function photos_init(App $a)
{ {
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
return; return;
} }
@ -69,11 +68,11 @@ function photos_init(App $a)
throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
} }
$is_owner = (Session::getLocalUser() && (Session::getLocalUser() == $owner['uid'])); $is_owner = (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $owner['uid']));
$albums = Photo::getAlbums($owner['uid']); $albums = Photo::getAlbums($owner['uid']);
$albums_visible = ((intval($owner['hidewall']) && !Session::isAuthenticated()) ? false : true); $albums_visible = ((intval($owner['hidewall']) && !DI::userSession()->isAuthenticated()) ? false : true);
// add various encodings to the array so we can just loop through and pick them out in a template // add various encodings to the array so we can just loop through and pick them out in a template
$ret = ['success' => false]; $ret = ['success' => false];
@ -96,7 +95,7 @@ function photos_init(App $a)
} }
} }
if (Session::getLocalUser() && $owner['uid'] == Session::getLocalUser()) { if (DI::userSession()->getLocalUserId() && $owner['uid'] == DI::userSession()->getLocalUserId()) {
$can_post = true; $can_post = true;
} else { } else {
$can_post = false; $can_post = false;
@ -148,10 +147,10 @@ function photos_post(App $a)
$page_owner_uid = intval($user['uid']); $page_owner_uid = intval($user['uid']);
$community_page = $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $community_page = $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY;
if (Session::getLocalUser() && (Session::getLocalUser() == $page_owner_uid)) { if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $page_owner_uid)) {
$can_post = true; $can_post = true;
} elseif ($community_page && !empty(Session::getRemoteContactID($page_owner_uid))) { } elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($page_owner_uid))) {
$contact_id = Session::getRemoteContactID($page_owner_uid); $contact_id = DI::userSession()->getRemoteContactID($page_owner_uid);
$can_post = true; $can_post = true;
$visitor = $contact_id; $visitor = $contact_id;
} }
@ -229,7 +228,7 @@ function photos_post(App $a)
)); ));
} else { } else {
$r = DBA::toArray(DBA::p("SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?", $r = DBA::toArray(DBA::p("SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?",
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
$album $album
)); ));
} }
@ -268,7 +267,7 @@ function photos_post(App $a)
$condition = ['contact-id' => $visitor, 'uid' => $page_owner_uid, 'resource-id' => DI::args()->getArgv()[3]]; $condition = ['contact-id' => $visitor, 'uid' => $page_owner_uid, 'resource-id' => DI::args()->getArgv()[3]];
} else { } else {
$condition = ['uid' => Session::getLocalUser(), 'resource-id' => DI::args()->getArgv()[3]]; $condition = ['uid' => DI::userSession()->getLocalUserId(), 'resource-id' => DI::args()->getArgv()[3]];
} }
$photo = DBA::selectFirst('photo', ['resource-id'], $condition); $photo = DBA::selectFirst('photo', ['resource-id'], $condition);
@ -794,7 +793,7 @@ function photos_content(App $a)
throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
} }
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Public access denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Public access denied.'));
return; return;
} }
@ -840,10 +839,10 @@ function photos_content(App $a)
$community_page = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); $community_page = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false);
if (Session::getLocalUser() && (Session::getLocalUser() == $owner_uid)) { if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $owner_uid)) {
$can_post = true; $can_post = true;
} elseif ($community_page && !empty(Session::getRemoteContactID($owner_uid))) { } elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($owner_uid))) {
$contact_id = Session::getRemoteContactID($owner_uid); $contact_id = DI::userSession()->getRemoteContactID($owner_uid);
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]); $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]);
if (DBA::isResult($contact)) { if (DBA::isResult($contact)) {
@ -854,21 +853,21 @@ function photos_content(App $a)
} }
// perhaps they're visiting - but not a community page, so they wouldn't have write access // perhaps they're visiting - but not a community page, so they wouldn't have write access
if (!empty(Session::getRemoteContactID($owner_uid)) && !$visitor) { if (!empty(DI::userSession()->getRemoteContactID($owner_uid)) && !$visitor) {
$contact_id = Session::getRemoteContactID($owner_uid); $contact_id = DI::userSession()->getRemoteContactID($owner_uid);
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]); $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]);
$remote_contact = DBA::isResult($contact); $remote_contact = DBA::isResult($contact);
} }
if (!$remote_contact && Session::getLocalUser()) { if (!$remote_contact && DI::userSession()->getLocalUserId()) {
$contact_id = $_SESSION['cid']; $contact_id = $_SESSION['cid'];
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]); $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]);
} }
if ($user['hidewall'] && (Session::getLocalUser() != $owner_uid) && !$remote_contact) { if ($user['hidewall'] && (DI::userSession()->getLocalUserId() != $owner_uid) && !$remote_contact) {
DI::sysmsg()->addNotice(DI::l10n()->t('Access to this item is restricted.')); DI::sysmsg()->addNotice(DI::l10n()->t('Access to this item is restricted.'));
return; return;
} }
@ -878,7 +877,7 @@ function photos_content(App $a)
$o = ""; $o = "";
// tabs // tabs
$is_owner = (Session::getLocalUser() && (Session::getLocalUser() == $owner_uid)); $is_owner = (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $owner_uid));
$o .= BaseProfile::getTabsHTML($a, 'photos', $is_owner, $user['nickname'], $profile['hide-friends']); $o .= BaseProfile::getTabsHTML($a, 'photos', $is_owner, $user['nickname'], $profile['hide-friends']);
// Display upload form // Display upload form
@ -1197,7 +1196,7 @@ function photos_content(App $a)
} }
if ( if (
$ph[0]['uid'] == Session::getLocalUser() $ph[0]['uid'] == DI::userSession()->getLocalUserId()
&& (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid']) || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid'])) && (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid']) || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid']))
) { ) {
$tools['lock'] = DI::l10n()->t('Private Photo'); $tools['lock'] = DI::l10n()->t('Private Photo');
@ -1237,7 +1236,7 @@ function photos_content(App $a)
$params = ['order' => ['id'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]; $params = ['order' => ['id'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
$items = Post::toArray(Post::selectForUser($link_item['uid'], Item::ITEM_FIELDLIST, $condition, $params)); $items = Post::toArray(Post::selectForUser($link_item['uid'], Item::ITEM_FIELDLIST, $condition, $params));
if (Session::getLocalUser() == $link_item['uid']) { if (DI::userSession()->getLocalUserId() == $link_item['uid']) {
Item::update(['unseen' => false], ['parent' => $link_item['parent']]); Item::update(['unseen' => false], ['parent' => $link_item['parent']]);
} }
} }
@ -1315,7 +1314,7 @@ function photos_content(App $a)
*/ */
$qcomment = null; $qcomment = null;
if (Addon::isEnabled('qcomment')) { if (Addon::isEnabled('qcomment')) {
$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words'); $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
$qcomment = $words ? explode("\n", $words) : []; $qcomment = $words ? explode("\n", $words) : [];
} }
@ -1346,7 +1345,7 @@ function photos_content(App $a)
'attendmaybe' => [] 'attendmaybe' => []
]; ];
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'hide_dislike')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike')) {
unset($conv_responses['dislike']); unset($conv_responses['dislike']);
} }
@ -1371,7 +1370,7 @@ function photos_content(App $a)
*/ */
$qcomment = null; $qcomment = null;
if (Addon::isEnabled('qcomment')) { if (Addon::isEnabled('qcomment')) {
$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words'); $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
$qcomment = $words ? explode("\n", $words) : []; $qcomment = $words ? explode("\n", $words) : [];
} }
@ -1413,7 +1412,7 @@ function photos_content(App $a)
$sparkle = ''; $sparkle = '';
} }
$dropping = (($item['contact-id'] == $contact_id) || ($item['uid'] == Session::getLocalUser())); $dropping = (($item['contact-id'] == $contact_id) || ($item['uid'] == DI::userSession()->getLocalUserId()));
$drop = [ $drop = [
'dropping' => $dropping, 'dropping' => $dropping,
'pagedrop' => false, 'pagedrop' => false,
@ -1445,7 +1444,7 @@ function photos_content(App $a)
*/ */
$qcomment = null; $qcomment = null;
if (Addon::isEnabled('qcomment')) { if (Addon::isEnabled('qcomment')) {
$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words'); $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
$qcomment = $words ? explode("\n", $words) : []; $qcomment = $words ? explode("\n", $words) : [];
} }
@ -1484,7 +1483,7 @@ function photos_content(App $a)
'$dislike' => DI::l10n()->t('Dislike'), '$dislike' => DI::l10n()->t('Dislike'),
'$wait' => DI::l10n()->t('Please wait'), '$wait' => DI::l10n()->t('Please wait'),
'$dislike_title' => DI::l10n()->t('I don\'t like this (toggle)'), '$dislike_title' => DI::l10n()->t('I don\'t like this (toggle)'),
'$hide_dislike' => DI::pConfig()->get(Session::getLocalUser(), 'system', 'hide_dislike'), '$hide_dislike' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike'),
'$responses' => $responses, '$responses' => $responses,
'$return_path' => DI::args()->getQueryString(), '$return_path' => DI::args()->getQueryString(),
]); ]);

View file

@ -21,7 +21,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -32,7 +31,7 @@ use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Util\Strings; use Friendica\Util\Strings;
function redir_init(App $a) { function redir_init(App $a) {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.')); throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
} }
@ -52,7 +51,7 @@ function redir_init(App $a) {
} }
$fields = ['id', 'uid', 'nurl', 'url', 'addr', 'name']; $fields = ['id', 'uid', 'nurl', 'url', 'addr', 'name'];
$contact = DBA::selectFirst('contact', $fields, ['id' => $cid, 'uid' => [0, Session::getLocalUser()]]); $contact = DBA::selectFirst('contact', $fields, ['id' => $cid, 'uid' => [0, DI::userSession()->getLocalUserId()]]);
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {
throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('Contact not found.')); throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('Contact not found.'));
} }
@ -65,10 +64,10 @@ function redir_init(App $a) {
$a->redirect($url ?: $contact_url); $a->redirect($url ?: $contact_url);
} }
if ($contact['uid'] == 0 && Session::getLocalUser()) { if ($contact['uid'] == 0 && DI::userSession()->getLocalUserId()) {
// Let's have a look if there is an established connection // Let's have a look if there is an established connection
// between the public contact we have found and the local user. // between the public contact we have found and the local user.
$contact = DBA::selectFirst('contact', $fields, ['nurl' => $contact['nurl'], 'uid' => Session::getLocalUser()]); $contact = DBA::selectFirst('contact', $fields, ['nurl' => $contact['nurl'], 'uid' => DI::userSession()->getLocalUserId()]);
if (DBA::isResult($contact)) { if (DBA::isResult($contact)) {
$cid = $contact['id']; $cid = $contact['id'];
@ -83,7 +82,7 @@ function redir_init(App $a) {
} }
} }
if (Session::getRemoteUser()) { if (DI::userSession()->getRemoteUserId()) {
$host = substr(DI::baseUrl()->getUrlPath() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : ''), strpos(DI::baseUrl()->getUrlPath(), '://') + 3); $host = substr(DI::baseUrl()->getUrlPath() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : ''), strpos(DI::baseUrl()->getUrlPath(), '://') + 3);
$remotehost = substr($contact['addr'], strpos($contact['addr'], '@') + 1); $remotehost = substr($contact['addr'], strpos($contact['addr'], '@') + 1);
@ -91,7 +90,7 @@ function redir_init(App $a) {
// with the local contact. Otherwise the local user would ask the local contact // with the local contact. Otherwise the local user would ask the local contact
// for authentification everytime he/she is visiting a profile page of the local // for authentification everytime he/she is visiting a profile page of the local
// contact. // contact.
if (($host == $remotehost) && (Session::getRemoteContactID(DI::session()->get('visitor_visiting')) == DI::session()->get('visitor_id'))) { if (($host == $remotehost) && (DI::userSession()->getRemoteContactID(DI::session()->get('visitor_visiting')) == DI::session()->get('visitor_id'))) {
// Remote user is already authenticated. // Remote user is already authenticated.
redir_check_url($contact_url, $url); redir_check_url($contact_url, $url);
$target_url = $url ?: $contact_url; $target_url = $url ?: $contact_url;

View file

@ -21,7 +21,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -29,11 +28,11 @@ use Friendica\Util\Strings;
function removeme_post(App $a) function removeme_post(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
if (!empty($_SESSION['submanage'])) { if (DI::userSession()->getSubManagedUserId()) {
return; return;
} }
@ -65,7 +64,7 @@ function removeme_post(App $a)
->withMessage( ->withMessage(
$l10n->t('[Friendica System Notify]') . ' ' . $l10n->t('User deleted their account'), $l10n->t('[Friendica System Notify]') . ' ' . $l10n->t('User deleted their account'),
$l10n->t('On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'), $l10n->t('On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'),
$l10n->t('The user id is %d', Session::getLocalUser())) $l10n->t('The user id is %d', DI::userSession()->getLocalUserId()))
->forUser($admin) ->forUser($admin)
->withRecipient($admin['email']) ->withRecipient($admin['email'])
->build(); ->build();
@ -84,7 +83,7 @@ function removeme_post(App $a)
function removeme_content(App $a) function removeme_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::baseUrl()->redirect(); DI::baseUrl()->redirect();
} }

View file

@ -21,14 +21,13 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
function repair_ostatus_content(App $a) { function repair_ostatus_content(App $a) {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('ostatus_repair'); DI::baseUrl()->redirect('ostatus_repair');
// NOTREACHED // NOTREACHED
@ -36,7 +35,7 @@ function repair_ostatus_content(App $a) {
$o = '<h2>' . DI::l10n()->t('Resubscribing to OStatus contacts') . '</h2>'; $o = '<h2>' . DI::l10n()->t('Resubscribing to OStatus contacts') . '</h2>';
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$counter = intval($_REQUEST['counter'] ?? 0); $counter = intval($_REQUEST['counter'] ?? 0);
@ -44,7 +43,7 @@ function repair_ostatus_content(App $a) {
$total = DBA::count('contact', $condition); $total = DBA::count('contact', $condition);
if (!$total) { if (!$total) {
return ($o . DI::l10n()->t('Error')); return ($o . DI::l10n()->tt('Error', 'Errors', 1));
} }
$contact = Contact::selectToArray(['url'], $condition, ['order' => ['url'], 'limit' => [$counter++, 1]]); $contact = Contact::selectToArray(['url'], $condition, ['order' => ['url'], 'limit' => [$counter++, 1]]);

View file

@ -26,7 +26,6 @@ use Friendica\Content\Nav;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -37,7 +36,7 @@ use Friendica\Protocol\Email;
function settings_init(App $a) function settings_init(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return; return;
} }
@ -52,7 +51,7 @@ function settings_post(App $a)
return; return;
} }
if (!empty($_SESSION['submanage'])) { if (DI::userSession()->getSubManagedUserId()) {
return; return;
} }
@ -70,12 +69,12 @@ function settings_post(App $a)
BaseModule::checkFormSecurityTokenRedirectOnError(DI::args()->getQueryString(), 'settings_connectors'); BaseModule::checkFormSecurityTokenRedirectOnError(DI::args()->getQueryString(), 'settings_connectors');
if (!empty($_POST['general-submit'])) { if (!empty($_POST['general-submit'])) {
DI::pConfig()->set(Session::getLocalUser(), 'system', 'accept_only_sharer', intval($_POST['accept_only_sharer'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'accept_only_sharer', intval($_POST['accept_only_sharer']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'disable_cw', !intval($_POST['enable_cw'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'disable_cw', !intval($_POST['enable_cw']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'no_intelligent_shortening', !intval($_POST['enable_smart_shortening'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'no_intelligent_shortening', !intval($_POST['enable_smart_shortening']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'simple_shortening', intval($_POST['simple_shortening'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'simple_shortening', intval($_POST['simple_shortening']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'attach_link_title', intval($_POST['attach_link_title'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'attach_link_title', intval($_POST['attach_link_title']));
DI::pConfig()->set(Session::getLocalUser(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
} elseif (!empty($_POST['mail-submit'])) { } elseif (!empty($_POST['mail-submit'])) {
$mail_server = $_POST['mail_server'] ?? ''; $mail_server = $_POST['mail_server'] ?? '';
$mail_port = $_POST['mail_port'] ?? ''; $mail_port = $_POST['mail_port'] ?? '';
@ -88,13 +87,13 @@ function settings_post(App $a)
$mail_pubmail = $_POST['mail_pubmail'] ?? ''; $mail_pubmail = $_POST['mail_pubmail'] ?? '';
if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) { if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) {
if (!DBA::exists('mailacct', ['uid' => Session::getLocalUser()])) { if (!DBA::exists('mailacct', ['uid' => DI::userSession()->getLocalUserId()])) {
DBA::insert('mailacct', ['uid' => Session::getLocalUser()]); DBA::insert('mailacct', ['uid' => DI::userSession()->getLocalUserId()]);
} }
if (strlen($mail_pass)) { if (strlen($mail_pass)) {
$pass = ''; $pass = '';
openssl_public_encrypt($mail_pass, $pass, $user['pubkey']); openssl_public_encrypt($mail_pass, $pass, $user['pubkey']);
DBA::update('mailacct', ['pass' => bin2hex($pass)], ['uid' => Session::getLocalUser()]); DBA::update('mailacct', ['pass' => bin2hex($pass)], ['uid' => DI::userSession()->getLocalUserId()]);
} }
$r = DBA::update('mailacct', [ $r = DBA::update('mailacct', [
@ -107,10 +106,10 @@ function settings_post(App $a)
'mailbox' => 'INBOX', 'mailbox' => 'INBOX',
'reply_to' => $mail_replyto, 'reply_to' => $mail_replyto,
'pubmail' => $mail_pubmail 'pubmail' => $mail_pubmail
], ['uid' => Session::getLocalUser()]); ], ['uid' => DI::userSession()->getLocalUserId()]);
Logger::debug('updating mailaccount', ['response' => $r]); Logger::debug('updating mailaccount', ['response' => $r]);
$mailacct = DBA::selectFirst('mailacct', [], ['uid' => Session::getLocalUser()]); $mailacct = DBA::selectFirst('mailacct', [], ['uid' => DI::userSession()->getLocalUserId()]);
if (DBA::isResult($mailacct)) { if (DBA::isResult($mailacct)) {
$mb = Email::constructMailboxName($mailacct); $mb = Email::constructMailboxName($mailacct);
@ -136,7 +135,7 @@ function settings_post(App $a)
BaseModule::checkFormSecurityTokenRedirectOnError('/settings/features', 'settings_features'); BaseModule::checkFormSecurityTokenRedirectOnError('/settings/features', 'settings_features');
foreach ($_POST as $k => $v) { foreach ($_POST as $k => $v) {
if (strpos($k, 'feature_') === 0) { if (strpos($k, 'feature_') === 0) {
DI::pConfig()->set(Session::getLocalUser(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0)); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0));
} }
} }
return; return;
@ -148,12 +147,12 @@ function settings_content(App $a)
$o = ''; $o = '';
Nav::setSelected('settings'); Nav::setSelected('settings');
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
//DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); //DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return Login::form(); return Login::form();
} }
if (!empty($_SESSION['submanage'])) { if (DI::userSession()->getSubManagedUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return ''; return '';
} }
@ -162,12 +161,12 @@ function settings_content(App $a)
if ((DI::args()->getArgc() > 3) && (DI::args()->getArgv()[2] === 'delete')) { if ((DI::args()->getArgc() > 3) && (DI::args()->getArgv()[2] === 'delete')) {
BaseModule::checkFormSecurityTokenRedirectOnError('/settings/oauth', 'settings_oauth', 't'); BaseModule::checkFormSecurityTokenRedirectOnError('/settings/oauth', 'settings_oauth', 't');
DBA::delete('application-token', ['application-id' => DI::args()->getArgv()[3], 'uid' => Session::getLocalUser()]); DBA::delete('application-token', ['application-id' => DI::args()->getArgv()[3], 'uid' => DI::userSession()->getLocalUserId()]);
DI::baseUrl()->redirect('settings/oauth/', true); DI::baseUrl()->redirect('settings/oauth/', true);
return ''; return '';
} }
$applications = DBA::selectToArray('application-view', ['id', 'uid', 'name', 'website', 'scopes', 'created_at'], ['uid' => Session::getLocalUser()]); $applications = DBA::selectToArray('application-view', ['id', 'uid', 'name', 'website', 'scopes', 'created_at'], ['uid' => DI::userSession()->getLocalUserId()]);
$tpl = Renderer::getMarkupTemplate('settings/oauth.tpl'); $tpl = Renderer::getMarkupTemplate('settings/oauth.tpl');
$o .= Renderer::replaceMacros($tpl, [ $o .= Renderer::replaceMacros($tpl, [
@ -226,7 +225,7 @@ function settings_content(App $a)
$arr[$fname] = []; $arr[$fname] = [];
$arr[$fname][0] = $fdata[0]; $arr[$fname][0] = $fdata[0];
foreach (array_slice($fdata,1) as $f) { foreach (array_slice($fdata,1) as $f) {
$arr[$fname][1][] = ['feature_' . $f[0], $f[1], Feature::isEnabled(Session::getLocalUser(), $f[0]), $f[2]]; $arr[$fname][1][] = ['feature_' . $f[0], $f[1], Feature::isEnabled(DI::userSession()->getLocalUserId(), $f[0]), $f[2]];
} }
} }
@ -241,12 +240,12 @@ function settings_content(App $a)
} }
if ((DI::args()->getArgc() > 1) && (DI::args()->getArgv()[1] === 'connectors')) { if ((DI::args()->getArgc() > 1) && (DI::args()->getArgv()[1] === 'connectors')) {
$accept_only_sharer = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'accept_only_sharer')); $accept_only_sharer = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'accept_only_sharer'));
$enable_cw = !intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'disable_cw')); $enable_cw = !intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'disable_cw'));
$enable_smart_shortening = !intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_intelligent_shortening')); $enable_smart_shortening = !intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_intelligent_shortening'));
$simple_shortening = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'simple_shortening')); $simple_shortening = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'simple_shortening'));
$attach_link_title = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'attach_link_title')); $attach_link_title = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'attach_link_title'));
$legacy_contact = DI::pConfig()->get(Session::getLocalUser(), 'ostatus', 'legacy_contact'); $legacy_contact = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'ostatus', 'legacy_contact');
if (!empty($legacy_contact)) { if (!empty($legacy_contact)) {
/// @todo Isn't it supposed to be a $a->internalRedirect() call? /// @todo Isn't it supposed to be a $a->internalRedirect() call?
@ -280,7 +279,7 @@ function settings_content(App $a)
$mail_disabled = ((function_exists('imap_open') && (!DI::config()->get('system', 'imap_disabled'))) ? 0 : 1); $mail_disabled = ((function_exists('imap_open') && (!DI::config()->get('system', 'imap_disabled'))) ? 0 : 1);
if (!$mail_disabled) { if (!$mail_disabled) {
$mailacct = DBA::selectFirst('mailacct', [], ['uid' => Session::getLocalUser()]); $mailacct = DBA::selectFirst('mailacct', [], ['uid' => DI::userSession()->getLocalUserId()]);
} else { } else {
$mailacct = null; $mailacct = null;
} }

View file

@ -21,7 +21,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -31,7 +30,7 @@ use Friendica\Model\Post;
function share_init(App $a) { function share_init(App $a) {
$post_id = ((DI::args()->getArgc() > 1) ? intval(DI::args()->getArgv()[1]) : 0); $post_id = ((DI::args()->getArgc() > 1) ? intval(DI::args()->getArgv()[1]) : 0);
if (!$post_id || !Session::getLocalUser()) { if (!$post_id || !DI::userSession()->getLocalUserId()) {
System::exit(); System::exit();
} }

View file

@ -22,7 +22,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -31,7 +30,7 @@ use Friendica\Network\HTTPException;
function suggest_content(App $a) function suggest_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -40,7 +39,7 @@ function suggest_content(App $a)
DI::page()['aside'] .= Widget::findPeople(); DI::page()['aside'] .= Widget::findPeople();
DI::page()['aside'] .= Widget::follow(); DI::page()['aside'] .= Widget::follow();
$contacts = Contact\Relation::getSuggestions(Session::getLocalUser()); $contacts = Contact\Relation::getSuggestions(DI::userSession()->getLocalUserId());
if (!DBA::isResult($contacts)) { if (!DBA::isResult($contacts)) {
return DI::l10n()->t('No suggestions available. If this is a new site, please try again in 24 hours.'); return DI::l10n()->t('No suggestions available. If this is a new site, please try again in 24 hours.');
} }

View file

@ -22,7 +22,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -37,7 +36,7 @@ use Friendica\Worker\Delivery;
function tagger_content(App $a) function tagger_content(App $a)
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
return; return;
} }
@ -63,13 +62,13 @@ function tagger_content(App $a)
$owner_uid = $item['uid']; $owner_uid = $item['uid'];
if (Session::getLocalUser() != $owner_uid) { if (DI::userSession()->getLocalUserId() != $owner_uid) {
return; return;
} }
$contact = Contact::selectFirst([], ['self' => true, 'uid' => Session::getLocalUser()]); $contact = Contact::selectFirst([], ['self' => true, 'uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {
Logger::warning('Self contact not found.', ['uid' => Session::getLocalUser()]); Logger::warning('Self contact not found.', ['uid' => DI::userSession()->getLocalUserId()]);
return; return;
} }

View file

@ -21,7 +21,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Post; use Friendica\Model\Post;
@ -29,7 +28,7 @@ use Friendica\Model\Tag;
function tagrm_post(App $a) function tagrm_post(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::baseUrl()->redirect($_SESSION['photo_return']); DI::baseUrl()->redirect($_SESSION['photo_return']);
} }
@ -62,7 +61,7 @@ function update_tags($item_id, $tags)
return; return;
} }
$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => Session::getLocalUser()]); $item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
return; return;
} }
@ -82,7 +81,7 @@ function tagrm_content(App $a)
$photo_return = $_SESSION['photo_return'] ?? ''; $photo_return = $_SESSION['photo_return'] ?? '';
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::baseUrl()->redirect($photo_return); DI::baseUrl()->redirect($photo_return);
// NOTREACHED // NOTREACHED
} }
@ -98,7 +97,7 @@ function tagrm_content(App $a)
// NOTREACHED // NOTREACHED
} }
$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => Session::getLocalUser()]); $item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
DI::baseUrl()->redirect($photo_return); DI::baseUrl()->redirect($photo_return);
} }

View file

@ -23,7 +23,6 @@ use Friendica\App;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -32,7 +31,7 @@ use Friendica\Util\Strings;
function unfollow_post(App $a) function unfollow_post(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('login'); DI::baseUrl()->redirect('login');
// NOTREACHED // NOTREACHED
@ -47,17 +46,17 @@ function unfollow_content(App $a)
{ {
$base_return_path = 'contact'; $base_return_path = 'contact';
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect('login'); DI::baseUrl()->redirect('login');
// NOTREACHED // NOTREACHED
} }
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$url = trim($_REQUEST['url']); $url = trim($_REQUEST['url']);
$condition = ["`uid` = ? AND (`rel` = ? OR `rel` = ?) AND (`nurl` = ? OR `alias` = ? OR `alias` = ?)", $condition = ["`uid` = ? AND (`rel` = ? OR `rel` = ?) AND (`nurl` = ? OR `alias` = ? OR `alias` = ?)",
Session::getLocalUser(), Contact::SHARING, Contact::FRIEND, Strings::normaliseLink($url), DI::userSession()->getLocalUserId(), Contact::SHARING, Contact::FRIEND, Strings::normaliseLink($url),
Strings::normaliseLink($url), $url]; Strings::normaliseLink($url), $url];
$contact = DBA::selectFirst('contact', ['url', 'id', 'uid', 'network', 'addr', 'name'], $condition); $contact = DBA::selectFirst('contact', ['url', 'id', 'uid', 'network', 'addr', 'name'], $condition);
@ -119,7 +118,7 @@ function unfollow_process(string $url)
{ {
$base_return_path = 'contact'; $base_return_path = 'contact';
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$owner = User::getOwnerDataById($uid); $owner = User::getOwnerDataById($uid);
if (!$owner) { if (!$owner) {

View file

@ -22,7 +22,6 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -31,7 +30,7 @@ use Friendica\Model\Contact;
function update_contact_content(App $a) function update_contact_content(App $a)
{ {
if (!empty(DI::args()->get(1)) && (!empty($_GET['force']) || !DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_auto_update'))) { if (!empty(DI::args()->get(1)) && (!empty($_GET['force']) || !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_auto_update'))) {
$contact = Contact::getById(DI::args()->get(1), ['id', 'deleted']); $contact = Contact::getById(DI::args()->get(1), ['id', 'deleted']);
if (DBA::isResult($contact) && empty($contact['deleted'])) { if (DBA::isResult($contact) && empty($contact['deleted'])) {
DI::page()['aside'] = ''; DI::page()['aside'] = '';

View file

@ -20,7 +20,6 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -55,10 +54,10 @@ function wall_attach_post(App $a) {
$page_owner_cid = $owner['id']; $page_owner_cid = $owner['id'];
$community_page = $owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $community_page = $owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY;
if (Session::getLocalUser() && (Session::getLocalUser() == $page_owner_uid)) { if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $page_owner_uid)) {
$can_post = true; $can_post = true;
} elseif ($community_page && !empty(Session::getRemoteContactID($page_owner_uid))) { } elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($page_owner_uid))) {
$contact_id = Session::getRemoteContactID($page_owner_uid); $contact_id = DI::userSession()->getRemoteContactID($page_owner_uid);
$can_post = DBA::exists('contact', ['blocked' => false, 'pending' => false, 'id' => $contact_id, 'uid' => $page_owner_uid]); $can_post = DBA::exists('contact', ['blocked' => false, 'pending' => false, 'id' => $contact_id, 'uid' => $page_owner_uid]);
} }

View file

@ -27,7 +27,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -76,10 +75,10 @@ function wall_upload_post(App $a, $desktopmode = true)
$page_owner_nick = $user['nickname']; $page_owner_nick = $user['nickname'];
$community_page = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); $community_page = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false);
if ((Session::getLocalUser()) && (Session::getLocalUser() == $page_owner_uid)) { if ((DI::userSession()->getLocalUserId()) && (DI::userSession()->getLocalUserId() == $page_owner_uid)) {
$can_post = true; $can_post = true;
} elseif ($community_page && !empty(Session::getRemoteContactID($page_owner_uid))) { } elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($page_owner_uid))) {
$contact_id = Session::getRemoteContactID($page_owner_uid); $contact_id = DI::userSession()->getRemoteContactID($page_owner_uid);
$can_post = DBA::exists('contact', ['blocked' => false, 'pending' => false, 'id' => $contact_id, 'uid' => $page_owner_uid]); $can_post = DBA::exists('contact', ['blocked' => false, 'pending' => false, 'id' => $contact_id, 'uid' => $page_owner_uid]);
$visitor = $contact_id; $visitor = $contact_id;
} }

View file

@ -27,13 +27,13 @@ use Friendica\App\BaseURL;
use Friendica\Capabilities\ICanCreateResponses; use Friendica\Capabilities\ICanCreateResponses;
use Friendica\Core\Config\Factory\Config; use Friendica\Core\Config\Factory\Config;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Module\Maintenance; use Friendica\Module\Maintenance;
use Friendica\Security\Authentication; use Friendica\Security\Authentication;
use Friendica\Core\Config\ValueObject\Cache; use Friendica\Core\Config\ValueObject\Cache;
use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Database\Database; use Friendica\Database\Database;
@ -134,6 +134,11 @@ class App
*/ */
private $session; private $session;
/**
* @var IHandleUserSessions
*/
private $userSession;
/** /**
* Set the user ID * Set the user ID
* *
@ -158,7 +163,7 @@ class App
public function isLoggedIn(): bool public function isLoggedIn(): bool
{ {
return Session::getLocalUser() && $this->user_id && ($this->user_id == Session::getLocalUser()); return $this->userSession->getLocalUserId() && $this->user_id && ($this->user_id == $this->userSession->getLocalUserId());
} }
/** /**
@ -172,7 +177,7 @@ class App
$adminlist = explode(',', str_replace(' ', '', $admin_email)); $adminlist = explode(',', str_replace(' ', '', $admin_email));
return Session::getLocalUser() && $admin_email && $this->database->exists('user', ['uid' => $this->getLoggedInUserId(), 'email' => $adminlist]); return $this->userSession->getLocalUserId() && $admin_email && $this->database->exists('user', ['uid' => $this->getLoggedInUserId(), 'email' => $adminlist]);
} }
/** /**
@ -337,18 +342,19 @@ class App
* @param IManagePersonalConfigValues $pConfig Personal configuration * @param IManagePersonalConfigValues $pConfig Personal configuration
* @param IHandleSessions $session The Session handler * @param IHandleSessions $session The Session handler
*/ */
public function __construct(Database $database, IManageConfigValues $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, IManagePersonalConfigValues $pConfig, IHandleSessions $session) public function __construct(Database $database, IManageConfigValues $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, IManagePersonalConfigValues $pConfig, IHandleSessions $session, IHandleUserSessions $userSession)
{ {
$this->database = $database; $this->database = $database;
$this->config = $config; $this->config = $config;
$this->mode = $mode; $this->mode = $mode;
$this->baseURL = $baseURL; $this->baseURL = $baseURL;
$this->profiler = $profiler; $this->profiler = $profiler;
$this->logger = $logger; $this->logger = $logger;
$this->l10n = $l10n; $this->l10n = $l10n;
$this->args = $args; $this->args = $args;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->session = $session; $this->session = $session;
$this->userSession = $userSession;
$this->load(); $this->load();
} }
@ -496,11 +502,11 @@ class App
$page_theme = null; $page_theme = null;
// Find the theme that belongs to the user whose stuff we are looking at // Find the theme that belongs to the user whose stuff we are looking at
if (!empty($this->profile_owner) && ($this->profile_owner != Session::getLocalUser())) { if (!empty($this->profile_owner) && ($this->profile_owner != $this->userSession->getLocalUserId())) {
// Allow folks to override user themes and always use their own on their own site. // Allow folks to override user themes and always use their own on their own site.
// This works only if the user is on the same server // This works only if the user is on the same server
$user = $this->database->selectFirst('user', ['theme'], ['uid' => $this->profile_owner]); $user = $this->database->selectFirst('user', ['theme'], ['uid' => $this->profile_owner]);
if ($this->database->isResult($user) && !Session::getLocalUser()) { if ($this->database->isResult($user) && !$this->userSession->getLocalUserId()) {
$page_theme = $user['theme']; $page_theme = $user['theme'];
} }
} }
@ -529,10 +535,10 @@ class App
$page_mobile_theme = null; $page_mobile_theme = null;
// Find the theme that belongs to the user whose stuff we are looking at // Find the theme that belongs to the user whose stuff we are looking at
if (!empty($this->profile_owner) && ($this->profile_owner != Session::getLocalUser())) { if (!empty($this->profile_owner) && ($this->profile_owner != $this->userSession->getLocalUserId())) {
// Allow folks to override user themes and always use their own on their own site. // Allow folks to override user themes and always use their own on their own site.
// This works only if the user is on the same server // This works only if the user is on the same server
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
$page_mobile_theme = $this->pConfig->get($this->profile_owner, 'system', 'mobile-theme'); $page_mobile_theme = $this->pConfig->get($this->profile_owner, 'system', 'mobile-theme');
} }
} }
@ -629,7 +635,7 @@ class App
} }
// ZRL // ZRL
if (!empty($_GET['zrl']) && $this->mode->isNormal() && !$this->mode->isBackend() && !Session::getLocalUser()) { if (!empty($_GET['zrl']) && $this->mode->isNormal() && !$this->mode->isBackend() && !$this->userSession->getLocalUserId()) {
// Only continue when the given profile link seems valid // Only continue when the given profile link seems valid
// Valid profile links contain a path with "/profile/" and no query parameters // Valid profile links contain a path with "/profile/" and no query parameters
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == '') && if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == '') &&
@ -737,7 +743,7 @@ class App
$response = $module->run($input); $response = $module->run($input);
$this->profiler->set(microtime(true) - $timestamp, 'content'); $this->profiler->set(microtime(true) - $timestamp, 'content');
if ($response->getHeaderLine(ICanCreateResponses::X_HEADER) === ICanCreateResponses::TYPE_HTML) { if ($response->getHeaderLine(ICanCreateResponses::X_HEADER) === ICanCreateResponses::TYPE_HTML) {
$page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig); $page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig, $this->userSession->getLocalUserId());
} else { } else {
$page->exit($response); $page->exit($response);
} }

View file

@ -32,7 +32,6 @@ use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -222,17 +221,18 @@ class Page implements ArrayAccess
* - Infinite scroll data * - Infinite scroll data
* - head.tpl template * - head.tpl template
* *
* @param App $app The Friendica App instance * @param App $app The Friendica App instance
* @param Arguments $args The Friendica App Arguments * @param Arguments $args The Friendica App Arguments
* @param L10n $l10n The l10n language instance * @param L10n $l10n The l10n language instance
* @param IManageConfigValues $config The Friendica configuration * @param IManageConfigValues $config The Friendica configuration
* @param IManagePersonalConfigValues $pConfig The Friendica personal configuration (for user) * @param IManagePersonalConfigValues $pConfig The Friendica personal configuration (for user)
* @param int $localUID The local user id
* *
* @throws HTTPException\InternalServerErrorException * @throws HTTPException\InternalServerErrorException
*/ */
private function initHead(App $app, Arguments $args, L10n $l10n, IManageConfigValues $config, IManagePersonalConfigValues $pConfig) private function initHead(App $app, Arguments $args, L10n $l10n, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, int $localUID)
{ {
$interval = ((Session::getLocalUser()) ? $pConfig->get(Session::getLocalUser(), 'system', 'update_interval') : 40000); $interval = ($localUID ? $pConfig->get($localUID, 'system', 'update_interval') : 40000);
// If the update is 'deactivated' set it to the highest integer number (~24 days) // If the update is 'deactivated' set it to the highest integer number (~24 days)
if ($interval < 0) { if ($interval < 0) {
@ -277,7 +277,7 @@ class Page implements ArrayAccess
* being first * being first
*/ */
$this->page['htmlhead'] = Renderer::replaceMacros($tpl, [ $this->page['htmlhead'] = Renderer::replaceMacros($tpl, [
'$local_user' => Session::getLocalUser(), '$local_user' => $localUID,
'$generator' => 'Friendica' . ' ' . App::VERSION, '$generator' => 'Friendica' . ' ' . App::VERSION,
'$delitem' => $l10n->t('Delete this item?'), '$delitem' => $l10n->t('Delete this item?'),
'$blockAuthor' => $l10n->t('Block this author? They won\'t be able to follow you nor see your public posts, and you won\'t be able to see their posts and their notifications.'), '$blockAuthor' => $l10n->t('Block this author? They won\'t be able to follow you nor see your public posts, and you won\'t be able to see their posts and their notifications.'),
@ -444,10 +444,11 @@ class Page implements ArrayAccess
* @param L10n $l10n The l10n language class * @param L10n $l10n The l10n language class
* @param IManageConfigValues $config The Configuration of this node * @param IManageConfigValues $config The Configuration of this node
* @param IManagePersonalConfigValues $pconfig The personal/user configuration * @param IManagePersonalConfigValues $pconfig The personal/user configuration
* @param int $localUID The UID of the local user
* *
* @throws HTTPException\InternalServerErrorException|HTTPException\ServiceUnavailableException * @throws HTTPException\InternalServerErrorException|HTTPException\ServiceUnavailableException
*/ */
public function run(App $app, BaseURL $baseURL, Arguments $args, Mode $mode, ResponseInterface $response, L10n $l10n, Profiler $profiler, IManageConfigValues $config, IManagePersonalConfigValues $pconfig) public function run(App $app, BaseURL $baseURL, Arguments $args, Mode $mode, ResponseInterface $response, L10n $l10n, Profiler $profiler, IManageConfigValues $config, IManagePersonalConfigValues $pconfig, int $localUID)
{ {
$moduleName = $args->getModuleName(); $moduleName = $args->getModuleName();
@ -481,7 +482,7 @@ class Page implements ArrayAccess
* all the module functions have executed so that all * all the module functions have executed so that all
* theme choices made by the modules can take effect. * theme choices made by the modules can take effect.
*/ */
$this->initHead($app, $args, $l10n, $config, $pconfig); $this->initHead($app, $args, $l10n, $config, $pconfig, $localUID);
/* Build the page ending -- this is stuff that goes right before /* Build the page ending -- this is stuff that goes right before
* the closing </body> tag * the closing </body> tag

View file

@ -34,7 +34,7 @@ use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Lock\Capability\ICanLock; use Friendica\Core\Lock\Capability\ICanLock;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\LegacyModule; use Friendica\LegacyModule;
use Friendica\Module\HTTPException\MethodNotAllowed; use Friendica\Module\HTTPException\MethodNotAllowed;
use Friendica\Module\HTTPException\PageNotFound; use Friendica\Module\HTTPException\PageNotFound;
@ -99,6 +99,9 @@ class Router
/** @var LoggerInterface */ /** @var LoggerInterface */
private $logger; private $logger;
/** @var bool */
private $isLocalUser;
/** @var float */ /** @var float */
private $dice_profiler_threshold; private $dice_profiler_threshold;
@ -121,9 +124,10 @@ class Router
* @param Arguments $args * @param Arguments $args
* @param LoggerInterface $logger * @param LoggerInterface $logger
* @param Dice $dice * @param Dice $dice
* @param IHandleUserSessions $userSession
* @param RouteCollector|null $routeCollector * @param RouteCollector|null $routeCollector
*/ */
public function __construct(array $server, string $baseRoutesFilepath, L10n $l10n, ICanCache $cache, ICanLock $lock, IManageConfigValues $config, Arguments $args, LoggerInterface $logger, Dice $dice, RouteCollector $routeCollector = null) public function __construct(array $server, string $baseRoutesFilepath, L10n $l10n, ICanCache $cache, ICanLock $lock, IManageConfigValues $config, Arguments $args, LoggerInterface $logger, Dice $dice, IHandleUserSessions $userSession, RouteCollector $routeCollector = null)
{ {
$this->baseRoutesFilepath = $baseRoutesFilepath; $this->baseRoutesFilepath = $baseRoutesFilepath;
$this->l10n = $l10n; $this->l10n = $l10n;
@ -134,6 +138,7 @@ class Router
$this->dice = $dice; $this->dice = $dice;
$this->server = $server; $this->server = $server;
$this->logger = $logger; $this->logger = $logger;
$this->isLocalUser = !empty($userSession->getLocalUserId());
$this->dice_profiler_threshold = $config->get('system', 'dice_profiler_threshold', 0); $this->dice_profiler_threshold = $config->get('system', 'dice_profiler_threshold', 0);
$this->routeCollector = $routeCollector ?? new RouteCollector(new Std(), new GroupCountBased()); $this->routeCollector = $routeCollector ?? new RouteCollector(new Std(), new GroupCountBased());
@ -309,7 +314,7 @@ class Router
if (Addon::isEnabled($moduleName) && file_exists("addon/{$moduleName}/{$moduleName}.php")) { if (Addon::isEnabled($moduleName) && file_exists("addon/{$moduleName}/{$moduleName}.php")) {
//Check if module is an app and if public access to apps is allowed or not //Check if module is an app and if public access to apps is allowed or not
$privateapps = $this->config->get('config', 'private_addons', false); $privateapps = $this->config->get('config', 'private_addons', false);
if (!Session::getLocalUser() && Hook::isAddonApp($moduleName) && $privateapps) { if (!$this->isLocalUser && Hook::isAddonApp($moduleName) && $privateapps) {
throw new MethodNotAllowedException($this->l10n->t("You must be logged in to use addons. ")); throw new MethodNotAllowedException($this->l10n->t("You must be logged in to use addons. "));
} else { } else {
include_once "addon/{$moduleName}/{$moduleName}.php"; include_once "addon/{$moduleName}/{$moduleName}.php";

View file

@ -32,8 +32,8 @@ use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -80,22 +80,25 @@ class Conversation
private $mode; private $mode;
/** @var IHandleSessions */ /** @var IHandleSessions */
private $session; private $session;
/** @var IHandleUserSessions */
private $userSession;
public function __construct(LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, App\Page $page, App\Mode $mode, App $app, IHandleSessions $session) public function __construct(LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, App\Page $page, App\Mode $mode, App $app, IHandleSessions $session, IHandleUserSessions $userSession)
{ {
$this->activity = $activity; $this->activity = $activity;
$this->item = $item; $this->item = $item;
$this->config = $config; $this->config = $config;
$this->mode = $mode; $this->mode = $mode;
$this->baseURL = $baseURL; $this->baseURL = $baseURL;
$this->profiler = $profiler; $this->profiler = $profiler;
$this->logger = $logger; $this->logger = $logger;
$this->l10n = $l10n; $this->l10n = $l10n;
$this->args = $args; $this->args = $args;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->page = $page; $this->page = $page;
$this->app = $app; $this->app = $app;
$this->session = $session; $this->session = $session;
$this->userSession = $userSession;
} }
/** /**
@ -172,7 +175,7 @@ class Conversation
continue; continue;
} }
if (Session::getPublicContact() == $activity['author-id']) { if ($this->userSession->getPublicContactId() == $activity['author-id']) {
$conv_responses[$mode][$activity['thr-parent-id']]['self'] = 1; $conv_responses[$mode][$activity['thr-parent-id']]['self'] = 1;
} }
@ -297,7 +300,7 @@ class Conversation
$x['bang'] = $x['bang'] ?? ''; $x['bang'] = $x['bang'] ?? '';
$x['visitor'] = $x['visitor'] ?? 'block'; $x['visitor'] = $x['visitor'] ?? 'block';
$x['is_owner'] = $x['is_owner'] ?? true; $x['is_owner'] = $x['is_owner'] ?? true;
$x['profile_uid'] = $x['profile_uid'] ?? Session::getLocalUser(); $x['profile_uid'] = $x['profile_uid'] ?? $this->userSession->getLocalUserId();
$geotag = !empty($x['allow_location']) ? Renderer::replaceMacros(Renderer::getMarkupTemplate('jot_geotag.tpl'), []) : ''; $geotag = !empty($x['allow_location']) ? Renderer::replaceMacros(Renderer::getMarkupTemplate('jot_geotag.tpl'), []) : '';
@ -360,7 +363,7 @@ class Conversation
'$title' => $x['title'] ?? '', '$title' => $x['title'] ?? '',
'$placeholdertitle' => $this->l10n->t('Set title'), '$placeholdertitle' => $this->l10n->t('Set title'),
'$category' => $x['category'] ?? '', '$category' => $x['category'] ?? '',
'$placeholdercategory' => Feature::isEnabled(Session::getLocalUser(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '', '$placeholdercategory' => Feature::isEnabled($this->userSession->getLocalUserId(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '',
'$scheduled_at' => Temporal::getDateTimeField( '$scheduled_at' => Temporal::getDateTimeField(
new \DateTime(), new \DateTime(),
new \DateTime('now + 6 months'), new \DateTime('now + 6 months'),
@ -398,7 +401,7 @@ class Conversation
'$browser' => $this->l10n->t('Browser'), '$browser' => $this->l10n->t('Browser'),
'$compose_link_title' => $this->l10n->t('Open Compose page'), '$compose_link_title' => $this->l10n->t('Open Compose page'),
'$always_open_compose' => $this->pConfig->get(Session::getLocalUser(), 'frio', 'always_open_compose', false), '$always_open_compose' => $this->pConfig->get($this->userSession->getLocalUserId(), 'frio', 'always_open_compose', false),
]); ]);
@ -437,7 +440,7 @@ class Conversation
$this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css')); $this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css'));
$this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css')); $this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css'));
$ssl_state = (bool)Session::getLocalUser(); $ssl_state = (bool)$this->userSession->getLocalUserId();
$live_update_div = ''; $live_update_div = '';
@ -489,11 +492,11 @@ class Conversation
} }
} }
} elseif ($mode === 'notes') { } elseif ($mode === 'notes') {
$items = $this->addChildren($items, false, $order, Session::getLocalUser(), $mode); $items = $this->addChildren($items, false, $order, $this->userSession->getLocalUserId(), $mode);
if (!$update) { if (!$update) {
$live_update_div = '<div id="live-notes"></div>' . "\r\n" $live_update_div = '<div id="live-notes"></div>' . "\r\n"
. "<script> var profile_uid = " . Session::getLocalUser() . "<script> var profile_uid = " . $this->userSession->getLocalUserId()
. "; var netargs = '/?f='; </script>\r\n"; . "; var netargs = '/?f='; </script>\r\n";
} }
} elseif ($mode === 'display') { } elseif ($mode === 'display') {
@ -527,7 +530,7 @@ class Conversation
$live_update_div = '<div id="live-search"></div>' . "\r\n"; $live_update_div = '<div id="live-search"></div>' . "\r\n";
} }
$page_dropping = Session::getLocalUser() && Session::getLocalUser() == $uid; $page_dropping = $this->userSession->getLocalUserId() && $this->userSession->getLocalUserId() == $uid;
if (!$update) { if (!$update) {
$_SESSION['return_path'] = $this->args->getQueryString(); $_SESSION['return_path'] = $this->args->getQueryString();
@ -547,7 +550,7 @@ class Conversation
'announce' => [], 'announce' => [],
]; ];
if ($this->pConfig->get(Session::getLocalUser(), 'system', 'hide_dislike')) { if ($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'hide_dislike')) {
unset($conv_responses['dislike']); unset($conv_responses['dislike']);
} }
@ -565,7 +568,7 @@ class Conversation
$writable = $items[0]['writable'] || ($items[0]['uid'] == 0) && in_array($items[0]['network'], Protocol::FEDERATED); $writable = $items[0]['writable'] || ($items[0]['uid'] == 0) && in_array($items[0]['network'], Protocol::FEDERATED);
} }
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
$writable = false; $writable = false;
} }
@ -598,7 +601,7 @@ class Conversation
$threadsid++; $threadsid++;
// prevent private email from leaking. // prevent private email from leaking.
if ($item['network'] === Protocol::MAIL && Session::getLocalUser() != $item['uid']) { if ($item['network'] === Protocol::MAIL && $this->userSession->getLocalUserId() != $item['uid']) {
continue; continue;
} }
@ -642,17 +645,17 @@ class Conversation
'announce' => null, 'announce' => null,
]; ];
if ($this->pConfig->get(Session::getLocalUser(), 'system', 'hide_dislike')) { if ($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'hide_dislike')) {
unset($likebuttons['dislike']); unset($likebuttons['dislike']);
} }
$body_html = ItemModel::prepareBody($item, true, $preview); $body_html = ItemModel::prepareBody($item, true, $preview);
[$categories, $folders] = $this->item->determineCategoriesTerms($item, Session::getLocalUser()); [$categories, $folders] = $this->item->determineCategoriesTerms($item, $this->userSession->getLocalUserId());
if (!empty($item['title'])) { if (!empty($item['title'])) {
$title = $item['title']; $title = $item['title'];
} elseif (!empty($item['content-warning']) && $this->pConfig->get(Session::getLocalUser(), 'system', 'disable_cw', false)) { } elseif (!empty($item['content-warning']) && $this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'disable_cw', false)) {
$title = ucfirst($item['content-warning']); $title = ucfirst($item['content-warning']);
} else { } else {
$title = ''; $title = '';
@ -746,7 +749,7 @@ class Conversation
$this->builtinActivityPuller($item, $conv_responses); $this->builtinActivityPuller($item, $conv_responses);
// Only add what is visible // Only add what is visible
if ($item['network'] === Protocol::MAIL && Session::getLocalUser() != $item['uid']) { if ($item['network'] === Protocol::MAIL && $this->userSession->getLocalUserId() != $item['uid']) {
continue; continue;
} }
@ -791,11 +794,11 @@ class Conversation
private function getBlocklist(): array private function getBlocklist(): array
{ {
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
return []; return [];
} }
$str_blocked = str_replace(["\n", "\r"], ",", $this->pConfig->get(Session::getLocalUser(), 'system', 'blocked')); $str_blocked = str_replace(["\n", "\r"], ",", $this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'blocked'));
if (empty($str_blocked)) { if (empty($str_blocked)) {
return []; return [];
} }
@ -865,7 +868,7 @@ class Conversation
$row['direction'] = ['direction' => 4, 'title' => $this->l10n->t('You subscribed to one or more tags in this post.')]; $row['direction'] = ['direction' => 4, 'title' => $this->l10n->t('You subscribed to one or more tags in this post.')];
break; break;
case ItemModel::PR_ANNOUNCEMENT: case ItemModel::PR_ANNOUNCEMENT:
if (!empty($row['causer-id']) && $this->pConfig->get(Session::getLocalUser(), 'system', 'display_resharer')) { if (!empty($row['causer-id']) && $this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'display_resharer')) {
$row['owner-id'] = $row['causer-id']; $row['owner-id'] = $row['causer-id'];
$row['owner-link'] = $row['causer-link']; $row['owner-link'] = $row['causer-link'];
$row['owner-avatar'] = $row['causer-avatar']; $row['owner-avatar'] = $row['causer-avatar'];
@ -1217,7 +1220,7 @@ class Conversation
$parents[$i]['children'] = $this->sortItemChildren($parents[$i]['children']); $parents[$i]['children'] = $this->sortItemChildren($parents[$i]['children']);
} }
if (!$this->pConfig->get(Session::getLocalUser(), 'system', 'no_smart_threading', 0)) { if (!$this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'no_smart_threading', 0)) {
foreach ($parents as $i => $parent) { foreach ($parents as $i => $parent) {
$parents[$i] = $this->smartFlattenConversation($parent); $parents[$i] = $this->smartFlattenConversation($parent);
} }

View file

@ -24,7 +24,6 @@ namespace Friendica\Content;
use Friendica\Content\Text\HTML; use Friendica\Content\Text\HTML;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -224,7 +223,7 @@ class ForumManager
AND NOT `contact`.`pending` AND NOT `contact`.`archive` AND NOT `contact`.`pending` AND NOT `contact`.`archive`
AND `contact`.`uid` = ? AND `contact`.`uid` = ?
GROUP BY `contact`.`id`", GROUP BY `contact`.`id`",
Session::getLocalUser(), Protocol::DFRN, Protocol::ACTIVITYPUB, Contact::TYPE_COMMUNITY, Session::getLocalUser() DI::userSession()->getLocalUserId(), Protocol::DFRN, Protocol::ACTIVITYPUB, Contact::TYPE_COMMUNITY, DI::userSession()->getLocalUserId()
); );
return DBA::toArray($stmtContacts); return DBA::toArray($stmtContacts);

View file

@ -27,7 +27,7 @@ use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -53,12 +53,15 @@ class Item
private $l10n; private $l10n;
/** @var Profiler */ /** @var Profiler */
private $profiler; private $profiler;
/** @var IHandleUserSessions */
private $userSession;
public function __construct(Profiler $profiler, Activity $activity, L10n $l10n) public function __construct(Profiler $profiler, Activity $activity, L10n $l10n, IHandleUserSessions $userSession)
{ {
$this->profiler = $profiler; $this->profiler = $profiler;
$this->activity = $activity; $this->activity = $activity;
$this->l10n = $l10n; $this->l10n = $l10n;
$this->userSession = $userSession;
} }
/** /**
@ -110,7 +113,7 @@ class Item
$categories[] = [ $categories[] = [
'name' => $savedFolderName, 'name' => $savedFolderName,
'url' => $url, 'url' => $url,
'removeurl' => Session::getLocalUser() == $uid ? 'filerm/' . $item['id'] . '?cat=' . rawurlencode($savedFolderName) : '', 'removeurl' => $this->userSession->getLocalUserId() == $uid ? 'filerm/' . $item['id'] . '?cat=' . rawurlencode($savedFolderName) : '',
'first' => $first, 'first' => $first,
'last' => false 'last' => false
]; ];
@ -121,12 +124,12 @@ class Item
$categories[count($categories) - 1]['last'] = true; $categories[count($categories) - 1]['last'] = true;
} }
if (Session::getLocalUser() == $uid) { if ($this->userSession->getLocalUserId() == $uid) {
foreach (Post\Category::getArrayByURIId($item['uri-id'], $uid, Post\Category::FILE) as $savedFolderName) { foreach (Post\Category::getArrayByURIId($item['uri-id'], $uid, Post\Category::FILE) as $savedFolderName) {
$folders[] = [ $folders[] = [
'name' => $savedFolderName, 'name' => $savedFolderName,
'url' => "#", 'url' => "#",
'removeurl' => Session::getLocalUser() == $uid ? 'filerm/' . $item['id'] . '?term=' . rawurlencode($savedFolderName) : '', 'removeurl' => $this->userSession->getLocalUserId() == $uid ? 'filerm/' . $item['id'] . '?term=' . rawurlencode($savedFolderName) : '',
'first' => $first, 'first' => $first,
'last' => false 'last' => false
]; ];
@ -332,7 +335,7 @@ class Item
$sub_link = $contact_url = $pm_url = $status_link = ''; $sub_link = $contact_url = $pm_url = $status_link = '';
$photos_link = $posts_link = $block_link = $ignore_link = ''; $photos_link = $posts_link = $block_link = $ignore_link = '';
if (Session::getLocalUser() && Session::getLocalUser() == $item['uid'] && $item['gravity'] == ItemModel::GRAVITY_PARENT && !$item['self'] && !$item['mention']) { if ($this->userSession->getLocalUserId() && $this->userSession->getLocalUserId() == $item['uid'] && $item['gravity'] == ItemModel::GRAVITY_PARENT && !$item['self'] && !$item['mention']) {
$sub_link = 'javascript:doFollowThread(' . $item['id'] . '); return false;'; $sub_link = 'javascript:doFollowThread(' . $item['id'] . '); return false;';
} }
@ -349,7 +352,7 @@ class Item
$pcid = $item['author-id']; $pcid = $item['author-id'];
$network = ''; $network = '';
$rel = 0; $rel = 0;
$condition = ['uid' => Session::getLocalUser(), 'uri-id' => $item['author-uri-id']]; $condition = ['uid' => $this->userSession->getLocalUserId(), 'uri-id' => $item['author-uri-id']];
$contact = DBA::selectFirst('contact', ['id', 'network', 'rel'], $condition); $contact = DBA::selectFirst('contact', ['id', 'network', 'rel'], $condition);
if (DBA::isResult($contact)) { if (DBA::isResult($contact)) {
$cid = $contact['id']; $cid = $contact['id'];
@ -379,7 +382,7 @@ class Item
} }
} }
if (Session::getLocalUser()) { if ($this->userSession->getLocalUserId()) {
$menu = [ $menu = [
$this->l10n->t('Follow Thread') => $sub_link, $this->l10n->t('Follow Thread') => $sub_link,
$this->l10n->t('View Status') => $status_link, $this->l10n->t('View Status') => $status_link,
@ -440,7 +443,7 @@ class Item
return (!($this->activity->match($item['verb'], Activity::FOLLOW) && return (!($this->activity->match($item['verb'], Activity::FOLLOW) &&
$item['object-type'] === Activity\ObjectType::NOTE && $item['object-type'] === Activity\ObjectType::NOTE &&
empty($item['self']) && empty($item['self']) &&
$item['uid'] == Session::getLocalUser()) $item['uid'] == $this->userSession->getLocalUserId())
); );
} }

View file

@ -24,7 +24,6 @@ namespace Friendica\Content;
use Friendica\App; use Friendica\App;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -127,7 +126,7 @@ class Nav
//Don't populate apps_menu if apps are private //Don't populate apps_menu if apps are private
$privateapps = DI::config()->get('config', 'private_addons', false); $privateapps = DI::config()->get('config', 'private_addons', false);
if (Session::getLocalUser() || !$privateapps) { if (DI::userSession()->getLocalUserId() || !$privateapps) {
$arr = ['app_menu' => self::$app_menu]; $arr = ['app_menu' => self::$app_menu];
Hook::callAll('app_menu', $arr); Hook::callAll('app_menu', $arr);
@ -149,7 +148,7 @@ class Nav
*/ */
private static function getInfo(App $a): array private static function getInfo(App $a): array
{ {
$ssl_state = (bool) Session::getLocalUser(); $ssl_state = (bool) DI::userSession()->getLocalUserId();
/* /*
* Our network is distributed, and as you visit friends some of the * Our network is distributed, and as you visit friends some of the
@ -182,7 +181,7 @@ class Nav
$userinfo = null; $userinfo = null;
// nav links: array of array('href', 'text', 'extra css classes', 'title') // nav links: array of array('href', 'text', 'extra css classes', 'title')
if (Session::isAuthenticated()) { if (DI::userSession()->isAuthenticated()) {
$nav['logout'] = ['logout', DI::l10n()->t('Logout'), '', DI::l10n()->t('End this session')]; $nav['logout'] = ['logout', DI::l10n()->t('Logout'), '', DI::l10n()->t('End this session')];
} else { } else {
$nav['login'] = ['login', DI::l10n()->t('Login'), (DI::args()->getModuleName() == 'login' ? 'selected' : ''), DI::l10n()->t('Sign in')]; $nav['login'] = ['login', DI::l10n()->t('Login'), (DI::args()->getModuleName() == 'login' ? 'selected' : ''), DI::l10n()->t('Sign in')];
@ -211,11 +210,11 @@ class Nav
$homelink = DI::session()->get('visitor_home', ''); $homelink = DI::session()->get('visitor_home', '');
} }
if ((DI::args()->getModuleName() != 'home') && (! (Session::getLocalUser()))) { if (DI::args()->getModuleName() != 'home' && ! DI::userSession()->getLocalUserId()) {
$nav['home'] = [$homelink, DI::l10n()->t('Home'), '', DI::l10n()->t('Home Page')]; $nav['home'] = [$homelink, DI::l10n()->t('Home'), '', DI::l10n()->t('Home Page')];
} }
if (intval(DI::config()->get('config', 'register_policy')) === \Friendica\Module\Register::OPEN && !Session::isAuthenticated()) { if (intval(DI::config()->get('config', 'register_policy')) === \Friendica\Module\Register::OPEN && !DI::userSession()->isAuthenticated()) {
$nav['register'] = ['register', DI::l10n()->t('Register'), '', DI::l10n()->t('Create an account')]; $nav['register'] = ['register', DI::l10n()->t('Register'), '', DI::l10n()->t('Create an account')];
} }
@ -229,7 +228,7 @@ class Nav
$nav['apps'] = ['apps', DI::l10n()->t('Apps'), '', DI::l10n()->t('Addon applications, utilities, games')]; $nav['apps'] = ['apps', DI::l10n()->t('Apps'), '', DI::l10n()->t('Addon applications, utilities, games')];
} }
if (Session::getLocalUser() || !DI::config()->get('system', 'local_search')) { if (DI::userSession()->getLocalUserId() || !DI::config()->get('system', 'local_search')) {
$nav['search'] = ['search', DI::l10n()->t('Search'), '', DI::l10n()->t('Search site content')]; $nav['search'] = ['search', DI::l10n()->t('Search'), '', DI::l10n()->t('Search site content')];
$nav['searchoption'] = [ $nav['searchoption'] = [
@ -252,12 +251,12 @@ class Nav
} }
} }
if ((Session::getLocalUser() || DI::config()->get('system', 'community_page_style') != Community::DISABLED_VISITOR) && if ((DI::userSession()->getLocalUserId() || DI::config()->get('system', 'community_page_style') != Community::DISABLED_VISITOR) &&
!(DI::config()->get('system', 'community_page_style') == Community::DISABLED)) { !(DI::config()->get('system', 'community_page_style') == Community::DISABLED)) {
$nav['community'] = ['community', DI::l10n()->t('Community'), '', DI::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 (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$nav['events'] = ['events', DI::l10n()->t('Events'), '', DI::l10n()->t('Events and Calendar')]; $nav['events'] = ['events', DI::l10n()->t('Events'), '', DI::l10n()->t('Events and Calendar')];
} }
@ -270,7 +269,7 @@ class Nav
} }
// The following nav links are only show to logged in users // The following nav links are only show to logged in users
if (Session::getLocalUser() && !empty($a->getLoggedInUserNickname())) { if (DI::userSession()->getLocalUserId() && !empty($a->getLoggedInUserNickname())) {
$nav['network'] = ['network', DI::l10n()->t('Network'), '', DI::l10n()->t('Conversations from your friends')]; $nav['network'] = ['network', DI::l10n()->t('Network'), '', DI::l10n()->t('Conversations from your friends')];
$nav['home'] = ['profile/' . $a->getLoggedInUserNickname(), DI::l10n()->t('Home'), '', DI::l10n()->t('Your posts and conversations')]; $nav['home'] = ['profile/' . $a->getLoggedInUserNickname(), DI::l10n()->t('Home'), '', DI::l10n()->t('Your posts and conversations')];
@ -288,7 +287,7 @@ class Nav
$nav['messages']['outbox'] = ['message/sent', DI::l10n()->t('Outbox'), '', DI::l10n()->t('Outbox')]; $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')]; $nav['messages']['new'] = ['message/new', DI::l10n()->t('New Message'), '', DI::l10n()->t('New Message')];
if (User::hasIdentities(DI::session()->get('submanage') ?: Session::getLocalUser())) { if (User::hasIdentities(DI::userSession()->getSubManagedUserId() ?: DI::userSession()->getLocalUserId())) {
$nav['delegation'] = ['delegation', DI::l10n()->t('Accounts'), '', DI::l10n()->t('Manage other pages')]; $nav['delegation'] = ['delegation', DI::l10n()->t('Accounts'), '', DI::l10n()->t('Manage other pages')];
} }

View file

@ -391,7 +391,7 @@ class OEmbed
* @param string $title Optional title (default: what comes from OEmbed object) * @param string $title Optional title (default: what comes from OEmbed object)
* @return string Formatted HTML * @return string Formatted HTML
*/ */
public static function getHTML(string $url, string $title = '') public static function getHTML(string $url, string $title = ''): string
{ {
$o = self::fetchURL($url, !self::isAllowedURL($url)); $o = self::fetchURL($url, !self::isAllowedURL($url));

View file

@ -22,7 +22,6 @@
namespace Friendica\Content; namespace Friendica\Content;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Util\Strings; use Friendica\Util\Strings;
@ -214,7 +213,7 @@ class Smilies
public static function replaceFromArray(string $text, array $smilies, bool $no_images = false): string public static function replaceFromArray(string $text, array $smilies, bool $no_images = false): string
{ {
if (intval(DI::config()->get('system', 'no_smilies')) if (intval(DI::config()->get('system', 'no_smilies'))
|| (Session::getLocalUser() && intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_smilies'))) || (DI::userSession()->getLocalUserId() && intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_smilies')))
) { ) {
return $text; return $text;
} }

View file

@ -26,7 +26,6 @@ use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -67,7 +66,7 @@ class Widget
$global_dir = Search::getGlobalDirectory(); $global_dir = Search::getGlobalDirectory();
if (DI::config()->get('system', 'invitation_only')) { if (DI::config()->get('system', 'invitation_only')) {
$x = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'invites_remaining')); $x = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining'));
if ($x || DI::app()->isSiteAdmin()) { if ($x || DI::app()->isSiteAdmin()) {
DI::page()['aside'] .= '<div class="side-link widget" id="side-invite-remain">' DI::page()['aside'] .= '<div class="side-link widget" id="side-invite-remain">'
. DI::l10n()->tt('%d invitation available', '%d invitations available', $x) . DI::l10n()->tt('%d invitation available', '%d invitations available', $x)
@ -196,7 +195,7 @@ class Widget
*/ */
public static function groups(string $baseurl, string $selected = ''): string public static function groups(string $baseurl, string $selected = ''): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
@ -205,7 +204,7 @@ class Widget
'ref' => $group['id'], 'ref' => $group['id'],
'name' => $group['name'] 'name' => $group['name']
]; ];
}, Group::getByUserId(Session::getLocalUser())); }, Group::getByUserId(DI::userSession()->getLocalUserId()));
return self::filter( return self::filter(
'group', 'group',
@ -228,7 +227,7 @@ class Widget
*/ */
public static function contactRels(string $baseurl, string $selected = ''): string public static function contactRels(string $baseurl, string $selected = ''): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
@ -259,13 +258,13 @@ class Widget
*/ */
public static function networks(string $baseurl, string $selected = ''): string public static function networks(string $baseurl, string $selected = ''): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
$networks = self::unavailableNetworks(); $networks = self::unavailableNetworks();
$query = "`uid` = ? AND NOT `deleted` AND `network` != '' AND NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")"; $query = "`uid` = ? AND NOT `deleted` AND `network` != '' AND NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")";
$condition = array_merge([$query], array_merge([Session::getLocalUser()], $networks)); $condition = array_merge([$query], array_merge([DI::userSession()->getLocalUserId()], $networks));
$r = DBA::select('contact', ['network'], $condition, ['group_by' => ['network'], 'order' => ['network']]); $r = DBA::select('contact', ['network'], $condition, ['group_by' => ['network'], 'order' => ['network']]);
@ -300,12 +299,12 @@ class Widget
*/ */
public static function fileAs(string $baseurl, string $selected = ''): string public static function fileAs(string $baseurl, string $selected = ''): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
$terms = []; $terms = [];
foreach (Post\Category::getArray(Session::getLocalUser(), Post\Category::FILE) as $savedFolderName) { foreach (Post\Category::getArray(DI::userSession()->getLocalUserId(), Post\Category::FILE) as $savedFolderName) {
$terms[] = ['ref' => $savedFolderName, 'name' => $savedFolderName]; $terms[] = ['ref' => $savedFolderName, 'name' => $savedFolderName];
} }
@ -362,11 +361,11 @@ class Widget
*/ */
public static function commonFriendsVisitor(int $uid, string $nickname): string public static function commonFriendsVisitor(int $uid, string $nickname): string
{ {
if (Session::getLocalUser() == $uid) { if (DI::userSession()->getLocalUserId() == $uid) {
return ''; return '';
} }
$visitorPCid = Session::getLocalUser() ? Contact::getPublicIdByUserId(Session::getLocalUser()) : Session::getRemoteUser(); $visitorPCid = DI::userSession()->getPublicContactId() ?: DI::userSession()->getRemoteUserId();
if (!$visitorPCid) { if (!$visitorPCid) {
return ''; return '';
} }

View file

@ -34,12 +34,14 @@ class CalendarExport
{ {
/** /**
* Get the events widget. * Get the events widget.
*
* @param int $uid * @param int $uid
* *
* @return string Formated HTML of the calendar widget. * @return string Formated HTML of the calendar widget.
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/ */
public static function getHTML(int $uid = 0) { public static function getHTML(int $uid = 0): string
{
if (empty($uid)) { if (empty($uid)) {
return ''; return '';
} }
@ -49,11 +51,11 @@ class CalendarExport
return ''; return '';
} }
$tpl = Renderer::getMarkupTemplate("widget/events.tpl"); $tpl = Renderer::getMarkupTemplate('widget/events.tpl');
$return = Renderer::replaceMacros($tpl, [ $return = Renderer::replaceMacros($tpl, [
'$etitle' => DI::l10n()->t("Export"), '$etitle' => DI::l10n()->t('Export'),
'$export_ical' => DI::l10n()->t("Export calendar as ical"), '$export_ical' => DI::l10n()->t('Export calendar as ical'),
'$export_csv' => DI::l10n()->t("Export calendar as csv"), '$export_csv' => DI::l10n()->t('Export calendar as csv'),
'$user' => $user['nickname'] '$user' => $user['nickname']
]); ]);

View file

@ -42,9 +42,9 @@ class ContactBlock
* *
* @template widget/contacts.tpl * @template widget/contacts.tpl
* @hook contact_block_end (contacts=>array, output=>string) * @hook contact_block_end (contacts=>array, output=>string)
* @return string * @return string Formatted HTML code or empty string
*/ */
public static function getHTML(array $profile, int $visitor_uid = null) public static function getHTML(array $profile, int $visitor_uid = null): string
{ {
$o = ''; $o = '';
@ -66,13 +66,13 @@ class ContactBlock
$contacts = []; $contacts = [];
$total = DBA::count('contact', [ $total = DBA::count('contact', [
'uid' => $profile['uid'], 'uid' => $profile['uid'],
'self' => false, 'self' => false,
'blocked' => false, 'blocked' => false,
'pending' => false, 'pending' => false,
'hidden' => false, 'hidden' => false,
'archive' => false, 'archive' => false,
'failed' => false, 'failed' => false,
'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::FEED], 'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::FEED],
]); ]);
@ -89,15 +89,17 @@ class ContactBlock
} }
$personal_contacts = DBA::selectToArray('contact', ['uri-id'], [ $personal_contacts = DBA::selectToArray('contact', ['uri-id'], [
'uid' => $profile['uid'], 'uid' => $profile['uid'],
'self' => false, 'self' => false,
'blocked' => false, 'blocked' => false,
'pending' => false, 'pending' => false,
'hidden' => false, 'hidden' => false,
'archive' => false, 'archive' => false,
'rel' => $rel, 'rel' => $rel,
'network' => Protocol::FEDERATED, 'network' => Protocol::FEDERATED,
], ['limit' => $shown]); ], [
'limit' => $shown,
]);
$contact_uriids = array_column($personal_contacts, 'uri-id'); $contact_uriids = array_column($personal_contacts, 'uri-id');

View file

@ -23,7 +23,6 @@ namespace Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -35,10 +34,10 @@ class SavedSearches
* @return string * @return string
* @throws \Exception * @throws \Exception
*/ */
public static function getHTML($return_url, $search = '') public static function getHTML(string $return_url, string $search = ''): string
{ {
$saved = []; $saved = [];
$saved_searches = DBA::select('search', ['id', 'term'], ['uid' => Session::getLocalUser()]); $saved_searches = DBA::select('search', ['id', 'term'], ['uid' => DI::userSession()->getLocalUserId()]);
while ($saved_search = DBA::fetch($saved_searches)) { while ($saved_search = DBA::fetch($saved_searches)) {
$saved[] = [ $saved[] = [
'id' => $saved_search['id'], 'id' => $saved_search['id'],

View file

@ -46,7 +46,7 @@ class TagCloud
* @return string HTML formatted output. * @return string HTML formatted output.
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/ */
public static function getHTML($uid, $count = 0, $owner_id = 0, $flags = '', $type = Tag::HASHTAG) public static function getHTML(int $uid, int $count = 0, int $owner_id = 0, string $flags = '', int $type = Tag::HASHTAG): string
{ {
$o = ''; $o = '';
$r = self::tagadelic($uid, $count, $owner_id, $flags, $type); $r = self::tagadelic($uid, $count, $owner_id, $flags, $type);
@ -56,17 +56,17 @@ class TagCloud
$tags = []; $tags = [];
foreach ($r as $rr) { foreach ($r as $rr) {
$tag['level'] = $rr[2]; $tags[] = [
$tag['url'] = $url . '?tag=' . urlencode($rr[0]); 'level' => $rr[2],
$tag['name'] = $rr[0]; 'url' => $url . '?tag=' . urlencode($rr[0]),
'name' => $rr[0],
$tags[] = $tag; ];
} }
$tpl = Renderer::getMarkupTemplate('widget/tagcloud.tpl'); $tpl = Renderer::getMarkupTemplate('widget/tagcloud.tpl');
$o = Renderer::replaceMacros($tpl, [ $o = Renderer::replaceMacros($tpl, [
'$title' => DI::l10n()->t('Tags'), '$title' => DI::l10n()->t('Tags'),
'$tags' => $tags '$tags' => $tags
]); ]);
} }
return $o; return $o;

View file

@ -35,10 +35,11 @@ class TrendingTags
/** /**
* @param string $content 'global' (all posts) or 'local' (this node's posts only) * @param string $content 'global' (all posts) or 'local' (this node's posts only)
* @param int $period Period in hours to consider posts * @param int $period Period in hours to consider posts
* @return string *
* @return string Formatted HTML code
* @throws \Exception * @throws \Exception
*/ */
public static function getHTML($content = 'global', int $period = 24) public static function getHTML(string $content = 'global', int $period = 24): string
{ {
if ($content == 'local') { if ($content == 'local') {
$tags = Tag::getLocalTrendingHashtags($period, 20); $tags = Tag::getLocalTrendingHashtags($period, 20);
@ -49,8 +50,8 @@ class TrendingTags
$tpl = Renderer::getMarkupTemplate('widget/trending_tags.tpl'); $tpl = Renderer::getMarkupTemplate('widget/trending_tags.tpl');
$o = Renderer::replaceMacros($tpl, [ $o = Renderer::replaceMacros($tpl, [
'$title' => DI::l10n()->tt('Trending Tags (last %d hour)', 'Trending Tags (last %d hours)', $period), '$title' => DI::l10n()->tt('Trending Tags (last %d hour)', 'Trending Tags (last %d hours)', $period),
'$more' => DI::l10n()->t('More Trending Tags'), '$more' => DI::l10n()->t('More Trending Tags'),
'$tags' => $tags, '$tags' => $tags,
]); ]);
return $o; return $o;

View file

@ -26,7 +26,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -45,7 +44,7 @@ class VCard
* @template widget/vcard.tpl * @template widget/vcard.tpl
* @return string * @return string
*/ */
public static function getHTML(array $contact) public static function getHTML(array $contact): string
{ {
if (!isset($contact['network']) || !isset($contact['id'])) { if (!isset($contact['network']) || !isset($contact['id'])) {
Logger::warning('Incomplete contact', ['contact' => $contact ?? [], 'callstack' => System::callstack(20)]); Logger::warning('Incomplete contact', ['contact' => $contact ?? [], 'callstack' => System::callstack(20)]);
@ -65,13 +64,13 @@ class VCard
$photo = Contact::getPhoto($contact); $photo = Contact::getPhoto($contact);
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
if ($contact['uid']) { if ($contact['uid']) {
$id = $contact['id']; $id = $contact['id'];
$rel = $contact['rel']; $rel = $contact['rel'];
$pending = $contact['pending']; $pending = $contact['pending'];
} else { } else {
$pcontact = Contact::selectFirst([], ['uid' => Session::getLocalUser(), 'uri-id' => $contact['uri-id']]); $pcontact = Contact::selectFirst([], ['uid' => DI::userSession()->getLocalUserId(), 'uri-id' => $contact['uri-id']]);
$id = $pcontact['id'] ?? 0; $id = $pcontact['id'] ?? 0;
$rel = $pcontact['rel'] ?? Contact::NOTHING; $rel = $pcontact['rel'] ?? Contact::NOTHING;

View file

@ -62,7 +62,7 @@ class ACL
$page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css')); $page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css'));
$page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css')); $page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css'));
$contacts = self::getValidMessageRecipientsForUser(Session::getLocalUser()); $contacts = self::getValidMessageRecipientsForUser(DI::userSession()->getLocalUserId());
$tpl = Renderer::getMarkupTemplate('acl/message_recipient.tpl'); $tpl = Renderer::getMarkupTemplate('acl/message_recipient.tpl');
$o = Renderer::replaceMacros($tpl, [ $o = Renderer::replaceMacros($tpl, [

View file

@ -70,7 +70,7 @@ class Search
return $emptyResultList; return $emptyResultList;
} }
$contactDetails = Contact::getByURLForUser($user_data['url'] ?? '', Session::getLocalUser()); $contactDetails = Contact::getByURLForUser($user_data['url'] ?? '', DI::userSession()->getLocalUserId());
$result = new ContactResult( $result = new ContactResult(
$user_data['name'] ?? '', $user_data['name'] ?? '',
@ -136,7 +136,7 @@ class Search
foreach ($profiles as $profile) { foreach ($profiles as $profile) {
$profile_url = $profile['profile_url'] ?? ''; $profile_url = $profile['profile_url'] ?? '';
$contactDetails = Contact::getByURLForUser($profile_url, Session::getLocalUser()); $contactDetails = Contact::getByURLForUser($profile_url, DI::userSession()->getLocalUserId());
$result = new ContactResult( $result = new ContactResult(
$profile['name'] ?? '', $profile['name'] ?? '',
@ -211,7 +211,7 @@ class Search
{ {
Logger::info('Searching', ['search' => $search, 'mode' => $mode, 'page' => $page]); Logger::info('Searching', ['search' => $search, 'mode' => $mode, 'page' => $page]);
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
return []; return [];
} }

View file

@ -1,175 +0,0 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Core;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Util\Strings;
/**
* High-level Session service class
*/
class Session
{
public static $exists = false;
public static $expire = 180000;
/**
* Returns the user id of locally logged in user or false.
*
* @return int|bool user id or false
*/
public static function getLocalUser()
{
$session = DI::session();
if (!empty($session->get('authenticated')) && !empty($session->get('uid'))) {
return intval($session->get('uid'));
}
return false;
}
/**
* Returns the public contact id of logged in user or false.
*
* @return int|bool public contact id or false
*/
public static function getPublicContact()
{
static $public_contact_id = false;
$session = DI::session();
if (!$public_contact_id && !empty($session->get('authenticated'))) {
if (!empty($session->get('my_address'))) {
// Local user
$public_contact_id = intval(Contact::getIdForURL($session->get('my_address'), 0, false));
} elseif (!empty($session->get('visitor_home'))) {
// Remote user
$public_contact_id = intval(Contact::getIdForURL($session->get('visitor_home'), 0, false));
}
} elseif (empty($session->get('authenticated'))) {
$public_contact_id = false;
}
return $public_contact_id;
}
/**
* Returns public contact id of authenticated site visitor or false
*
* @return int|bool visitor_id or false
*/
public static function getRemoteUser()
{
$session = DI::session();
if (empty($session->get('authenticated'))) {
return false;
}
if (!empty($session->get('visitor_id'))) {
return intval($session->get('visitor_id'));
}
return false;
}
/**
* Return the user contact ID of a visitor for the given user ID they are visiting
*
* @param integer $uid User ID
* @return integer
*/
public static function getRemoteContactID($uid)
{
$session = DI::session();
if (!empty($session->get('remote')[$uid])) {
$remote = $session->get('remote')[$uid];
} else {
$remote = 0;
}
$local_user = !empty($session->get('authenticated')) ? $session->get('uid') : 0;
if (empty($remote) && ($local_user != $uid) && !empty($my_address = $session->get('my_address'))) {
$remote = Contact::getIdForURL($my_address, $uid, false);
}
return $remote;
}
/**
* Returns User ID for given contact ID of the visitor
*
* @param integer $cid Contact ID
* @return integer User ID for given contact ID of the visitor
*/
public static function getUserIDForVisitorContactID($cid)
{
$session = DI::session();
if (empty($session->get('remote'))) {
return false;
}
return array_search($cid, $session->get('remote'));
}
/**
* Set the session variable that contains the contact IDs for the visitor's contact URL
*
* @param string $url Contact URL
*/
public static function setVisitorsContacts()
{
$session = DI::session();
$session->set('remote', []);
$remote = [];
$remote_contacts = DBA::select('contact', ['id', 'uid'], ['nurl' => Strings::normaliseLink($session->get('my_url')), 'rel' => [Contact::FOLLOWER, Contact::FRIEND], 'self' => false]);
while ($contact = DBA::fetch($remote_contacts)) {
if (($contact['uid'] == 0) || Contact\User::isBlocked($contact['id'], $contact['uid'])) {
continue;
}
$remote[$contact['uid']] = $contact['id'];
}
DBA::close($remote_contacts);
$session->set('remote', $remote);
}
/**
* Returns if the current visitor is authenticated
*
* @return boolean "true" when visitor is either a local or remote user
*/
public static function isAuthenticated()
{
$session = DI::session();
return $session->get('authenticated', false);
}
}

View file

@ -0,0 +1,95 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Core\Session\Capability;
/**
* Handles user infos based on session infos
*/
interface IHandleUserSessions
{
/**
* Returns the user id of locally logged-in user or false.
*
* @return int|bool user id or false
*/
public function getLocalUserId();
/**
* Returns the public contact id of logged-in user or false.
*
* @return int|bool public contact id or false
*/
public function getPublicContactId();
/**
* Returns public contact id of authenticated site visitor or false
*
* @return int|bool visitor_id or false
*/
public function getRemoteUserId();
/**
* Return the user contact ID of a visitor for the given user ID they are visiting
*
* @param int $uid User ID
*
* @return int
*/
public function getRemoteContactID(int $uid): int;
/**
* Returns User ID for given contact ID of the visitor
*
* @param int $cid Contact ID
*
* @return int User ID for given contact ID of the visitor
*/
public function getUserIDForVisitorContactID(int $cid): int;
/**
* Returns if the current visitor is authenticated
*
* @return bool "true" when visitor is either a local or remote user
*/
public function isAuthenticated(): bool;
/**
* Returns User ID of the managed user in case it's a different identity
*
* @return int|bool uid of the manager or false
*/
public function getSubManagedUserId();
/**
* Sets the User ID of the managed user in case it's a different identity
*
* @param int $managed_uid The user id of the managing user
*/
public function setSubManagedUserId(int $managed_uid): void;
/**
* Set the session variable that contains the contact IDs for the visitor's contact URL
*
* @param string $url Contact URL
*/
public function setVisitorsContacts();
}

View file

@ -0,0 +1,28 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Core\Session\Handler;
abstract class AbstractSessionHandler implements \SessionHandlerInterface
{
/** @var int Duration of the Session */
public const EXPIRE = 180000;
}

View file

@ -23,14 +23,12 @@ namespace Friendica\Core\Session\Handler;
use Friendica\Core\Cache\Capability\ICanCache; use Friendica\Core\Cache\Capability\ICanCache;
use Friendica\Core\Cache\Exception\CachePersistenceException; use Friendica\Core\Cache\Exception\CachePersistenceException;
use Friendica\Core\Session;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use SessionHandlerInterface;
/** /**
* SessionHandler using Friendica Cache * SessionHandler using Friendica Cache
*/ */
class Cache implements SessionHandlerInterface class Cache extends AbstractSessionHandler
{ {
/** @var ICanCache */ /** @var ICanCache */
private $cache; private $cache;
@ -57,11 +55,10 @@ class Cache implements SessionHandlerInterface
try { try {
$data = $this->cache->get('session:' . $id); $data = $this->cache->get('session:' . $id);
if (!empty($data)) { if (!empty($data)) {
Session::$exists = true;
return $data; return $data;
} }
} catch (CachePersistenceException $exception) { } catch (CachePersistenceException $exception) {
$this->logger->warning('Cannot read session.'. ['id' => $id, 'exception' => $exception]); $this->logger->warning('Cannot read session.', ['id' => $id, 'exception' => $exception]);
return ''; return '';
} }
@ -91,7 +88,7 @@ class Cache implements SessionHandlerInterface
} }
try { try {
return $this->cache->set('session:' . $id, $data, Session::$expire); return $this->cache->set('session:' . $id, $data, static::EXPIRE);
} catch (CachePersistenceException $exception) { } catch (CachePersistenceException $exception) {
$this->logger->warning('Cannot write session', ['id' => $id, 'exception' => $exception]); $this->logger->warning('Cannot write session', ['id' => $id, 'exception' => $exception]);
return false; return false;

View file

@ -21,15 +21,13 @@
namespace Friendica\Core\Session\Handler; namespace Friendica\Core\Session\Handler;
use Friendica\Core\Session;
use Friendica\Database\Database as DBA; use Friendica\Database\Database as DBA;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use SessionHandlerInterface;
/** /**
* SessionHandler using database * SessionHandler using database
*/ */
class Database implements SessionHandlerInterface class Database extends AbstractSessionHandler
{ {
/** @var DBA */ /** @var DBA */
private $dba; private $dba;
@ -37,6 +35,8 @@ class Database implements SessionHandlerInterface
private $logger; private $logger;
/** @var array The $_SERVER variable */ /** @var array The $_SERVER variable */
private $server; private $server;
/** @var bool global check, if the current Session exists */
private $sessionExists = false;
/** /**
* DatabaseSessionHandler constructor. * DatabaseSessionHandler constructor.
@ -66,11 +66,11 @@ class Database implements SessionHandlerInterface
try { try {
$session = $this->dba->selectFirst('session', ['data'], ['sid' => $id]); $session = $this->dba->selectFirst('session', ['data'], ['sid' => $id]);
if ($this->dba->isResult($session)) { if ($this->dba->isResult($session)) {
Session::$exists = true; $this->sessionExists = true;
return $session['data']; return $session['data'];
} }
} catch (\Exception $exception) { } catch (\Exception $exception) {
$this->logger->warning('Cannot read session.'. ['id' => $id, 'exception' => $exception]); $this->logger->warning('Cannot read session.', ['id' => $id, 'exception' => $exception]);
return ''; return '';
} }
@ -101,11 +101,11 @@ class Database implements SessionHandlerInterface
return $this->destroy($id); return $this->destroy($id);
} }
$expire = time() + Session::$expire; $expire = time() + static::EXPIRE;
$default_expire = time() + 300; $default_expire = time() + 300;
try { try {
if (Session::$exists) { if ($this->sessionExists) {
$fields = ['data' => $data, 'expire' => $expire]; $fields = ['data' => $data, 'expire' => $expire];
$condition = ["`sid` = ? AND (`data` != ? OR `expire` != ?)", $id, $data, $expire]; $condition = ["`sid` = ? AND (`data` != ? OR `expire` != ?)", $id, $data, $expire];
$this->dba->update('session', $fields, $condition); $this->dba->update('session', $fields, $condition);
@ -114,7 +114,7 @@ class Database implements SessionHandlerInterface
$this->dba->insert('session', $fields); $this->dba->insert('session', $fields);
} }
} catch (\Exception $exception) { } catch (\Exception $exception) {
$this->logger->warning('Cannot write session.'. ['id' => $id, 'exception' => $exception]); $this->logger->warning('Cannot write session.', ['id' => $id, 'exception' => $exception]);
return false; return false;
} }
@ -131,7 +131,7 @@ class Database implements SessionHandlerInterface
try { try {
return $this->dba->delete('session', ['sid' => $id]); return $this->dba->delete('session', ['sid' => $id]);
} catch (\Exception $exception) { } catch (\Exception $exception) {
$this->logger->warning('Cannot destroy session.'. ['id' => $id, 'exception' => $exception]); $this->logger->warning('Cannot destroy session.', ['id' => $id, 'exception' => $exception]);
return false; return false;
} }
} }
@ -141,7 +141,7 @@ class Database implements SessionHandlerInterface
try { try {
return $this->dba->delete('session', ["`expire` < ?", time()]); return $this->dba->delete('session', ["`expire` < ?", time()]);
} catch (\Exception $exception) { } catch (\Exception $exception) {
$this->logger->warning('Cannot use garbage collector.'. ['exception' => $exception]); $this->logger->warning('Cannot use garbage collector.', ['exception' => $exception]);
return false; return false;
} }
} }

View file

@ -0,0 +1,133 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Core\Session\Model;
use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Model\Contact;
class UserSession implements IHandleUserSessions
{
/** @var IHandleSessions */
private $session;
/** @var int|bool saves the public Contact ID for later usage */
protected $publicContactId = false;
public function __construct(IHandleSessions $session)
{
$this->session = $session;
}
/** {@inheritDoc} */
public function getLocalUserId()
{
if (!empty($this->session->get('authenticated')) && !empty($this->session->get('uid'))) {
return intval($this->session->get('uid'));
}
return false;
}
/** {@inheritDoc} */
public function getPublicContactId()
{
if (empty($this->publicContactId) && !empty($this->session->get('authenticated'))) {
if (!empty($this->session->get('my_address'))) {
// Local user
$this->publicContactId = Contact::getIdForURL($this->session->get('my_address'), 0, false);
} elseif (!empty($this->session->get('visitor_home'))) {
// Remote user
$this->publicContactId = Contact::getIdForURL($this->session->get('visitor_home'), 0, false);
}
} elseif (empty($this->session->get('authenticated'))) {
$this->publicContactId = false;
}
return $this->publicContactId;
}
/** {@inheritDoc} */
public function getRemoteUserId()
{
if (empty($this->session->get('authenticated'))) {
return false;
}
if (!empty($this->session->get('visitor_id'))) {
return (int)$this->session->get('visitor_id');
}
return false;
}
/** {@inheritDoc} */
public function getRemoteContactID(int $uid): int
{
if (!empty($this->session->get('remote')[$uid])) {
$remote = $this->session->get('remote')[$uid];
} else {
$remote = 0;
}
$local_user = !empty($this->session->get('authenticated')) ? $this->session->get('uid') : 0;
if (empty($remote) && ($local_user != $uid) && !empty($my_address = $this->session->get('my_address'))) {
$remote = Contact::getIdForURL($my_address, $uid, false);
}
return $remote;
}
/** {@inheritDoc} */
public function getUserIDForVisitorContactID(int $cid): int
{
if (empty($this->session->get('remote'))) {
return false;
}
return array_search($cid, $this->session->get('remote'));
}
/** {@inheritDoc} */
public function isAuthenticated(): bool
{
return $this->session->get('authenticated', false);
}
/** {@inheritDoc} */
public function setVisitorsContacts()
{
$this->session->set('remote', Contact::getVisitorByUrl($this->session->get('my_url')));
}
/** {@inheritDoc} */
public function getSubManagedUserId()
{
return $this->session->get('submanage') ?? false;
}
/** {@inheritDoc} */
public function setSubManagedUserId(int $managed_uid): void
{
$this->session->set('submanage', $managed_uid);
}
}

View file

@ -0,0 +1,81 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Core\Session\Type;
use Friendica\Core\Session\Capability\IHandleSessions;
class ArraySession implements IHandleSessions
{
/** @var array */
protected $data = [];
public function __construct(array $data = [])
{
$this->data = $data;
}
public function start(): IHandleSessions
{
return $this;
}
public function exists(string $name): bool
{
return !empty($this->data[$name]);
}
public function get(string $name, $defaults = null)
{
return $this->data[$name] ?? $defaults;
}
public function pop(string $name, $defaults = null)
{
$value = $defaults;
if ($this->exists($name)) {
$value = $this->get($name);
$this->remove($name);
}
return $value;
}
public function set(string $name, $value)
{
$this->data[$name] = $value;
}
public function setMultiple(array $values)
{
$this->data = array_merge($values, $this->data);
}
public function remove(string $name)
{
unset($this->data[$name]);
}
public function clear()
{
$this->data = [];
}
}

View file

@ -22,6 +22,7 @@
namespace Friendica; namespace Friendica;
use Dice\Dice; use Dice\Dice;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Navigation\SystemMessages; use Friendica\Navigation\SystemMessages;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@ -219,6 +220,11 @@ abstract class DI
return self::$dice->create(Core\Session\Capability\IHandleSessions::class); return self::$dice->create(Core\Session\Capability\IHandleSessions::class);
} }
public static function userSession(): IHandleUserSessions
{
return self::$dice->create(Core\Session\Capability\IHandleUserSessions::class);
}
/** /**
* @return \Friendica\Core\Storage\Repository\StorageManager * @return \Friendica\Core\Storage\Repository\StorageManager
*/ */

View file

@ -29,7 +29,6 @@ use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\Database; use Friendica\Database\Database;
@ -261,6 +260,32 @@ class Contact
return DBA::selectFirst('contact', $fields, ['uri-id' => $uri_id], ['order' => ['uid']]); return DBA::selectFirst('contact', $fields, ['uri-id' => $uri_id], ['order' => ['uid']]);
} }
/**
* Fetch all remote contacts for a given contact url
*
* @param string $url The URL of the contact
* @param array $fields The wanted fields
*
* @return array all remote contacts
*
* @throws \Exception
*/
public static function getVisitorByUrl(string $url, array $fields = ['id', 'uid']): array
{
$remote = [];
$remote_contacts = DBA::select('contact', ['id', 'uid'], ['nurl' => Strings::normaliseLink($url), 'rel' => [Contact::FOLLOWER, Contact::FRIEND], 'self' => false]);
while ($contact = DBA::fetch($remote_contacts)) {
if (($contact['uid'] == 0) || Contact\User::isBlocked($contact['id'], $contact['uid'])) {
continue;
}
$remote[$contact['uid']] = $contact['id'];
}
DBA::close($remote_contacts);
return $remote;
}
/** /**
* Fetches a contact by a given url * Fetches a contact by a given url
* *
@ -1103,7 +1128,7 @@ class Contact
$photos_link = ''; $photos_link = '';
if ($uid == 0) { if ($uid == 0) {
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
} }
if (empty($contact['uid']) || ($contact['uid'] != $uid)) { if (empty($contact['uid']) || ($contact['uid'] != $uid)) {
@ -1506,10 +1531,10 @@ class Contact
if ($thread_mode) { if ($thread_mode) {
$condition = ["((`$contact_field` = ? AND `gravity` = ?) OR (`author-id` = ? AND `gravity` = ? AND `vid` = ? AND `thr-parent-id` = `parent-uri-id`)) AND " . $sql, $condition = ["((`$contact_field` = ? AND `gravity` = ?) OR (`author-id` = ? AND `gravity` = ? AND `vid` = ? AND `thr-parent-id` = `parent-uri-id`)) AND " . $sql,
$cid, Item::GRAVITY_PARENT, $cid, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), Session::getLocalUser()]; $cid, Item::GRAVITY_PARENT, $cid, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), DI::userSession()->getLocalUserId()];
} else { } else {
$condition = ["`$contact_field` = ? AND `gravity` IN (?, ?) AND " . $sql, $condition = ["`$contact_field` = ? AND `gravity` IN (?, ?) AND " . $sql,
$cid, Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT, Session::getLocalUser()]; $cid, Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT, DI::userSession()->getLocalUserId()];
} }
if (!empty($parent)) { if (!empty($parent)) {
@ -1527,10 +1552,10 @@ class Contact
} }
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -1538,7 +1563,7 @@ class Contact
$params = ['order' => ['received' => true], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]; $params = ['order' => ['received' => true], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl'); $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl');
$o = Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]); $o = Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]);
} else { } else {
@ -1547,27 +1572,27 @@ class Contact
if ($thread_mode) { if ($thread_mode) {
$fields = ['uri-id', 'thr-parent-id', 'gravity', 'author-id', 'commented']; $fields = ['uri-id', 'thr-parent-id', 'gravity', 'author-id', 'commented'];
$items = Post::toArray(Post::selectForUser(Session::getLocalUser(), $fields, $condition, $params)); $items = Post::toArray(Post::selectForUser(DI::userSession()->getLocalUserId(), $fields, $condition, $params));
if ($pager->getStart() == 0) { if ($pager->getStart() == 0) {
$cdata = self::getPublicAndUserContactID($cid, Session::getLocalUser()); $cdata = self::getPublicAndUserContactID($cid, DI::userSession()->getLocalUserId());
if (!empty($cdata['public'])) { if (!empty($cdata['public'])) {
$pinned = Post\Collection::selectToArrayForContact($cdata['public'], Post\Collection::FEATURED, $fields); $pinned = Post\Collection::selectToArrayForContact($cdata['public'], Post\Collection::FEATURED, $fields);
$items = array_merge($items, $pinned); $items = array_merge($items, $pinned);
} }
} }
$o .= DI::conversation()->create($items, 'contacts', $update, false, 'pinned_commented', Session::getLocalUser()); $o .= DI::conversation()->create($items, 'contacts', $update, false, 'pinned_commented', DI::userSession()->getLocalUserId());
} else { } else {
$fields = array_merge(Item::DISPLAY_FIELDLIST, ['featured']); $fields = array_merge(Item::DISPLAY_FIELDLIST, ['featured']);
$items = Post::toArray(Post::selectForUser(Session::getLocalUser(), $fields, $condition, $params)); $items = Post::toArray(Post::selectForUser(DI::userSession()->getLocalUserId(), $fields, $condition, $params));
if ($pager->getStart() == 0) { if ($pager->getStart() == 0) {
$cdata = self::getPublicAndUserContactID($cid, Session::getLocalUser()); $cdata = self::getPublicAndUserContactID($cid, DI::userSession()->getLocalUserId());
if (!empty($cdata['public'])) { if (!empty($cdata['public'])) {
$condition = ["`uri-id` IN (SELECT `uri-id` FROM `collection-view` WHERE `cid` = ? AND `type` = ?)", $condition = ["`uri-id` IN (SELECT `uri-id` FROM `collection-view` WHERE `cid` = ? AND `type` = ?)",
$cdata['public'], Post\Collection::FEATURED]; $cdata['public'], Post\Collection::FEATURED];
$pinned = Post::toArray(Post::selectForUser(Session::getLocalUser(), $fields, $condition, $params)); $pinned = Post::toArray(Post::selectForUser(DI::userSession()->getLocalUserId(), $fields, $condition, $params));
$items = array_merge($pinned, $items); $items = array_merge($pinned, $items);
} }
} }
@ -1576,7 +1601,7 @@ class Contact
} }
if (!$update) { if (!$update) {
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$o .= HTML::scrollLoader(); $o .= HTML::scrollLoader();
} else { } else {
$o .= $pager->renderMinimal(count($items)); $o .= $pager->renderMinimal(count($items));
@ -3231,7 +3256,7 @@ class Contact
*/ */
public static function magicLink(string $contact_url, string $url = ''): string public static function magicLink(string $contact_url, string $url = ''): string
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
return $url ?: $contact_url; // Equivalent to: ($url != '') ? $url : $contact_url; return $url ?: $contact_url; // Equivalent to: ($url != '') ? $url : $contact_url;
} }
@ -3277,7 +3302,7 @@ class Contact
{ {
$destination = $url ?: $contact['url']; // Equivalent to ($url != '') ? $url : $contact['url']; $destination = $url ?: $contact['url']; // Equivalent to ($url != '') ? $url : $contact['url'];
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
return $destination; return $destination;
} }
@ -3286,7 +3311,7 @@ class Contact
return $url; return $url;
} }
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'stay_local') && ($url == '')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'stay_local') && ($url == '')) {
return 'contact/' . $contact['id'] . '/conversations'; return 'contact/' . $contact['id'] . '/conversations';
} }

View file

@ -21,8 +21,8 @@
namespace Friendica\Model\Contact; namespace Friendica\Model\Contact;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
/** /**
@ -54,7 +54,7 @@ class Group
AND NOT `contact`.`pending` AND NOT `contact`.`pending`
ORDER BY `contact`.`name` ASC', ORDER BY `contact`.`name` ASC',
$gid, $gid,
Session::getLocalUser() DI::userSession()->getLocalUserId()
); );
if (DBA::isResult($stmt)) { if (DBA::isResult($stmt)) {

View file

@ -26,7 +26,6 @@ use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -411,7 +410,7 @@ class Event
public static function getStrings(): array public static function getStrings(): array
{ {
// First day of the week (0 = Sunday). // First day of the week (0 = Sunday).
$firstDay = DI::pConfig()->get(Session::getLocalUser(), 'system', 'first_day_of_week', 0); $firstDay = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week', 0);
$i18n = [ $i18n = [
"firstDay" => $firstDay, "firstDay" => $firstDay,
@ -609,7 +608,7 @@ class Event
$edit = null; $edit = null;
$copy = null; $copy = null;
$drop = null; $drop = null;
if (Session::getLocalUser() && Session::getLocalUser() == $event['uid'] && $event['type'] == 'event') { if (DI::userSession()->getLocalUserId() && DI::userSession()->getLocalUserId() == $event['uid'] && $event['type'] == 'event') {
$edit = !$event['cid'] ? [DI::baseUrl() . '/events/event/' . $event['id'], DI::l10n()->t('Edit event') , '', ''] : null; $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; $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') , '', '']; $drop = [DI::baseUrl() . '/events/drop/' . $event['id'] , DI::l10n()->t('Delete event') , '', ''];
@ -776,7 +775,7 @@ class Event
// Does the user who requests happen to be the owner of the events // Does the user who requests happen to be the owner of the events
// requested? then show all of your events, otherwise only those that // requested? then show all of your events, otherwise only those that
// don't have limitations set in allow_cid and allow_gid. // don't have limitations set in allow_cid and allow_gid.
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
$conditions += ['allow_cid' => '', 'allow_gid' => '']; $conditions += ['allow_cid' => '', 'allow_gid' => ''];
} }

View file

@ -25,7 +25,6 @@ use Friendica\BaseModule;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -188,8 +187,8 @@ class Group
) AS `count` ) AS `count`
FROM `group` FROM `group`
WHERE `group`.`uid` = ?;", WHERE `group`.`uid` = ?;",
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
Session::getLocalUser() DI::userSession()->getLocalUserId()
); );
return DBA::toArray($stmt); return DBA::toArray($stmt);
@ -527,7 +526,7 @@ class Group
*/ */
public static function sidebarWidget(string $every = 'contact', string $each = 'group', string $editmode = 'standard', $group_id = '', int $cid = 0) public static function sidebarWidget(string $every = 'contact', string $each = 'group', string $editmode = 'standard', $group_id = '', int $cid = 0)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
@ -545,7 +544,7 @@ class Group
$member_of = self::getIdsByContactId($cid); $member_of = self::getIdsByContactId($cid);
} }
$stmt = DBA::select('group', [], ['deleted' => false, 'uid' => Session::getLocalUser(), 'cid' => null], ['order' => ['name']]); $stmt = DBA::select('group', [], ['deleted' => false, 'uid' => DI::userSession()->getLocalUserId(), 'cid' => null], ['order' => ['name']]);
while ($group = DBA::fetch($stmt)) { while ($group = DBA::fetch($stmt)) {
$selected = (($group_id == $group['id']) ? ' group-selected' : ''); $selected = (($group_id == $group['id']) ? ' group-selected' : '');

View file

@ -27,7 +27,6 @@ use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Model\Tag; use Friendica\Model\Tag;
use Friendica\Core\Worker; use Friendica\Core\Worker;
@ -1066,7 +1065,7 @@ class Item
} }
// We have to tell the hooks who we are - this really should be improved // We have to tell the hooks who we are - this really should be improved
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
$_SESSION['authenticated'] = true; $_SESSION['authenticated'] = true;
$_SESSION['uid'] = $uid; $_SESSION['uid'] = $uid;
$dummy_session = true; $dummy_session = true;
@ -2775,8 +2774,8 @@ class Item
*/ */
public static function getPermissionsConditionArrayByUserId(int $owner_id): array public static function getPermissionsConditionArrayByUserId(int $owner_id): array
{ {
$local_user = Session::getLocalUser(); $local_user = DI::userSession()->getLocalUserId();
$remote_user = Session::getRemoteContactID($owner_id); $remote_user = DI::userSession()->getRemoteContactID($owner_id);
// default permissions - anonymous user // default permissions - anonymous user
$condition = ["`private` != ?", self::PRIVATE]; $condition = ["`private` != ?", self::PRIVATE];
@ -2807,8 +2806,8 @@ class Item
*/ */
public static function getPermissionsSQLByUserId(int $owner_id, string $table = ''): string public static function getPermissionsSQLByUserId(int $owner_id, string $table = ''): string
{ {
$local_user = Session::getLocalUser(); $local_user = DI::userSession()->getLocalUserId();
$remote_user = Session::getRemoteContactID($owner_id); $remote_user = DI::userSession()->getRemoteContactID($owner_id);
if (!empty($table)) { if (!empty($table)) {
$table = DBA::quoteIdentifier($table) . '.'; $table = DBA::quoteIdentifier($table) . '.';
@ -3006,8 +3005,8 @@ class Item
// Compile eventual content filter reasons // Compile eventual content filter reasons
$filter_reasons = []; $filter_reasons = [];
if (!$is_preview && Session::getPublicContact() != $item['author-id']) { if (!$is_preview && DI::userSession()->getPublicContactId() != $item['author-id']) {
if (!empty($item['content-warning']) && (!Session::getLocalUser() || !DI::pConfig()->get(Session::getLocalUser(), 'system', 'disable_cw', false))) { if (!empty($item['content-warning']) && (!DI::userSession()->getLocalUserId() || !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'disable_cw', false))) {
$filter_reasons[] = DI::l10n()->t('Content warning: %s', $item['content-warning']); $filter_reasons[] = DI::l10n()->t('Content warning: %s', $item['content-warning']);
} }
@ -3443,7 +3442,7 @@ class Item
$plink = $item['uri']; $plink = $item['uri'];
} }
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$ret = [ $ret = [
'href' => "display/" . $item['guid'], 'href' => "display/" . $item['guid'],
'orig' => "display/" . $item['guid'], 'orig' => "display/" . $item['guid'],

View file

@ -23,7 +23,6 @@ namespace Friendica\Model;
use Friendica\Core\ACL; use Friendica\Core\ACL;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -138,12 +137,12 @@ class Mail
$subject = DI::l10n()->t('[no subject]'); $subject = DI::l10n()->t('[no subject]');
} }
$me = DBA::selectFirst('contact', [], ['uid' => Session::getLocalUser(), 'self' => true]); $me = DBA::selectFirst('contact', [], ['uid' => DI::userSession()->getLocalUserId(), 'self' => true]);
if (!DBA::isResult($me)) { if (!DBA::isResult($me)) {
return -2; return -2;
} }
$contacts = ACL::getValidMessageRecipientsForUser(Session::getLocalUser()); $contacts = ACL::getValidMessageRecipientsForUser(DI::userSession()->getLocalUserId());
$contactIndex = array_search($recipient, array_column($contacts, 'id')); $contactIndex = array_search($recipient, array_column($contacts, 'id'));
if ($contactIndex === false) { if ($contactIndex === false) {
@ -152,7 +151,7 @@ class Mail
$contact = $contacts[$contactIndex]; $contact = $contacts[$contactIndex];
Photo::setPermissionFromBody($body, Session::getLocalUser(), $me['id'], '<' . $contact['id'] . '>', '', '', ''); Photo::setPermissionFromBody($body, DI::userSession()->getLocalUserId(), $me['id'], '<' . $contact['id'] . '>', '', '', '');
$guid = System::createUUID(); $guid = System::createUUID();
$uri = Item::newURI($guid); $uri = Item::newURI($guid);
@ -165,7 +164,7 @@ class Mail
if (strlen($replyto)) { if (strlen($replyto)) {
$reply = true; $reply = true;
$condition = ["`uid` = ? AND (`uri` = ? OR `parent-uri` = ?)", $condition = ["`uid` = ? AND (`uri` = ? OR `parent-uri` = ?)",
Session::getLocalUser(), $replyto, $replyto]; DI::userSession()->getLocalUserId(), $replyto, $replyto];
$mail = DBA::selectFirst('mail', ['convid'], $condition); $mail = DBA::selectFirst('mail', ['convid'], $condition);
if (DBA::isResult($mail)) { if (DBA::isResult($mail)) {
$convid = $mail['convid']; $convid = $mail['convid'];
@ -178,7 +177,7 @@ class Mail
$conv_guid = System::createUUID(); $conv_guid = System::createUUID();
$convuri = $contact['addr'] . ':' . $conv_guid; $convuri = $contact['addr'] . ':' . $conv_guid;
$fields = ['uid' => Session::getLocalUser(), 'guid' => $conv_guid, 'creator' => $me['addr'], $fields = ['uid' => DI::userSession()->getLocalUserId(), 'guid' => $conv_guid, 'creator' => $me['addr'],
'created' => DateTimeFormat::utcNow(), 'updated' => DateTimeFormat::utcNow(), 'created' => DateTimeFormat::utcNow(), 'updated' => DateTimeFormat::utcNow(),
'subject' => $subject, 'recips' => $contact['addr'] . ';' . $me['addr']]; 'subject' => $subject, 'recips' => $contact['addr'] . ';' . $me['addr']];
if (DBA::insert('conv', $fields)) { if (DBA::insert('conv', $fields)) {
@ -197,7 +196,7 @@ class Mail
$post_id = self::insert( $post_id = self::insert(
[ [
'uid' => Session::getLocalUser(), 'uid' => DI::userSession()->getLocalUserId(),
'guid' => $guid, 'guid' => $guid,
'convid' => $convid, 'convid' => $convid,
'from-name' => $me['name'], 'from-name' => $me['name'],
@ -233,7 +232,7 @@ class Mail
foreach ($images as $image) { foreach ($images as $image) {
$image_rid = Photo::ridFromURI($image); $image_rid = Photo::ridFromURI($image);
if (!empty($image_rid)) { if (!empty($image_rid)) {
Photo::update(['allow-cid' => '<' . $recipient . '>'], ['resource-id' => $image_rid, 'album' => 'Wall Photos', 'uid' => Session::getLocalUser()]); Photo::update(['allow-cid' => '<' . $recipient . '>'], ['resource-id' => $image_rid, 'album' => 'Wall Photos', 'uid' => DI::userSession()->getLocalUserId()]);
} }
} }
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Model;
use Friendica\Core\Cache\Enum\Duration; use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -639,10 +638,10 @@ class Photo
{ {
$sql_extra = Security::getPermissionsSQLByUserId($uid); $sql_extra = Security::getPermissionsSQLByUserId($uid);
$avatar_type = (Session::getLocalUser() && (Session::getLocalUser() == $uid)) ? self::USER_AVATAR : self::DEFAULT; $avatar_type = (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $uid)) ? self::USER_AVATAR : self::DEFAULT;
$banner_type = (Session::getLocalUser() && (Session::getLocalUser() == $uid)) ? self::USER_BANNER : self::DEFAULT; $banner_type = (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $uid)) ? self::USER_BANNER : self::DEFAULT;
$key = 'photo_albums:' . $uid . ':' . Session::getLocalUser() . ':' . Session::getRemoteUser(); $key = 'photo_albums:' . $uid . ':' . DI::userSession()->getLocalUserId() . ':' . DI::userSession()->getRemoteUserId();
$albums = DI::cache()->get($key); $albums = DI::cache()->get($key);
if (is_null($albums) || $update) { if (is_null($albums) || $update) {
@ -681,7 +680,7 @@ class Photo
*/ */
public static function clearAlbumCache(int $uid) public static function clearAlbumCache(int $uid)
{ {
$key = 'photo_albums:' . $uid . ':' . Session::getLocalUser() . ':' . Session::getRemoteUser(); $key = 'photo_albums:' . $uid . ':' . DI::userSession()->getLocalUserId() . ':' . DI::userSession()->getRemoteUserId();
DI::cache()->set($key, null, Duration::DAY); DI::cache()->set($key, null, Duration::DAY);
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Model;
use BadMethodCallException; use BadMethodCallException;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -509,7 +508,7 @@ class Post
{ {
$affected = 0; $affected = 0;
Logger::info('Start Update', ['fields' => $fields, 'condition' => $condition, 'uid' => Session::getLocalUser(),'callstack' => System::callstack(10)]); Logger::info('Start Update', ['fields' => $fields, 'condition' => $condition, 'uid' => DI::userSession()->getLocalUserId(),'callstack' => System::callstack(10)]);
// Don't allow changes to fields that are responsible for the relation between the records // Don't allow changes to fields that are responsible for the relation between the records
unset($fields['id']); unset($fields['id']);

View file

@ -30,7 +30,6 @@ use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -239,7 +238,7 @@ class Profile
DI::page()['title'] = $profile['name'] . ' @ ' . DI::config()->get('config', 'sitename'); DI::page()['title'] = $profile['name'] . ' @ ' . DI::config()->get('config', 'sitename');
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
$a->setCurrentTheme($profile['theme']); $a->setCurrentTheme($profile['theme']);
$a->setCurrentMobileTheme(DI::pConfig()->get($a->getProfileOwner(), 'system', 'mobile_theme') ?? ''); $a->setCurrentMobileTheme(DI::pConfig()->get($a->getProfileOwner(), 'system', 'mobile_theme') ?? '');
} }
@ -255,7 +254,7 @@ class Profile
require_once $theme_info_file; require_once $theme_info_file;
} }
$block = (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()); $block = (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated());
/** /**
* @todo * @todo
@ -295,8 +294,8 @@ class Profile
$profile_contact = []; $profile_contact = [];
if (Session::getLocalUser() && ($profile['uid'] ?? 0) != Session::getLocalUser()) { if (DI::userSession()->getLocalUserId() && ($profile['uid'] ?? 0) != DI::userSession()->getLocalUserId()) {
$profile_contact = Contact::getByURL($profile['nurl'], null, [], Session::getLocalUser()); $profile_contact = Contact::getByURL($profile['nurl'], null, [], DI::userSession()->getLocalUserId());
} }
if (!empty($profile['cid']) && self::getMyURL()) { if (!empty($profile['cid']) && self::getMyURL()) {
$profile_contact = Contact::selectFirst([], ['id' => $profile['cid']]); $profile_contact = Contact::selectFirst([], ['id' => $profile['cid']]);
@ -379,7 +378,7 @@ class Profile
$xmpp = !empty($profile['xmpp']) ? DI::l10n()->t('XMPP:') : false; $xmpp = !empty($profile['xmpp']) ? DI::l10n()->t('XMPP:') : false;
$matrix = !empty($profile['matrix']) ? DI::l10n()->t('Matrix:') : false; $matrix = !empty($profile['matrix']) ? DI::l10n()->t('Matrix:') : false;
if ((!empty($profile['hidewall']) || $block) && !Session::isAuthenticated()) { if ((!empty($profile['hidewall']) || $block) && !DI::userSession()->isAuthenticated()) {
$location = $homepage = $about = false; $location = $homepage = $about = false;
} }
@ -413,7 +412,7 @@ class Profile
} }
if (!$block && $show_contacts) { if (!$block && $show_contacts) {
$contact_block = ContactBlock::getHTML($profile, Session::getLocalUser()); $contact_block = ContactBlock::getHTML($profile, DI::userSession()->getLocalUserId());
if (is_array($profile) && !$profile['hide-friends']) { if (is_array($profile) && !$profile['hide-friends']) {
$contact_count = DBA::count('contact', [ $contact_count = DBA::count('contact', [
@ -493,7 +492,7 @@ class Profile
*/ */
public static function getBirthdays(): string public static function getBirthdays(): string
{ {
if (!Session::getLocalUser() || DI::mode()->isMobile() || DI::mode()->isMobile()) { if (!DI::userSession()->getLocalUserId() || DI::mode()->isMobile() || DI::mode()->isMobile()) {
return ''; return '';
} }
@ -506,7 +505,7 @@ class Profile
$bd_short = DI::l10n()->t('F d'); $bd_short = DI::l10n()->t('F d');
$cacheKey = 'get_birthdays:' . Session::getLocalUser(); $cacheKey = 'get_birthdays:' . DI::userSession()->getLocalUserId();
$events = DI::cache()->get($cacheKey); $events = DI::cache()->get($cacheKey);
if (is_null($events)) { if (is_null($events)) {
$result = DBA::p( $result = DBA::p(
@ -523,7 +522,7 @@ class Profile
ORDER BY `start`", ORDER BY `start`",
Contact::SHARING, Contact::SHARING,
Contact::FRIEND, Contact::FRIEND,
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
DateTimeFormat::utc('now + 6 days'), DateTimeFormat::utc('now + 6 days'),
DateTimeFormat::utcNow() DateTimeFormat::utcNow()
); );
@ -595,7 +594,7 @@ class Profile
$a = DI::app(); $a = DI::app();
$o = ''; $o = '';
if (!Session::getLocalUser() || DI::mode()->isMobile() || DI::mode()->isMobile()) { if (!DI::userSession()->getLocalUserId() || DI::mode()->isMobile() || DI::mode()->isMobile()) {
return $o; return $o;
} }
@ -610,7 +609,7 @@ class Profile
$classtoday = ''; $classtoday = '';
$condition = ["`uid` = ? AND `type` != 'birthday' AND `start` < ? AND `start` >= ?", $condition = ["`uid` = ? AND `type` != 'birthday' AND `start` < ? AND `start` >= ?",
Session::getLocalUser(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utc('now - 1 days')]; DI::userSession()->getLocalUserId(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utc('now - 1 days')];
$s = DBA::select('event', [], $condition, ['order' => ['start']]); $s = DBA::select('event', [], $condition, ['order' => ['start']]);
$r = []; $r = [];
@ -620,7 +619,7 @@ class Profile
$total = 0; $total = 0;
while ($rr = DBA::fetch($s)) { while ($rr = DBA::fetch($s)) {
$condition = ['parent-uri' => $rr['uri'], 'uid' => $rr['uid'], 'author-id' => Session::getPublicContact(), $condition = ['parent-uri' => $rr['uri'], 'uid' => $rr['uid'], 'author-id' => DI::userSession()->getPublicContactId(),
'vid' => [Verb::getID(Activity::ATTEND), Verb::getID(Activity::ATTENDMAYBE)], 'vid' => [Verb::getID(Activity::ATTEND), Verb::getID(Activity::ATTENDMAYBE)],
'visible' => true, 'deleted' => false]; 'visible' => true, 'deleted' => false];
if (!Post::exists($condition)) { if (!Post::exists($condition)) {
@ -712,7 +711,7 @@ class Profile
$my_url = self::getMyURL(); $my_url = self::getMyURL();
$my_url = Network::isUrlValid($my_url); $my_url = Network::isUrlValid($my_url);
if (empty($my_url) || Session::getLocalUser()) { if (empty($my_url) || DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -730,7 +729,7 @@ class Profile
$contact = DBA::selectFirst('contact',['id', 'url'], ['id' => $cid]); $contact = DBA::selectFirst('contact',['id', 'url'], ['id' => $cid]);
if (DBA::isResult($contact) && Session::getRemoteUser() && Session::getRemoteUser() == $contact['id']) { if (DBA::isResult($contact) && DI::userSession()->getRemoteUserId() && DI::userSession()->getRemoteUserId() == $contact['id']) {
Logger::info('The visitor ' . $my_url . ' is already authenticated'); Logger::info('The visitor ' . $my_url . ' is already authenticated');
return; return;
} }
@ -797,7 +796,7 @@ class Profile
$_SESSION['my_url'] = $visitor['url']; $_SESSION['my_url'] = $visitor['url'];
$_SESSION['remote_comment'] = $visitor['subscribe']; $_SESSION['remote_comment'] = $visitor['subscribe'];
Session::setVisitorsContacts(); DI::userSession()->setVisitorsContacts();
$a->setContactId($visitor['id']); $a->setContactId($visitor['id']);
@ -916,7 +915,7 @@ class Profile
*/ */
public static function getThemeUid(App $a): int public static function getThemeUid(App $a): int
{ {
return Session::getLocalUser() ?: $a->getProfileOwner(); return DI::userSession()->getLocalUserId() ?: $a->getProfileOwner();
} }
/** /**

View file

@ -192,7 +192,7 @@ class DomainPatternBlocklist
'reason' => $data[1] ?? '', 'reason' => $data[1] ?? '',
]; ];
if (!in_array($item, $blocklist)) { if (!in_array($item, $blocklist)) {
$blocklist[] = $data; $blocklist[] = $item;
} }
} }

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Admin; namespace Friendica\Module\Admin;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Register; use Friendica\Model\Register;
@ -122,7 +121,7 @@ abstract class BaseUsers extends BaseAdmin
$user['login_date'] = Temporal::getRelativeDate($user['login_date']); $user['login_date'] = Temporal::getRelativeDate($user['login_date']);
$user['lastitem_date'] = Temporal::getRelativeDate($user['last-item']); $user['lastitem_date'] = Temporal::getRelativeDate($user['last-item']);
$user['is_admin'] = in_array($user['email'], $adminlist); $user['is_admin'] = in_array($user['email'], $adminlist);
$user['is_deletable'] = !$user['account_removed'] && intval($user['uid']) != Session::getLocalUser(); $user['is_deletable'] = !$user['account_removed'] && intval($user['uid']) != DI::userSession()->getLocalUserId();
$user['deleted'] = ($user['account_removed'] ? Temporal::getRelativeDate($user['account_expires_on']) : False); $user['deleted'] = ($user['account_removed'] ? Temporal::getRelativeDate($user['account_expires_on']) : False);
return $user; return $user;

View file

@ -69,8 +69,6 @@ class Index extends BaseAdmin
$this->blocklist->set($blocklist); $this->blocklist->set($blocklist);
$
$this->baseUrl->redirect('admin/blocklist/server'); $this->baseUrl->redirect('admin/blocklist/server');
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Admin\Users;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -48,7 +47,7 @@ class Active extends BaseUsers
if (!empty($_POST['page_users_delete'])) { if (!empty($_POST['page_users_delete'])) {
foreach ($users as $uid) { foreach ($users as $uid) {
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
User::remove($uid); User::remove($uid);
} else { } else {
DI::sysmsg()->addNotice(DI::l10n()->t('You can\'t remove yourself')); DI::sysmsg()->addNotice(DI::l10n()->t('You can\'t remove yourself'));
@ -79,7 +78,7 @@ class Active extends BaseUsers
switch ($action) { switch ($action) {
case 'delete': case 'delete':
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
self::checkFormSecurityTokenRedirectOnError('admin/users/active', 'admin_users_active', 't'); self::checkFormSecurityTokenRedirectOnError('admin/users/active', 'admin_users_active', 't');
// delete user // delete user
User::remove($uid); User::remove($uid);

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Admin\Users;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -49,7 +48,7 @@ class Blocked extends BaseUsers
if (!empty($_POST['page_users_delete'])) { if (!empty($_POST['page_users_delete'])) {
foreach ($users as $uid) { foreach ($users as $uid) {
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
User::remove($uid); User::remove($uid);
} else { } else {
DI::sysmsg()->addNotice(DI::l10n()->t('You can\'t remove yourself')); DI::sysmsg()->addNotice(DI::l10n()->t('You can\'t remove yourself'));
@ -80,7 +79,7 @@ class Blocked extends BaseUsers
switch ($action) { switch ($action) {
case 'delete': case 'delete':
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
self::checkFormSecurityTokenRedirectOnError('/admin/users/blocked', 'admin_users_blocked', 't'); self::checkFormSecurityTokenRedirectOnError('/admin/users/blocked', 'admin_users_blocked', 't');
// delete user // delete user
User::remove($uid); User::remove($uid);

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Admin\Users;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -55,7 +54,7 @@ class Index extends BaseUsers
if (!empty($_POST['page_users_delete'])) { if (!empty($_POST['page_users_delete'])) {
foreach ($users as $uid) { foreach ($users as $uid) {
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
User::remove($uid); User::remove($uid);
} else { } else {
DI::sysmsg()->addNotice(DI::l10n()->t('You can\'t remove yourself')); DI::sysmsg()->addNotice(DI::l10n()->t('You can\'t remove yourself'));
@ -86,7 +85,7 @@ class Index extends BaseUsers
switch ($action) { switch ($action) {
case 'delete': case 'delete':
if (Session::getLocalUser() != $uid) { if (DI::userSession()->getLocalUserId() != $uid) {
self::checkFormSecurityTokenRedirectOnError(DI::baseUrl()->get(true), 'admin_users', 't'); self::checkFormSecurityTokenRedirectOnError(DI::baseUrl()->get(true), 'admin_users', 't');
// delete user // delete user
User::remove($uid); User::remove($uid);

View file

@ -28,7 +28,6 @@ use Friendica\Content\Nav;
use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Util\Profiler; use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@ -43,7 +42,7 @@ class Apps extends BaseModule
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$privateaddons = $config->get('config', 'private_addons'); $privateaddons = $config->get('config', 'private_addons');
if ($privateaddons === "1" && !Session::getLocalUser()) { if ($privateaddons === "1" && !DI::userSession()->getLocalUserId()) {
$baseUrl->redirect(); $baseUrl->redirect();
} }
} }

View file

@ -24,7 +24,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Addon; use Friendica\Core\Addon;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
@ -50,7 +49,7 @@ abstract class BaseAdmin extends BaseModule
*/ */
public static function checkAdminAccess(bool $interactive = false) public static function checkAdminAccess(bool $interactive = false)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
if ($interactive) { if ($interactive) {
DI::sysmsg()->addNotice(DI::l10n()->t('Please login to continue.')); DI::sysmsg()->addNotice(DI::l10n()->t('Please login to continue.'));
DI::session()->set('return_path', DI::args()->getQueryString()); DI::session()->set('return_path', DI::args()->getQueryString());
@ -64,7 +63,7 @@ abstract class BaseAdmin extends BaseModule
throw new HTTPException\ForbiddenException(DI::l10n()->t('You don\'t have access to administration pages.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('You don\'t have access to administration pages.'));
} }
if (!empty($_SESSION['submanage'])) { if (DI::userSession()->getSubManagedUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Submanaged account can\'t access the administration pages. Please log back in as the main account.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Submanaged account can\'t access the administration pages. Please log back in as the main account.'));
} }
} }

View file

@ -28,7 +28,7 @@ use Friendica\BaseModule;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Navigation\Notifications\ValueObject\FormattedNotify; use Friendica\Navigation\Notifications\ValueObject\FormattedNotify;
use Friendica\Network\HTTPException\ForbiddenException; use Friendica\Network\HTTPException\ForbiddenException;
@ -90,11 +90,11 @@ abstract class BaseNotifications extends BaseModule
*/ */
abstract public function getNotifications(); abstract public function getNotifications();
public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IHandleUserSessions $userSession, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
if (!Session::getLocalUser()) { if (!$userSession->getLocalUserId()) {
throw new ForbiddenException($this->t('Permission denied.')); throw new ForbiddenException($this->t('Permission denied.'));
} }

View file

@ -25,7 +25,6 @@ use Friendica\BaseModule;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
@ -83,10 +82,10 @@ class BaseSearch extends BaseModule
$search = Network::convertToIdn($search); $search = Network::convertToIdn($search);
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -126,7 +125,7 @@ class BaseSearch extends BaseModule
// in case the result is a contact result, add a contact-specific entry // in case the result is a contact result, add a contact-specific entry
if ($result instanceof ContactResult) { if ($result instanceof ContactResult) {
$contact = Model\Contact::getByURLForUser($result->getUrl(), Session::getLocalUser()); $contact = Model\Contact::getByURLForUser($result->getUrl(), DI::userSession()->getLocalUserId());
if (!empty($contact)) { if (!empty($contact)) {
$entries[] = Contact::getContactTemplateVars($contact); $entries[] = Contact::getContactTemplateVars($contact);
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Content\PageInfo; use Friendica\Content\PageInfo;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Security\Login; use Friendica\Module\Security\Login;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
@ -41,7 +40,7 @@ class Bookmarklet extends BaseModule
$config = DI::config(); $config = DI::config();
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
$output = '<h2>' . DI::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); $output .= Login::form(DI::args()->getQueryString(), intval($config->get('config', 'register_policy')) === Register::CLOSED ? false : true);
return $output; return $output;

View file

@ -28,7 +28,6 @@ use Friendica\Content\Pager;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -60,12 +59,12 @@ class Contact extends BaseModule
self::checkFormSecurityTokenRedirectOnError($redirectUrl, 'contact_batch_actions'); self::checkFormSecurityTokenRedirectOnError($redirectUrl, 'contact_batch_actions');
$orig_records = Model\Contact::selectToArray(['id', 'uid'], ['id' => $_POST['contact_batch'], 'uid' => [0, Session::getLocalUser()], 'self' => false, 'deleted' => false]); $orig_records = Model\Contact::selectToArray(['id', 'uid'], ['id' => $_POST['contact_batch'], 'uid' => [0, DI::userSession()->getLocalUserId()], 'self' => false, 'deleted' => false]);
$count_actions = 0; $count_actions = 0;
foreach ($orig_records as $orig_record) { foreach ($orig_records as $orig_record) {
$cdata = Model\Contact::getPublicAndUserContactID($orig_record['id'], Session::getLocalUser()); $cdata = Model\Contact::getPublicAndUserContactID($orig_record['id'], DI::userSession()->getLocalUserId());
if (empty($cdata) || Session::getPublicContact() === $cdata['public']) { if (empty($cdata) || DI::userSession()->getPublicContactId() === $cdata['public']) {
// No action available on your own contact // No action available on your own contact
continue; continue;
} }
@ -76,7 +75,7 @@ class Contact extends BaseModule
} }
if (!empty($_POST['contacts_batch_block'])) { if (!empty($_POST['contacts_batch_block'])) {
self::toggleBlockContact($cdata['public'], Session::getLocalUser()); self::toggleBlockContact($cdata['public'], DI::userSession()->getLocalUserId());
$count_actions++; $count_actions++;
} }
@ -94,7 +93,7 @@ class Contact extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -114,7 +113,7 @@ class Contact extends BaseModule
*/ */
public static function updateContactFromPoll(int $contact_id) public static function updateContactFromPoll(int $contact_id)
{ {
$contact = DBA::selectFirst('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => Session::getLocalUser(), 'deleted' => false]); $contact = DBA::selectFirst('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => DI::userSession()->getLocalUserId(), 'deleted' => false]);
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {
return; return;
} }
@ -154,13 +153,13 @@ class Contact extends BaseModule
*/ */
private static function toggleIgnoreContact(int $contact_id) private static function toggleIgnoreContact(int $contact_id)
{ {
$ignored = !Model\Contact\User::isIgnored($contact_id, Session::getLocalUser()); $ignored = !Model\Contact\User::isIgnored($contact_id, DI::userSession()->getLocalUserId());
Model\Contact\User::setIgnored($contact_id, Session::getLocalUser(), $ignored); Model\Contact\User::setIgnored($contact_id, DI::userSession()->getLocalUserId(), $ignored);
} }
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form($_SERVER['REQUEST_URI']); return Login::form($_SERVER['REQUEST_URI']);
} }
@ -204,7 +203,7 @@ class Contact extends BaseModule
$_SESSION['return_path'] = DI::args()->getQueryString(); $_SESSION['return_path'] = DI::args()->getQueryString();
$sql_values = [Session::getLocalUser()]; $sql_values = [DI::userSession()->getLocalUserId()];
// @TODO: Replace with parameter from router // @TODO: Replace with parameter from router
$type = DI::args()->getArgv()[1] ?? ''; $type = DI::args()->getArgv()[1] ?? '';
@ -230,7 +229,7 @@ class Contact extends BaseModule
$sql_extra = " AND `pending` AND NOT `archive` AND NOT `failed` AND ((`rel` = ?) $sql_extra = " AND `pending` AND NOT `archive` AND NOT `failed` AND ((`rel` = ?)
OR `id` IN (SELECT `contact-id` FROM `intro` WHERE `intro`.`uid` = ? AND NOT `ignore`))"; OR `id` IN (SELECT `contact-id` FROM `intro` WHERE `intro`.`uid` = ? AND NOT `ignore`))";
$sql_values[] = Model\Contact::SHARING; $sql_values[] = Model\Contact::SHARING;
$sql_values[] = Session::getLocalUser(); $sql_values[] = DI::userSession()->getLocalUserId();
break; break;
default: default:
$sql_extra = " AND NOT `archive` AND NOT `blocked` AND NOT `pending`"; $sql_extra = " AND NOT `archive` AND NOT `blocked` AND NOT `pending`";
@ -299,8 +298,8 @@ class Contact extends BaseModule
$stmt = DBA::select('contact', [], $condition, ['order' => ['name'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]); $stmt = DBA::select('contact', [], $condition, ['order' => ['name'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]);
while ($contact = DBA::fetch($stmt)) { while ($contact = DBA::fetch($stmt)) {
$contact['blocked'] = Model\Contact\User::isBlocked($contact['id'], Session::getLocalUser()); $contact['blocked'] = Model\Contact\User::isBlocked($contact['id'], DI::userSession()->getLocalUserId());
$contact['readonly'] = Model\Contact\User::isIgnored($contact['id'], Session::getLocalUser()); $contact['readonly'] = Model\Contact\User::isIgnored($contact['id'], DI::userSession()->getLocalUserId());
$contacts[] = self::getContactTemplateVars($contact); $contacts[] = self::getContactTemplateVars($contact);
} }
DBA::close($stmt); DBA::close($stmt);
@ -424,7 +423,7 @@ class Contact extends BaseModule
public static function getTabsHTML(array $contact, int $active_tab) public static function getTabsHTML(array $contact, int $active_tab)
{ {
$cid = $pcid = $contact['id']; $cid = $pcid = $contact['id'];
$data = Model\Contact::getPublicAndUserContactID($contact['id'], Session::getLocalUser()); $data = Model\Contact::getPublicAndUserContactID($contact['id'], DI::userSession()->getLocalUserId());
if (!empty($data['user']) && ($contact['id'] == $data['public'])) { if (!empty($data['user']) && ($contact['id'] == $data['public'])) {
$cid = $data['user']; $cid = $data['user'];
} elseif (!empty($data['public'])) { } elseif (!empty($data['public'])) {
@ -500,8 +499,8 @@ class Contact extends BaseModule
{ {
$alt_text = ''; $alt_text = '';
if (!empty($contact['url']) && isset($contact['uid']) && ($contact['uid'] == 0) && Session::getLocalUser()) { if (!empty($contact['url']) && isset($contact['uid']) && ($contact['uid'] == 0) && DI::userSession()->getLocalUserId()) {
$personal = Model\Contact::getByURL($contact['url'], false, ['uid', 'rel', 'self'], Session::getLocalUser()); $personal = Model\Contact::getByURL($contact['url'], false, ['uid', 'rel', 'self'], DI::userSession()->getLocalUserId());
if (!empty($personal)) { if (!empty($personal)) {
$contact['uid'] = $personal['uid']; $contact['uid'] = $personal['uid'];
$contact['rel'] = $personal['rel']; $contact['rel'] = $personal['rel'];
@ -509,7 +508,7 @@ class Contact extends BaseModule
} }
} }
if (!empty($contact['uid']) && !empty($contact['rel']) && Session::getLocalUser() == $contact['uid']) { if (!empty($contact['uid']) && !empty($contact['rel']) && DI::userSession()->getLocalUserId() == $contact['uid']) {
switch ($contact['rel']) { switch ($contact['rel']) {
case Model\Contact::FRIEND: case Model\Contact::FRIEND:
$alt_text = DI::l10n()->t('Mutual Friendship'); $alt_text = DI::l10n()->t('Mutual Friendship');

View file

@ -28,7 +28,6 @@ use Friendica\Content\Widget;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
@ -57,7 +56,7 @@ class Advanced extends BaseModule
$this->dba = $dba; $this->dba = $dba;
$this->page = $page; $this->page = $page;
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new ForbiddenException($this->t('Permission denied.')); throw new ForbiddenException($this->t('Permission denied.'));
} }
} }
@ -66,7 +65,7 @@ class Advanced extends BaseModule
{ {
$cid = $this->parameters['id']; $cid = $this->parameters['id'];
$contact = Model\Contact::selectFirst([], ['id' => $cid, 'uid' => Session::getLocalUser()]); $contact = Model\Contact::selectFirst([], ['id' => $cid, 'uid' => DI::userSession()->getLocalUserId()]);
if (empty($contact)) { if (empty($contact)) {
throw new BadRequestException($this->t('Contact not found.')); throw new BadRequestException($this->t('Contact not found.'));
} }
@ -87,7 +86,7 @@ class Advanced extends BaseModule
'nurl' => $nurl, 'nurl' => $nurl,
'poll' => $poll, 'poll' => $poll,
], ],
['id' => $contact['id'], 'uid' => Session::getLocalUser()] ['id' => $contact['id'], 'uid' => DI::userSession()->getLocalUserId()]
); );
if ($photo) { if ($photo) {
@ -105,7 +104,7 @@ class Advanced extends BaseModule
{ {
$cid = $this->parameters['id']; $cid = $this->parameters['id'];
$contact = Model\Contact::selectFirst([], ['id' => $cid, 'uid' => Session::getLocalUser()]); $contact = Model\Contact::selectFirst([], ['id' => $cid, 'uid' => DI::userSession()->getLocalUserId()]);
if (empty($contact)) { if (empty($contact)) {
throw new BadRequestException($this->t('Contact not found.')); throw new BadRequestException($this->t('Contact not found.'));
} }

View file

@ -25,7 +25,6 @@ use Friendica\BaseModule;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
use Friendica\Model\User; use Friendica\Model\User;
@ -36,7 +35,7 @@ class Contacts extends BaseModule
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
@ -54,7 +53,7 @@ class Contacts extends BaseModule
throw new HTTPException\NotFoundException(DI::l10n()->t('Contact not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('Contact not found.'));
} }
$localContactId = Model\Contact::getPublicIdByUserId(Session::getLocalUser()); $localContactId = Model\Contact::getPublicIdByUserId(DI::userSession()->getLocalUserId());
DI::page()['aside'] = Widget\VCard::getHTML($contact); DI::page()['aside'] = Widget\VCard::getHTML($contact);

View file

@ -29,7 +29,7 @@ use Friendica\Content\Nav;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Model; use Friendica\Model;
use Friendica\Module\Contact; use Friendica\Module\Contact;
@ -56,25 +56,30 @@ class Conversations extends BaseModule
* @var LocalRelationship * @var LocalRelationship
*/ */
private $localRelationship; private $localRelationship;
/**
* @var IHandleUserSessions
*/
private $userSession;
public function __construct(L10n $l10n, LocalRelationship $localRelationship, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, App\Page $page, Conversation $conversation, array $server, array $parameters = []) public function __construct(L10n $l10n, LocalRelationship $localRelationship, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, App\Page $page, Conversation $conversation, IHandleUserSessions $userSession, $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->page = $page; $this->page = $page;
$this->conversation = $conversation; $this->conversation = $conversation;
$this->localRelationship = $localRelationship; $this->localRelationship = $localRelationship;
$this->userSession = $userSession;
} }
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
return Login::form($_SERVER['REQUEST_URI']); return Login::form($_SERVER['REQUEST_URI']);
} }
// Backward compatibility: Ensure to use the public contact when the user contact is provided // Backward compatibility: Ensure to use the public contact when the user contact is provided
// Remove by version 2022.03 // Remove by version 2022.03
$data = Model\Contact::getPublicAndUserContactID(intval($this->parameters['id']), Session::getLocalUser()); $data = Model\Contact::getPublicAndUserContactID(intval($this->parameters['id']), $this->userSession->getLocalUserId());
if (empty($data)) { if (empty($data)) {
throw new NotFoundException($this->t('Contact not found.')); throw new NotFoundException($this->t('Contact not found.'));
} }
@ -89,7 +94,7 @@ class Conversations extends BaseModule
throw new NotFoundException($this->t('Contact not found.')); throw new NotFoundException($this->t('Contact not found.'));
} }
$localRelationship = $this->localRelationship->getForUserContact(Session::getLocalUser(), $contact['id']); $localRelationship = $this->localRelationship->getForUserContact($this->userSession->getLocalUserId(), $contact['id']);
if ($localRelationship->rel === Model\Contact::SELF) { if ($localRelationship->rel === Model\Contact::SELF) {
$this->baseUrl->redirect('profile/' . $contact['nick']); $this->baseUrl->redirect('profile/' . $contact['nick']);
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Contact;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -41,7 +40,7 @@ class Hovercard extends BaseModule
$contact_url = $_REQUEST['url'] ?? ''; $contact_url = $_REQUEST['url'] ?? '';
// Get out if the system doesn't have public access allowed // Get out if the system doesn't have public access allowed
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
@ -70,8 +69,8 @@ class Hovercard extends BaseModule
// Search for contact data // Search for contact data
// Look if the local user has got the contact // Look if the local user has got the contact
if (Session::isAuthenticated()) { if (DI::userSession()->isAuthenticated()) {
$contact = Contact::getByURLForUser($contact_url, Session::getLocalUser()); $contact = Contact::getByURLForUser($contact_url, DI::userSession()->getLocalUserId());
} else { } else {
$contact = Contact::getByURL($contact_url, false); $contact = Contact::getByURL($contact_url, false);
} }
@ -81,7 +80,7 @@ class Hovercard extends BaseModule
} }
// Get the photo_menu - the menu if possible contact actions // Get the photo_menu - the menu if possible contact actions
if (Session::isAuthenticated()) { if (DI::userSession()->isAuthenticated()) {
$actions = Contact::photoMenu($contact); $actions = Contact::photoMenu($contact);
} else { } else {
$actions = []; $actions = [];

View file

@ -28,7 +28,7 @@ use Friendica\Content\Nav;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model; use Friendica\Model;
use Friendica\Module\Contact; use Friendica\Module\Contact;
@ -51,24 +51,29 @@ class Posts extends BaseModule
* @var App\Page * @var App\Page
*/ */
private $page; private $page;
/**
* @var IHandleUserSessions
*/
private $userSession;
public function __construct(L10n $l10n, LocalRelationship $localRelationship, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, App\Page $page, array $server, array $parameters = []) public function __construct(L10n $l10n, LocalRelationship $localRelationship, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, App\Page $page, IHandleUserSessions $userSession, $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->localRelationship = $localRelationship; $this->localRelationship = $localRelationship;
$this->page = $page; $this->page = $page;
$this->userSession = $userSession;
} }
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
return Login::form($_SERVER['REQUEST_URI']); return Login::form($_SERVER['REQUEST_URI']);
} }
// Backward compatibility: Ensure to use the public contact when the user contact is provided // Backward compatibility: Ensure to use the public contact when the user contact is provided
// Remove by version 2022.03 // Remove by version 2022.03
$data = Model\Contact::getPublicAndUserContactID(intval($this->parameters['id']), Session::getLocalUser()); $data = Model\Contact::getPublicAndUserContactID(intval($this->parameters['id']), $this->userSession->getLocalUserId());
if (empty($data)) { if (empty($data)) {
throw new NotFoundException($this->t('Contact not found.')); throw new NotFoundException($this->t('Contact not found.'));
} }
@ -83,7 +88,7 @@ class Posts extends BaseModule
throw new NotFoundException($this->t('Contact not found.')); throw new NotFoundException($this->t('Contact not found.'));
} }
$localRelationship = $this->localRelationship->getForUserContact(Session::getLocalUser(), $contact['id']); $localRelationship = $this->localRelationship->getForUserContact($this->userSession->getLocalUserId(), $contact['id']);
if ($localRelationship->rel === Model\Contact::SELF) { if ($localRelationship->rel === Model\Contact::SELF) {
$this->baseUrl->redirect('profile/' . $contact['nick']); $this->baseUrl->redirect('profile/' . $contact['nick']);
} }

View file

@ -34,7 +34,6 @@ use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -75,7 +74,7 @@ class Profile extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -83,7 +82,7 @@ class Profile extends BaseModule
// Backward compatibility: The update still needs a user-specific contact ID // Backward compatibility: The update still needs a user-specific contact ID
// Change to user-contact table check by version 2022.03 // Change to user-contact table check by version 2022.03
$cdata = Contact::getPublicAndUserContactID($contact_id, Session::getLocalUser()); $cdata = Contact::getPublicAndUserContactID($contact_id, DI::userSession()->getLocalUserId());
if (empty($cdata['user']) || !DBA::exists('contact', ['id' => $cdata['user'], 'deleted' => false])) { if (empty($cdata['user']) || !DBA::exists('contact', ['id' => $cdata['user'], 'deleted' => false])) {
return; return;
} }
@ -125,20 +124,20 @@ class Profile extends BaseModule
$fields['info'] = $_POST['info']; $fields['info'] = $_POST['info'];
} }
if (!Contact::update($fields, ['id' => $cdata['user'], 'uid' => Session::getLocalUser()])) { if (!Contact::update($fields, ['id' => $cdata['user'], 'uid' => DI::userSession()->getLocalUserId()])) {
DI::sysmsg()->addNotice($this->t('Failed to update contact record.')); DI::sysmsg()->addNotice($this->t('Failed to update contact record.'));
} }
} }
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Module\Security\Login::form($_SERVER['REQUEST_URI']); return Module\Security\Login::form($_SERVER['REQUEST_URI']);
} }
// Backward compatibility: Ensure to use the public contact when the user contact is provided // Backward compatibility: Ensure to use the public contact when the user contact is provided
// Remove by version 2022.03 // Remove by version 2022.03
$data = Contact::getPublicAndUserContactID(intval($this->parameters['id']), Session::getLocalUser()); $data = Contact::getPublicAndUserContactID(intval($this->parameters['id']), DI::userSession()->getLocalUserId());
if (empty($data)) { if (empty($data)) {
throw new HTTPException\NotFoundException($this->t('Contact not found.')); throw new HTTPException\NotFoundException($this->t('Contact not found.'));
} }
@ -153,7 +152,7 @@ class Profile extends BaseModule
throw new HTTPException\NotFoundException($this->t('Contact not found.')); throw new HTTPException\NotFoundException($this->t('Contact not found.'));
} }
$localRelationship = $this->localRelationship->getForUserContact(Session::getLocalUser(), $contact['id']); $localRelationship = $this->localRelationship->getForUserContact(DI::userSession()->getLocalUserId(), $contact['id']);
if ($localRelationship->rel === Contact::SELF) { if ($localRelationship->rel === Contact::SELF) {
$this->baseUrl->redirect('profile/' . $contact['nick'] . '/profile'); $this->baseUrl->redirect('profile/' . $contact['nick'] . '/profile');
@ -174,12 +173,12 @@ class Profile extends BaseModule
if ($cmd === 'block') { if ($cmd === 'block') {
if ($localRelationship->blocked) { if ($localRelationship->blocked) {
// @TODO Backward compatibility, replace with $localRelationship->unblock() // @TODO Backward compatibility, replace with $localRelationship->unblock()
Contact\User::setBlocked($contact['id'], Session::getLocalUser(), false); Contact\User::setBlocked($contact['id'], DI::userSession()->getLocalUserId(), false);
$message = $this->t('Contact has been unblocked'); $message = $this->t('Contact has been unblocked');
} else { } else {
// @TODO Backward compatibility, replace with $localRelationship->block() // @TODO Backward compatibility, replace with $localRelationship->block()
Contact\User::setBlocked($contact['id'], Session::getLocalUser(), true); Contact\User::setBlocked($contact['id'], DI::userSession()->getLocalUserId(), true);
$message = $this->t('Contact has been blocked'); $message = $this->t('Contact has been blocked');
} }
@ -190,12 +189,12 @@ class Profile extends BaseModule
if ($cmd === 'ignore') { if ($cmd === 'ignore') {
if ($localRelationship->ignored) { if ($localRelationship->ignored) {
// @TODO Backward compatibility, replace with $localRelationship->unblock() // @TODO Backward compatibility, replace with $localRelationship->unblock()
Contact\User::setIgnored($contact['id'], Session::getLocalUser(), false); Contact\User::setIgnored($contact['id'], DI::userSession()->getLocalUserId(), false);
$message = $this->t('Contact has been unignored'); $message = $this->t('Contact has been unignored');
} else { } else {
// @TODO Backward compatibility, replace with $localRelationship->block() // @TODO Backward compatibility, replace with $localRelationship->block()
Contact\User::setIgnored($contact['id'], Session::getLocalUser(), true); Contact\User::setIgnored($contact['id'], DI::userSession()->getLocalUserId(), true);
$message = $this->t('Contact has been ignored'); $message = $this->t('Contact has been ignored');
} }
@ -224,8 +223,8 @@ class Profile extends BaseModule
'$baseurl' => $this->baseUrl->get(true), '$baseurl' => $this->baseUrl->get(true),
]); ]);
$contact['blocked'] = Contact\User::isBlocked($contact['id'], Session::getLocalUser()); $contact['blocked'] = Contact\User::isBlocked($contact['id'], DI::userSession()->getLocalUserId());
$contact['readonly'] = Contact\User::isIgnored($contact['id'], Session::getLocalUser()); $contact['readonly'] = Contact\User::isIgnored($contact['id'], DI::userSession()->getLocalUserId());
switch ($localRelationship->rel) { switch ($localRelationship->rel) {
case Contact::FRIEND: $relation_text = $this->t('You are mutual friends with %s', $contact['name']); break; case Contact::FRIEND: $relation_text = $this->t('You are mutual friends with %s', $contact['name']); break;
@ -486,7 +485,7 @@ class Profile extends BaseModule
*/ */
private static function updateContactFromProbe(int $contact_id) private static function updateContactFromProbe(int $contact_id)
{ {
$contact = DBA::selectFirst('contact', ['url'], ['id' => $contact_id, 'uid' => [0, Session::getLocalUser()], 'deleted' => false]); $contact = DBA::selectFirst('contact', ['url'], ['id' => $contact_id, 'uid' => [0, DI::userSession()->getLocalUserId()], 'deleted' => false]);
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {
return; return;
} }

View file

@ -27,7 +27,6 @@ use Friendica\Content\Nav;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
@ -55,11 +54,11 @@ class Revoke extends BaseModule
$this->dba = $dba; $this->dba = $dba;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$data = Model\Contact::getPublicAndUserContactID($this->parameters['id'], Session::getLocalUser()); $data = Model\Contact::getPublicAndUserContactID($this->parameters['id'], DI::userSession()->getLocalUserId());
if (!$this->dba->isResult($data)) { if (!$this->dba->isResult($data)) {
throw new HTTPException\NotFoundException($this->t('Unknown contact.')); throw new HTTPException\NotFoundException($this->t('Unknown contact.'));
} }
@ -81,7 +80,7 @@ class Revoke extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\UnauthorizedException(); throw new HTTPException\UnauthorizedException();
} }
@ -96,7 +95,7 @@ class Revoke extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form($_SERVER['REQUEST_URI']); return Login::form($_SERVER['REQUEST_URI']);
} }

View file

@ -30,7 +30,6 @@ use Friendica\Content\Text\HTML;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Content\Widget\TrendingTags; use Friendica\Content\Widget\TrendingTags;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -74,7 +73,7 @@ class Community extends BaseModule
'$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.") '$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.")
]); ]);
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl'); $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl');
$o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]); $o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]);
} }
@ -82,7 +81,7 @@ class Community extends BaseModule
if (empty($_GET['mode']) || ($_GET['mode'] != 'raw')) { if (empty($_GET['mode']) || ($_GET['mode'] != 'raw')) {
$tabs = []; $tabs = [];
if ((Session::isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::LOCAL])) && empty(DI::config()->get('system', 'singleuser'))) { if ((DI::userSession()->isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::LOCAL])) && empty(DI::config()->get('system', 'singleuser'))) {
$tabs[] = [ $tabs[] = [
'label' => DI::l10n()->t('Local Community'), 'label' => DI::l10n()->t('Local Community'),
'url' => 'community/local', 'url' => 'community/local',
@ -93,7 +92,7 @@ class Community extends BaseModule
]; ];
} }
if (Session::isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::GLOBAL])) { if (DI::userSession()->isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::GLOBAL])) {
$tabs[] = [ $tabs[] = [
'label' => DI::l10n()->t('Global Community'), 'label' => DI::l10n()->t('Global Community'),
'url' => 'community/global', 'url' => 'community/global',
@ -111,7 +110,7 @@ class Community extends BaseModule
DI::page()['aside'] .= Widget::accountTypes('community/' . self::$content, self::$accountTypeString); DI::page()['aside'] .= Widget::accountTypes('community/' . self::$content, self::$accountTypeString);
if (Session::getLocalUser() && DI::config()->get('system', 'community_no_sharer')) { if (DI::userSession()->getLocalUserId() && DI::config()->get('system', 'community_no_sharer')) {
$path = self::$content; $path = self::$content;
if (!empty($this->parameters['accounttype'])) { if (!empty($this->parameters['accounttype'])) {
$path .= '/' . $this->parameters['accounttype']; $path .= '/' . $this->parameters['accounttype'];
@ -140,12 +139,12 @@ class Community extends BaseModule
]); ]);
} }
if (Feature::isEnabled(Session::getLocalUser(), 'trending_tags')) { if (Feature::isEnabled(DI::userSession()->getLocalUserId(), 'trending_tags')) {
DI::page()['aside'] .= TrendingTags::getHTML(self::$content); DI::page()['aside'] .= TrendingTags::getHTML(self::$content);
} }
// We need the editor here to be able to reshare an item. // We need the editor here to be able to reshare an item.
if (Session::isAuthenticated()) { if (DI::userSession()->isAuthenticated()) {
$o .= DI::conversation()->statusEditor([], 0, true); $o .= DI::conversation()->statusEditor([], 0, true);
} }
} }
@ -157,7 +156,7 @@ class Community extends BaseModule
return $o; return $o;
} }
$o .= DI::conversation()->create($items, 'community', false, false, 'commented', Session::getLocalUser()); $o .= DI::conversation()->create($items, 'community', false, false, 'commented', DI::userSession()->getLocalUserId());
$pager = new BoundariesPager( $pager = new BoundariesPager(
DI::l10n(), DI::l10n(),
@ -167,7 +166,7 @@ class Community extends BaseModule
self::$itemsPerPage self::$itemsPerPage
); );
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$o .= HTML::scrollLoader(); $o .= HTML::scrollLoader();
} else { } else {
$o .= $pager->renderMinimal(count($items)); $o .= $pager->renderMinimal(count($items));
@ -184,7 +183,7 @@ class Community extends BaseModule
*/ */
protected function parseRequest() protected function parseRequest()
{ {
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
} }
@ -213,7 +212,7 @@ class Community extends BaseModule
} }
// Check if we are allowed to display the content to visitors // Check if we are allowed to display the content to visitors
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
$available = self::$page_style == self::LOCAL_AND_GLOBAL; $available = self::$page_style == self::LOCAL_AND_GLOBAL;
if (!$available) { if (!$available) {
@ -230,10 +229,10 @@ class Community extends BaseModule
} }
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
self::$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', self::$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
self::$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', self::$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -335,9 +334,9 @@ class Community extends BaseModule
$condition[0] .= " AND `id` = ?"; $condition[0] .= " AND `id` = ?";
$condition[] = $item_id; $condition[] = $item_id;
} else { } else {
if (Session::getLocalUser() && !empty($_REQUEST['no_sharer'])) { if (DI::userSession()->getLocalUserId() && !empty($_REQUEST['no_sharer'])) {
$condition[0] .= " AND NOT `uri-id` IN (SELECT `uri-id` FROM `post-user` WHERE `post-user`.`uid` = ?)"; $condition[0] .= " AND NOT `uri-id` IN (SELECT `uri-id` FROM `post-user` WHERE `post-user`.`uid` = ?)";
$condition[] = Session::getLocalUser(); $condition[] = DI::userSession()->getLocalUserId();
} }
if (isset($max_id)) { if (isset($max_id)) {

View file

@ -30,7 +30,6 @@ use Friendica\Content\Text\HTML;
use Friendica\Core\ACL; use Friendica\Core\ACL;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -78,7 +77,7 @@ class Network extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form(); return Login::form();
} }
@ -88,8 +87,8 @@ class Network extends BaseModule
DI::page()['aside'] .= Widget::accountTypes($module, self::$accountTypeString); DI::page()['aside'] .= Widget::accountTypes($module, self::$accountTypeString);
DI::page()['aside'] .= Group::sidebarWidget($module, $module . '/group', 'standard', self::$groupId); DI::page()['aside'] .= Group::sidebarWidget($module, $module . '/group', 'standard', self::$groupId);
DI::page()['aside'] .= ForumManager::widget($module . '/forum', Session::getLocalUser(), self::$forumContactId); DI::page()['aside'] .= ForumManager::widget($module . '/forum', DI::userSession()->getLocalUserId(), self::$forumContactId);
DI::page()['aside'] .= Widget::postedByYear($module . '/archive', Session::getLocalUser(), false); DI::page()['aside'] .= Widget::postedByYear($module . '/archive', DI::userSession()->getLocalUserId(), false);
DI::page()['aside'] .= Widget::networks($module, !self::$forumContactId ? self::$network : ''); DI::page()['aside'] .= Widget::networks($module, !self::$forumContactId ? self::$network : '');
DI::page()['aside'] .= Widget\SavedSearches::getHTML(DI::args()->getQueryString()); DI::page()['aside'] .= Widget\SavedSearches::getHTML(DI::args()->getQueryString());
DI::page()['aside'] .= Widget::fileAs('filed', ''); DI::page()['aside'] .= Widget::fileAs('filed', '');
@ -105,7 +104,7 @@ class Network extends BaseModule
$items = self::getItems($table, $params); $items = self::getItems($table, $params);
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll') && ($_GET['mode'] ?? '') != 'minimal') { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll') && ($_GET['mode'] ?? '') != 'minimal') {
$tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl'); $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl');
$o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]); $o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]);
} }
@ -138,7 +137,7 @@ class Network extends BaseModule
$allowedCids[] = (int) self::$forumContactId; $allowedCids[] = (int) self::$forumContactId;
} elseif (self::$network) { } elseif (self::$network) {
$condition = [ $condition = [
'uid' => Session::getLocalUser(), 'uid' => DI::userSession()->getLocalUserId(),
'network' => self::$network, 'network' => self::$network,
'self' => false, 'self' => false,
'blocked' => false, 'blocked' => false,
@ -168,7 +167,7 @@ class Network extends BaseModule
} }
if (self::$groupId) { if (self::$groupId) {
$group = DBA::selectFirst('group', ['name'], ['id' => self::$groupId, 'uid' => Session::getLocalUser()]); $group = DBA::selectFirst('group', ['name'], ['id' => self::$groupId, 'uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($group)) { if (!DBA::isResult($group)) {
DI::sysmsg()->addNotice(DI::l10n()->t('No such group')); DI::sysmsg()->addNotice(DI::l10n()->t('No such group'));
} }
@ -199,9 +198,9 @@ class Network extends BaseModule
$ordering = '`commented`'; $ordering = '`commented`';
} }
$o .= DI::conversation()->create($items, 'network', false, false, $ordering, Session::getLocalUser()); $o .= DI::conversation()->create($items, 'network', false, false, $ordering, DI::userSession()->getLocalUserId());
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$o .= HTML::scrollLoader(); $o .= HTML::scrollLoader();
} else { } else {
$pager = new BoundariesPager( $pager = new BoundariesPager(
@ -307,7 +306,7 @@ class Network extends BaseModule
self::$forumContactId = $this->parameters['contact_id'] ?? 0; self::$forumContactId = $this->parameters['contact_id'] ?? 0;
self::$selectedTab = DI::session()->get('network-tab', DI::pConfig()->get(Session::getLocalUser(), 'network.view', 'selected_tab', '')); self::$selectedTab = DI::session()->get('network-tab', DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'network.view', 'selected_tab', ''));
if (!empty($get['star'])) { if (!empty($get['star'])) {
self::$selectedTab = 'star'; self::$selectedTab = 'star';
@ -346,7 +345,7 @@ class Network extends BaseModule
} }
DI::session()->set('network-tab', self::$selectedTab); DI::session()->set('network-tab', self::$selectedTab);
DI::pConfig()->set(Session::getLocalUser(), 'network.view', 'selected_tab', self::$selectedTab); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'network.view', 'selected_tab', self::$selectedTab);
self::$accountTypeString = $get['accounttype'] ?? $this->parameters['accounttype'] ?? ''; self::$accountTypeString = $get['accounttype'] ?? $this->parameters['accounttype'] ?? '';
self::$accountType = User::getAccountTypeByString(self::$accountTypeString); self::$accountType = User::getAccountTypeByString(self::$accountTypeString);
@ -357,10 +356,10 @@ class Network extends BaseModule
self::$dateTo = $this->parameters['to'] ?? ''; self::$dateTo = $this->parameters['to'] ?? '';
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
self::$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', self::$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
self::$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', self::$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -385,7 +384,7 @@ class Network extends BaseModule
protected static function getItems(string $table, array $params, array $conditionFields = []) protected static function getItems(string $table, array $params, array $conditionFields = [])
{ {
$conditionFields['uid'] = Session::getLocalUser(); $conditionFields['uid'] = DI::userSession()->getLocalUserId();
$conditionStrings = []; $conditionStrings = [];
if (!is_null(self::$accountType)) { if (!is_null(self::$accountType)) {
@ -414,7 +413,7 @@ class Network extends BaseModule
} elseif (self::$forumContactId) { } elseif (self::$forumContactId) {
$conditionStrings = DBA::mergeConditions($conditionStrings, $conditionStrings = DBA::mergeConditions($conditionStrings,
["((`contact-id` = ?) OR `uri-id` IN (SELECT `parent-uri-id` FROM `post-user-view` WHERE (`contact-id` = ? AND `gravity` = ? AND `vid` = ? AND `uid` = ?)))", ["((`contact-id` = ?) OR `uri-id` IN (SELECT `parent-uri-id` FROM `post-user-view` WHERE (`contact-id` = ? AND `gravity` = ? AND `vid` = ? AND `uid` = ?)))",
self::$forumContactId, self::$forumContactId, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), Session::getLocalUser()]); self::$forumContactId, self::$forumContactId, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), DI::userSession()->getLocalUserId()]);
} }
// Currently only the order modes "received" and "commented" are in use // Currently only the order modes "received" and "commented" are in use
@ -478,10 +477,10 @@ class Network extends BaseModule
// level which items you've seen and which you haven't. If you're looking // level which items you've seen and which you haven't. If you're looking
// at the top level network page just mark everything seen. // at the top level network page just mark everything seen.
if (!self::$groupId && !self::$forumContactId && !self::$star && !self::$mention) { if (!self::$groupId && !self::$forumContactId && !self::$star && !self::$mention) {
$condition = ['unseen' => true, 'uid' => Session::getLocalUser()]; $condition = ['unseen' => true, 'uid' => DI::userSession()->getLocalUserId()];
self::setItemsSeenByCondition($condition); self::setItemsSeenByCondition($condition);
} elseif (!empty($parents)) { } elseif (!empty($parents)) {
$condition = ['unseen' => true, 'uid' => Session::getLocalUser(), 'parent-uri-id' => $parents]; $condition = ['unseen' => true, 'uid' => DI::userSession()->getLocalUserId(), 'parent-uri-id' => $parents];
self::setItemsSeenByCondition($condition); self::setItemsSeenByCondition($condition);
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Debug;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Protocol\ActivityPub; use Friendica\Protocol\ActivityPub;
use Friendica\Util\JsonLD; use Friendica\Util\JsonLD;
@ -42,7 +41,7 @@ class ActivityPubConversion extends BaseModule
try { try {
$source = json_decode($_REQUEST['source'], true); $source = json_decode($_REQUEST['source'], true);
$trust_source = true; $trust_source = true;
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$push = false; $push = false;
if (!$source) { if (!$source) {
@ -127,7 +126,7 @@ class ActivityPubConversion extends BaseModule
]; ];
} catch (\Throwable $e) { } catch (\Throwable $e) {
$results[] = [ $results[] = [
'title' => DI::l10n()->t('Error'), 'title' => DI::l10n()->tt('Error', 'Errors', 1),
'content' => $e->getMessage(), 'content' => $e->getMessage(),
]; ];
} }

View file

@ -290,7 +290,7 @@ class Babel extends BaseModule
]; ];
} else { } else {
$results[] = [ $results[] = [
'title' => DI::l10n()->t('Error'), 'title' => DI::l10n()->tt('Error', 'Errors', 1),
'content' => DI::l10n()->t('Twitter addon is absent from the addon/ folder.'), 'content' => DI::l10n()->t('Twitter addon is absent from the addon/ folder.'),
]; ];
} }

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -49,7 +48,7 @@ class Feed extends BaseModule
$this->httpClient = $httpClient; $this->httpClient = $httpClient;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice($this->t('You must be logged in to use this module')); DI::sysmsg()->addNotice($this->t('You must be logged in to use this module'));
$baseUrl->redirect(); $baseUrl->redirect();
} }
@ -61,7 +60,7 @@ class Feed extends BaseModule
if (!empty($_REQUEST['url'])) { if (!empty($_REQUEST['url'])) {
$url = $_REQUEST['url']; $url = $_REQUEST['url'];
$contact = Model\Contact::getByURLForUser($url, Session::getLocalUser(), null); $contact = Model\Contact::getByURLForUser($url, DI::userSession()->getLocalUserId(), null);
$xml = $this->httpClient->fetch($contact['poll'], HttpClientAccept::FEED_XML); $xml = $this->httpClient->fetch($contact['poll'], HttpClientAccept::FEED_XML);

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Debug; namespace Friendica\Module\Debug;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Post; use Friendica\Model\Post;
@ -35,7 +34,7 @@ class ItemBody extends BaseModule
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Access denied.')); throw new HTTPException\UnauthorizedException(DI::l10n()->t('Access denied.'));
} }
@ -45,7 +44,7 @@ class ItemBody extends BaseModule
$itemId = intval($this->parameters['item']); $itemId = intval($this->parameters['item']);
$item = Post::selectFirst(['body'], ['uid' => [0, Session::getLocalUser()], 'uri-id' => $itemId]); $item = Post::selectFirst(['body'], ['uid' => [0, DI::userSession()->getLocalUserId()], 'uri-id' => $itemId]);
if (!empty($item)) { if (!empty($item)) {
if (DI::mode()->isAjax()) { if (DI::mode()->isAjax()) {

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Debug;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
use Friendica\Network\Probe as NetworkProbe; use Friendica\Network\Probe as NetworkProbe;
@ -35,7 +34,7 @@ class Probe extends BaseModule
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a probing.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a probing.'));
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Debug;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Network\Probe; use Friendica\Network\Probe;
@ -34,7 +33,7 @@ class WebFinger extends BaseModule
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a probing.')); throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a probing.'));
} }

View file

@ -24,7 +24,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Notification; use Friendica\Model\Notification;
@ -39,15 +38,15 @@ class Delegation extends BaseModule
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
$orig_record = User::getById(DI::app()->getLoggedInUserId()); $orig_record = User::getById(DI::app()->getLoggedInUserId());
if (DI::session()->get('submanage')) { if (DI::userSession()->getSubManagedUserId()) {
$user = User::getById(DI::session()->get('submanage')); $user = User::getById(DI::userSession()->getSubManagedUserId());
if (DBA::isResult($user)) { if (DBA::isResult($user)) {
$uid = intval($user['uid']); $uid = intval($user['uid']);
$orig_record = $user; $orig_record = $user;
@ -102,7 +101,7 @@ class Delegation extends BaseModule
DI::auth()->setForUser(DI::app(), $user, true, true); DI::auth()->setForUser(DI::app(), $user, true, true);
if ($limited_id) { if ($limited_id) {
DI::session()->set('submanage', $original_id); DI::userSession()->setSubManagedUserId($original_id);
} }
$ret = []; $ret = [];
@ -115,11 +114,11 @@ class Delegation extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new ForbiddenException(DI::l10n()->t('Permission denied.')); throw new ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
$identities = User::identities(DI::session()->get('submanage', Session::getLocalUser())); $identities = User::identities(DI::userSession()->getSubManagedUserId() ?: DI::userSession()->getLocalUserId());
//getting additinal information for each identity //getting additinal information for each identity
foreach ($identities as $key => $identity) { foreach ($identities as $key => $identity) {

View file

@ -26,7 +26,6 @@ use Friendica\Content\Nav;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Session;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\DI; use Friendica\DI;
@ -44,12 +43,12 @@ class Directory extends BaseModule
$app = DI::app(); $app = DI::app();
$config = DI::config(); $config = DI::config();
if (($config->get('system', 'block_public') && !Session::isAuthenticated()) || if (($config->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) ||
($config->get('system', 'block_local_dir') && !Session::isAuthenticated())) { ($config->get('system', 'block_local_dir') && !DI::userSession()->isAuthenticated())) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
} }
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
DI::page()['aside'] .= Widget::findPeople(); DI::page()['aside'] .= Widget::findPeople();
DI::page()['aside'] .= Widget::follow(); DI::page()['aside'] .= Widget::follow();
} }
@ -75,7 +74,7 @@ class Directory extends BaseModule
DI::sysmsg()->addNotice(DI::l10n()->t('No entries (some entries may be hidden).')); DI::sysmsg()->addNotice(DI::l10n()->t('No entries (some entries may be hidden).'));
} else { } else {
foreach ($profiles['entries'] as $entry) { foreach ($profiles['entries'] as $entry) {
$contact = Model\Contact::getByURLForUser($entry['url'], Session::getLocalUser()); $contact = Model\Contact::getByURLForUser($entry['url'], DI::userSession()->getLocalUserId());
if (!empty($contact)) { if (!empty($contact)) {
$entries[] = Contact::getContactTemplateVars($contact); $entries[] = Contact::getContactTemplateVars($contact);
} }

View file

@ -21,7 +21,6 @@
namespace Friendica\Module\Events; namespace Friendica\Module\Events;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -36,7 +35,7 @@ class Json extends \Friendica\BaseModule
{ {
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\UnauthorizedException(); throw new HTTPException\UnauthorizedException();
} }
@ -70,9 +69,9 @@ class Json extends \Friendica\BaseModule
// get events by id or by date // get events by id or by date
if ($event_params['event_id']) { if ($event_params['event_id']) {
$r = Event::getListById(Session::getLocalUser(), $event_params['event_id']); $r = Event::getListById(DI::userSession()->getLocalUserId(), $event_params['event_id']);
} else { } else {
$r = Event::getListByDate(Session::getLocalUser(), $event_params); $r = Event::getListByDate(DI::userSession()->getLocalUserId(), $event_params);
} }
$links = []; $links = [];

View file

@ -22,7 +22,6 @@
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Protocol\Feed as ProtocolFeed; use Friendica\Protocol\Feed as ProtocolFeed;
@ -47,7 +46,7 @@ class Feed extends BaseModule
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
$last_update = $this->getRequestValue($request, 'last_update', ''); $last_update = $this->getRequestValue($request, 'last_update', '');
$nocache = !empty($request['nocache']) && Session::getLocalUser(); $nocache = !empty($request['nocache']) && DI::userSession()->getLocalUserId();
$type = null; $type = null;
// @TODO: Replace with parameter from router // @TODO: Replace with parameter from router

View file

@ -24,7 +24,7 @@ namespace Friendica\Module\Filer;
use Friendica\App; use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model\Post; use Friendica\Model\Post;
@ -41,12 +41,15 @@ class RemoveTag extends BaseModule
{ {
/** @var SystemMessages */ /** @var SystemMessages */
private $systemMessages; private $systemMessages;
/** @var IHandleUserSessions */
private $userSession;
public function __construct(SystemMessages $systemMessages, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = []) public function __construct(SystemMessages $systemMessages, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IHandleUserSessions $userSession, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->systemMessages = $systemMessages; $this->systemMessages = $systemMessages;
$this->userSession = $userSession;
} }
protected function post(array $request = []) protected function post(array $request = [])
@ -56,7 +59,7 @@ class RemoveTag extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
@ -108,7 +111,7 @@ class RemoveTag extends BaseModule
return 404; return 404;
} }
if (!Post\Category::deleteFileByURIId($item['uri-id'], Session::getLocalUser(), $type, $term)) { if (!Post\Category::deleteFileByURIId($item['uri-id'], $this->userSession->getLocalUserId(), $type, $term)) {
$this->systemMessages->addNotice($this->l10n->t('Item was not removed')); $this->systemMessages->addNotice($this->l10n->t('Item was not removed'));
return 500; return 500;
} }

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
@ -44,7 +43,7 @@ class SaveTag extends BaseModule
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice($this->t('You must be logged in to use this module')); DI::sysmsg()->addNotice($this->t('You must be logged in to use this module'));
$baseUrl->redirect(); $baseUrl->redirect();
} }
@ -63,11 +62,11 @@ class SaveTag extends BaseModule
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
throw new HTTPException\NotFoundException(); throw new HTTPException\NotFoundException();
} }
Model\Post\Category::storeFileByURIId($item['uri-id'], Session::getLocalUser(), Model\Post\Category::FILE, $term); Model\Post\Category::storeFileByURIId($item['uri-id'], DI::userSession()->getLocalUserId(), Model\Post\Category::FILE, $term);
} }
// return filer dialog // return filer dialog
$filetags = Model\Post\Category::getArray(Session::getLocalUser(), Model\Post\Category::FILE); $filetags = Model\Post\Category::getArray(DI::userSession()->getLocalUserId(), Model\Post\Category::FILE);
$tpl = Renderer::getMarkupTemplate("filer_dialog.tpl"); $tpl = Renderer::getMarkupTemplate("filer_dialog.tpl");
echo Renderer::replaceMacros($tpl, [ echo Renderer::replaceMacros($tpl, [

View file

@ -22,7 +22,6 @@
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -34,7 +33,7 @@ class FollowConfirm extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
parent::post($request); parent::post($request);
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
if (!$uid) { if (!$uid) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return; return;
@ -44,7 +43,7 @@ class FollowConfirm extends BaseModule
$duplex = intval($_POST['duplex'] ?? 0); $duplex = intval($_POST['duplex'] ?? 0);
$hidden = intval($_POST['hidden'] ?? 0); $hidden = intval($_POST['hidden'] ?? 0);
$intro = DI::intro()->selectOneById($intro_id, Session::getLocalUser()); $intro = DI::intro()->selectOneById($intro_id, DI::userSession()->getLocalUserId());
Contact\Introduction::confirm($intro, $duplex, $hidden); Contact\Introduction::confirm($intro, $duplex, $hidden);
DI::intro()->delete($intro); DI::intro()->delete($intro);

View file

@ -26,7 +26,6 @@ use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\DI; use Friendica\DI;
@ -54,7 +53,7 @@ class FriendSuggest extends BaseModule
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new ForbiddenException($this->t('Permission denied.')); throw new ForbiddenException($this->t('Permission denied.'));
} }
@ -68,7 +67,7 @@ class FriendSuggest extends BaseModule
$cid = intval($this->parameters['contact']); $cid = intval($this->parameters['contact']);
// We do query the "uid" as well to ensure that it is our contact // We do query the "uid" as well to ensure that it is our contact
if (!$this->dba->exists('contact', ['id' => $cid, 'uid' => Session::getLocalUser()])) { if (!$this->dba->exists('contact', ['id' => $cid, 'uid' => DI::userSession()->getLocalUserId()])) {
throw new NotFoundException($this->t('Contact not found.')); throw new NotFoundException($this->t('Contact not found.'));
} }
@ -78,7 +77,7 @@ class FriendSuggest extends BaseModule
} }
// We do query the "uid" as well to ensure that it is our contact // We do query the "uid" as well to ensure that it is our contact
$contact = $this->dba->selectFirst('contact', ['name', 'url', 'request', 'avatar'], ['id' => $suggest_contact_id, 'uid' => Session::getLocalUser()]); $contact = $this->dba->selectFirst('contact', ['name', 'url', 'request', 'avatar'], ['id' => $suggest_contact_id, 'uid' => DI::userSession()->getLocalUserId()]);
if (empty($contact)) { if (empty($contact)) {
DI::sysmsg()->addNotice($this->t('Suggested contact not found.')); DI::sysmsg()->addNotice($this->t('Suggested contact not found.'));
return; return;
@ -87,7 +86,7 @@ class FriendSuggest extends BaseModule
$note = Strings::escapeHtml(trim($_POST['note'] ?? '')); $note = Strings::escapeHtml(trim($_POST['note'] ?? ''));
$suggest = $this->friendSuggestRepo->save($this->friendSuggestFac->createNew( $suggest = $this->friendSuggestRepo->save($this->friendSuggestFac->createNew(
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
$cid, $cid,
$contact['name'], $contact['name'],
$contact['url'], $contact['url'],
@ -105,7 +104,7 @@ class FriendSuggest extends BaseModule
{ {
$cid = intval($this->parameters['contact']); $cid = intval($this->parameters['contact']);
$contact = $this->dba->selectFirst('contact', [], ['id' => $cid, 'uid' => Session::getLocalUser()]); $contact = $this->dba->selectFirst('contact', [], ['id' => $cid, 'uid' => DI::userSession()->getLocalUserId()]);
if (empty($contact)) { if (empty($contact)) {
DI::sysmsg()->addNotice($this->t('Contact not found.')); DI::sysmsg()->addNotice($this->t('Contact not found.'));
$this->baseUrl->redirect(); $this->baseUrl->redirect();
@ -121,7 +120,7 @@ class FriendSuggest extends BaseModule
AND NOT `archive` AND NOT `archive`
AND NOT `deleted` AND NOT `deleted`
AND `notify` != ""', AND `notify` != ""',
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
$cid, $cid,
Protocol::DFRN, Protocol::DFRN,
]); ]);

View file

@ -23,7 +23,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -37,7 +36,7 @@ class Group extends BaseModule
$this->ajaxPost(); $this->ajaxPost();
} }
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
DI::baseUrl()->redirect(); DI::baseUrl()->redirect();
} }
@ -47,9 +46,9 @@ class Group extends BaseModule
BaseModule::checkFormSecurityTokenRedirectOnError('/group/new', 'group_edit'); BaseModule::checkFormSecurityTokenRedirectOnError('/group/new', 'group_edit');
$name = trim($request['groupname']); $name = trim($request['groupname']);
$r = Model\Group::create(Session::getLocalUser(), $name); $r = Model\Group::create(DI::userSession()->getLocalUserId(), $name);
if ($r) { if ($r) {
$r = Model\Group::getIdByName(Session::getLocalUser(), $name); $r = Model\Group::getIdByName(DI::userSession()->getLocalUserId(), $name);
if ($r) { if ($r) {
DI::baseUrl()->redirect('group/' . $r); DI::baseUrl()->redirect('group/' . $r);
} }
@ -63,7 +62,7 @@ class Group extends BaseModule
if ((DI::args()->getArgc() == 2) && intval(DI::args()->getArgv()[1])) { if ((DI::args()->getArgc() == 2) && intval(DI::args()->getArgv()[1])) {
BaseModule::checkFormSecurityTokenRedirectOnError('/group', 'group_edit'); BaseModule::checkFormSecurityTokenRedirectOnError('/group', 'group_edit');
$group = DBA::selectFirst('group', ['id', 'name'], ['id' => DI::args()->getArgv()[1], 'uid' => Session::getLocalUser()]); $group = DBA::selectFirst('group', ['id', 'name'], ['id' => DI::args()->getArgv()[1], 'uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($group)) { if (!DBA::isResult($group)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Group not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('Group not found.'));
DI::baseUrl()->redirect('contact'); DI::baseUrl()->redirect('contact');
@ -80,7 +79,7 @@ class Group extends BaseModule
public function ajaxPost() public function ajaxPost()
{ {
try { try {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new \Exception(DI::l10n()->t('Permission denied.'), 403); throw new \Exception(DI::l10n()->t('Permission denied.'), 403);
} }
@ -88,12 +87,12 @@ class Group extends BaseModule
$group_id = $this->parameters['group']; $group_id = $this->parameters['group'];
$contact_id = $this->parameters['contact']; $contact_id = $this->parameters['contact'];
if (!Model\Group::exists($group_id, Session::getLocalUser())) { if (!Model\Group::exists($group_id, DI::userSession()->getLocalUserId())) {
throw new \Exception(DI::l10n()->t('Unknown group.'), 404); throw new \Exception(DI::l10n()->t('Unknown group.'), 404);
} }
// @TODO Backward compatibility with user contacts, remove by version 2022.03 // @TODO Backward compatibility with user contacts, remove by version 2022.03
$cdata = Model\Contact::getPublicAndUserContactID($contact_id, Session::getLocalUser()); $cdata = Model\Contact::getPublicAndUserContactID($contact_id, DI::userSession()->getLocalUserId());
if (empty($cdata['public'])) { if (empty($cdata['public'])) {
throw new \Exception(DI::l10n()->t('Contact not found.'), 404); throw new \Exception(DI::l10n()->t('Contact not found.'), 404);
} }
@ -143,7 +142,7 @@ class Group extends BaseModule
{ {
$change = false; $change = false;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(); throw new \Friendica\Network\HTTPException\ForbiddenException();
} }
@ -158,7 +157,7 @@ class Group extends BaseModule
} }
// Switch to text mode interface if we have more than 'n' contacts or group members // Switch to text mode interface if we have more than 'n' contacts or group members
$switchtotext = DI::pConfig()->get(Session::getLocalUser(), 'system', 'groupedit_image_limit'); $switchtotext = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'groupedit_image_limit');
if (is_null($switchtotext)) { if (is_null($switchtotext)) {
$switchtotext = DI::config()->get('system', 'groupedit_image_limit', 200); $switchtotext = DI::config()->get('system', 'groupedit_image_limit', 200);
} }
@ -210,7 +209,7 @@ class Group extends BaseModule
// @TODO: Replace with parameter from router // @TODO: Replace with parameter from router
if (intval(DI::args()->getArgv()[2])) { if (intval(DI::args()->getArgv()[2])) {
if (!Model\Group::exists(DI::args()->getArgv()[2], Session::getLocalUser())) { if (!Model\Group::exists(DI::args()->getArgv()[2], DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Group not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('Group not found.'));
DI::baseUrl()->redirect('contact'); DI::baseUrl()->redirect('contact');
} }
@ -226,14 +225,14 @@ class Group extends BaseModule
if ((DI::args()->getArgc() > 2) && intval(DI::args()->getArgv()[1]) && intval(DI::args()->getArgv()[2])) { if ((DI::args()->getArgc() > 2) && intval(DI::args()->getArgv()[1]) && intval(DI::args()->getArgv()[2])) {
BaseModule::checkFormSecurityTokenForbiddenOnError('group_member_change', 't'); BaseModule::checkFormSecurityTokenForbiddenOnError('group_member_change', 't');
if (DBA::exists('contact', ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser(), 'self' => false, 'pending' => false, 'blocked' => false])) { if (DBA::exists('contact', ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId(), 'self' => false, 'pending' => false, 'blocked' => false])) {
$change = intval(DI::args()->getArgv()[2]); $change = intval(DI::args()->getArgv()[2]);
} }
} }
// @TODO: Replace with parameter from router // @TODO: Replace with parameter from router
if ((DI::args()->getArgc() > 1) && intval(DI::args()->getArgv()[1])) { if ((DI::args()->getArgc() > 1) && intval(DI::args()->getArgv()[1])) {
$group = DBA::selectFirst('group', ['id', 'name'], ['id' => DI::args()->getArgv()[1], 'uid' => Session::getLocalUser(), 'deleted' => false]); $group = DBA::selectFirst('group', ['id', 'name'], ['id' => DI::args()->getArgv()[1], 'uid' => DI::userSession()->getLocalUserId(), 'deleted' => false]);
if (!DBA::isResult($group)) { if (!DBA::isResult($group)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Group not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('Group not found.'));
DI::baseUrl()->redirect('contact'); DI::baseUrl()->redirect('contact');
@ -316,11 +315,11 @@ class Group extends BaseModule
} }
if ($nogroup) { if ($nogroup) {
$contacts = Model\Contact\Group::listUngrouped(Session::getLocalUser()); $contacts = Model\Contact\Group::listUngrouped(DI::userSession()->getLocalUserId());
} else { } else {
$contacts_stmt = DBA::select('contact', [], $contacts_stmt = DBA::select('contact', [],
['rel' => [Model\Contact::FOLLOWER, Model\Contact::FRIEND, Model\Contact::SHARING], ['rel' => [Model\Contact::FOLLOWER, Model\Contact::FRIEND, Model\Contact::SHARING],
'uid' => Session::getLocalUser(), 'pending' => false, 'blocked' => false, 'failed' => false, 'self' => false], 'uid' => DI::userSession()->getLocalUserId(), 'pending' => false, 'blocked' => false, 'failed' => false, 'self' => false],
['order' => ['name']] ['order' => ['name']]
); );
$contacts = DBA::toArray($contacts_stmt); $contacts = DBA::toArray($contacts_stmt);

View file

@ -22,7 +22,6 @@
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Profile; use Friendica\Model\Profile;
use Friendica\Model\User; use Friendica\Model\User;
@ -36,7 +35,7 @@ class HCard extends BaseModule
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (Session::getLocalUser() && ($this->parameters['action'] ?? '') === 'view') { if (DI::userSession()->getLocalUserId() && ($this->parameters['action'] ?? '') === 'view') {
// A logged in user views a profile of a user // A logged in user views a profile of a user
$nickname = DI::app()->getLoggedInUserNickname(); $nickname = DI::app()->getLoggedInUserNickname();
} elseif (empty($this->parameters['action'])) { } elseif (empty($this->parameters['action'])) {
@ -78,7 +77,7 @@ class HCard extends BaseModule
$page['htmlhead'] .= "<link rel=\"dfrn-{$dfrn}\" href=\"" . $baseUrl->get() . "/dfrn_{$dfrn}/{$nickname}\" />\r\n"; $page['htmlhead'] .= "<link rel=\"dfrn-{$dfrn}\" href=\"" . $baseUrl->get() . "/dfrn_{$dfrn}/{$nickname}\" />\r\n";
} }
$block = (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()); $block = (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated());
// check if blocked // check if blocked
if ($block) { if ($block) {

View file

@ -24,7 +24,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Security\Login; use Friendica\Module\Security\Login;
@ -43,7 +42,7 @@ class Home extends BaseModule
Hook::callAll('home_init', $ret); Hook::callAll('home_init', $ret);
if (Session::getLocalUser() && ($app->getLoggedInUserNickname())) { if (DI::userSession()->getLocalUserId() && ($app->getLoggedInUserNickname())) {
DI::baseUrl()->redirect('network'); DI::baseUrl()->redirect('network');
} }

View file

@ -24,7 +24,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
use Friendica\Model\User; use Friendica\Model\User;
@ -39,7 +38,7 @@ class Invite extends BaseModule
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -53,7 +52,7 @@ class Invite extends BaseModule
$max_invites = 50; $max_invites = 50;
} }
$current_invites = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'sent_invites')); $current_invites = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'sent_invites'));
if ($current_invites > $max_invites) { if ($current_invites > $max_invites) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Total invitation limit exceeded.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Total invitation limit exceeded.'));
} }
@ -68,13 +67,13 @@ class Invite extends BaseModule
if ($config->get('system', 'invitation_only')) { if ($config->get('system', 'invitation_only')) {
$invitation_only = true; $invitation_only = true;
$invites_remaining = DI::pConfig()->get(Session::getLocalUser(), 'system', 'invites_remaining'); $invites_remaining = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining');
if ((!$invites_remaining) && (!$app->isSiteAdmin())) { if ((!$invites_remaining) && (!$app->isSiteAdmin())) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
} }
$user = User::getById(Session::getLocalUser()); $user = User::getById(DI::userSession()->getLocalUserId());
foreach ($recipients as $recipient) { foreach ($recipients as $recipient) {
$recipient = trim($recipient); $recipient = trim($recipient);
@ -91,7 +90,7 @@ class Invite extends BaseModule
if (!$app->isSiteAdmin()) { if (!$app->isSiteAdmin()) {
$invites_remaining--; $invites_remaining--;
if ($invites_remaining >= 0) { if ($invites_remaining >= 0) {
DI::pConfig()->set(Session::getLocalUser(), 'system', 'invites_remaining', $invites_remaining); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining', $invites_remaining);
} else { } else {
return; return;
} }
@ -113,7 +112,7 @@ class Invite extends BaseModule
if ($res) { if ($res) {
$total++; $total++;
$current_invites++; $current_invites++;
DI::pConfig()->set(Session::getLocalUser(), 'system', 'sent_invites', $current_invites); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'sent_invites', $current_invites);
if ($current_invites > $max_invites) { if ($current_invites > $max_invites) {
DI::sysmsg()->addNotice(DI::l10n()->t('Invitation limit exceeded. Please contact your site administrator.')); DI::sysmsg()->addNotice(DI::l10n()->t('Invitation limit exceeded. Please contact your site administrator.'));
return; return;
@ -128,7 +127,7 @@ class Invite extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -139,7 +138,7 @@ class Invite extends BaseModule
if ($config->get('system', 'invitation_only')) { if ($config->get('system', 'invitation_only')) {
$inviteOnly = true; $inviteOnly = true;
$x = DI::pConfig()->get(Session::getLocalUser(), 'system', 'invites_remaining'); $x = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining');
if ((!$x) && (!$app->isSiteAdmin())) { if ((!$x) && (!$app->isSiteAdmin())) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('You have no more invitations available')); throw new HTTPException\ForbiddenException(DI::l10n()->t('You have no more invitations available'));
} }

View file

@ -26,7 +26,6 @@ use Friendica\Core\Protocol;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Core\Session;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
@ -39,7 +38,7 @@ class Activity extends BaseModule
{ {
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
@ -51,13 +50,13 @@ class Activity extends BaseModule
$itemId = $this->parameters['id']; $itemId = $this->parameters['id'];
if (in_array($verb, ['announce', 'unannounce'])) { if (in_array($verb, ['announce', 'unannounce'])) {
$item = Post::selectFirst(['network', 'uri-id'], ['id' => $itemId, 'uid' => [Session::getLocalUser(), 0]]); $item = Post::selectFirst(['network', 'uri-id'], ['id' => $itemId, 'uid' => [DI::userSession()->getLocalUserId(), 0]]);
if ($item['network'] == Protocol::DIASPORA) { if ($item['network'] == Protocol::DIASPORA) {
Diaspora::performReshare($item['uri-id'], Session::getLocalUser()); Diaspora::performReshare($item['uri-id'], DI::userSession()->getLocalUserId());
} }
} }
if (!Item::performActivity($itemId, $verb, Session::getLocalUser())) { if (!Item::performActivity($itemId, $verb, DI::userSession()->getLocalUserId())) {
throw new HTTPException\BadRequestException(); throw new HTTPException\BadRequestException();
} }

View file

@ -31,7 +31,6 @@ use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -89,7 +88,7 @@ class Compose extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form('compose'); return Login::form('compose');
} }
@ -111,7 +110,7 @@ class Compose extends BaseModule
} }
} }
$user = User::getById(Session::getLocalUser(), ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'default-location']); $user = User::getById(DI::userSession()->getLocalUserId(), ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'default-location']);
$contact_allow_list = $this->ACLFormatter->expand($user['allow_cid']); $contact_allow_list = $this->ACLFormatter->expand($user['allow_cid']);
$group_allow_list = $this->ACLFormatter->expand($user['allow_gid']); $group_allow_list = $this->ACLFormatter->expand($user['allow_gid']);
@ -168,7 +167,7 @@ class Compose extends BaseModule
$contact = Contact::getById($a->getContactId()); $contact = Contact::getById($a->getContactId());
if ($this->pConfig->get(Session::getLocalUser(), 'system', 'set_creation_date')) { if ($this->pConfig->get(DI::userSession()->getLocalUserId(), 'system', 'set_creation_date')) {
$created_at = Temporal::getDateTimeField( $created_at = Temporal::getDateTimeField(
new \DateTime(DBA::NULL_DATETIME), new \DateTime(DBA::NULL_DATETIME),
new \DateTime('now'), new \DateTime('now'),
@ -204,8 +203,8 @@ class Compose extends BaseModule
'location_disabled' => $this->l10n->t('Location services are disabled. Please check the website\'s permissions on your device'), 'location_disabled' => $this->l10n->t('Location services are disabled. Please check the website\'s permissions on your device'),
'wait' => $this->l10n->t('Please wait'), 'wait' => $this->l10n->t('Please wait'),
'placeholdertitle' => $this->l10n->t('Set title'), 'placeholdertitle' => $this->l10n->t('Set title'),
'placeholdercategory' => Feature::isEnabled(Session::getLocalUser(),'categories') ? $this->l10n->t('Categories (comma-separated list)') : '', 'placeholdercategory' => Feature::isEnabled(DI::userSession()->getLocalUserId(),'categories') ? $this->l10n->t('Categories (comma-separated list)') : '',
'always_open_compose' => $this->pConfig->get(Session::getLocalUser(), 'frio', 'always_open_compose', 'always_open_compose' => $this->pConfig->get(DI::userSession()->getLocalUserId(), 'frio', 'always_open_compose',
$this->config->get('frio', 'always_open_compose', false)) ? '' : $this->config->get('frio', 'always_open_compose', false)) ? '' :
$this->l10n->t('You can make this page always open when you use the New Post button in the <a href="/settings/display">Theme Customization settings</a>.'), $this->l10n->t('You can make this page always open when you use the New Post button in the <a href="/settings/display">Theme Customization settings</a>.'),
], ],

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Item; namespace Friendica\Module\Item;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -38,7 +37,7 @@ class Follow extends BaseModule
{ {
$l10n = DI::l10n(); $l10n = DI::l10n();
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HttpException\ForbiddenException($l10n->t('Access denied.')); throw new HttpException\ForbiddenException($l10n->t('Access denied.'));
} }
@ -48,7 +47,7 @@ class Follow extends BaseModule
$itemId = intval($this->parameters['id']); $itemId = intval($this->parameters['id']);
if (!Item::performActivity($itemId, 'follow', Session::getLocalUser())) { if (!Item::performActivity($itemId, 'follow', DI::userSession()->getLocalUserId())) {
throw new HTTPException\BadRequestException($l10n->t('Unable to follow this item.')); throw new HTTPException\BadRequestException($l10n->t('Unable to follow this item.'));
} }

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Item; namespace Friendica\Module\Item;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -38,7 +37,7 @@ class Ignore extends BaseModule
{ {
$l10n = DI::l10n(); $l10n = DI::l10n();
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HttpException\ForbiddenException($l10n->t('Access denied.')); throw new HttpException\ForbiddenException($l10n->t('Access denied.'));
} }
@ -55,10 +54,10 @@ class Ignore extends BaseModule
throw new HTTPException\NotFoundException(); throw new HTTPException\NotFoundException();
} }
$ignored = !Post\ThreadUser::getIgnored($thread['uri-id'], Session::getLocalUser()); $ignored = !Post\ThreadUser::getIgnored($thread['uri-id'], DI::userSession()->getLocalUserId());
if (in_array($thread['uid'], [0, Session::getLocalUser()])) { if (in_array($thread['uid'], [0, DI::userSession()->getLocalUserId()])) {
Post\ThreadUser::setIgnored($thread['uri-id'], Session::getLocalUser(), $ignored); Post\ThreadUser::setIgnored($thread['uri-id'], DI::userSession()->getLocalUserId(), $ignored);
} else { } else {
throw new HTTPException\BadRequestException(); throw new HTTPException\BadRequestException();
} }

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Item; namespace Friendica\Module\Item;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -38,7 +37,7 @@ class Pin extends BaseModule
{ {
$l10n = DI::l10n(); $l10n = DI::l10n();
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HttpException\ForbiddenException($l10n->t('Access denied.')); throw new HttpException\ForbiddenException($l10n->t('Access denied.'));
} }
@ -53,16 +52,16 @@ class Pin extends BaseModule
throw new HTTPException\NotFoundException(); throw new HTTPException\NotFoundException();
} }
if (!in_array($item['uid'], [0, Session::getLocalUser()])) { if (!in_array($item['uid'], [0, DI::userSession()->getLocalUserId()])) {
throw new HttpException\ForbiddenException($l10n->t('Access denied.')); throw new HttpException\ForbiddenException($l10n->t('Access denied.'));
} }
$pinned = !$item['featured']; $pinned = !$item['featured'];
if ($pinned) { if ($pinned) {
Post\Collection::add($item['uri-id'], Post\Collection::FEATURED, $item['author-id'], Session::getLocalUser()); Post\Collection::add($item['uri-id'], Post\Collection::FEATURED, $item['author-id'], DI::userSession()->getLocalUserId());
} else { } else {
Post\Collection::remove($item['uri-id'], Post\Collection::FEATURED, Session::getLocalUser()); Post\Collection::remove($item['uri-id'], Post\Collection::FEATURED, DI::userSession()->getLocalUserId());
} }
// See if we've been passed a return path to redirect to // See if we've been passed a return path to redirect to

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Item; namespace Friendica\Module\Item;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -39,7 +38,7 @@ class Star extends BaseModule
{ {
$l10n = DI::l10n(); $l10n = DI::l10n();
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HttpException\ForbiddenException($l10n->t('Access denied.')); throw new HttpException\ForbiddenException($l10n->t('Access denied.'));
} }
@ -50,13 +49,13 @@ class Star extends BaseModule
$itemId = intval($this->parameters['id']); $itemId = intval($this->parameters['id']);
$item = Post::selectFirstForUser(Session::getLocalUser(), ['uid', 'uri-id', 'starred'], ['uid' => [0, Session::getLocalUser()], 'id' => $itemId]); $item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['uid', 'uri-id', 'starred'], ['uid' => [0, DI::userSession()->getLocalUserId()], 'id' => $itemId]);
if (empty($item)) { if (empty($item)) {
throw new HTTPException\NotFoundException(); throw new HTTPException\NotFoundException();
} }
if ($item['uid'] == 0) { if ($item['uid'] == 0) {
$stored = Item::storeForUserByUriId($item['uri-id'], Session::getLocalUser(), ['post-reason' => Item::PR_ACTIVITY]); $stored = Item::storeForUserByUriId($item['uri-id'], DI::userSession()->getLocalUserId(), ['post-reason' => Item::PR_ACTIVITY]);
if (!empty($stored)) { if (!empty($stored)) {
$item = Post::selectFirst(['starred'], ['id' => $stored]); $item = Post::selectFirst(['starred'], ['id' => $stored]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {

View file

@ -24,7 +24,7 @@ namespace Friendica\Module;
use Friendica\App; use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -50,14 +50,17 @@ class Magic extends BaseModule
protected $dba; protected $dba;
/** @var ICanSendHttpRequests */ /** @var ICanSendHttpRequests */
protected $httpClient; protected $httpClient;
/** @var IHandleUserSessions */
protected $userSession;
public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Database $dba, ICanSendHttpRequests $httpClient, array $server, array $parameters = []) public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Database $dba, ICanSendHttpRequests $httpClient, IHandleUserSessions $userSession, $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->app = $app; $this->app = $app;
$this->dba = $dba; $this->dba = $dba;
$this->httpClient = $httpClient; $this->httpClient = $httpClient;
$this->userSession = $userSession;
} }
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
@ -91,8 +94,8 @@ class Magic extends BaseModule
} }
// OpenWebAuth // OpenWebAuth
if (Session::getLocalUser() && $owa) { if ($this->userSession->getLocalUserId() && $owa) {
$user = User::getById(Session::getLocalUser()); $user = User::getById($this->userSession->getLocalUserId());
// Extract the basepath // Extract the basepath
// NOTE: we need another solution because this does only work // NOTE: we need another solution because this does only work

View file

@ -22,7 +22,6 @@
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -43,7 +42,7 @@ class NoScrape extends BaseModule
if (isset($this->parameters['nick'])) { if (isset($this->parameters['nick'])) {
// Get infos about a specific nick (public) // Get infos about a specific nick (public)
$which = $this->parameters['nick']; $which = $this->parameters['nick'];
} elseif (Session::getLocalUser() && isset($this->parameters['profile']) && DI::args()->get(2) == 'view') { } elseif (DI::userSession()->getLocalUserId() && isset($this->parameters['profile']) && DI::args()->get(2) == 'view') {
// view infos about a known profile (needs a login) // view infos about a known profile (needs a login)
$which = $a->getLoggedInUserNickname(); $which = $a->getLoggedInUserNickname();
} else { } else {

View file

@ -30,7 +30,7 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\BaseNotifications; use Friendica\Module\BaseNotifications;
@ -50,9 +50,9 @@ class Introductions extends BaseNotifications
/** @var Mode */ /** @var Mode */
protected $mode; protected $mode;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Mode $mode, IntroductionFactory $notificationIntro, array $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Mode $mode, IntroductionFactory $notificationIntro, IHandleUserSessions $userSession, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $userSession, $server, $parameters);
$this->notificationIntro = $notificationIntro; $this->notificationIntro = $notificationIntro;
$this->mode = $mode; $this->mode = $mode;
@ -99,7 +99,7 @@ class Introductions extends BaseNotifications
'text' => (!$all ? $this->t('Show Ignored Requests') : $this->t('Hide Ignored Requests')), 'text' => (!$all ? $this->t('Show Ignored Requests') : $this->t('Hide Ignored Requests')),
]; ];
$owner = User::getOwnerDataById(Session::getLocalUser()); $owner = User::getOwnerDataById(DI::userSession()->getLocalUserId());
// Loop through all introduction notifications.This creates an array with the output html for each // Loop through all introduction notifications.This creates an array with the output html for each
// introduction // introduction

View file

@ -26,7 +26,6 @@ use Friendica\BaseModule;
use Friendica\Contact\Introduction\Repository\Introduction; use Friendica\Contact\Introduction\Repository\Introduction;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -73,14 +72,14 @@ class Notification extends BaseModule
*/ */
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\UnauthorizedException($this->l10n->t('Permission denied.')); throw new HTTPException\UnauthorizedException($this->l10n->t('Permission denied.'));
} }
$request_id = $this->parameters['id'] ?? false; $request_id = $this->parameters['id'] ?? false;
if ($request_id) { if ($request_id) {
$intro = $this->introductionRepo->selectOneById($request_id, Session::getLocalUser()); $intro = $this->introductionRepo->selectOneById($request_id, DI::userSession()->getLocalUserId());
switch ($_POST['submit']) { switch ($_POST['submit']) {
case $this->l10n->t('Discard'): case $this->l10n->t('Discard'):
@ -104,14 +103,14 @@ class Notification extends BaseModule
*/ */
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\UnauthorizedException($this->l10n->t('Permission denied.')); throw new HTTPException\UnauthorizedException($this->l10n->t('Permission denied.'));
} }
if ($this->args->get(1) === 'mark' && $this->args->get(2) === 'all') { if ($this->args->get(1) === 'mark' && $this->args->get(2) === 'all') {
try { try {
$this->notificationRepo->setAllSeenForUser(Session::getLocalUser()); $this->notificationRepo->setAllSeenForUser(DI::userSession()->getLocalUserId());
$success = $this->notifyRepo->setAllSeenForUser(Session::getLocalUser()); $success = $this->notifyRepo->setAllSeenForUser(DI::userSession()->getLocalUserId());
} catch (\Exception $e) { } catch (\Exception $e) {
$this->logger->warning('set all seen failed.', ['exception' => $e]); $this->logger->warning('set all seen failed.', ['exception' => $e]);
$success = false; $success = false;
@ -132,7 +131,7 @@ class Notification extends BaseModule
*/ */
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice($this->l10n->t('You must be logged in to show this page.')); DI::sysmsg()->addNotice($this->l10n->t('You must be logged in to show this page.'));
return Login::form(); return Login::form();
} }
@ -151,11 +150,11 @@ class Notification extends BaseModule
private function handleNotify(int $notifyId) private function handleNotify(int $notifyId)
{ {
$Notify = $this->notifyRepo->selectOneById($notifyId); $Notify = $this->notifyRepo->selectOneById($notifyId);
if ($Notify->uid !== Session::getLocalUser()) { if ($Notify->uid !== DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
if ($this->pconfig->get(Session::getLocalUser(), 'system', 'detailed_notif')) { if ($this->pconfig->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif')) {
$Notify->setSeen(); $Notify->setSeen();
$this->notifyRepo->save($Notify); $this->notifyRepo->save($Notify);
} else { } else {
@ -176,11 +175,11 @@ class Notification extends BaseModule
private function handleNotification(int $notificationId) private function handleNotification(int $notificationId)
{ {
$Notification = $this->notificationRepo->selectOneById($notificationId); $Notification = $this->notificationRepo->selectOneById($notificationId);
if ($Notification->uid !== Session::getLocalUser()) { if ($Notification->uid !== DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(); throw new HTTPException\ForbiddenException();
} }
if ($this->pconfig->get(Session::getLocalUser(), 'system', 'detailed_notif')) { if ($this->pconfig->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif')) {
$Notification->setSeen(); $Notification->setSeen();
$this->notificationRepo->save($Notification); $this->notificationRepo->save($Notification);
} else { } else {

View file

@ -26,6 +26,7 @@ use Friendica\App\Arguments;
use Friendica\Content\Nav; use Friendica\Content\Nav;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Module\BaseNotifications; use Friendica\Module\BaseNotifications;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Navigation\Notifications\ValueObject\FormattedNotify; use Friendica\Navigation\Notifications\ValueObject\FormattedNotify;
@ -44,9 +45,9 @@ class Notifications extends BaseNotifications
/** @var \Friendica\Navigation\Notifications\Factory\FormattedNotify */ /** @var \Friendica\Navigation\Notifications\Factory\FormattedNotify */
protected $formattedNotifyFactory; protected $formattedNotifyFactory;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, \Friendica\Navigation\Notifications\Factory\FormattedNotify $formattedNotifyFactory, array $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, \Friendica\Navigation\Notifications\Factory\FormattedNotify $formattedNotifyFactory, IHandleUserSessions $userSession, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $userSession, $server, $parameters);
$this->formattedNotifyFactory = $formattedNotifyFactory; $this->formattedNotifyFactory = $formattedNotifyFactory;
} }

View file

@ -28,7 +28,6 @@ use Friendica\Content\ForumManager;
use Friendica\Core\Cache\Enum\Duration; use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -91,18 +90,18 @@ class Ping extends BaseModule
$today_birthday_count = 0; $today_birthday_count = 0;
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'detailed_notif')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif')) {
$notifications = $this->notificationRepo->selectDetailedForUser(Session::getLocalUser()); $notifications = $this->notificationRepo->selectDetailedForUser(DI::userSession()->getLocalUserId());
} else { } else {
$notifications = $this->notificationRepo->selectDigestForUser(Session::getLocalUser()); $notifications = $this->notificationRepo->selectDigestForUser(DI::userSession()->getLocalUserId());
} }
$condition = [ $condition = [
"`unseen` AND `uid` = ? AND NOT `origin` AND (`vid` != ? OR `vid` IS NULL)", "`unseen` AND `uid` = ? AND NOT `origin` AND (`vid` != ? OR `vid` IS NULL)",
Session::getLocalUser(), Verb::getID(Activity::FOLLOW) DI::userSession()->getLocalUserId(), Verb::getID(Activity::FOLLOW)
]; ];
$items = Post::selectForUser(Session::getLocalUser(), ['wall', 'uid', 'uri-id'], $condition, ['limit' => 1000]); $items = Post::selectForUser(DI::userSession()->getLocalUserId(), ['wall', 'uid', 'uri-id'], $condition, ['limit' => 1000]);
if (DBA::isResult($items)) { if (DBA::isResult($items)) {
$items_unseen = Post::toArray($items, false); $items_unseen = Post::toArray($items, false);
$arr = ['items' => $items_unseen]; $arr = ['items' => $items_unseen];
@ -140,12 +139,12 @@ class Ping extends BaseModule
} }
} }
$intros = $this->introductionRepo->selectForUser(Session::getLocalUser()); $intros = $this->introductionRepo->selectForUser(DI::userSession()->getLocalUserId());
$intro_count = $intros->count(); $intro_count = $intros->count();
$myurl = DI::baseUrl() . '/profile/' . DI::app()->getLoggedInUserNickname(); $myurl = DI::baseUrl() . '/profile/' . DI::app()->getLoggedInUserNickname();
$mail_count = DBA::count('mail', ["`uid` = ? AND NOT `seen` AND `from-url` != ?", Session::getLocalUser(), $myurl]); $mail_count = DBA::count('mail', ["`uid` = ? AND NOT `seen` AND `from-url` != ?", DI::userSession()->getLocalUserId(), $myurl]);
if (intval(DI::config()->get('config', 'register_policy')) === Register::APPROVE && DI::app()->isSiteAdmin()) { if (intval(DI::config()->get('config', 'register_policy')) === Register::APPROVE && DI::app()->isSiteAdmin()) {
$regs = \Friendica\Model\Register::getPending(); $regs = \Friendica\Model\Register::getPending();
@ -155,12 +154,12 @@ class Ping extends BaseModule
} }
} }
$cachekey = 'ping:events:' . Session::getLocalUser(); $cachekey = 'ping:events:' . DI::userSession()->getLocalUserId();
$ev = DI::cache()->get($cachekey); $ev = DI::cache()->get($cachekey);
if (is_null($ev)) { if (is_null($ev)) {
$ev = DBA::selectToArray('event', ['type', 'start'], $ev = DBA::selectToArray('event', ['type', 'start'],
["`uid` = ? AND `start` < ? AND `finish` > ? AND NOT `ignore`", ["`uid` = ? AND `start` < ? AND `finish` > ? AND NOT `ignore`",
Session::getLocalUser(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utcNow()]); DI::userSession()->getLocalUserId(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utcNow()]);
DI::cache()->set($cachekey, $ev, Duration::HOUR); DI::cache()->set($cachekey, $ev, Duration::HOUR);
} }
@ -188,7 +187,7 @@ class Ping extends BaseModule
} }
} }
$owner = User::getOwnerDataById(Session::getLocalUser()); $owner = User::getOwnerDataById(DI::userSession()->getLocalUserId());
$navNotifications = array_map(function (Entity\Notification $notification) use ($owner) { $navNotifications = array_map(function (Entity\Notification $notification) use ($owner) {
if (!DI::notify()->NotifyOnDesktop($notification)) { if (!DI::notify()->NotifyOnDesktop($notification)) {
@ -215,7 +214,7 @@ class Ping extends BaseModule
} }
if (DBA::isResult($regs)) { if (DBA::isResult($regs)) {
if (count($regs) <= 1 || DI::pConfig()->get(Session::getLocalUser(), 'system', 'detailed_notif')) { if (count($regs) <= 1 || DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif')) {
foreach ($regs as $reg) { foreach ($regs as $reg) {
$navNotifications[] = $this->formattedNavNotification->createFromParams( $navNotifications[] = $this->formattedNavNotification->createFromParams(
[ [

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\OAuth; namespace Friendica\Module\OAuth;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\BaseApi; use Friendica\Module\BaseApi;
use Friendica\Security\OAuth; use Friendica\Security\OAuth;
@ -71,7 +70,7 @@ class Authorize extends BaseApi
unset($redirect_request['pagename']); unset($redirect_request['pagename']);
$redirect = 'oauth/authorize?' . http_build_query($redirect_request); $redirect = 'oauth/authorize?' . http_build_query($redirect_request);
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
if (empty($uid)) { if (empty($uid)) {
Logger::info('Redirect to login'); Logger::info('Redirect to login');
DI::app()->redirect('login?return_path=' . urlencode($redirect)); DI::app()->redirect('login?return_path=' . urlencode($redirect));

View file

@ -21,19 +21,33 @@
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Session; use Friendica\Core\L10n;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Network\HTTPException\BadRequestException; use Friendica\Network\HTTPException\BadRequestException;
use Friendica\Util; use Friendica\Util;
use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface;
class ParseUrl extends BaseModule class ParseUrl extends BaseModule
{ {
/** @var IHandleUserSessions */
protected $userSession;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IHandleUserSessions $userSession, $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->userSession = $userSession;
}
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
if (!Session::isAuthenticated()) { if (!$this->userSession->isAuthenticated()) {
throw new \Friendica\Network\HTTPException\ForbiddenException(); throw new \Friendica\Network\HTTPException\ForbiddenException();
} }

View file

@ -22,7 +22,6 @@
namespace Friendica\Module; namespace Friendica\Module;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -50,7 +49,7 @@ class PermissionTooltip extends \Friendica\BaseModule
throw new HTTPException\BadRequestException(DI::l10n()->t('Wrong type "%s", expected one of: %s', $type, implode(', ', $expectedTypes))); throw new HTTPException\BadRequestException(DI::l10n()->t('Wrong type "%s", expected one of: %s', $type, implode(', ', $expectedTypes)));
} }
$condition = ['id' => $referenceId, 'uid' => [0, Session::getLocalUser()]]; $condition = ['id' => $referenceId, 'uid' => [0, DI::userSession()->getLocalUserId()]];
if ($type == 'item') { if ($type == 'item') {
$fields = ['uid', 'psid', 'private', 'uri-id']; $fields = ['uid', 'psid', 'private', 'uri-id'];
$model = Post::selectFirst($fields, $condition); $model = Post::selectFirst($fields, $condition);
@ -178,7 +177,7 @@ class PermissionTooltip extends \Friendica\BaseModule
private function fetchReceivers(int $uriId): string private function fetchReceivers(int $uriId): string
{ {
$own_url = ''; $own_url = '';
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
if ($uid) { if ($uid) {
$owner = User::getOwnerDataById($uid); $owner = User::getOwnerDataById($uid);
if (!empty($owner['url'])) { if (!empty($owner['url'])) {

View file

@ -24,7 +24,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -259,7 +258,7 @@ class Photo extends BaseModule
return MPhoto::getPhoto($matches[1], $matches[2]); return MPhoto::getPhoto($matches[1], $matches[2]);
} }
return MPhoto::createPhotoForExternalResource($url, (int)Session::getLocalUser(), $media['mimetype'] ?? ''); return MPhoto::createPhotoForExternalResource($url, (int)DI::userSession()->getLocalUserId(), $media['mimetype'] ?? '');
case 'media': case 'media':
$media = DBA::selectFirst('post-media', ['url', 'mimetype', 'uri-id'], ['id' => $id, 'type' => Post\Media::IMAGE]); $media = DBA::selectFirst('post-media', ['url', 'mimetype', 'uri-id'], ['id' => $id, 'type' => Post\Media::IMAGE]);
if (empty($media)) { if (empty($media)) {
@ -270,14 +269,14 @@ class Photo extends BaseModule
return MPhoto::getPhoto($matches[1], $matches[2]); return MPhoto::getPhoto($matches[1], $matches[2]);
} }
return MPhoto::createPhotoForExternalResource($media['url'], (int)Session::getLocalUser(), $media['mimetype']); return MPhoto::createPhotoForExternalResource($media['url'], (int)DI::userSession()->getLocalUserId(), $media['mimetype']);
case 'link': case 'link':
$link = DBA::selectFirst('post-link', ['url', 'mimetype'], ['id' => $id]); $link = DBA::selectFirst('post-link', ['url', 'mimetype'], ['id' => $id]);
if (empty($link)) { if (empty($link)) {
return false; return false;
} }
return MPhoto::createPhotoForExternalResource($link['url'], (int)Session::getLocalUser(), $link['mimetype'] ?? ''); return MPhoto::createPhotoForExternalResource($link['url'], (int)DI::userSession()->getLocalUserId(), $link['mimetype'] ?? '');
case 'contact': case 'contact':
$fields = ['uid', 'uri-id', 'url', 'nurl', 'avatar', 'photo', 'xmpp', 'addr', 'network', 'failed', 'updated']; $fields = ['uid', 'uri-id', 'url', 'nurl', 'avatar', 'photo', 'xmpp', 'addr', 'network', 'failed', 'updated'];
$contact = Contact::getById($id, $fields); $contact = Contact::getById($id, $fields);

View file

@ -25,7 +25,6 @@ use Friendica\Content\Nav;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Module; use Friendica\Module;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -37,7 +36,7 @@ class Common extends BaseProfile
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
} }
@ -56,7 +55,7 @@ class Common extends BaseProfile
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
$displayCommonTab = Session::isAuthenticated() && $profile['uid'] != Session::getLocalUser(); $displayCommonTab = DI::userSession()->isAuthenticated() && $profile['uid'] != DI::userSession()->getLocalUserId();
if (!$displayCommonTab) { if (!$displayCommonTab) {
$a->redirect('profile/' . $nickname . '/contacts'); $a->redirect('profile/' . $nickname . '/contacts');

View file

@ -25,7 +25,6 @@ use Friendica\Content\Nav;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
@ -36,7 +35,7 @@ class Contacts extends Module\BaseProfile
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
} }
@ -50,7 +49,7 @@ class Contacts extends Module\BaseProfile
throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
} }
$is_owner = $profile['uid'] == Session::getLocalUser(); $is_owner = $profile['uid'] == DI::userSession()->getLocalUserId();
if ($profile['hide-friends'] && !$is_owner) { if ($profile['hide-friends'] && !$is_owner) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
@ -60,7 +59,7 @@ class Contacts extends Module\BaseProfile
$o = self::getTabsHTML($a, 'contacts', $is_owner, $profile['nickname'], $profile['hide-friends']); $o = self::getTabsHTML($a, 'contacts', $is_owner, $profile['nickname'], $profile['hide-friends']);
$tabs = self::getContactFilterTabs('profile/' . $nickname, $type, Session::isAuthenticated() && $profile['uid'] != Session::getLocalUser()); $tabs = self::getContactFilterTabs('profile/' . $nickname, $type, DI::userSession()->isAuthenticated() && $profile['uid'] != DI::userSession()->getLocalUserId());
$condition = [ $condition = [
'uid' => $profile['uid'], 'uid' => $profile['uid'],

View file

@ -21,7 +21,6 @@
namespace Friendica\Module\Profile; namespace Friendica\Module\Profile;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Profile as ProfileModel; use Friendica\Model\Profile as ProfileModel;
@ -43,7 +42,7 @@ class Media extends BaseProfile
DI::page()['htmlhead'] .= '<meta content="noindex, noarchive" name="robots" />' . "\n"; DI::page()['htmlhead'] .= '<meta content="noindex, noarchive" name="robots" />' . "\n";
} }
$is_owner = Session::getLocalUser() == $profile['uid']; $is_owner = DI::userSession()->getLocalUserId() == $profile['uid'];
$o = self::getTabsHTML($a, 'media', $is_owner, $profile['nickname'], $profile['hide-friends']); $o = self::getTabsHTML($a, 'media', $is_owner, $profile['nickname'], $profile['hide-friends']);

View file

@ -29,7 +29,6 @@ use Friendica\Content\Text\HTML;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -82,13 +81,13 @@ class Profile extends BaseProfile
throw new HTTPException\NotFoundException(DI::l10n()->t('Profile not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('Profile not found.'));
} }
$remote_contact_id = Session::getRemoteContactID($profile['uid']); $remote_contact_id = DI::userSession()->getRemoteContactID($profile['uid']);
if (DI::config()->get('system', 'block_public') && !Session::getLocalUser() && !$remote_contact_id) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->getLocalUserId() && !$remote_contact_id) {
return Login::form(); return Login::form();
} }
$is_owner = Session::getLocalUser() == $profile['uid']; $is_owner = DI::userSession()->getLocalUserId() == $profile['uid'];
if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact_id) { if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact_id) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.'));
@ -102,7 +101,7 @@ class Profile extends BaseProfile
Nav::setSelected('home'); Nav::setSelected('home');
$is_owner = Session::getLocalUser() == $profile['uid']; $is_owner = DI::userSession()->getLocalUserId() == $profile['uid'];
$o = self::getTabsHTML($a, 'profile', $is_owner, $profile['nickname'], $profile['hide-friends']); $o = self::getTabsHTML($a, 'profile', $is_owner, $profile['nickname'], $profile['hide-friends']);
if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact_id) { if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact_id) {
@ -117,7 +116,7 @@ class Profile extends BaseProfile
$view_as_contact_id = intval($_GET['viewas'] ?? 0); $view_as_contact_id = intval($_GET['viewas'] ?? 0);
$view_as_contacts = Contact::selectToArray(['id', 'name'], [ $view_as_contacts = Contact::selectToArray(['id', 'name'], [
'uid' => Session::getLocalUser(), 'uid' => DI::userSession()->getLocalUserId(),
'rel' => [Contact::FOLLOWER, Contact::SHARING, Contact::FRIEND], 'rel' => [Contact::FOLLOWER, Contact::SHARING, Contact::FRIEND],
'network' => Protocol::DFRN, 'network' => Protocol::DFRN,
'blocked' => false, 'blocked' => false,
@ -247,7 +246,7 @@ class Profile extends BaseProfile
'$submit' => DI::l10n()->t('Submit'), '$submit' => DI::l10n()->t('Submit'),
'$basic' => DI::l10n()->t('Basic'), '$basic' => DI::l10n()->t('Basic'),
'$advanced' => DI::l10n()->t('Advanced'), '$advanced' => DI::l10n()->t('Advanced'),
'$is_owner' => $profile['uid'] == Session::getLocalUser(), '$is_owner' => $profile['uid'] == DI::userSession()->getLocalUserId(),
'$query_string' => DI::args()->getQueryString(), '$query_string' => DI::args()->getQueryString(),
'$basic_fields' => $basic_fields, '$basic_fields' => $basic_fields,
'$custom_fields' => $custom_fields, '$custom_fields' => $custom_fields,
@ -308,8 +307,8 @@ class Profile extends BaseProfile
} }
// site block // site block
$blocked = !Session::getLocalUser() && !$remote_contact_id && DI::config()->get('system', 'block_public'); $blocked = !DI::userSession()->getLocalUserId() && !$remote_contact_id && DI::config()->get('system', 'block_public');
$userblock = !Session::getLocalUser() && !$remote_contact_id && $profile['hidewall']; $userblock = !DI::userSession()->getLocalUserId() && !$remote_contact_id && $profile['hidewall'];
if (!$blocked && !$userblock) { if (!$blocked && !$userblock) {
$keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], $profile['pub_keywords'] ?? ''); $keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], $profile['pub_keywords'] ?? '');
if (strlen($keywords)) { if (strlen($keywords)) {

View file

@ -24,7 +24,6 @@ namespace Friendica\Module\Profile;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Post; use Friendica\Model\Post;
@ -36,7 +35,7 @@ class Schedule extends BaseProfile
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -44,7 +43,7 @@ class Schedule extends BaseProfile
throw new HTTPException\BadRequestException(); throw new HTTPException\BadRequestException();
} }
if (!DBA::exists('delayed-post', ['id' => $_REQUEST['delete'], 'uid' => Session::getLocalUser()])) { if (!DBA::exists('delayed-post', ['id' => $_REQUEST['delete'], 'uid' => DI::userSession()->getLocalUserId()])) {
throw new HTTPException\NotFoundException(); throw new HTTPException\NotFoundException();
} }
@ -53,7 +52,7 @@ class Schedule extends BaseProfile
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -62,7 +61,7 @@ class Schedule extends BaseProfile
$o = self::getTabsHTML($a, 'schedule', true, $a->getLoggedInUserNickname(), false); $o = self::getTabsHTML($a, 'schedule', true, $a->getLoggedInUserNickname(), false);
$schedule = []; $schedule = [];
$delayed = DBA::select('delayed-post', [], ['uid' => Session::getLocalUser()]); $delayed = DBA::select('delayed-post', [], ['uid' => DI::userSession()->getLocalUserId()]);
while ($row = DBA::fetch($delayed)) { while ($row = DBA::fetch($delayed)) {
$parameter = Post\Delayed::getParametersForid($row['id']); $parameter = Post\Delayed::getParametersForid($row['id']);
if (empty($parameter)) { if (empty($parameter)) {

View file

@ -26,7 +26,6 @@ use Friendica\Content\Pager;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\ACL; use Friendica\Core\ACL;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -92,19 +91,19 @@ class Status extends BaseProfile
$hashtags = $_GET['tag'] ?? ''; $hashtags = $_GET['tag'] ?? '';
if (DI::config()->get('system', 'block_public') && !Session::getLocalUser() && !Session::getRemoteContactID($profile['uid'])) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->getLocalUserId() && !DI::userSession()->getRemoteContactID($profile['uid'])) {
return Login::form(); return Login::form();
} }
$o = ''; $o = '';
if ($profile['uid'] == Session::getLocalUser()) { if ($profile['uid'] == DI::userSession()->getLocalUserId()) {
Nav::setSelected('home'); Nav::setSelected('home');
} }
$remote_contact = Session::getRemoteContactID($profile['uid']); $remote_contact = DI::userSession()->getRemoteContactID($profile['uid']);
$is_owner = Session::getLocalUser() == $profile['uid']; $is_owner = DI::userSession()->getLocalUserId() == $profile['uid'];
$last_updated_key = "profile:" . $profile['uid'] . ":" . Session::getLocalUser() . ":" . $remote_contact; $last_updated_key = "profile:" . $profile['uid'] . ":" . DI::userSession()->getLocalUserId() . ":" . $remote_contact;
if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact) { if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact) {
DI::sysmsg()->addNotice(DI::l10n()->t('Access to this profile has been restricted.')); DI::sysmsg()->addNotice(DI::l10n()->t('Access to this profile has been restricted.'));
@ -166,10 +165,10 @@ class Status extends BaseProfile
} }
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$itemspage_network = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemspage_network = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$itemspage_network = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $itemspage_network = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -197,9 +196,9 @@ class Status extends BaseProfile
} }
if ($is_owner) { if ($is_owner) {
$unseen = Post::exists(['wall' => true, 'unseen' => true, 'uid' => Session::getLocalUser()]); $unseen = Post::exists(['wall' => true, 'unseen' => true, 'uid' => DI::userSession()->getLocalUserId()]);
if ($unseen) { if ($unseen) {
Item::update(['unseen' => false], ['wall' => true, 'unseen' => true, 'uid' => Session::getLocalUser()]); Item::update(['unseen' => false], ['wall' => true, 'unseen' => true, 'uid' => DI::userSession()->getLocalUserId()]);
} }
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Network\HTTPClient\Client\HttpClientAccept; use Friendica\Network\HTTPClient\Client\HttpClientAccept;
@ -75,7 +74,7 @@ class Proxy extends BaseModule
throw new \Friendica\Network\HTTPException\BadRequestException(); throw new \Friendica\Network\HTTPException\BadRequestException();
} }
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
Logger::debug('Redirecting not logged in user to original address', ['url' => $request['url']]); Logger::debug('Redirecting not logged in user to original address', ['url' => $request['url']]);
System::externalRedirect($request['url']); System::externalRedirect($request['url']);
} }
@ -84,7 +83,7 @@ class Proxy extends BaseModule
$request['url'] = str_replace(' ', '+', $request['url']); $request['url'] = str_replace(' ', '+', $request['url']);
// Fetch the content with the local user // Fetch the content with the local user
$fetchResult = HTTPSignature::fetchRaw($request['url'], Session::getLocalUser(), [HttpClientOptions::ACCEPT_CONTENT => [HttpClientAccept::IMAGE], 'timeout' => 10]); $fetchResult = HTTPSignature::fetchRaw($request['url'], DI::userSession()->getLocalUserId(), [HttpClientOptions::ACCEPT_CONTENT => [HttpClientAccept::IMAGE], 'timeout' => 10]);
$img_str = $fetchResult->getBody(); $img_str = $fetchResult->getBody();
if (!$fetchResult->isSuccess() || empty($img_str)) { if (!$fetchResult->isSuccess() || empty($img_str)) {
@ -93,7 +92,7 @@ class Proxy extends BaseModule
// stop. // stop.
} }
Logger::debug('Got picture', ['Content-Type' => $fetchResult->getHeader('Content-Type'), 'uid' => Session::getLocalUser(), 'image' => $request['url']]); Logger::debug('Got picture', ['Content-Type' => $fetchResult->getHeader('Content-Type'), 'uid' => DI::userSession()->getLocalUserId(), 'image' => $request['url']]);
$mime = Images::getMimeTypeByData($img_str); $mime = Images::getMimeTypeByData($img_str);

View file

@ -29,7 +29,6 @@ use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -74,20 +73,20 @@ class Register extends BaseModule
// 'block_extended_register' blocks all registrations, period. // 'block_extended_register' blocks all registrations, period.
$block = DI::config()->get('system', 'block_extended_register'); $block = DI::config()->get('system', 'block_extended_register');
if (Session::getLocalUser() && $block) { if (DI::userSession()->getLocalUserId() && $block) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return ''; return '';
} }
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$user = DBA::selectFirst('user', ['parent-uid'], ['uid' => Session::getLocalUser()]); $user = DBA::selectFirst('user', ['parent-uid'], ['uid' => DI::userSession()->getLocalUserId()]);
if (!empty($user['parent-uid'])) { if (!empty($user['parent-uid'])) {
DI::sysmsg()->addNotice(DI::l10n()->t('Only parent users can create additional accounts.')); DI::sysmsg()->addNotice(DI::l10n()->t('Only parent users can create additional accounts.'));
return ''; return '';
} }
} }
if (!Session::getLocalUser() && (intval(DI::config()->get('config', 'register_policy')) === self::CLOSED)) { if (!DI::userSession()->getLocalUserId() && (intval(DI::config()->get('config', 'register_policy')) === self::CLOSED)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return ''; return '';
} }
@ -109,7 +108,7 @@ class Register extends BaseModule
$photo = $_REQUEST['photo'] ?? ''; $photo = $_REQUEST['photo'] ?? '';
$invite_id = $_REQUEST['invite_id'] ?? ''; $invite_id = $_REQUEST['invite_id'] ?? '';
if (Session::getLocalUser() || DI::config()->get('system', 'no_openid')) { if (DI::userSession()->getLocalUserId() || DI::config()->get('system', 'no_openid')) {
$fillwith = ''; $fillwith = '';
$fillext = ''; $fillext = '';
$oidlabel = ''; $oidlabel = '';
@ -180,7 +179,7 @@ class Register extends BaseModule
'$form_security_token' => BaseModule::getFormSecurityToken('register'), '$form_security_token' => BaseModule::getFormSecurityToken('register'),
'$explicit_content' => DI::config()->get('system', 'explicit_content', false), '$explicit_content' => DI::config()->get('system', 'explicit_content', false),
'$explicit_content_note' => DI::l10n()->t('Note: This node explicitly contains adult content'), '$explicit_content_note' => DI::l10n()->t('Note: This node explicitly contains adult content'),
'$additional' => !empty(Session::getLocalUser()), '$additional' => !empty(DI::userSession()->getLocalUserId()),
'$parent_password' => ['parent_password', DI::l10n()->t('Parent Password:'), '', DI::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.')]
]); ]);
@ -203,19 +202,19 @@ class Register extends BaseModule
$additional_account = false; $additional_account = false;
if (!Session::getLocalUser() && !empty($arr['post']['parent_password'])) { if (!DI::userSession()->getLocalUserId() && !empty($arr['post']['parent_password'])) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return; return;
} elseif (Session::getLocalUser() && !empty($arr['post']['parent_password'])) { } elseif (DI::userSession()->getLocalUserId() && !empty($arr['post']['parent_password'])) {
try { try {
Model\User::getIdFromPasswordAuthentication(Session::getLocalUser(), $arr['post']['parent_password']); Model\User::getIdFromPasswordAuthentication(DI::userSession()->getLocalUserId(), $arr['post']['parent_password']);
} catch (\Exception $ex) { } catch (\Exception $ex) {
DI::sysmsg()->addNotice(DI::l10n()->t("Password doesn't match.")); DI::sysmsg()->addNotice(DI::l10n()->t("Password doesn't match."));
$regdata = ['nickname' => $arr['post']['nickname'], 'username' => $arr['post']['username']]; $regdata = ['nickname' => $arr['post']['nickname'], 'username' => $arr['post']['username']];
DI::baseUrl()->redirect('register?' . http_build_query($regdata)); DI::baseUrl()->redirect('register?' . http_build_query($regdata));
} }
$additional_account = true; $additional_account = true;
} elseif (Session::getLocalUser()) { } elseif (DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Please enter your password.')); DI::sysmsg()->addNotice(DI::l10n()->t('Please enter your password.'));
$regdata = ['nickname' => $arr['post']['nickname'], 'username' => $arr['post']['username']]; $regdata = ['nickname' => $arr['post']['nickname'], 'username' => $arr['post']['username']];
DI::baseUrl()->redirect('register?' . http_build_query($regdata)); DI::baseUrl()->redirect('register?' . http_build_query($regdata));
@ -263,7 +262,7 @@ class Register extends BaseModule
} }
if ($additional_account) { if ($additional_account) {
$user = DBA::selectFirst('user', ['email'], ['uid' => Session::getLocalUser()]); $user = DBA::selectFirst('user', ['email'], ['uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($user)) { if (!DBA::isResult($user)) {
DI::sysmsg()->addNotice(DI::l10n()->t('User not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('User not found.'));
DI::baseUrl()->redirect('register'); DI::baseUrl()->redirect('register');
@ -307,7 +306,7 @@ class Register extends BaseModule
} }
if ($additional_account) { if ($additional_account) {
DBA::update('user', ['parent-uid' => Session::getLocalUser()], ['uid' => $user['uid']]); DBA::update('user', ['parent-uid' => DI::userSession()->getLocalUserId()], ['uid' => $user['uid']]);
DI::sysmsg()->addInfo(DI::l10n()->t('The additional account was created.')); DI::sysmsg()->addInfo(DI::l10n()->t('The additional account was created.'));
DI::baseUrl()->redirect('delegation'); DI::baseUrl()->redirect('delegation');
} }

View file

@ -27,7 +27,6 @@ use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -52,7 +51,7 @@ class Acl extends BaseModule
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\UnauthorizedException(DI::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.'));
} }
@ -114,8 +113,8 @@ class Acl extends BaseModule
Logger::info('ACL {action} - {subaction} - start', ['module' => 'acl', 'action' => 'content', 'subaction' => 'search', 'search' => $search, 'type' => $type, 'conversation' => $conv_id]); Logger::info('ACL {action} - {subaction} - start', ['module' => 'acl', 'action' => 'content', 'subaction' => 'search', 'search' => $search, 'type' => $type, 'conversation' => $conv_id]);
$sql_extra = ''; $sql_extra = '';
$condition = ["`uid` = ? AND NOT `deleted` AND NOT `pending` AND NOT `archive`", Session::getLocalUser()]; $condition = ["`uid` = ? AND NOT `deleted` AND NOT `pending` AND NOT `archive`", DI::userSession()->getLocalUserId()];
$condition_group = ["`uid` = ? AND NOT `deleted`", Session::getLocalUser()]; $condition_group = ["`uid` = ? AND NOT `deleted`", DI::userSession()->getLocalUserId()];
if ($search != '') { if ($search != '') {
$sql_extra = "AND `name` LIKE '%%" . DBA::escape($search) . "%%'"; $sql_extra = "AND `name` LIKE '%%" . DBA::escape($search) . "%%'";
@ -177,7 +176,7 @@ class Acl extends BaseModule
GROUP BY `group`.`name`, `group`.`id` GROUP BY `group`.`name`, `group`.`id`
ORDER BY `group`.`name` ORDER BY `group`.`name`
LIMIT ?, ?", LIMIT ?, ?",
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
$start, $start,
$count $count
)); ));
@ -252,7 +251,7 @@ class Acl extends BaseModule
$condition = ["`parent` = ?", $conv_id]; $condition = ["`parent` = ?", $conv_id];
$params = ['order' => ['author-name' => true]]; $params = ['order' => ['author-name' => true]];
$authors = Post::selectForUser(Session::getLocalUser(), ['author-link'], $condition, $params); $authors = Post::selectForUser(DI::userSession()->getLocalUserId(), ['author-link'], $condition, $params);
$item_authors = []; $item_authors = [];
while ($author = Post::fetch($authors)) { while ($author = Post::fetch($authors)) {
$item_authors[$author['author-link']] = $author['author-link']; $item_authors[$author['author-link']] = $author['author-link'];

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Search; namespace Friendica\Module\Search;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\BaseSearch; use Friendica\Module\BaseSearch;
use Friendica\Module\Security\Login; use Friendica\Module\Security\Login;
@ -34,7 +33,7 @@ class Directory extends BaseSearch
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
return Login::form(); return Login::form();
} }

View file

@ -26,7 +26,6 @@ use Friendica\Content\Pager;
use Friendica\Content\Text\HTML; use Friendica\Content\Text\HTML;
use Friendica\Content\Widget; use Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -39,13 +38,13 @@ class Filed extends BaseSearch
{ {
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form(); return Login::form();
} }
DI::page()['aside'] .= Widget::fileAs(DI::args()->getCommand(), $_GET['file'] ?? ''); DI::page()['aside'] .= Widget::fileAs(DI::args()->getCommand(), $_GET['file'] ?? '');
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll') && ($_GET['mode'] ?? '') != 'minimal') { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll') && ($_GET['mode'] ?? '') != 'minimal') {
$tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl'); $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl');
$o = Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]); $o = Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]);
} else { } else {
@ -60,10 +59,10 @@ class Filed extends BaseSearch
} }
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$itemspage_network = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemspage_network = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$itemspage_network = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $itemspage_network = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -71,7 +70,7 @@ class Filed extends BaseSearch
$pager = new Pager(DI::l10n(), DI::args()->getQueryString(), $itemspage_network); $pager = new Pager(DI::l10n(), DI::args()->getQueryString(), $itemspage_network);
$term_condition = ['type' => Category::FILE, 'uid' => Session::getLocalUser()]; $term_condition = ['type' => Category::FILE, 'uid' => DI::userSession()->getLocalUserId()];
if ($file) { if ($file) {
$term_condition['name'] = $file; $term_condition['name'] = $file;
} }
@ -94,14 +93,14 @@ class Filed extends BaseSearch
if (count($posts) == 0) { if (count($posts) == 0) {
return ''; return '';
} }
$item_condition = ['uid' => [0, Session::getLocalUser()], 'uri-id' => $posts]; $item_condition = ['uid' => [0, DI::userSession()->getLocalUserId()], 'uri-id' => $posts];
$item_params = ['order' => ['uri-id' => true, 'uid' => true]]; $item_params = ['order' => ['uri-id' => true, 'uid' => true]];
$items = Post::toArray(Post::selectForUser(Session::getLocalUser(), Item::DISPLAY_FIELDLIST, $item_condition, $item_params)); $items = Post::toArray(Post::selectForUser(DI::userSession()->getLocalUserId(), Item::DISPLAY_FIELDLIST, $item_condition, $item_params));
$o .= DI::conversation()->create($items, 'filed', false, false, '', Session::getLocalUser()); $o .= DI::conversation()->create($items, 'filed', false, false, '', DI::userSession()->getLocalUserId());
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$o .= HTML::scrollLoader(); $o .= HTML::scrollLoader();
} else { } else {
$o .= $pager->renderMinimal($count); $o .= $pager->renderMinimal($count);

View file

@ -31,7 +31,6 @@ use Friendica\Core\L10n;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -61,15 +60,15 @@ class Index extends BaseSearch
{ {
$search = (!empty($_GET['q']) ? trim(rawurldecode($_GET['q'])) : ''); $search = (!empty($_GET['q']) ? trim(rawurldecode($_GET['q'])) : '');
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
} }
if (DI::config()->get('system', 'local_search') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'local_search') && !DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a search.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a search.'));
} }
if (DI::config()->get('system', 'permit_crawling') && !Session::isAuthenticated()) { if (DI::config()->get('system', 'permit_crawling') && !DI::userSession()->isAuthenticated()) {
// Default values: // Default values:
// 10 requests are "free", after the 11th only a call per minute is allowed // 10 requests are "free", after the 11th only a call per minute is allowed
@ -94,7 +93,7 @@ class Index extends BaseSearch
} }
} }
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
DI::page()['aside'] .= Widget\SavedSearches::getHTML(Search::getSearchPath($search), $search); DI::page()['aside'] .= Widget\SavedSearches::getHTML(Search::getSearchPath($search), $search);
} }
@ -161,10 +160,10 @@ class Index extends BaseSearch
// No items will be shown if the member has a blocked profile wall. // No items will be shown if the member has a blocked profile wall.
if (DI::mode()->isMobile()) { if (DI::mode()->isMobile()) {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
DI::config()->get('system', 'itemspage_network_mobile')); DI::config()->get('system', 'itemspage_network_mobile'));
} else { } else {
$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network', $itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
DI::config()->get('system', 'itemspage_network')); DI::config()->get('system', 'itemspage_network'));
} }
@ -174,19 +173,19 @@ class Index extends BaseSearch
if ($tag) { if ($tag) {
Logger::info('Start tag search.', ['q' => $search]); Logger::info('Start tag search.', ['q' => $search]);
$uriids = Tag::getURIIdListByTag($search, Session::getLocalUser(), $pager->getStart(), $pager->getItemsPerPage(), $last_uriid); $uriids = Tag::getURIIdListByTag($search, DI::userSession()->getLocalUserId(), $pager->getStart(), $pager->getItemsPerPage(), $last_uriid);
$count = Tag::countByTag($search, Session::getLocalUser()); $count = Tag::countByTag($search, DI::userSession()->getLocalUserId());
} else { } else {
Logger::info('Start fulltext search.', ['q' => $search]); Logger::info('Start fulltext search.', ['q' => $search]);
$uriids = Post\Content::getURIIdListBySearch($search, Session::getLocalUser(), $pager->getStart(), $pager->getItemsPerPage(), $last_uriid); $uriids = Post\Content::getURIIdListBySearch($search, DI::userSession()->getLocalUserId(), $pager->getStart(), $pager->getItemsPerPage(), $last_uriid);
$count = Post\Content::countBySearch($search, Session::getLocalUser()); $count = Post\Content::countBySearch($search, DI::userSession()->getLocalUserId());
} }
if (!empty($uriids)) { if (!empty($uriids)) {
$condition = ["(`uid` = ? OR (`uid` = ? AND NOT `global`))", 0, Session::getLocalUser()]; $condition = ["(`uid` = ? OR (`uid` = ? AND NOT `global`))", 0, DI::userSession()->getLocalUserId()];
$condition = DBA::mergeConditions($condition, ['uri-id' => $uriids]); $condition = DBA::mergeConditions($condition, ['uri-id' => $uriids]);
$params = ['order' => ['id' => true]]; $params = ['order' => ['id' => true]];
$items = Post::toArray(Post::selectForUser(Session::getLocalUser(), Item::DISPLAY_FIELDLIST, $condition, $params)); $items = Post::toArray(Post::selectForUser(DI::userSession()->getLocalUserId(), Item::DISPLAY_FIELDLIST, $condition, $params));
} }
if (empty($items)) { if (empty($items)) {
@ -196,7 +195,7 @@ class Index extends BaseSearch
return $o; return $o;
} }
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl'); $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl');
$o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]); $o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]);
} }
@ -213,9 +212,9 @@ class Index extends BaseSearch
Logger::info('Start Conversation.', ['q' => $search]); Logger::info('Start Conversation.', ['q' => $search]);
$o .= DI::conversation()->create($items, 'search', false, false, 'commented', Session::getLocalUser()); $o .= DI::conversation()->create($items, 'search', false, false, 'commented', DI::userSession()->getLocalUserId());
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
$o .= HTML::scrollLoader(); $o .= HTML::scrollLoader();
} else { } else {
$o .= $pager->renderMinimal($count); $o .= $pager->renderMinimal($count);
@ -254,9 +253,9 @@ class Index extends BaseSearch
$search = $matches[1]; $search = $matches[1];
} }
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
// User-specific contact URL/address search // User-specific contact URL/address search
$contact_id = Contact::getIdForURL($search, Session::getLocalUser()); $contact_id = Contact::getIdForURL($search, DI::userSession()->getLocalUserId());
if (!$contact_id) { if (!$contact_id) {
// User-specific contact URL/address search and probe // User-specific contact URL/address search and probe
$contact_id = Contact::getIdForURL($search); $contact_id = Contact::getIdForURL($search);
@ -293,9 +292,9 @@ class Index extends BaseSearch
$search = Network::convertToIdn($search); $search = Network::convertToIdn($search);
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
// Post URL search // Post URL search
$item_id = Item::fetchByLink($search, Session::getLocalUser()); $item_id = Item::fetchByLink($search, DI::userSession()->getLocalUserId());
if (!$item_id) { if (!$item_id) {
// If the user-specific search failed, we search and probe a public post // If the user-specific search failed, we search and probe a public post
$item_id = Item::fetchByLink($search); $item_id = Item::fetchByLink($search);

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -51,10 +50,10 @@ class Saved extends BaseModule
$return_url = $_GET['return_url'] ?? Search::getSearchPath($search); $return_url = $_GET['return_url'] ?? Search::getSearchPath($search);
if (Session::getLocalUser() && $search) { if (DI::userSession()->getLocalUserId() && $search) {
switch ($action) { switch ($action) {
case 'add': case 'add':
$fields = ['uid' => Session::getLocalUser(), 'term' => $search]; $fields = ['uid' => DI::userSession()->getLocalUserId(), 'term' => $search];
if (!$this->dba->exists('search', $fields)) { if (!$this->dba->exists('search', $fields)) {
if (!$this->dba->insert('search', $fields)) { if (!$this->dba->insert('search', $fields)) {
DI::sysmsg()->addNotice($this->t('Search term was not saved.')); DI::sysmsg()->addNotice($this->t('Search term was not saved.'));
@ -65,7 +64,7 @@ class Saved extends BaseModule
break; break;
case 'remove': case 'remove':
if (!$this->dba->delete('search', ['uid' => Session::getLocalUser(), 'term' => $search])) { if (!$this->dba->delete('search', ['uid' => DI::userSession()->getLocalUserId(), 'term' => $search])) {
DI::sysmsg()->addNotice($this->t('Search term was not removed.')); DI::sysmsg()->addNotice($this->t('Search term was not removed.'));
} }
break; break;

View file

@ -27,7 +27,6 @@ use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Register; use Friendica\Module\Register;
@ -63,7 +62,7 @@ class Login extends BaseModule
{ {
$return_path = $request['return_path'] ?? $this->session->pop('return_path', '') ; $return_path = $request['return_path'] ?? $this->session->pop('return_path', '') ;
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$this->baseUrl->redirect($return_path); $this->baseUrl->redirect($return_path);
} }
@ -127,7 +126,7 @@ class Login extends BaseModule
]; ];
} }
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$tpl = Renderer::getMarkupTemplate('logout.tpl'); $tpl = Renderer::getMarkupTemplate('logout.tpl');
} else { } else {
DI::page()['htmlhead'] .= Renderer::replaceMacros( DI::page()['htmlhead'] .= Renderer::replaceMacros(

View file

@ -26,7 +26,6 @@ use Friendica\BaseModule;
use Friendica\Core\Cache\Capability\ICanCache; use Friendica\Core\Cache\Capability\ICanCache;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
@ -64,7 +63,7 @@ class Logout extends BaseModule
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
$visitor_home = null; $visitor_home = null;
if (Session::getRemoteUser()) { if (DI::userSession()->getRemoteUserId()) {
$visitor_home = Profile::getMyURL(); $visitor_home = Profile::getMyURL();
$this->cache->delete('zrlInit:' . $visitor_home); $this->cache->delete('zrlInit:' . $visitor_home);
} }

View file

@ -24,7 +24,7 @@ namespace Friendica\Module\Security;
use Friendica\App; use Friendica\App;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -36,12 +36,15 @@ class PasswordTooLong extends \Friendica\BaseModule
{ {
/** @var SystemMessages */ /** @var SystemMessages */
private $sysmsg; private $sysmsg;
/** @var IHandleUserSessions */
private $userSession;
public function __construct(SystemMessages $sysmsg, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = []) public function __construct(SystemMessages $sysmsg, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IHandleUserSessions $userSession, $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->sysmsg = $sysmsg; $this->sysmsg = $sysmsg;
$this->userSession = $userSession;
} }
protected function post(array $request = []) protected function post(array $request = [])
@ -55,13 +58,13 @@ class PasswordTooLong extends \Friendica\BaseModule
} }
// check if the old password was supplied correctly before changing it to the new value // check if the old password was supplied correctly before changing it to the new value
User::getIdFromPasswordAuthentication(Session::getLocalUser(), $request['password_current']); User::getIdFromPasswordAuthentication($this->userSession->getLocalUserId(), $request['password_current']);
if (strlen($request['password_current']) <= 72) { if (strlen($request['password_current']) <= 72) {
throw new \Exception($this->l10n->t('Password does not need changing.')); throw new \Exception($this->l10n->t('Password does not need changing.'));
} }
$result = User::updatePassword(Session::getLocalUser(), $newpass); $result = User::updatePassword($this->userSession->getLocalUserId(), $newpass);
if (!DBA::isResult($result)) { if (!DBA::isResult($result)) {
throw new \Exception($this->l10n->t('Password update failed. Please try again.')); throw new \Exception($this->l10n->t('Password update failed. Please try again.'));
} }

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -60,7 +59,7 @@ class Recovery extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -69,10 +68,10 @@ class Recovery extends BaseModule
$recovery_code = $_POST['recovery_code'] ?? ''; $recovery_code = $_POST['recovery_code'] ?? '';
if (RecoveryCode::existsForUser(Session::getLocalUser(), $recovery_code)) { if (RecoveryCode::existsForUser(DI::userSession()->getLocalUserId(), $recovery_code)) {
RecoveryCode::markUsedForUser(Session::getLocalUser(), $recovery_code); RecoveryCode::markUsedForUser(DI::userSession()->getLocalUserId(), $recovery_code);
$this->session->set('2fa', true); $this->session->set('2fa', true);
DI::sysmsg()->addInfo($this->t('Remaining recovery codes: %d', RecoveryCode::countValidForUser(Session::getLocalUser()))); DI::sysmsg()->addInfo($this->t('Remaining recovery codes: %d', RecoveryCode::countValidForUser(DI::userSession()->getLocalUserId())));
$this->auth->setForUser($this->app, User::getById($this->app->getLoggedInUserId()), true, true); $this->auth->setForUser($this->app, User::getById($this->app->getLoggedInUserId()), true, true);
@ -85,7 +84,7 @@ class Recovery extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User\Cookie; use Friendica\Model\User\Cookie;
@ -62,7 +61,7 @@ class SignOut extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser() || !($this->cookie->get('2fa_cookie_hash'))) { if (!DI::userSession()->getLocalUserId() || !($this->cookie->get('2fa_cookie_hash'))) {
return; return;
} }
@ -81,7 +80,7 @@ class SignOut extends BaseModule
$this->baseUrl->redirect(); $this->baseUrl->redirect();
break; break;
case 'sign_out': case 'sign_out':
$this->trustedBrowserRepository->removeForUser(Session::getLocalUser(), $this->cookie->get('2fa_cookie_hash')); $this->trustedBrowserRepository->removeForUser(DI::userSession()->getLocalUserId(), $this->cookie->get('2fa_cookie_hash'));
$this->cookie->clear(); $this->cookie->clear();
$this->session->clear(); $this->session->clear();
@ -96,7 +95,7 @@ class SignOut extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser() || !($this->cookie->get('2fa_cookie_hash'))) { if (!DI::userSession()->getLocalUserId() || !($this->cookie->get('2fa_cookie_hash'))) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -75,7 +74,7 @@ class Trust extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser() || !$this->session->get('2fa')) { if (!DI::userSession()->getLocalUserId() || !$this->session->get('2fa')) {
$this->logger->info('Invalid call', ['request' => $request]); $this->logger->info('Invalid call', ['request' => $request]);
return; return;
} }
@ -88,7 +87,7 @@ class Trust extends BaseModule
switch ($action) { switch ($action) {
case 'trust': case 'trust':
case 'dont_trust': case 'dont_trust':
$trustedBrowser = $this->trustedBrowserFactory->createForUserWithUserAgent(Session::getLocalUser(), $this->server['HTTP_USER_AGENT'], $action === 'trust'); $trustedBrowser = $this->trustedBrowserFactory->createForUserWithUserAgent(DI::userSession()->getLocalUserId(), $this->server['HTTP_USER_AGENT'], $action === 'trust');
try { try {
$this->trustedBrowserRepository->save($trustedBrowser); $this->trustedBrowserRepository->save($trustedBrowser);
@ -116,7 +115,7 @@ class Trust extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser() || !$this->session->get('2fa')) { if (!DI::userSession()->getLocalUserId() || !$this->session->get('2fa')) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -26,8 +26,8 @@ use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Util\Profiler; use Friendica\Util\Profiler;
use PragmaRX\Google2FA\Google2FA; use PragmaRX\Google2FA\Google2FA;
@ -47,18 +47,21 @@ class Verify extends BaseModule
protected $session; protected $session;
/** @var IManagePersonalConfigValues */ /** @var IManagePersonalConfigValues */
protected $pConfig; protected $pConfig;
/** @var IHandleUserSessions */
protected $userSession;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManagePersonalConfigValues $pConfig, IHandleSessions $session, array $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManagePersonalConfigValues $pConfig, IHandleSessions $session, IHandleUserSessions $userSession, $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->session = $session; $this->session = $session;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->userSession = $userSession;
} }
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
return; return;
} }
@ -67,7 +70,7 @@ class Verify extends BaseModule
$code = $request['verify_code'] ?? ''; $code = $request['verify_code'] ?? '';
$valid = (new Google2FA())->verifyKey($this->pConfig->get(Session::getLocalUser(), '2fa', 'secret'), $code); $valid = (new Google2FA())->verifyKey($this->pConfig->get($this->userSession->getLocalUserId(), '2fa', 'secret'), $code);
// The same code can't be used twice even if it's valid // The same code can't be used twice even if it's valid
if ($valid && $this->session->get('2fa') !== $code) { if ($valid && $this->session->get('2fa') !== $code) {
@ -82,7 +85,7 @@ class Verify extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!$this->userSession->getLocalUserId()) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -26,7 +26,6 @@ use Friendica\Core\ACL;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -69,9 +68,9 @@ class Account extends BaseSettings
} }
// check if the old password was supplied correctly before changing it to the new value // check if the old password was supplied correctly before changing it to the new value
User::getIdFromPasswordAuthentication(Session::getLocalUser(), $request['opassword']); User::getIdFromPasswordAuthentication(DI::userSession()->getLocalUserId(), $request['opassword']);
$result = User::updatePassword(Session::getLocalUser(), $newpass); $result = User::updatePassword(DI::userSession()->getLocalUserId(), $newpass);
if (!DBA::isResult($result)) { if (!DBA::isResult($result)) {
throw new Exception(DI::l10n()->t('Password update failed. Please try again.')); throw new Exception(DI::l10n()->t('Password update failed. Please try again.'));
} }
@ -104,7 +103,7 @@ class Account extends BaseSettings
if ($email != $user['email']) { if ($email != $user['email']) {
// check for the correct password // check for the correct password
try { try {
User::getIdFromPasswordAuthentication(Session::getLocalUser(), $request['mpassword']); User::getIdFromPasswordAuthentication(DI::userSession()->getLocalUserId(), $request['mpassword']);
} catch (Exception $ex) { } catch (Exception $ex) {
$err .= DI::l10n()->t('Wrong Password.'); $err .= DI::l10n()->t('Wrong Password.');
$email = $user['email']; $email = $user['email'];
@ -146,7 +145,7 @@ class Account extends BaseSettings
$fields['openidserver'] = ''; $fields['openidserver'] = '';
} }
if (!User::update($fields, Session::getLocalUser())) { if (!User::update($fields, DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.')); DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
} }
@ -175,8 +174,8 @@ class Account extends BaseSettings
$str_group_deny = !empty($request['group_deny']) ? $aclFormatter->toString($request['group_deny']) : ''; $str_group_deny = !empty($request['group_deny']) ? $aclFormatter->toString($request['group_deny']) : '';
$str_contact_deny = !empty($request['contact_deny']) ? $aclFormatter->toString($request['contact_deny']) : ''; $str_contact_deny = !empty($request['contact_deny']) ? $aclFormatter->toString($request['contact_deny']) : '';
DI::pConfig()->set(Session::getLocalUser(), 'system', 'unlisted', !empty($request['unlisted'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'unlisted', !empty($request['unlisted']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'accessible-photos', !empty($request['accessible-photos'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'accessible-photos', !empty($request['accessible-photos']));
$fields = [ $fields = [
'allow_cid' => $str_contact_allow, 'allow_cid' => $str_contact_allow,
@ -198,7 +197,7 @@ class Account extends BaseSettings
'hide-friends' => $hide_friends 'hide-friends' => $hide_friends
]; ];
if (!User::update($fields, Session::getLocalUser()) || !Profile::update($profile_fields, Session::getLocalUser())) { if (!User::update($fields, DI::userSession()->getLocalUserId()) || !Profile::update($profile_fields, DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.')); DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
} }
@ -213,12 +212,12 @@ class Account extends BaseSettings
$expire_starred = !empty($request['expire_starred']); $expire_starred = !empty($request['expire_starred']);
$expire_network_only = !empty($request['expire_network_only']); $expire_network_only = !empty($request['expire_network_only']);
DI::pConfig()->set(Session::getLocalUser(), 'expire', 'items', $expire_items); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'expire', 'items', $expire_items);
DI::pConfig()->set(Session::getLocalUser(), 'expire', 'notes', $expire_notes); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'expire', 'notes', $expire_notes);
DI::pConfig()->set(Session::getLocalUser(), 'expire', 'starred', $expire_starred); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'expire', 'starred', $expire_starred);
DI::pConfig()->set(Session::getLocalUser(), 'expire', 'network_only', $expire_network_only); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'expire', 'network_only', $expire_network_only);
if (!User::update(['expire' => $expire], Session::getLocalUser())) { if (!User::update(['expire' => $expire], DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.')); DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
} }
@ -273,7 +272,7 @@ class Account extends BaseSettings
if (!empty($request['notify_activity_participation'])) { if (!empty($request['notify_activity_participation'])) {
$notify_type = $notify_type | UserNotification::TYPE_ACTIVITY_PARTICIPATION; $notify_type = $notify_type | UserNotification::TYPE_ACTIVITY_PARTICIPATION;
} }
DI::pConfig()->set(Session::getLocalUser(), 'system', 'notify_type', $notify_type); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'notify_type', $notify_type);
if (!($notify_type & (UserNotification::TYPE_DIRECT_COMMENT + UserNotification::TYPE_DIRECT_THREAD_COMMENT))) { if (!($notify_type & (UserNotification::TYPE_DIRECT_COMMENT + UserNotification::TYPE_DIRECT_THREAD_COMMENT))) {
$notify_like = false; $notify_like = false;
@ -281,28 +280,28 @@ class Account extends BaseSettings
} }
// Reset like notifications when they are going to be shown again // Reset like notifications when they are going to be shown again
if (!DI::pConfig()->get(Session::getLocalUser(), 'system', 'notify_like') && $notify_like) { if (!DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'notify_like') && $notify_like) {
DI::notification()->setAllSeenForUser(Session::getLocalUser(), ['vid' => Verb::getID(Activity::LIKE)]); DI::notification()->setAllSeenForUser(DI::userSession()->getLocalUserId(), ['vid' => Verb::getID(Activity::LIKE)]);
} }
DI::pConfig()->set(Session::getLocalUser(), 'system', 'notify_like', $notify_like); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'notify_like', $notify_like);
// Reset share notifications when they are going to be shown again // Reset share notifications when they are going to be shown again
if (!DI::pConfig()->get(Session::getLocalUser(), 'system', 'notify_announce') && $notify_announce) { if (!DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'notify_announce') && $notify_announce) {
DI::notification()->setAllSeenForUser(Session::getLocalUser(), ['vid' => Verb::getID(Activity::ANNOUNCE)]); DI::notification()->setAllSeenForUser(DI::userSession()->getLocalUserId(), ['vid' => Verb::getID(Activity::ANNOUNCE)]);
} }
DI::pConfig()->set(Session::getLocalUser(), 'system', 'notify_announce', $notify_announce); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'notify_announce', $notify_announce);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'email_textonly', !empty($request['email_textonly'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'email_textonly', !empty($request['email_textonly']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'detailed_notif', !empty($request['detailed_notif'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif', !empty($request['detailed_notif']));
DI::pConfig()->set(Session::getLocalUser(), 'system', 'notify_ignored', !empty($request['notify_ignored'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'notify_ignored', !empty($request['notify_ignored']));
$fields = [ $fields = [
'notify-flags' => $notify, 'notify-flags' => $notify,
]; ];
if (!User::update($fields, Session::getLocalUser())) { if (!User::update($fields, DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.')); DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
} }
@ -328,7 +327,7 @@ class Account extends BaseSettings
$profile_fields = []; $profile_fields = [];
if ($account_type == User::ACCOUNT_TYPE_COMMUNITY) { if ($account_type == User::ACCOUNT_TYPE_COMMUNITY) {
DI::pConfig()->set(Session::getLocalUser(), 'system', 'unlisted', true); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'unlisted', true);
$fields = [ $fields = [
'allow_cid' => '', 'allow_cid' => '',
@ -351,7 +350,7 @@ class Account extends BaseSettings
'account-type' => $account_type, 'account-type' => $account_type,
]); ]);
if (!User::update($fields, Session::getLocalUser()) || !empty($profile_fields) && !Profile::update($profile_fields, Session::getLocalUser())) { if (!User::update($fields, DI::userSession()->getLocalUserId()) || !empty($profile_fields) && !Profile::update($profile_fields, DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.')); DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
} }
@ -376,7 +375,7 @@ class Account extends BaseSettings
// "http" or "@" to be present in the string. // "http" or "@" to be present in the string.
// All other fields from the row will be ignored // All other fields from the row will be ignored
if ((strpos($csvRow[0], '@') !== false) || Network::isValidHttpUrl($csvRow[0])) { if ((strpos($csvRow[0], '@') !== false) || Network::isValidHttpUrl($csvRow[0])) {
Worker::add(Worker::PRIORITY_MEDIUM, 'AddContact', Session::getLocalUser(), $csvRow[0]); Worker::add(Worker::PRIORITY_MEDIUM, 'AddContact', DI::userSession()->getLocalUserId(), $csvRow[0]);
} else { } else {
Logger::notice('Invalid account', ['url' => $csvRow[0]]); Logger::notice('Invalid account', ['url' => $csvRow[0]]);
} }
@ -395,7 +394,7 @@ class Account extends BaseSettings
} }
if (!empty($request['relocate-submit'])) { if (!empty($request['relocate-submit'])) {
Worker::add(Worker::PRIORITY_HIGH, 'Notifier', Delivery::RELOCATION, Session::getLocalUser()); Worker::add(Worker::PRIORITY_HIGH, 'Notifier', Delivery::RELOCATION, DI::userSession()->getLocalUserId());
DI::sysmsg()->addInfo(DI::l10n()->t("Relocate message has been send to your contacts")); DI::sysmsg()->addInfo(DI::l10n()->t("Relocate message has been send to your contacts"));
DI::baseUrl()->redirect($redirectUrl); DI::baseUrl()->redirect($redirectUrl);
} }
@ -407,11 +406,11 @@ class Account extends BaseSettings
{ {
parent::content(); parent::content();
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
$profile = DBA::selectFirst('profile', [], ['uid' => Session::getLocalUser()]); $profile = DBA::selectFirst('profile', [], ['uid' => DI::userSession()->getLocalUserId()]);
if (!DBA::isResult($profile)) { if (!DBA::isResult($profile)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Unable to find your profile. Please contact your admin.')); DI::sysmsg()->addNotice(DI::l10n()->t('Unable to find your profile. Please contact your admin.'));
return ''; return '';
@ -434,10 +433,10 @@ class Account extends BaseSettings
$unkmail = $user['unkmail']; $unkmail = $user['unkmail'];
$cntunkmail = $user['cntunkmail']; $cntunkmail = $user['cntunkmail'];
$expire_items = DI::pConfig()->get(Session::getLocalUser(), 'expire', 'items', true); $expire_items = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'expire', 'items', true);
$expire_notes = DI::pConfig()->get(Session::getLocalUser(), 'expire', 'notes', true); $expire_notes = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'expire', 'notes', true);
$expire_starred = DI::pConfig()->get(Session::getLocalUser(), 'expire', 'starred', true); $expire_starred = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'expire', 'starred', true);
$expire_network_only = DI::pConfig()->get(Session::getLocalUser(), 'expire', 'network_only', false); $expire_network_only = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'expire', 'network_only', false);
if (!strlen($user['timezone'])) { if (!strlen($user['timezone'])) {
$timezone = $a->getTimeZone(); $timezone = $a->getTimeZone();
@ -551,7 +550,7 @@ class Account extends BaseSettings
/* Installed langs */ /* Installed langs */
$lang_choices = DI::l10n()->getAvailableLanguages(); $lang_choices = DI::l10n()->getAvailableLanguages();
$notify_type = DI::pConfig()->get(Session::getLocalUser(), 'system', 'notify_type'); $notify_type = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'notify_type');
$passwordRules = DI::l10n()->t('Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:).') $passwordRules = DI::l10n()->t('Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:).')
. (PASSWORD_DEFAULT === PASSWORD_BCRYPT ? ' ' . DI::l10n()->t('Password length is limited to 72 characters.') : ''); . (PASSWORD_DEFAULT === PASSWORD_BCRYPT ? ' ' . DI::l10n()->t('Password length is limited to 72 characters.') : '');
@ -563,7 +562,7 @@ class Account extends BaseSettings
'$submit' => DI::l10n()->t('Save Settings'), '$submit' => DI::l10n()->t('Save Settings'),
'$baseurl' => DI::baseUrl()->get(true), '$baseurl' => DI::baseUrl()->get(true),
'$uid' => Session::getLocalUser(), '$uid' => DI::userSession()->getLocalUserId(),
'$form_security_token' => self::getFormSecurityToken('settings'), '$form_security_token' => self::getFormSecurityToken('settings'),
'$open' => $this->parameters['open'] ?? 'password', '$open' => $this->parameters['open'] ?? 'password',
@ -591,13 +590,13 @@ class Account extends BaseSettings
'$profile_in_net_dir' => ['profile_in_netdirectory', DI::l10n()->t('Allow your profile to be searchable globally?'), $profile['net-publish'], DI::l10n()->t("Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.") . $net_pub_desc], '$profile_in_net_dir' => ['profile_in_netdirectory', DI::l10n()->t('Allow your profile to be searchable globally?'), $profile['net-publish'], DI::l10n()->t("Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.") . $net_pub_desc],
'$hide_friends' => ['hide-friends', DI::l10n()->t('Hide your contact/friend list from viewers of your profile?'), $profile['hide-friends'], DI::l10n()->t('A list of your contacts is displayed on your profile page. Activate this option to disable the display of your contact list.')], '$hide_friends' => ['hide-friends', DI::l10n()->t('Hide your contact/friend list from viewers of your profile?'), $profile['hide-friends'], DI::l10n()->t('A list of your contacts is displayed on your profile page. Activate this option to disable the display of your contact list.')],
'$hide_wall' => ['hidewall', DI::l10n()->t('Hide your profile details from anonymous viewers?'), $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.')], '$hide_wall' => ['hidewall', DI::l10n()->t('Hide your profile details from anonymous viewers?'), $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.')],
'$unlisted' => ['unlisted', DI::l10n()->t('Make public posts unlisted'), DI::pConfig()->get(Session::getLocalUser(), 'system', 'unlisted'), DI::l10n()->t('Your public posts will not appear on the community pages or in search results, nor be sent to relay servers. However they can still appear on public feeds on remote servers.')], '$unlisted' => ['unlisted', DI::l10n()->t('Make public posts unlisted'), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'unlisted'), DI::l10n()->t('Your public posts will not appear on the community pages or in search results, nor be sent to relay servers. However they can still appear on public feeds on remote servers.')],
'$accessiblephotos' => ['accessible-photos', DI::l10n()->t('Make all posted pictures accessible'), DI::pConfig()->get(Session::getLocalUser(), 'system', 'accessible-photos'), DI::l10n()->t("This option makes every posted picture accessible via the direct link. This is a workaround for the problem that most other networks can't handle permissions on pictures. Non public pictures still won't be visible for the public on your photo albums though.")], '$accessiblephotos' => ['accessible-photos', DI::l10n()->t('Make all posted pictures accessible'), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'accessible-photos'), DI::l10n()->t("This option makes every posted picture accessible via the direct link. This is a workaround for the problem that most other networks can't handle permissions on pictures. Non public pictures still won't be visible for the public on your photo albums though.")],
'$blockwall' => ['blockwall', DI::l10n()->t('Allow friends to post to your profile page?'), (intval($user['blockwall']) ? '0' : '1'), DI::l10n()->t('Your contacts may write posts on your profile wall. These posts will be distributed to your contacts')], '$blockwall' => ['blockwall', DI::l10n()->t('Allow friends to post to your profile page?'), (intval($user['blockwall']) ? '0' : '1'), DI::l10n()->t('Your contacts may write posts on your profile wall. These posts will be distributed to your contacts')],
'$blocktags' => ['blocktags', DI::l10n()->t('Allow friends to tag your posts?'), (intval($user['blocktags']) ? '0' : '1'), DI::l10n()->t('Your contacts can add additional tags to your posts.')], '$blocktags' => ['blocktags', DI::l10n()->t('Allow friends to tag your posts?'), (intval($user['blocktags']) ? '0' : '1'), DI::l10n()->t('Your contacts can add additional tags to your posts.')],
'$unkmail' => ['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.')], '$unkmail' => ['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.')],
'$cntunkmail' => ['cntunkmail', DI::l10n()->t('Maximum private messages per day from unknown people:'), $cntunkmail, DI::l10n()->t("(to prevent spam abuse)")], '$cntunkmail' => ['cntunkmail', DI::l10n()->t('Maximum private messages per day from unknown people:'), $cntunkmail, DI::l10n()->t("(to prevent spam abuse)")],
'$group_select' => Group::displayGroupSelection(Session::getLocalUser(), $user['def_gid']), '$group_select' => Group::displayGroupSelection(DI::userSession()->getLocalUserId(), $user['def_gid']),
'$permissions' => DI::l10n()->t('Default Post Permissions'), '$permissions' => DI::l10n()->t('Default Post Permissions'),
'$aclselect' => ACL::getFullSelectorHTML(DI::page(), $a->getLoggedInUserId()), '$aclselect' => ACL::getFullSelectorHTML(DI::page(), $a->getLoggedInUserId()),
@ -623,8 +622,8 @@ class Account extends BaseSettings
'$lbl_notify' => DI::l10n()->t('Create a desktop notification when:'), '$lbl_notify' => DI::l10n()->t('Create a desktop notification when:'),
'$notify_tagged' => ['notify_tagged', DI::l10n()->t('Someone tagged you'), is_null($notify_type) || $notify_type & UserNotification::TYPE_EXPLICIT_TAGGED, ''], '$notify_tagged' => ['notify_tagged', DI::l10n()->t('Someone tagged you'), is_null($notify_type) || $notify_type & UserNotification::TYPE_EXPLICIT_TAGGED, ''],
'$notify_direct_comment' => ['notify_direct_comment', DI::l10n()->t('Someone directly commented on your post'), is_null($notify_type) || $notify_type & (UserNotification::TYPE_IMPLICIT_TAGGED + UserNotification::TYPE_DIRECT_COMMENT + UserNotification::TYPE_DIRECT_THREAD_COMMENT), ''], '$notify_direct_comment' => ['notify_direct_comment', DI::l10n()->t('Someone directly commented on your post'), is_null($notify_type) || $notify_type & (UserNotification::TYPE_IMPLICIT_TAGGED + UserNotification::TYPE_DIRECT_COMMENT + UserNotification::TYPE_DIRECT_THREAD_COMMENT), ''],
'$notify_like' => ['notify_like', DI::l10n()->t('Someone liked your content'), DI::pConfig()->get(Session::getLocalUser(), 'system', 'notify_like'), DI::l10n()->t('Can only be enabled, when the direct comment notification is enabled.')], '$notify_like' => ['notify_like', DI::l10n()->t('Someone liked your content'), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'notify_like'), DI::l10n()->t('Can only be enabled, when the direct comment notification is enabled.')],
'$notify_announce' => ['notify_announce', DI::l10n()->t('Someone shared your content'), DI::pConfig()->get(Session::getLocalUser(), 'system', 'notify_announce'), DI::l10n()->t('Can only be enabled, when the direct comment notification is enabled.')], '$notify_announce' => ['notify_announce', DI::l10n()->t('Someone shared your content'), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'notify_announce'), DI::l10n()->t('Can only be enabled, when the direct comment notification is enabled.')],
'$notify_thread_comment' => ['notify_thread_comment', DI::l10n()->t('Someone commented in your thread'), is_null($notify_type) || $notify_type & UserNotification::TYPE_THREAD_COMMENT, ''], '$notify_thread_comment' => ['notify_thread_comment', DI::l10n()->t('Someone commented in your thread'), is_null($notify_type) || $notify_type & UserNotification::TYPE_THREAD_COMMENT, ''],
'$notify_comment_participation' => ['notify_comment_participation', DI::l10n()->t('Someone commented in a thread where you commented'), is_null($notify_type) || $notify_type & UserNotification::TYPE_COMMENT_PARTICIPATION, ''], '$notify_comment_participation' => ['notify_comment_participation', DI::l10n()->t('Someone commented in a thread where you commented'), is_null($notify_type) || $notify_type & UserNotification::TYPE_COMMENT_PARTICIPATION, ''],
'$notify_activity_participation' => ['notify_activity_participation', DI::l10n()->t('Someone commented in a thread where you interacted'), is_null($notify_type) || $notify_type & UserNotification::TYPE_ACTIVITY_PARTICIPATION, ''], '$notify_activity_participation' => ['notify_activity_participation', DI::l10n()->t('Someone commented in a thread where you interacted'), is_null($notify_type) || $notify_type & UserNotification::TYPE_ACTIVITY_PARTICIPATION, ''],
@ -634,19 +633,19 @@ class Account extends BaseSettings
'$email_textonly' => [ '$email_textonly' => [
'email_textonly', 'email_textonly',
DI::l10n()->t('Text-only notification emails'), DI::l10n()->t('Text-only notification emails'),
DI::pConfig()->get(Session::getLocalUser(), 'system', 'email_textonly'), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'email_textonly'),
DI::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' => [
'detailed_notif', 'detailed_notif',
DI::l10n()->t('Show detailled notifications'), DI::l10n()->t('Show detailled notifications'),
DI::pConfig()->get(Session::getLocalUser(), 'system', 'detailed_notif'), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif'),
DI::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.')
], ],
'$notify_ignored' => [ '$notify_ignored' => [
'notify_ignored', 'notify_ignored',
DI::l10n()->t('Show notifications of ignored contacts'), DI::l10n()->t('Show notifications of ignored contacts'),
DI::pConfig()->get(Session::getLocalUser(), 'system', 'notify_ignored', true), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'notify_ignored', true),
DI::l10n()->t("You don't see posts from ignored contacts. But you still see their comments. This setting controls if you want to still receive regular notifications that are caused by ignored contacts or not.") DI::l10n()->t("You don't see posts from ignored contacts. But you still see their comments. This setting controls if you want to still receive regular notifications that are caused by ignored contacts or not.")
], ],

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Settings;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -59,14 +58,14 @@ class Delegation extends BaseSettings
DI::sysmsg()->addInfo(DI::l10n()->t('Delegation successfully revoked.')); DI::sysmsg()->addInfo(DI::l10n()->t('Delegation successfully revoked.'));
} }
DBA::update('user', ['parent-uid' => $parent_uid], ['uid' => Session::getLocalUser()]); DBA::update('user', ['parent-uid' => $parent_uid], ['uid' => DI::userSession()->getLocalUserId()]);
} }
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
parent::content(); parent::content();
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -77,7 +76,7 @@ class Delegation extends BaseSettings
$user_id = $args->get(3); $user_id = $args->get(3);
if ($action === 'add' && $user_id) { if ($action === 'add' && $user_id) {
if (DI::session()->get('submanage')) { if (DI::userSession()->getSubManagedUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.')); DI::sysmsg()->addNotice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.'));
DI::baseUrl()->redirect('settings/delegation'); DI::baseUrl()->redirect('settings/delegation');
} }
@ -85,11 +84,11 @@ class Delegation extends BaseSettings
$user = User::getById($user_id, ['nickname']); $user = User::getById($user_id, ['nickname']);
if (DBA::isResult($user)) { if (DBA::isResult($user)) {
$condition = [ $condition = [
'uid' => Session::getLocalUser(), 'uid' => DI::userSession()->getLocalUserId(),
'nurl' => Strings::normaliseLink(DI::baseUrl() . '/profile/' . $user['nickname']) 'nurl' => Strings::normaliseLink(DI::baseUrl() . '/profile/' . $user['nickname'])
]; ];
if (DBA::exists('contact', $condition)) { if (DBA::exists('contact', $condition)) {
DBA::insert('manage', ['uid' => $user_id, 'mid' => Session::getLocalUser()]); DBA::insert('manage', ['uid' => $user_id, 'mid' => DI::userSession()->getLocalUserId()]);
} }
} else { } else {
DI::sysmsg()->addNotice(DI::l10n()->t('Delegate user not found.')); DI::sysmsg()->addNotice(DI::l10n()->t('Delegate user not found.'));
@ -99,17 +98,17 @@ class Delegation extends BaseSettings
} }
if ($action === 'remove' && $user_id) { if ($action === 'remove' && $user_id) {
if (DI::session()->get('submanage')) { if (DI::userSession()->getSubManagedUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.')); DI::sysmsg()->addNotice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.'));
DI::baseUrl()->redirect('settings/delegation'); DI::baseUrl()->redirect('settings/delegation');
} }
DBA::delete('manage', ['uid' => $user_id, 'mid' => Session::getLocalUser()]); DBA::delete('manage', ['uid' => $user_id, 'mid' => DI::userSession()->getLocalUserId()]);
DI::baseUrl()->redirect('settings/delegation'); DI::baseUrl()->redirect('settings/delegation');
} }
// find everybody that currently has delegated management to this account/page // find everybody that currently has delegated management to this account/page
$delegates = DBA::selectToArray('user', [], ['`uid` IN (SELECT `uid` FROM `manage` WHERE `mid` = ?)', Session::getLocalUser()]); $delegates = DBA::selectToArray('user', [], ['`uid` IN (SELECT `uid` FROM `manage` WHERE `mid` = ?)', DI::userSession()->getLocalUserId()]);
$uids = []; $uids = [];
foreach ($delegates as $user) { foreach ($delegates as $user) {
@ -120,7 +119,7 @@ class Delegation extends BaseSettings
$potentials = []; $potentials = [];
$nicknames = []; $nicknames = [];
$condition = ['baseurl' => DI::baseUrl(), 'self' => false, 'uid' => Session::getLocalUser(), 'blocked' => false]; $condition = ['baseurl' => DI::baseUrl(), 'self' => false, 'uid' => DI::userSession()->getLocalUserId(), 'blocked' => false];
$contacts = DBA::select('contact', ['nick'], $condition); $contacts = DBA::select('contact', ['nick'], $condition);
while ($contact = DBA::fetch($contacts)) { while ($contact = DBA::fetch($contacts)) {
$nicknames[] = $contact['nick']; $nicknames[] = $contact['nick'];
@ -137,8 +136,8 @@ class Delegation extends BaseSettings
$parent_user = null; $parent_user = null;
$parent_password = null; $parent_password = null;
$user = User::getById(Session::getLocalUser(), ['parent-uid', 'email']); $user = User::getById(DI::userSession()->getLocalUserId(), ['parent-uid', 'email']);
if (DBA::isResult($user) && !DBA::exists('user', ['parent-uid' => Session::getLocalUser()])) { if (DBA::isResult($user) && !DBA::exists('user', ['parent-uid' => DI::userSession()->getLocalUserId()])) {
$parent_uid = $user['parent-uid']; $parent_uid = $user['parent-uid'];
$parents = [0 => DI::l10n()->t('No parent user')]; $parents = [0 => DI::l10n()->t('No parent user')];
@ -146,7 +145,7 @@ class Delegation extends BaseSettings
$condition = ['email' => $user['email'], 'verified' => true, 'blocked' => false, 'parent-uid' => 0]; $condition = ['email' => $user['email'], 'verified' => true, 'blocked' => false, 'parent-uid' => 0];
$parent_users = DBA::selectToArray('user', $fields, $condition); $parent_users = DBA::selectToArray('user', $fields, $condition);
foreach($parent_users as $parent) { foreach($parent_users as $parent) {
if ($parent['uid'] != Session::getLocalUser()) { if ($parent['uid'] != DI::userSession()->getLocalUserId()) {
$parents[$parent['uid']] = sprintf('%s (%s)', $parent['username'], $parent['nickname']); $parents[$parent['uid']] = sprintf('%s (%s)', $parent['username'], $parent['nickname']);
} }
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Module\Settings;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -44,7 +43,7 @@ class Display extends BaseSettings
self::checkFormSecurityTokenRedirectOnError('/settings/display', 'settings_display'); self::checkFormSecurityTokenRedirectOnError('/settings/display', 'settings_display');
$user = User::getById(Session::getLocalUser()); $user = User::getById(DI::userSession()->getLocalUserId());
$theme = !empty($_POST['theme']) ? trim($_POST['theme']) : $user['theme']; $theme = !empty($_POST['theme']) ? trim($_POST['theme']) : $user['theme'];
$mobile_theme = !empty($_POST['mobile_theme']) ? trim($_POST['mobile_theme']) : ''; $mobile_theme = !empty($_POST['mobile_theme']) ? trim($_POST['mobile_theme']) : '';
@ -78,20 +77,20 @@ class Display extends BaseSettings
} }
if ($mobile_theme !== '') { if ($mobile_theme !== '') {
DI::pConfig()->set(Session::getLocalUser(), 'system', 'mobile_theme', $mobile_theme); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'mobile_theme', $mobile_theme);
} }
DI::pConfig()->set(Session::getLocalUser(), 'system', 'itemspage_network' , $itemspage_network); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network' , $itemspage_network);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'itemspage_mobile_network', $itemspage_mobile_network); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network', $itemspage_mobile_network);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'update_interval' , $browser_update); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'update_interval' , $browser_update);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'no_auto_update' , $no_auto_update); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'no_auto_update' , $no_auto_update);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'no_smilies' , !$enable_smile); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'no_smilies' , !$enable_smile);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'infinite_scroll' , $infinite_scroll); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll' , $infinite_scroll);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'no_smart_threading' , !$enable_smart_threading); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'no_smart_threading' , !$enable_smart_threading);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'hide_dislike' , !$enable_dislike); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike' , !$enable_dislike);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'display_resharer' , $display_resharer); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'display_resharer' , $display_resharer);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'stay_local' , $stay_local); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'stay_local' , $stay_local);
DI::pConfig()->set(Session::getLocalUser(), 'system', 'first_day_of_week' , $first_day_of_week); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week' , $first_day_of_week);
if (in_array($theme, Theme::getAllowedList())) { if (in_array($theme, Theme::getAllowedList())) {
if ($theme == $user['theme']) { if ($theme == $user['theme']) {
@ -101,7 +100,7 @@ class Display extends BaseSettings
theme_post(DI::app()); theme_post(DI::app());
} }
} else { } else {
DBA::update('user', ['theme' => $theme], ['uid' => Session::getLocalUser()]); DBA::update('user', ['theme' => $theme], ['uid' => DI::userSession()->getLocalUserId()]);
} }
} else { } else {
DI::sysmsg()->addNotice(DI::l10n()->t('The theme you chose isn\'t available.')); DI::sysmsg()->addNotice(DI::l10n()->t('The theme you chose isn\'t available.'));
@ -116,7 +115,7 @@ class Display extends BaseSettings
{ {
parent::content(); parent::content();
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -130,7 +129,7 @@ class Display extends BaseSettings
$default_mobile_theme = 'none'; $default_mobile_theme = 'none';
} }
$user = User::getById(Session::getLocalUser()); $user = User::getById(DI::userSession()->getLocalUserId());
$allowed_themes = Theme::getAllowedList(); $allowed_themes = Theme::getAllowedList();
@ -159,26 +158,26 @@ class Display extends BaseSettings
$theme_selected = $user['theme'] ?: $default_theme; $theme_selected = $user['theme'] ?: $default_theme;
$mobile_theme_selected = DI::session()->get('mobile-theme', $default_mobile_theme); $mobile_theme_selected = DI::session()->get('mobile-theme', $default_mobile_theme);
$itemspage_network = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network')); $itemspage_network = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network'));
$itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : DI::config()->get('system', 'itemspage_network')); $itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : DI::config()->get('system', 'itemspage_network'));
$itemspage_mobile_network = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network')); $itemspage_mobile_network = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network'));
$itemspage_mobile_network = (($itemspage_mobile_network > 0 && $itemspage_mobile_network < 101) ? $itemspage_mobile_network : DI::config()->get('system', 'itemspage_network_mobile')); $itemspage_mobile_network = (($itemspage_mobile_network > 0 && $itemspage_mobile_network < 101) ? $itemspage_mobile_network : DI::config()->get('system', 'itemspage_network_mobile'));
$browser_update = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'update_interval')); $browser_update = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'update_interval'));
if (intval($browser_update) != -1) { if (intval($browser_update) != -1) {
$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds $browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
} }
$no_auto_update = DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_auto_update', 0); $no_auto_update = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_auto_update', 0);
$enable_smile = !DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_smilies', 0); $enable_smile = !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_smilies', 0);
$infinite_scroll = DI::pConfig()->get(Session::getLocalUser(), 'system', 'infinite_scroll', 0); $infinite_scroll = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll', 0);
$enable_smart_threading = !DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_smart_threading', 0); $enable_smart_threading = !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_smart_threading', 0);
$enable_dislike = !DI::pConfig()->get(Session::getLocalUser(), 'system', 'hide_dislike', 0); $enable_dislike = !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike', 0);
$display_resharer = DI::pConfig()->get(Session::getLocalUser(), 'system', 'display_resharer', 0); $display_resharer = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'display_resharer', 0);
$stay_local = DI::pConfig()->get(Session::getLocalUser(), 'system', 'stay_local', 0); $stay_local = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'stay_local', 0);
$first_day_of_week = DI::pConfig()->get(Session::getLocalUser(), 'system', 'first_day_of_week', 0); $first_day_of_week = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week', 0);
$weekdays = [ $weekdays = [
0 => DI::l10n()->t("Sunday"), 0 => DI::l10n()->t("Sunday"),
1 => DI::l10n()->t("Monday"), 1 => DI::l10n()->t("Monday"),
@ -207,7 +206,7 @@ class Display extends BaseSettings
'$form_security_token' => self::getFormSecurityToken('settings_display'), '$form_security_token' => self::getFormSecurityToken('settings_display'),
'$baseurl' => DI::baseUrl()->get(true), '$baseurl' => DI::baseUrl()->get(true),
'$uid' => Session::getLocalUser(), '$uid' => DI::userSession()->getLocalUserId(),
'$theme' => ['theme', DI::l10n()->t('Display Theme:'), $theme_selected, '', $themes, true], '$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], '$mobile_theme' => ['mobile_theme', DI::l10n()->t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false],

View file

@ -25,7 +25,6 @@ use Friendica\Core\ACL;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -44,11 +43,11 @@ class Index extends BaseSettings
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$profile = Profile::getByUID(Session::getLocalUser()); $profile = Profile::getByUID(DI::userSession()->getLocalUserId());
if (!DBA::isResult($profile)) { if (!DBA::isResult($profile)) {
return; return;
} }
@ -102,12 +101,12 @@ class Index extends BaseSettings
} }
$profileFieldsNew = self::getProfileFieldsFromInput( $profileFieldsNew = self::getProfileFieldsFromInput(
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
$_REQUEST['profile_field'], $_REQUEST['profile_field'],
$_REQUEST['profile_field_order'] $_REQUEST['profile_field_order']
); );
DI::profileField()->saveCollectionForUser(Session::getLocalUser(), $profileFieldsNew); DI::profileField()->saveCollectionForUser(DI::userSession()->getLocalUserId(), $profileFieldsNew);
$result = Profile::update( $result = Profile::update(
[ [
@ -125,7 +124,7 @@ class Index extends BaseSettings
'pub_keywords' => $pub_keywords, 'pub_keywords' => $pub_keywords,
'prv_keywords' => $prv_keywords, 'prv_keywords' => $prv_keywords,
], ],
Session::getLocalUser() DI::userSession()->getLocalUserId()
); );
if (!$result) { if (!$result) {
@ -138,7 +137,7 @@ class Index extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('You must be logged in to use this module')); DI::sysmsg()->addNotice(DI::l10n()->t('You must be logged in to use this module'));
return Login::form(); return Login::form();
} }
@ -147,7 +146,7 @@ class Index extends BaseSettings
$o = ''; $o = '';
$profile = User::getOwnerDataById(Session::getLocalUser()); $profile = User::getOwnerDataById(DI::userSession()->getLocalUserId());
if (!DBA::isResult($profile)) { if (!DBA::isResult($profile)) {
throw new HTTPException\NotFoundException(); throw new HTTPException\NotFoundException();
} }
@ -159,7 +158,7 @@ class Index extends BaseSettings
$custom_fields = []; $custom_fields = [];
$profileFields = DI::profileField()->selectByUserId(Session::getLocalUser()); $profileFields = DI::profileField()->selectByUserId(DI::userSession()->getLocalUserId());
foreach ($profileFields as $profileField) { foreach ($profileFields as $profileField) {
/** @var ProfileField $profileField */ /** @var ProfileField $profileField */
$defaultPermissions = $profileField->permissionSet->withAllowedContacts( $defaultPermissions = $profileField->permissionSet->withAllowedContacts(

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Settings\Profile\Photo; namespace Friendica\Module\Settings\Profile\Photo;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -35,7 +34,7 @@ class Crop extends BaseSettings
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
return; return;
} }
@ -58,7 +57,7 @@ class Crop extends BaseSettings
$path = 'profile/' . DI::app()->getLoggedInUserNickname(); $path = 'profile/' . DI::app()->getLoggedInUserNickname();
$base_image = Photo::selectFirst([], ['resource-id' => $resource_id, 'uid' => Session::getLocalUser(), 'scale' => $scale]); $base_image = Photo::selectFirst([], ['resource-id' => $resource_id, 'uid' => DI::userSession()->getLocalUserId(), 'scale' => $scale]);
if (DBA::isResult($base_image)) { if (DBA::isResult($base_image)) {
$Image = Photo::getImageForPhoto($base_image); $Image = Photo::getImageForPhoto($base_image);
if (empty($Image)) { if (empty($Image)) {
@ -67,7 +66,7 @@ class Crop extends BaseSettings
if ($Image->isValid()) { if ($Image->isValid()) {
// If setting for the default profile, unset the profile photo flag from any other photos I own // If setting for the default profile, unset the profile photo flag from any other photos I own
DBA::update('photo', ['profile' => 0], ['uid' => Session::getLocalUser()]); DBA::update('photo', ['profile' => 0], ['uid' => DI::userSession()->getLocalUserId()]);
// Normalizing expected square crop parameters // Normalizing expected square crop parameters
$selectionW = $selectionH = min($selectionW, $selectionH); $selectionW = $selectionH = min($selectionW, $selectionH);
@ -92,11 +91,11 @@ class Crop extends BaseSettings
$Image->scaleDown(300); $Image->scaleDown(300);
} }
$condition = ['resource-id' => $resource_id, 'uid' => Session::getLocalUser(), 'contact-id' => 0]; $condition = ['resource-id' => $resource_id, 'uid' => DI::userSession()->getLocalUserId(), 'contact-id' => 0];
$r = Photo::store( $r = Photo::store(
$Image, $Image,
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
0, 0,
$resource_id, $resource_id,
$base_image['filename'], $base_image['filename'],
@ -114,7 +113,7 @@ class Crop extends BaseSettings
$r = Photo::store( $r = Photo::store(
$Image, $Image,
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
0, 0,
$resource_id, $resource_id,
$base_image['filename'], $base_image['filename'],
@ -132,7 +131,7 @@ class Crop extends BaseSettings
$r = Photo::store( $r = Photo::store(
$Image, $Image,
Session::getLocalUser(), DI::userSession()->getLocalUserId(),
0, 0,
$resource_id, $resource_id,
$base_image['filename'], $base_image['filename'],
@ -146,12 +145,12 @@ class Crop extends BaseSettings
Photo::update(['profile' => true], array_merge($condition, ['scale' => 6])); Photo::update(['profile' => true], array_merge($condition, ['scale' => 6]));
} }
Contact::updateSelfFromUserID(Session::getLocalUser(), true); Contact::updateSelfFromUserID(DI::userSession()->getLocalUserId(), true);
DI::sysmsg()->addInfo(DI::l10n()->t('Shift-reload the page or clear browser cache if the new photo does not display immediately.')); DI::sysmsg()->addInfo(DI::l10n()->t('Shift-reload the page or clear browser cache if the new photo does not display immediately.'));
// Update global directory in background // Update global directory in background
Profile::publishUpdate(Session::getLocalUser()); Profile::publishUpdate(DI::userSession()->getLocalUserId());
} else { } else {
DI::sysmsg()->addNotice(DI::l10n()->t('Unable to process image')); DI::sysmsg()->addNotice(DI::l10n()->t('Unable to process image'));
} }
@ -162,7 +161,7 @@ class Crop extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -170,7 +169,7 @@ class Crop extends BaseSettings
$resource_id = $this->parameters['guid']; $resource_id = $this->parameters['guid'];
$photos = Photo::selectToArray([], ['resource-id' => $resource_id, 'uid' => Session::getLocalUser()], ['order' => ['scale' => false]]); $photos = Photo::selectToArray([], ['resource-id' => $resource_id, 'uid' => DI::userSession()->getLocalUserId()], ['order' => ['scale' => false]]);
if (!DBA::isResult($photos)) { if (!DBA::isResult($photos)) {
throw new HTTPException\NotFoundException(DI::l10n()->t('Photo not found.')); throw new HTTPException\NotFoundException(DI::l10n()->t('Photo not found.'));
} }
@ -185,14 +184,14 @@ class Crop extends BaseSettings
// set an already uloaded photo as profile photo // set an already uloaded photo as profile photo
// if photo is in 'Profile Photos', change it in db // if photo is in 'Profile Photos', change it in db
if ($photos[0]['photo-type'] == Photo::USER_AVATAR && $havescale) { if ($photos[0]['photo-type'] == Photo::USER_AVATAR && $havescale) {
Photo::update(['profile' => false], ['uid' => Session::getLocalUser()]); Photo::update(['profile' => false], ['uid' => DI::userSession()->getLocalUserId()]);
Photo::update(['profile' => true], ['resource-id' => $resource_id, 'uid' => Session::getLocalUser()]); Photo::update(['profile' => true], ['resource-id' => $resource_id, 'uid' => DI::userSession()->getLocalUserId()]);
Contact::updateSelfFromUserID(Session::getLocalUser(), true); Contact::updateSelfFromUserID(DI::userSession()->getLocalUserId(), true);
// Update global directory in background // Update global directory in background
Profile::publishUpdate(Session::getLocalUser()); Profile::publishUpdate(DI::userSession()->getLocalUserId());
DI::sysmsg()->addInfo(DI::l10n()->t('Profile picture successfully updated.')); DI::sysmsg()->addInfo(DI::l10n()->t('Profile picture successfully updated.'));

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Settings\Profile\Photo; namespace Friendica\Module\Settings\Profile\Photo;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Photo; use Friendica\Model\Photo;
@ -36,7 +35,7 @@ class Index extends BaseSettings
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
return; return;
} }
@ -92,13 +91,13 @@ class Index extends BaseSettings
$filename = ''; $filename = '';
if (!Photo::store($Image, Session::getLocalUser(), 0, $resource_id, $filename, DI::l10n()->t(Photo::PROFILE_PHOTOS), 0, Photo::USER_AVATAR)) { if (!Photo::store($Image, DI::userSession()->getLocalUserId(), 0, $resource_id, $filename, DI::l10n()->t(Photo::PROFILE_PHOTOS), 0, Photo::USER_AVATAR)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Image upload failed.')); DI::sysmsg()->addNotice(DI::l10n()->t('Image upload failed.'));
} }
if ($width > 640 || $height > 640) { if ($width > 640 || $height > 640) {
$Image->scaleDown(640); $Image->scaleDown(640);
if (!Photo::store($Image, Session::getLocalUser(), 0, $resource_id, $filename, DI::l10n()->t(Photo::PROFILE_PHOTOS), 1, Photo::USER_AVATAR)) { if (!Photo::store($Image, DI::userSession()->getLocalUserId(), 0, $resource_id, $filename, DI::l10n()->t(Photo::PROFILE_PHOTOS), 1, Photo::USER_AVATAR)) {
DI::sysmsg()->addNotice(DI::l10n()->t('Image size reduction [%s] failed.', '640')); DI::sysmsg()->addNotice(DI::l10n()->t('Image size reduction [%s] failed.', '640'));
} }
} }
@ -108,7 +107,7 @@ class Index extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
} }
@ -118,7 +117,7 @@ class Index extends BaseSettings
$newuser = $args->get($args->getArgc() - 1) === 'new'; $newuser = $args->get($args->getArgc() - 1) === 'new';
$contact = Contact::selectFirst(['avatar'], ['uid' => Session::getLocalUser(), 'self' => true]); $contact = Contact::selectFirst(['avatar'], ['uid' => DI::userSession()->getLocalUserId(), 'self' => true]);
$tpl = Renderer::getMarkupTemplate('settings/profile/photo/index.tpl'); $tpl = Renderer::getMarkupTemplate('settings/profile/photo/index.tpl');
$o = Renderer::replaceMacros($tpl, [ $o = Renderer::replaceMacros($tpl, [

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Security\TwoFactor\Model\AppSpecificPassword; use Friendica\Security\TwoFactor\Model\AppSpecificPassword;
@ -52,11 +51,11 @@ class AppSpecific extends BaseSettings
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$verified = $this->pConfig->get(Session::getLocalUser(), '2fa', 'verified'); $verified = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'verified');
if (!$verified) { if (!$verified) {
$this->baseUrl->redirect('settings/2fa'); $this->baseUrl->redirect('settings/2fa');
@ -70,7 +69,7 @@ class AppSpecific extends BaseSettings
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -83,17 +82,17 @@ class AppSpecific extends BaseSettings
if (empty($description)) { if (empty($description)) {
DI::sysmsg()->addNotice($this->t('App-specific password generation failed: The description is empty.')); DI::sysmsg()->addNotice($this->t('App-specific password generation failed: The description is empty.'));
$this->baseUrl->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password')); $this->baseUrl->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
} elseif (AppSpecificPassword::checkDuplicateForUser(Session::getLocalUser(), $description)) { } elseif (AppSpecificPassword::checkDuplicateForUser(DI::userSession()->getLocalUserId(), $description)) {
DI::sysmsg()->addNotice($this->t('App-specific password generation failed: This description already exists.')); DI::sysmsg()->addNotice($this->t('App-specific password generation failed: This description already exists.'));
$this->baseUrl->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password')); $this->baseUrl->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
} else { } else {
$this->appSpecificPassword = AppSpecificPassword::generateForUser(Session::getLocalUser(), $_POST['description'] ?? ''); $this->appSpecificPassword = AppSpecificPassword::generateForUser(DI::userSession()->getLocalUserId(), $_POST['description'] ?? '');
DI::sysmsg()->addInfo($this->t('New app-specific password generated.')); DI::sysmsg()->addInfo($this->t('New app-specific password generated.'));
} }
break; break;
case 'revoke_all' : case 'revoke_all' :
AppSpecificPassword::deleteAllForUser(Session::getLocalUser()); AppSpecificPassword::deleteAllForUser(DI::userSession()->getLocalUserId());
DI::sysmsg()->addInfo($this->t('App-specific passwords successfully revoked.')); DI::sysmsg()->addInfo($this->t('App-specific passwords successfully revoked.'));
$this->baseUrl->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password')); $this->baseUrl->redirect('settings/2fa/app_specific?t=' . self::getFormSecurityToken('settings_2fa_password'));
break; break;
@ -103,7 +102,7 @@ class AppSpecific extends BaseSettings
if (!empty($_POST['revoke_id'])) { if (!empty($_POST['revoke_id'])) {
self::checkFormSecurityTokenRedirectOnError('settings/2fa/app_specific', 'settings_2fa_app_specific'); self::checkFormSecurityTokenRedirectOnError('settings/2fa/app_specific', 'settings_2fa_app_specific');
if (AppSpecificPassword::deleteForUser(Session::getLocalUser(), $_POST['revoke_id'])) { if (AppSpecificPassword::deleteForUser(DI::userSession()->getLocalUserId(), $_POST['revoke_id'])) {
DI::sysmsg()->addInfo($this->t('App-specific password successfully revoked.')); DI::sysmsg()->addInfo($this->t('App-specific password successfully revoked.'));
} }
@ -113,13 +112,13 @@ class AppSpecific extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form('settings/2fa/app_specific'); return Login::form('settings/2fa/app_specific');
} }
parent::content(); parent::content();
$appSpecificPasswords = AppSpecificPassword::getListForUser(Session::getLocalUser()); $appSpecificPasswords = AppSpecificPassword::getListForUser(DI::userSession()->getLocalUserId());
return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/app_specific.tpl'), [ return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/app_specific.tpl'), [
'$form_security_token' => self::getFormSecurityToken('settings_2fa_app_specific'), '$form_security_token' => self::getFormSecurityToken('settings_2fa_app_specific'),

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Settings\TwoFactor; namespace Friendica\Module\Settings\TwoFactor;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Network\HTTPException\FoundException; use Friendica\Network\HTTPException\FoundException;
use Friendica\Security\TwoFactor\Model\AppSpecificPassword; use Friendica\Security\TwoFactor\Model\AppSpecificPassword;
@ -36,24 +35,24 @@ class Index extends BaseSettings
{ {
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
self::checkFormSecurityTokenRedirectOnError('settings/2fa', 'settings_2fa'); self::checkFormSecurityTokenRedirectOnError('settings/2fa', 'settings_2fa');
try { try {
User::getIdFromPasswordAuthentication(Session::getLocalUser(), $_POST['password'] ?? ''); User::getIdFromPasswordAuthentication(DI::userSession()->getLocalUserId(), $_POST['password'] ?? '');
$has_secret = (bool)DI::pConfig()->get(Session::getLocalUser(), '2fa', 'secret'); $has_secret = (bool)DI::pConfig()->get(DI::userSession()->getLocalUserId(), '2fa', 'secret');
$verified = DI::pConfig()->get(Session::getLocalUser(), '2fa', 'verified'); $verified = DI::pConfig()->get(DI::userSession()->getLocalUserId(), '2fa', 'verified');
switch ($_POST['action'] ?? '') { switch ($_POST['action'] ?? '') {
case 'enable': case 'enable':
if (!$has_secret && !$verified) { if (!$has_secret && !$verified) {
$Google2FA = new Google2FA(); $Google2FA = new Google2FA();
DI::pConfig()->set(Session::getLocalUser(), '2fa', 'secret', $Google2FA->generateSecretKey(32)); DI::pConfig()->set(DI::userSession()->getLocalUserId(), '2fa', 'secret', $Google2FA->generateSecretKey(32));
DI::baseUrl() DI::baseUrl()
->redirect('settings/2fa/recovery?t=' . self::getFormSecurityToken('settings_2fa_password')); ->redirect('settings/2fa/recovery?t=' . self::getFormSecurityToken('settings_2fa_password'));
@ -61,9 +60,9 @@ class Index extends BaseSettings
break; break;
case 'disable': case 'disable':
if ($has_secret) { if ($has_secret) {
RecoveryCode::deleteForUser(Session::getLocalUser()); RecoveryCode::deleteForUser(DI::userSession()->getLocalUserId());
DI::pConfig()->delete(Session::getLocalUser(), '2fa', 'secret'); DI::pConfig()->delete(DI::userSession()->getLocalUserId(), '2fa', 'secret');
DI::pConfig()->delete(Session::getLocalUser(), '2fa', 'verified'); DI::pConfig()->delete(DI::userSession()->getLocalUserId(), '2fa', 'verified');
DI::session()->remove('2fa'); DI::session()->remove('2fa');
DI::sysmsg()->addInfo(DI::l10n()->t('Two-factor authentication successfully disabled.')); DI::sysmsg()->addInfo(DI::l10n()->t('Two-factor authentication successfully disabled.'));
@ -104,14 +103,14 @@ class Index extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form('settings/2fa'); return Login::form('settings/2fa');
} }
parent::content(); parent::content();
$has_secret = (bool) DI::pConfig()->get(Session::getLocalUser(), '2fa', 'secret'); $has_secret = (bool) DI::pConfig()->get(DI::userSession()->getLocalUserId(), '2fa', 'secret');
$verified = DI::pConfig()->get(Session::getLocalUser(), '2fa', 'verified'); $verified = DI::pConfig()->get(DI::userSession()->getLocalUserId(), '2fa', 'verified');
return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/index.tpl'), [ return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/index.tpl'), [
'$form_security_token' => self::getFormSecurityToken('settings_2fa'), '$form_security_token' => self::getFormSecurityToken('settings_2fa'),
@ -129,12 +128,12 @@ class Index extends BaseSettings
'$recovery_codes_title' => DI::l10n()->t('Recovery codes'), '$recovery_codes_title' => DI::l10n()->t('Recovery codes'),
'$recovery_codes_remaining' => DI::l10n()->t('Remaining valid codes'), '$recovery_codes_remaining' => DI::l10n()->t('Remaining valid codes'),
'$recovery_codes_count' => RecoveryCode::countValidForUser(Session::getLocalUser()), '$recovery_codes_count' => RecoveryCode::countValidForUser(DI::userSession()->getLocalUserId()),
'$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>'), '$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' => DI::l10n()->t('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_remaining' => DI::l10n()->t('Generated app-specific passwords'),
'$app_specific_passwords_count' => AppSpecificPassword::countForUser(Session::getLocalUser()), '$app_specific_passwords_count' => AppSpecificPassword::countForUser(DI::userSession()->getLocalUserId()),
'$app_specific_passwords_message' => DI::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' => DI::l10n()->t('Actions'), '$action_title' => DI::l10n()->t('Actions'),

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Security\TwoFactor\Model\RecoveryCode; use Friendica\Security\TwoFactor\Model\RecoveryCode;
@ -50,11 +49,11 @@ class Recovery extends BaseSettings
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$secret = $this->pConfig->get(Session::getLocalUser(), '2fa', 'secret'); $secret = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'secret');
if (!$secret) { if (!$secret) {
$this->baseUrl->redirect('settings/2fa'); $this->baseUrl->redirect('settings/2fa');
@ -68,7 +67,7 @@ class Recovery extends BaseSettings
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -76,7 +75,7 @@ class Recovery extends BaseSettings
self::checkFormSecurityTokenRedirectOnError('settings/2fa/recovery', 'settings_2fa_recovery'); self::checkFormSecurityTokenRedirectOnError('settings/2fa/recovery', 'settings_2fa_recovery');
if ($_POST['action'] == 'regenerate') { if ($_POST['action'] == 'regenerate') {
RecoveryCode::regenerateForUser(Session::getLocalUser()); RecoveryCode::regenerateForUser(DI::userSession()->getLocalUserId());
DI::sysmsg()->addInfo($this->t('New recovery codes successfully generated.')); DI::sysmsg()->addInfo($this->t('New recovery codes successfully generated.'));
$this->baseUrl->redirect('settings/2fa/recovery?t=' . self::getFormSecurityToken('settings_2fa_password')); $this->baseUrl->redirect('settings/2fa/recovery?t=' . self::getFormSecurityToken('settings_2fa_password'));
} }
@ -85,19 +84,19 @@ class Recovery extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form('settings/2fa/recovery'); return Login::form('settings/2fa/recovery');
} }
parent::content(); parent::content();
if (!RecoveryCode::countValidForUser(Session::getLocalUser())) { if (!RecoveryCode::countValidForUser(DI::userSession()->getLocalUserId())) {
RecoveryCode::generateForUser(Session::getLocalUser()); RecoveryCode::generateForUser(DI::userSession()->getLocalUserId());
} }
$recoveryCodes = RecoveryCode::getListForUser(Session::getLocalUser()); $recoveryCodes = RecoveryCode::getListForUser(DI::userSession()->getLocalUserId());
$verified = $this->pConfig->get(Session::getLocalUser(), '2fa', 'verified'); $verified = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'verified');
return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/recovery.tpl'), [ return Renderer::replaceMacros(Renderer::getMarkupTemplate('settings/twofactor/recovery.tpl'), [
'$form_security_token' => self::getFormSecurityToken('settings_2fa_recovery'), '$form_security_token' => self::getFormSecurityToken('settings_2fa_recovery'),

View file

@ -25,7 +25,6 @@ use Friendica\App;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\BaseSettings; use Friendica\Module\BaseSettings;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -53,11 +52,11 @@ class Trusted extends BaseSettings
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->trustedBrowserRepo = $trustedBrowserRepo; $this->trustedBrowserRepo = $trustedBrowserRepo;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$verified = $this->pConfig->get(Session::getLocalUser(), '2fa', 'verified'); $verified = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'verified');
if (!$verified) { if (!$verified) {
$this->baseUrl->redirect('settings/2fa'); $this->baseUrl->redirect('settings/2fa');
@ -71,7 +70,7 @@ class Trusted extends BaseSettings
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -80,7 +79,7 @@ class Trusted extends BaseSettings
switch ($_POST['action']) { switch ($_POST['action']) {
case 'remove_all': case 'remove_all':
$this->trustedBrowserRepo->removeAllForUser(Session::getLocalUser()); $this->trustedBrowserRepo->removeAllForUser(DI::userSession()->getLocalUserId());
DI::sysmsg()->addInfo($this->t('Trusted browsers successfully removed.')); DI::sysmsg()->addInfo($this->t('Trusted browsers successfully removed.'));
$this->baseUrl->redirect('settings/2fa/trusted?t=' . self::getFormSecurityToken('settings_2fa_password')); $this->baseUrl->redirect('settings/2fa/trusted?t=' . self::getFormSecurityToken('settings_2fa_password'));
break; break;
@ -90,7 +89,7 @@ class Trusted extends BaseSettings
if (!empty($_POST['remove_id'])) { if (!empty($_POST['remove_id'])) {
self::checkFormSecurityTokenRedirectOnError('settings/2fa/trusted', 'settings_2fa_trusted'); self::checkFormSecurityTokenRedirectOnError('settings/2fa/trusted', 'settings_2fa_trusted');
if ($this->trustedBrowserRepo->removeForUser(Session::getLocalUser(), $_POST['remove_id'])) { if ($this->trustedBrowserRepo->removeForUser(DI::userSession()->getLocalUserId(), $_POST['remove_id'])) {
DI::sysmsg()->addInfo($this->t('Trusted browser successfully removed.')); DI::sysmsg()->addInfo($this->t('Trusted browser successfully removed.'));
} }
@ -103,7 +102,7 @@ class Trusted extends BaseSettings
{ {
parent::content(); parent::content();
$trustedBrowsers = $this->trustedBrowserRepo->selectAllByUid(Session::getLocalUser()); $trustedBrowsers = $this->trustedBrowserRepo->selectAllByUid(DI::userSession()->getLocalUserId());
$parser = Parser::create(); $parser = Parser::create();

View file

@ -29,7 +29,6 @@ use Friendica\App;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\BaseSettings; use Friendica\Module\BaseSettings;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -54,12 +53,12 @@ class Verify extends BaseSettings
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$secret = $this->pConfig->get(Session::getLocalUser(), '2fa', 'secret'); $secret = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'secret');
$verified = $this->pConfig->get(Session::getLocalUser(), '2fa', 'verified'); $verified = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'verified');
if ($secret && $verified) { if ($secret && $verified) {
$this->baseUrl->redirect('settings/2fa'); $this->baseUrl->redirect('settings/2fa');
@ -73,7 +72,7 @@ class Verify extends BaseSettings
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -82,10 +81,10 @@ class Verify extends BaseSettings
$google2fa = new Google2FA(); $google2fa = new Google2FA();
$valid = $google2fa->verifyKey($this->pConfig->get(Session::getLocalUser(), '2fa', 'secret'), $_POST['verify_code'] ?? ''); $valid = $google2fa->verifyKey($this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'secret'), $_POST['verify_code'] ?? '');
if ($valid) { if ($valid) {
$this->pConfig->set(Session::getLocalUser(), '2fa', 'verified', true); $this->pConfig->set(DI::userSession()->getLocalUserId(), '2fa', 'verified', true);
DI::session()->set('2fa', true); DI::session()->set('2fa', true);
DI::sysmsg()->addInfo($this->t('Two-factor authentication successfully activated.')); DI::sysmsg()->addInfo($this->t('Two-factor authentication successfully activated.'));
@ -99,7 +98,7 @@ class Verify extends BaseSettings
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return Login::form('settings/2fa/verify'); return Login::form('settings/2fa/verify');
} }
@ -107,7 +106,7 @@ class Verify extends BaseSettings
$company = 'Friendica'; $company = 'Friendica';
$holder = DI::session()->get('my_address'); $holder = DI::session()->get('my_address');
$secret = $this->pConfig->get(Session::getLocalUser(), '2fa', 'secret'); $secret = $this->pConfig->get(DI::userSession()->getLocalUserId(), '2fa', 'secret');
$otpauthUrl = (new Google2FA())->getQRCodeUrl($company, $holder, $secret); $otpauthUrl = (new Google2FA())->getQRCodeUrl($company, $holder, $secret);

View file

@ -23,21 +23,44 @@ namespace Friendica\Module\Settings;
use Friendica\App; use Friendica\App;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Database\Definition\DbaDefinition;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Module\BaseSettings; use Friendica\Module\BaseSettings;
use Friendica\Module\Response;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
use Friendica\Network\HTTPException\ForbiddenException;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Network\HTTPException\ServiceUnavailableException;
use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface;
/** /**
* Module to export user data * Module to export user data
**/ **/
class UserExport extends BaseSettings class UserExport extends BaseSettings
{ {
/** @var IHandleUserSessions */
private $session;
/** @var DbaDefinition */
private $dbaDefinition;
public function __construct(DbaDefinition $dbaDefinition, IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->session = $session;
$this->dbaDefinition = $dbaDefinition;
}
/** /**
* Handle the request to export data. * Handle the request to export data.
* At the moment one can export three different data set * At the moment one can export three different data set
@ -49,14 +72,16 @@ class UserExport extends BaseSettings
* If there is an action required through the URL / path, react * If there is an action required through the URL / path, react
* accordingly and export the requested data. * accordingly and export the requested data.
* *
* @param array $request
* @return string * @return string
* @throws HTTPException\ForbiddenException * @throws ForbiddenException
* @throws HTTPException\InternalServerErrorException * @throws InternalServerErrorException
* @throws ServiceUnavailableException
*/ */
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!Session::getLocalUser()) { if (!$this->session->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException($this->l10n->t('Permission denied.'));
} }
parent::content(); parent::content();
@ -66,15 +91,15 @@ class UserExport extends BaseSettings
* list of array( 'link url', 'link text', 'help text' ) * list of array( 'link url', 'link text', 'help text' )
*/ */
$options = [ $options = [
['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/account', $this->l10n->t('Export account'), $this->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 account 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/backup', $this->l10n->t('Export all'), $this->l10n->t('Export your account 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)')],
['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.")], ['settings/userexport/contact', $this->l10n->t('Export Contacts to CSV'), $this->l10n->t('Export the list of the accounts you are following as CSV file. Compatible to e.g. Mastodon.')],
]; ];
Hook::callAll('uexport_options', $options); Hook::callAll('uexport_options', $options);
$tpl = Renderer::getMarkupTemplate("settings/userexport.tpl"); $tpl = Renderer::getMarkupTemplate('settings/userexport.tpl');
return Renderer::replaceMacros($tpl, [ return Renderer::replaceMacros($tpl, [
'$title' => DI::l10n()->t('Export personal data'), '$title' => $this->l10n->t('Export personal data'),
'$options' => $options '$options' => $options
]); ]);
} }
@ -89,29 +114,26 @@ class UserExport extends BaseSettings
*/ */
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
if (!DI::app()->isLoggedIn()) { if (!$this->session->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); throw new HTTPException\ForbiddenException($this->l10n->t('Permission denied.'));
} }
$args = DI::args(); if (isset($this->parameters['action'])) {
if ($args->getArgc() == 3) { switch ($this->parameters['action']) {
// @TODO Replace with router-provided arguments case 'backup':
$action = $args->get(2); header('Content-type: application/json');
switch ($action) { header('Content-Disposition: attachment; filename="' . DI::app()->getLoggedInUserNickname() . '.' . $this->parameters['action'] . '"');
case "backup": $this->echoAll($this->session->getLocalUserId());
header("Content-type: application/json");
header('Content-Disposition: attachment; filename="' . DI::app()->getLoggedInUserNickname() . '.' . $action . '"');
self::exportAll(Session::getLocalUser());
break; break;
case "account": case 'account':
header("Content-type: application/json"); header('Content-type: application/json');
header('Content-Disposition: attachment; filename="' . DI::app()->getLoggedInUserNickname() . '.' . $action . '"'); header('Content-Disposition: attachment; filename="' . DI::app()->getLoggedInUserNickname() . '.' . $this->parameters['action'] . '"');
self::exportAccount(Session::getLocalUser()); $this->echoAccount($this->session->getLocalUserId());
break; break;
case "contact": case 'contact':
header("Content-type: application/csv"); header('Content-type: application/csv');
header('Content-Disposition: attachment; filename="' . DI::app()->getLoggedInUserNickname() . '-contacts.csv' . '"'); header('Content-Disposition: attachment; filename="' . DI::app()->getLoggedInUserNickname() . '-contacts.csv' . '"');
self::exportContactsAsCSV(Session::getLocalUser()); $this->echoContactsAsCSV($this->session->getLocalUserId());
break; break;
} }
System::exit(); System::exit();
@ -123,11 +145,11 @@ class UserExport extends BaseSettings
* @return array * @return array
* @throws \Exception * @throws \Exception
*/ */
private static function exportMultiRow(string $query) private function exportMultiRow(string $query): array
{ {
$dbStructure = DI::dbaDefinition()->getAll(); $dbStructure = $this->dbaDefinition->getAll();
preg_match("/\s+from\s+`?([a-z\d_]+)`?/i", $query, $match); preg_match('/\s+from\s+`?([a-z\d_]+)`?/i', $query, $match);
$table = $match[1]; $table = $match[1];
$result = []; $result = [];
@ -155,11 +177,11 @@ class UserExport extends BaseSettings
* @return array * @return array
* @throws \Exception * @throws \Exception
*/ */
private static function exportRow(string $query) private function exportRow(string $query): array
{ {
$dbStructure = DI::dbaDefinition()->getAll(); $dbStructure = $this->dbaDefinition->getAll();
preg_match("/\s+from\s+`?([a-z\d_]+)`?/i", $query, $match); preg_match('/\s+from\s+`?([a-z\d_]+)`?/i', $query, $match);
$table = $match[1]; $table = $match[1];
$result = []; $result = [];
@ -191,16 +213,16 @@ class UserExport extends BaseSettings
* @param int $user_id * @param int $user_id
* @throws \Exception * @throws \Exception
*/ */
private static function exportContactsAsCSV(int $user_id) private function echoContactsAsCSV(int $user_id)
{ {
if (!$user_id) { if (!$user_id) {
throw new \RuntimeException(DI::l10n()->t('Permission denied.')); throw new \RuntimeException($this->l10n->t('Permission denied.'));
} }
// write the table header (like Mastodon) // write the table header (like Mastodon)
echo "Account address, Show boosts\n"; echo "Account address, Show boosts\n";
// get all the contacts // get all the contacts
$contacts = DBA::select('contact', ['addr', 'url'], ['uid' => $user_id, 'self' => false, 'rel' => [1, 3], 'deleted' => false]); $contacts = DBA::select('contact', ['addr', 'url'], ['uid' => $user_id, 'self' => false, 'rel' => [Contact::SHARING, Contact::FRIEND], 'deleted' => false, 'archive' => false]);
while ($contact = DBA::fetch($contacts)) { while ($contact = DBA::fetch($contacts)) {
echo ($contact['addr'] ?: $contact['url']) . ", true\n"; echo ($contact['addr'] ?: $contact['url']) . ", true\n";
} }
@ -211,52 +233,52 @@ class UserExport extends BaseSettings
* @param int $user_id * @param int $user_id
* @throws \Exception * @throws \Exception
*/ */
private static function exportAccount(int $user_id) private function echoAccount(int $user_id)
{ {
if (!$user_id) { if (!$user_id) {
throw new \RuntimeException(DI::l10n()->t('Permission denied.')); throw new \RuntimeException($this->l10n->t('Permission denied.'));
} }
$user = self::exportRow( $user = $this->exportRow(
sprintf("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", $user_id) sprintf("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", $user_id)
); );
$contact = self::exportMultiRow( $contact = $this->exportMultiRow(
sprintf("SELECT * FROM `contact` WHERE `uid` = %d ", $user_id) sprintf("SELECT * FROM `contact` WHERE `uid` = %d ", $user_id)
); );
$profile = self::exportMultiRow( $profile = $this->exportMultiRow(
sprintf("SELECT *, 'default' AS `profile_name`, 1 AS `is-default` FROM `profile` WHERE `uid` = %d ", $user_id) sprintf("SELECT *, 'default' AS `profile_name`, 1 AS `is-default` FROM `profile` WHERE `uid` = %d ", $user_id)
); );
$profile_fields = self::exportMultiRow( $profile_fields = $this->exportMultiRow(
sprintf("SELECT * FROM `profile_field` WHERE `uid` = %d ", $user_id) sprintf("SELECT * FROM `profile_field` WHERE `uid` = %d ", $user_id)
); );
$photo = self::exportMultiRow( $photo = $this->exportMultiRow(
sprintf("SELECT * FROM `photo` WHERE uid = %d AND profile = 1", $user_id) sprintf("SELECT * FROM `photo` WHERE uid = %d AND profile = 1", $user_id)
); );
foreach ($photo as &$p) { foreach ($photo as &$p) {
$p['data'] = bin2hex($p['data']); $p['data'] = bin2hex($p['data']);
} }
$pconfig = self::exportMultiRow( $pconfig = $this->exportMultiRow(
sprintf("SELECT * FROM `pconfig` WHERE uid = %d", $user_id) sprintf("SELECT * FROM `pconfig` WHERE uid = %d", $user_id)
); );
$group = self::exportMultiRow( $group = $this->exportMultiRow(
sprintf("SELECT * FROM `group` WHERE uid = %d", $user_id) sprintf("SELECT * FROM `group` WHERE uid = %d", $user_id)
); );
$group_member = self::exportMultiRow( $group_member = $this->exportMultiRow(
sprintf("SELECT `group_member`.`gid`, `group_member`.`contact-id` FROM `group_member` INNER JOIN `group` ON `group`.`id` = `group_member`.`gid` WHERE `group`.`uid` = %d", $user_id) sprintf("SELECT `group_member`.`gid`, `group_member`.`contact-id` FROM `group_member` INNER JOIN `group` ON `group`.`id` = `group_member`.`gid` WHERE `group`.`uid` = %d", $user_id)
); );
$output = [ $output = [
'version' => App::VERSION, 'version' => App::VERSION,
'schema' => DB_UPDATE_VERSION, 'schema' => DB_UPDATE_VERSION,
'baseurl' => DI::baseUrl(), 'baseurl' => $this->baseUrl,
'user' => $user, 'user' => $user,
'contact' => $contact, 'contact' => $contact,
'profile' => $profile, 'profile' => $profile,
@ -276,13 +298,13 @@ class UserExport extends BaseSettings
* @param int $user_id * @param int $user_id
* @throws \Exception * @throws \Exception
*/ */
private static function exportAll(int $user_id) private function echoAll(int $user_id)
{ {
if (!$user_id) { if (!$user_id) {
throw new \RuntimeException(DI::l10n()->t('Permission denied.')); throw new \RuntimeException($this->l10n->t('Permission denied.'));
} }
self::exportAccount($user_id); $this->echoAccount($user_id);
echo "\n"; echo "\n";
$total = Post::count(['uid' => $user_id]); $total = Post::count(['uid' => $user_id]);

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Update; namespace Friendica\Module\Update;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Conversation\Community as CommunityModule; use Friendica\Module\Conversation\Community as CommunityModule;
@ -39,8 +38,8 @@ class Community extends CommunityModule
$this->parseRequest(); $this->parseRequest();
$o = ''; $o = '';
if (!empty($_GET['force']) || !DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_auto_update')) { if (!empty($_GET['force']) || !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_auto_update')) {
$o = DI::conversation()->create(self::getItems(), 'community', true, false, 'commented', Session::getLocalUser()); $o = DI::conversation()->create(self::getItems(), 'community', true, false, 'commented', DI::userSession()->getLocalUserId());
} }
System::htmlUpdateExit($o); System::htmlUpdateExit($o);

View file

@ -21,7 +21,6 @@
namespace Friendica\Module\Update; namespace Friendica\Module\Update;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -76,7 +75,7 @@ class Network extends NetworkModule
$ordering = '`commented`'; $ordering = '`commented`';
} }
$o = DI::conversation()->create($items, 'network', $profile_uid, false, $ordering, Session::getLocalUser()); $o = DI::conversation()->create($items, 'network', $profile_uid, false, $ordering, DI::userSession()->getLocalUserId());
} }
System::htmlUpdateExit($o); System::htmlUpdateExit($o);

View file

@ -22,7 +22,6 @@
namespace Friendica\Module\Update; namespace Friendica\Module\Update;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -42,13 +41,13 @@ class Profile extends BaseModule
// Ensure we've got a profile owner if updating. // Ensure we've got a profile owner if updating.
$a->setProfileOwner((int)($_GET['p'] ?? 0)); $a->setProfileOwner((int)($_GET['p'] ?? 0));
if (DI::config()->get('system', 'block_public') && !Session::getLocalUser() && !Session::getRemoteContactID($a->getProfileOwner())) { if (DI::config()->get('system', 'block_public') && !DI::userSession()->getLocalUserId() && !DI::userSession()->getRemoteContactID($a->getProfileOwner())) {
throw new ForbiddenException(); throw new ForbiddenException();
} }
$remote_contact = Session::getRemoteContactID($a->getProfileOwner()); $remote_contact = DI::userSession()->getRemoteContactID($a->getProfileOwner());
$is_owner = Session::getLocalUser() == $a->getProfileOwner(); $is_owner = DI::userSession()->getLocalUserId() == $a->getProfileOwner();
$last_updated_key = "profile:" . $a->getProfileOwner() . ":" . Session::getLocalUser() . ":" . $remote_contact; $last_updated_key = "profile:" . $a->getProfileOwner() . ":" . DI::userSession()->getLocalUserId() . ":" . $remote_contact;
if (!$is_owner && !$remote_contact) { if (!$is_owner && !$remote_contact) {
$user = User::getById($a->getProfileOwner(), ['hidewall']); $user = User::getById($a->getProfileOwner(), ['hidewall']);
@ -59,7 +58,7 @@ class Profile extends BaseModule
$o = ''; $o = '';
if (empty($_GET['force']) && DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_auto_update')) { if (empty($_GET['force']) && DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_auto_update')) {
System::htmlUpdateExit($o); System::htmlUpdateExit($o);
} }
@ -110,9 +109,9 @@ class Profile extends BaseModule
} }
if ($is_owner) { if ($is_owner) {
$unseen = Post::exists(['wall' => true, 'unseen' => true, 'uid' => Session::getLocalUser()]); $unseen = Post::exists(['wall' => true, 'unseen' => true, 'uid' => DI::userSession()->getLocalUserId()]);
if ($unseen) { if ($unseen) {
Item::update(['unseen' => false], ['wall' => true, 'unseen' => true, 'uid' => Session::getLocalUser()]); Item::update(['unseen' => false], ['wall' => true, 'unseen' => true, 'uid' => DI::userSession()->getLocalUserId()]);
} }
} }

View file

@ -23,7 +23,7 @@ namespace Friendica\Navigation\Notifications\Factory;
use Friendica\BaseFactory; use Friendica\BaseFactory;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Navigation\Notifications\Entity; use Friendica\Navigation\Notifications\Entity;
use Friendica\Navigation\Notifications\Exception\NoMessageException; use Friendica\Navigation\Notifications\Exception\NoMessageException;
@ -47,16 +47,19 @@ class FormattedNavNotification extends BaseFactory
private $baseUrl; private $baseUrl;
/** @var \Friendica\Core\L10n */ /** @var \Friendica\Core\L10n */
private $l10n; private $l10n;
/** @var IHandleUserSessions */
private $userSession;
/** @var string */ /** @var string */
private $tpl; private $tpl;
public function __construct(Notification $notification, \Friendica\App\BaseURL $baseUrl, \Friendica\Core\L10n $l10n, LoggerInterface $logger) public function __construct(Notification $notification, \Friendica\App\BaseURL $baseUrl, \Friendica\Core\L10n $l10n, LoggerInterface $logger, IHandleUserSessions $userSession)
{ {
parent::__construct($logger); parent::__construct($logger);
$this->notification = $notification; $this->notification = $notification;
$this->baseUrl = $baseUrl; $this->baseUrl = $baseUrl;
$this->l10n = $l10n; $this->l10n = $l10n;
$this->userSession = $userSession;
$this->tpl = Renderer::getMarkupTemplate('notifications/nav/notify.tpl'); $this->tpl = Renderer::getMarkupTemplate('notifications/nav/notify.tpl');
} }
@ -72,7 +75,7 @@ class FormattedNavNotification extends BaseFactory
*/ */
public function createFromParams(array $contact, string $message, \DateTime $date, Uri $href, bool $seen = false): ValueObject\FormattedNavNotification public function createFromParams(array $contact, string $message, \DateTime $date, Uri $href, bool $seen = false): ValueObject\FormattedNavNotification
{ {
$contact['photo'] = Contact::getAvatarUrlForUrl($contact['url'], Session::getLocalUser(), Proxy::SIZE_MICRO); $contact['photo'] = Contact::getAvatarUrlForUrl($contact['url'], $this->userSession->getLocalUserId(), Proxy::SIZE_MICRO);
$dateMySQL = $date->format(DateTimeFormat::MYSQL); $dateMySQL = $date->format(DateTimeFormat::MYSQL);

View file

@ -27,7 +27,7 @@ use Friendica\BaseFactory;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -64,15 +64,18 @@ class FormattedNotify extends BaseFactory
private $baseUrl; private $baseUrl;
/** @var L10n */ /** @var L10n */
private $l10n; private $l10n;
/** @var IHandleUserSessions */
private $userSession;
public function __construct(LoggerInterface $logger, Database $dba, Repository\Notify $notification, BaseURL $baseUrl, L10n $l10n) public function __construct(LoggerInterface $logger, Database $dba, Repository\Notify $notification, BaseURL $baseUrl, L10n $l10n, IHandleUserSessions $userSession)
{ {
parent::__construct($logger); parent::__construct($logger);
$this->dba = $dba; $this->dba = $dba;
$this->notify = $notification; $this->notify = $notification;
$this->baseUrl = $baseUrl; $this->baseUrl = $baseUrl;
$this->l10n = $l10n; $this->l10n = $l10n;
$this->userSession = $userSession;
} }
/** /**
@ -211,7 +214,7 @@ class FormattedNotify extends BaseFactory
$formattedNotifications = new FormattedNotifies(); $formattedNotifications = new FormattedNotifies();
try { try {
$Notifies = $this->notify->selectForUser(Session::getLocalUser(), $conditions, $params); $Notifies = $this->notify->selectForUser($this->userSession->getLocalUserId(), $conditions, $params);
foreach ($Notifies as $Notify) { foreach ($Notifies as $Notify) {
$formattedNotifications[] = new ValueObject\FormattedNotify( $formattedNotifications[] = new ValueObject\FormattedNotify(
@ -244,7 +247,7 @@ class FormattedNotify extends BaseFactory
*/ */
public function getNetworkList(bool $seen = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT): FormattedNotifies public function getNetworkList(bool $seen = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT): FormattedNotifies
{ {
$condition = ['wall' => false, 'uid' => Session::getLocalUser()]; $condition = ['wall' => false, 'uid' => $this->userSession->getLocalUserId()];
if (!$seen) { if (!$seen) {
$condition['unseen'] = true; $condition['unseen'] = true;
@ -257,7 +260,7 @@ class FormattedNotify extends BaseFactory
$formattedNotifications = new FormattedNotifies(); $formattedNotifications = new FormattedNotifies();
try { try {
$userPosts = Post::selectForUser(Session::getLocalUser(), $fields, $condition, $params); $userPosts = Post::selectForUser($this->userSession->getLocalUserId(), $fields, $condition, $params);
while ($userPost = $this->dba->fetch($userPosts)) { while ($userPost = $this->dba->fetch($userPosts)) {
$formattedNotifications[] = $this->createFromFormattedItem($this->formatItem($userPost)); $formattedNotifications[] = $this->createFromFormattedItem($this->formatItem($userPost));
} }
@ -280,7 +283,7 @@ class FormattedNotify extends BaseFactory
*/ */
public function getPersonalList(bool $seen = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT): FormattedNotifies public function getPersonalList(bool $seen = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT): FormattedNotifies
{ {
$condition = ['wall' => false, 'uid' => Session::getLocalUser(), 'author-id' => Session::getPublicContact()]; $condition = ['wall' => false, 'uid' => $this->userSession->getLocalUserId(), 'author-id' => $this->userSession->getPublicContactId()];
if (!$seen) { if (!$seen) {
$condition['unseen'] = true; $condition['unseen'] = true;
@ -293,7 +296,7 @@ class FormattedNotify extends BaseFactory
$formattedNotifications = new FormattedNotifies(); $formattedNotifications = new FormattedNotifies();
try { try {
$userPosts = Post::selectForUser(Session::getLocalUser(), $fields, $condition, $params); $userPosts = Post::selectForUser($this->userSession->getLocalUserId(), $fields, $condition, $params);
while ($userPost = $this->dba->fetch($userPosts)) { while ($userPost = $this->dba->fetch($userPosts)) {
$formattedNotifications[] = $this->createFromFormattedItem($this->formatItem($userPost)); $formattedNotifications[] = $this->createFromFormattedItem($this->formatItem($userPost));
} }
@ -316,7 +319,7 @@ class FormattedNotify extends BaseFactory
*/ */
public function getHomeList(bool $seen = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT): FormattedNotifies public function getHomeList(bool $seen = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT): FormattedNotifies
{ {
$condition = ['wall' => true, 'uid' => Session::getLocalUser()]; $condition = ['wall' => true, 'uid' => $this->userSession->getLocalUserId()];
if (!$seen) { if (!$seen) {
$condition['unseen'] = true; $condition['unseen'] = true;
@ -329,7 +332,7 @@ class FormattedNotify extends BaseFactory
$formattedNotifications = new FormattedNotifies(); $formattedNotifications = new FormattedNotifies();
try { try {
$userPosts = Post::selectForUser(Session::getLocalUser(), $fields, $condition, $params); $userPosts = Post::selectForUser($this->userSession->getLocalUserId(), $fields, $condition, $params);
while ($userPost = $this->dba->fetch($userPosts)) { while ($userPost = $this->dba->fetch($userPosts)) {
$formattedItem = $this->formatItem($userPost); $formattedItem = $this->formatItem($userPost);

View file

@ -29,8 +29,8 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Module\BaseNotifications; use Friendica\Module\BaseNotifications;
@ -56,10 +56,12 @@ class Introduction extends BaseFactory
private $pConfig; private $pConfig;
/** @var IHandleSessions */ /** @var IHandleSessions */
private $session; private $session;
/** @var IHandleUserSessions */
private $userSession;
/** @var string */ /** @var string */
private $nick; private $nick;
public function __construct(LoggerInterface $logger, Database $dba, BaseURL $baseUrl, L10n $l10n, App $app, IManagePersonalConfigValues $pConfig, IHandleSessions $session) public function __construct(LoggerInterface $logger, Database $dba, BaseURL $baseUrl, L10n $l10n, App $app, IManagePersonalConfigValues $pConfig, IHandleSessions $session, IHandleUserSessions $userSession)
{ {
parent::__construct($logger); parent::__construct($logger);
@ -68,6 +70,7 @@ class Introduction extends BaseFactory
$this->l10n = $l10n; $this->l10n = $l10n;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->session = $session; $this->session = $session;
$this->userSession = $userSession;
$this->nick = $app->getLoggedInUserNickname() ?? ''; $this->nick = $app->getLoggedInUserNickname() ?? '';
} }
@ -143,7 +146,7 @@ class Introduction extends BaseFactory
'url' => $intro['furl'], 'url' => $intro['furl'],
'zrl' => Contact::magicLink($intro['furl']), 'zrl' => Contact::magicLink($intro['furl']),
'hidden' => $intro['hidden'] == 1, 'hidden' => $intro['hidden'] == 1,
'post_newfriend' => (intval($this->pConfig->get(Session::getLocalUser(), 'system', 'post_newfriend')) ? '1' : 0), 'post_newfriend' => (intval($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'post_newfriend')) ? '1' : 0),
'note' => $intro['note'], 'note' => $intro['note'],
'request' => $intro['frequest'] . '?addr=' . $return_addr]); 'request' => $intro['frequest'] . '?addr=' . $return_addr]);
@ -168,7 +171,7 @@ class Introduction extends BaseFactory
'about' => BBCode::convert($intro['about'], false), 'about' => BBCode::convert($intro['about'], false),
'keywords' => $intro['keywords'], 'keywords' => $intro['keywords'],
'hidden' => $intro['hidden'] == 1, 'hidden' => $intro['hidden'] == 1,
'post_newfriend' => (intval($this->pConfig->get(Session::getLocalUser(), 'system', 'post_newfriend')) ? '1' : 0), 'post_newfriend' => (intval($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'post_newfriend')) ? '1' : 0),
'url' => $intro['url'], 'url' => $intro['url'],
'zrl' => Contact::magicLink($intro['url']), 'zrl' => Contact::magicLink($intro['url']),
'addr' => $intro['addr'], 'addr' => $intro['addr'],

View file

@ -27,7 +27,6 @@ use Exception;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -317,7 +316,7 @@ class Probe
} }
if ($uid == -1) { if ($uid == -1) {
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
} }
if (empty($network) || ($network == Protocol::ACTIVITYPUB)) { if (empty($network) || ($network == Protocol::ACTIVITYPUB)) {

View file

@ -28,7 +28,6 @@ use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -87,7 +86,7 @@ class Post
$this->setTemplate('wall'); $this->setTemplate('wall');
$this->toplevel = $this->getId() == $this->getDataValue('parent'); $this->toplevel = $this->getId() == $this->getDataValue('parent');
if (!empty(Session::getUserIDForVisitorContactID($this->getDataValue('contact-id')))) { if (!empty(DI::userSession()->getUserIDForVisitorContactID($this->getDataValue('contact-id')))) {
$this->visiting = true; $this->visiting = true;
} }
@ -104,14 +103,14 @@ class Post
if (!empty($data['children'])) { if (!empty($data['children'])) {
foreach ($data['children'] as $item) { foreach ($data['children'] as $item) {
// Only add will be displayed // Only add will be displayed
if ($item['network'] === Protocol::MAIL && Session::getLocalUser() != $item['uid']) { if ($item['network'] === Protocol::MAIL && DI::userSession()->getLocalUserId() != $item['uid']) {
continue; continue;
} elseif (!DI::contentItem()->isVisibleActivity($item)) { } elseif (!DI::contentItem()->isVisibleActivity($item)) {
continue; continue;
} }
// You can always comment on Diaspora and OStatus items // You can always comment on Diaspora and OStatus items
if (in_array($item['network'], [Protocol::OSTATUS, Protocol::DIASPORA]) && (Session::getLocalUser() == $item['uid'])) { if (in_array($item['network'], [Protocol::OSTATUS, Protocol::DIASPORA]) && (DI::userSession()->getLocalUserId() == $item['uid'])) {
$item['writable'] = true; $item['writable'] = true;
} }
@ -206,7 +205,7 @@ class Post
$lock = ($item['private'] == Item::PRIVATE) ? $privacy : false; $lock = ($item['private'] == Item::PRIVATE) ? $privacy : false;
$connector = !in_array($item['network'], Protocol::NATIVE_SUPPORT) ? DI::l10n()->t('Connector Message') : false; $connector = !in_array($item['network'], Protocol::NATIVE_SUPPORT) ? DI::l10n()->t('Connector Message') : false;
$shareable = in_array($conv->getProfileOwner(), [0, Session::getLocalUser()]) && $item['private'] != Item::PRIVATE; $shareable = in_array($conv->getProfileOwner(), [0, DI::userSession()->getLocalUserId()]) && $item['private'] != Item::PRIVATE;
$announceable = $shareable && in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::TWITTER]); $announceable = $shareable && in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::TWITTER]);
// On Diaspora only toplevel posts can be reshared // On Diaspora only toplevel posts can be reshared
@ -216,7 +215,7 @@ class Post
$edpost = false; $edpost = false;
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
if (Strings::compareLink(DI::session()->get('my_url'), $item['author-link'])) { if (Strings::compareLink(DI::session()->get('my_url'), $item['author-link'])) {
if ($item['event-id'] != 0) { if ($item['event-id'] != 0) {
$edpost = ['events/event/' . $item['event-id'], DI::l10n()->t('Edit')]; $edpost = ['events/event/' . $item['event-id'], DI::l10n()->t('Edit')];
@ -224,7 +223,7 @@ class Post
$edpost = ['editpost/' . $item['id'], DI::l10n()->t('Edit')]; $edpost = ['editpost/' . $item['id'], DI::l10n()->t('Edit')];
} }
} }
$dropping = in_array($item['uid'], [0, Session::getLocalUser()]); $dropping = in_array($item['uid'], [0, DI::userSession()->getLocalUserId()]);
} }
// Editing on items of not subscribed users isn't currently possible // Editing on items of not subscribed users isn't currently possible
@ -234,7 +233,7 @@ class Post
$edpost = false; $edpost = false;
} }
if (($this->getDataValue('uid') == Session::getLocalUser()) || $this->isVisiting()) { if (($this->getDataValue('uid') == DI::userSession()->getLocalUserId()) || $this->isVisiting()) {
$dropping = true; $dropping = true;
} }
@ -249,7 +248,7 @@ class Post
$drop = false; $drop = false;
$block = false; $block = false;
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$drop = [ $drop = [
'dropping' => $dropping, 'dropping' => $dropping,
'pagedrop' => $item['pagedrop'], 'pagedrop' => $item['pagedrop'],
@ -258,7 +257,7 @@ class Post
]; ];
} }
if (!$item['self'] && Session::getLocalUser()) { if (!$item['self'] && DI::userSession()->getLocalUserId()) {
$block = [ $block = [
'blocking' => true, 'blocking' => true,
'block' => DI::l10n()->t('Block %s', $item['author-name']), 'block' => DI::l10n()->t('Block %s', $item['author-name']),
@ -266,14 +265,14 @@ class Post
]; ];
} }
$filer = Session::getLocalUser() ? DI::l10n()->t('Save to folder') : false; $filer = DI::userSession()->getLocalUserId() ? DI::l10n()->t('Save to folder') : false;
$profile_name = $item['author-name']; $profile_name = $item['author-name'];
if (!empty($item['author-link']) && empty($item['author-name'])) { if (!empty($item['author-link']) && empty($item['author-name'])) {
$profile_name = $item['author-link']; $profile_name = $item['author-link'];
} }
if (Session::isAuthenticated()) { if (DI::userSession()->isAuthenticated()) {
$author = ['uid' => 0, 'id' => $item['author-id'], $author = ['uid' => 0, 'id' => $item['author-id'],
'network' => $item['author-network'], 'url' => $item['author-link']]; 'network' => $item['author-network'], 'url' => $item['author-link']];
$profile_link = Contact::magicLinkByContact($author); $profile_link = Contact::magicLinkByContact($author);
@ -327,8 +326,8 @@ class Post
$tagger = ''; $tagger = '';
if ($this->isToplevel()) { if ($this->isToplevel()) {
if (Session::getLocalUser()) { if (DI::userSession()->getLocalUserId()) {
$ignored = PostModel\ThreadUser::getIgnored($item['uri-id'], Session::getLocalUser()); $ignored = PostModel\ThreadUser::getIgnored($item['uri-id'], DI::userSession()->getLocalUserId());
if ($item['mention'] || $ignored) { if ($item['mention'] || $ignored) {
$ignore = [ $ignore = [
'do' => DI::l10n()->t('Ignore thread'), 'do' => DI::l10n()->t('Ignore thread'),
@ -351,7 +350,7 @@ class Post
'starred' => DI::l10n()->t('Starred'), 'starred' => DI::l10n()->t('Starred'),
]; ];
if ($conv->getProfileOwner() == Session::getLocalUser() && ($item['uid'] != 0)) { if ($conv->getProfileOwner() == DI::userSession()->getLocalUserId() && ($item['uid'] != 0)) {
if ($origin && in_array($item['private'], [Item::PUBLIC, Item::UNLISTED])) { if ($origin && in_array($item['private'], [Item::PUBLIC, Item::UNLISTED])) {
$ispinned = ($item['featured'] ? 'pinned' : 'unpinned'); $ispinned = ($item['featured'] ? 'pinned' : 'unpinned');
@ -397,17 +396,17 @@ class Post
$body_html = Item::prepareBody($item, true); $body_html = Item::prepareBody($item, true);
list($categories, $folders) = DI::contentItem()->determineCategoriesTerms($item, Session::getLocalUser()); list($categories, $folders) = DI::contentItem()->determineCategoriesTerms($item, DI::userSession()->getLocalUserId());
if (!empty($item['title'])) { if (!empty($item['title'])) {
$title = $item['title']; $title = $item['title'];
} elseif (!empty($item['content-warning']) && DI::pConfig()->get(Session::getLocalUser(), 'system', 'disable_cw', false)) { } elseif (!empty($item['content-warning']) && DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'disable_cw', false)) {
$title = ucfirst($item['content-warning']); $title = ucfirst($item['content-warning']);
} else { } else {
$title = ''; $title = '';
} }
if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'hide_dislike')) { if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike')) {
$buttons['dislike'] = false; $buttons['dislike'] = false;
} }
@ -434,7 +433,7 @@ class Post
} }
// Fetching of Diaspora posts doesn't always work. There are issues with reshares and possibly comments // Fetching of Diaspora posts doesn't always work. There are issues with reshares and possibly comments
if (!Session::getLocalUser() && ($item['network'] != Protocol::DIASPORA) && !empty(DI::session()->get('remote_comment'))) { if (!DI::userSession()->getLocalUserId() && ($item['network'] != Protocol::DIASPORA) && !empty(DI::session()->get('remote_comment'))) {
$remote_comment = [DI::l10n()->t('Comment this item on your system'), DI::l10n()->t('Remote comment'), $remote_comment = [DI::l10n()->t('Comment this item on your system'), DI::l10n()->t('Remote comment'),
str_replace('{uri}', urlencode($item['uri']), DI::session()->get('remote_comment'))]; str_replace('{uri}', urlencode($item['uri']), DI::session()->get('remote_comment'))];
@ -642,7 +641,7 @@ class Post
/* /*
* Only add what will be displayed * Only add what will be displayed
*/ */
if ($item->getDataValue('network') === Protocol::MAIL && Session::getLocalUser() != $item->getDataValue('uid')) { if ($item->getDataValue('network') === Protocol::MAIL && DI::userSession()->getLocalUserId() != $item->getDataValue('uid')) {
return false; return false;
} elseif ($activity->match($item->getDataValue('verb'), Activity::LIKE) || } elseif ($activity->match($item->getDataValue('verb'), Activity::LIKE) ||
$activity->match($item->getDataValue('verb'), Activity::DISLIKE)) { $activity->match($item->getDataValue('verb'), Activity::DISLIKE)) {
@ -850,7 +849,7 @@ class Post
// This will allow us to comment on wall-to-wall items owned by our friends // This will allow us to comment on wall-to-wall items owned by our friends
// and community forums even if somebody else wrote the post. // and community forums even if somebody else wrote the post.
// bug #517 - this fixes for conversation owner // bug #517 - this fixes for conversation owner
if ($conv->getMode() == 'profile' && $conv->getProfileOwner() == Session::getLocalUser()) { if ($conv->getMode() == 'profile' && $conv->getProfileOwner() == DI::userSession()->getLocalUserId()) {
return true; return true;
} }
@ -898,20 +897,20 @@ class Post
{ {
$a = DI::app(); $a = DI::app();
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
$owner = User::getOwnerDataById($a->getLoggedInUserId()); $owner = User::getOwnerDataById($a->getLoggedInUserId());
$item = $this->getData(); $item = $this->getData();
if (!empty($item['content-warning']) && Feature::isEnabled(Session::getLocalUser(), 'add_abstract')) { if (!empty($item['content-warning']) && Feature::isEnabled(DI::userSession()->getLocalUserId(), 'add_abstract')) {
$text = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $item['content-warning'] . "[/abstract]\n"; $text = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $item['content-warning'] . "[/abstract]\n";
} else { } else {
$text = ''; $text = '';
} }
if (!Feature::isEnabled(Session::getLocalUser(), 'explicit_mentions')) { if (!Feature::isEnabled(DI::userSession()->getLocalUserId(), 'explicit_mentions')) {
return $text; return $text;
} }
@ -958,7 +957,7 @@ class Post
*/ */
$qcomment = null; $qcomment = null;
if (Addon::isEnabled('qcomment')) { if (Addon::isEnabled('qcomment')) {
$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words'); $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
$qcomment = $words ? explode("\n", $words) : []; $qcomment = $words ? explode("\n", $words) : [];
} }

View file

@ -23,7 +23,6 @@ namespace Friendica\Object;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
use Friendica\Security\Security; use Friendica\Security\Security;
@ -76,7 +75,7 @@ class Thread
switch ($mode) { switch ($mode) {
case 'network': case 'network':
case 'notes': case 'notes':
$this->profile_owner = Session::getLocalUser(); $this->profile_owner = DI::userSession()->getLocalUserId();
$this->writable = true; $this->writable = true;
break; break;
case 'profile': case 'profile':
@ -169,7 +168,7 @@ class Thread
/* /*
* Only add will be displayed * Only add will be displayed
*/ */
if ($item->getDataValue('network') === Protocol::MAIL && Session::getLocalUser() != $item->getDataValue('uid')) { if ($item->getDataValue('network') === Protocol::MAIL && DI::userSession()->getLocalUserId() != $item->getDataValue('uid')) {
Logger::info('[WARN] Conversation::addThread : Thread is a mail ('. $item->getId() .').'); Logger::info('[WARN] Conversation::addThread : Thread is a mail ('. $item->getId() .').');
return false; return false;
} }
@ -202,7 +201,7 @@ class Thread
$result = []; $result = [];
foreach ($this->parents as $item) { foreach ($this->parents as $item) {
if ($item->getDataValue('network') === Protocol::MAIL && Session::getLocalUser() != $item->getDataValue('uid')) { if ($item->getDataValue('network') === Protocol::MAIL && DI::userSession()->getLocalUserId() != $item->getDataValue('uid')) {
continue; continue;
} }

View file

@ -26,7 +26,6 @@ use Friendica\App;
use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\Database; use Friendica\Database\Database;
@ -333,7 +332,7 @@ class Authentication
'addr' => $this->remoteAddress, 'addr' => $this->remoteAddress,
]); ]);
Session::setVisitorsContacts(); DI::userSession()->setVisitorsContacts();
$member_since = strtotime($user_record['register_date']); $member_since = strtotime($user_record['register_date']);
$this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14))); $this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14)));

View file

@ -24,7 +24,6 @@ namespace Friendica\Security;
use Exception; use Exception;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
@ -191,7 +190,7 @@ class BasicAuth
Hook::callAll('logged_in', $record); Hook::callAll('logged_in', $record);
self::$current_user_id = Session::getLocalUser(); self::$current_user_id = DI::userSession()->getLocalUserId();
return self::$current_user_id; return self::$current_user_id;
} }

View file

@ -22,10 +22,10 @@
namespace Friendica\Security; namespace Friendica\Security;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Group; use Friendica\Model\Group;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Core\Session;
/** /**
* Secures that User is allow to do requests * Secures that User is allow to do requests
@ -36,20 +36,20 @@ class Security
{ {
static $verified = 0; static $verified = 0;
if (!Session::isAuthenticated()) { if (!DI::userSession()->isAuthenticated()) {
return false; return false;
} }
$uid = Session::getLocalUser(); $uid = DI::userSession()->getLocalUserId();
if ($uid == $owner) { if ($uid == $owner) {
return true; return true;
} }
if (Session::getLocalUser() && ($owner == 0)) { if (DI::userSession()->getLocalUserId() && ($owner == 0)) {
return true; return true;
} }
if (!empty($cid = Session::getRemoteContactID($owner))) { if (!empty($cid = DI::userSession()->getRemoteContactID($owner))) {
// use remembered decision and avoid a DB lookup for each and every display item // use remembered decision and avoid a DB lookup for each and every display item
// DO NOT use this function if there are going to be multiple owners // DO NOT use this function if there are going to be multiple owners
// We have a contact-id for an authenticated remote user, this block determines if the contact // We have a contact-id for an authenticated remote user, this block determines if the contact
@ -93,8 +93,8 @@ class Security
*/ */
public static function getPermissionsSQLByUserId(int $owner_id, bool $accessible = false) public static function getPermissionsSQLByUserId(int $owner_id, bool $accessible = false)
{ {
$local_user = Session::getLocalUser(); $local_user = DI::userSession()->getLocalUserId();
$remote_contact = Session::getRemoteContactID($owner_id); $remote_contact = DI::userSession()->getRemoteContactID($owner_id);
$acc_sql = ''; $acc_sql = '';
if ($accessible) { if ($accessible) {

View file

@ -24,7 +24,6 @@ namespace Friendica\Util;
use DateTime; use DateTime;
use DateTimeZone; use DateTimeZone;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -239,7 +238,7 @@ class Temporal
bool $required = false): string bool $required = false): string
{ {
// First day of the week (0 = Sunday) // First day of the week (0 = Sunday)
$firstDay = DI::pConfig()->get(Session::getLocalUser(), 'system', 'first_day_of_week', 0); $firstDay = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week', 0);
$lang = substr(DI::l10n()->getCurrentLang(), 0, 2); $lang = substr(DI::l10n()->getCurrentLang(), 0, 2);

View file

@ -41,6 +41,7 @@ use Friendica\Core\PConfig;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Lock; use Friendica\Core\Lock;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\Storage\Repository\StorageManager; use Friendica\Core\Storage\Repository\StorageManager;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Database\Definition\DbaDefinition; use Friendica\Database\Definition\DbaDefinition;
@ -224,6 +225,9 @@ return [
['start', [], Dice::CHAIN_CALL], ['start', [], Dice::CHAIN_CALL],
], ],
], ],
IHandleUserSessions::class => [
'instanceOf' => \Friendica\Core\Session\Model\UserSession::class,
],
Cookie::class => [ Cookie::class => [
'constructParams' => [ 'constructParams' => [
$_COOKIE $_COOKIE

View file

@ -574,7 +574,7 @@ return [
'/photo[/new]' => [Module\Settings\Profile\Photo\Index::class, [R::GET, R::POST]], '/photo[/new]' => [Module\Settings\Profile\Photo\Index::class, [R::GET, R::POST]],
'/photo/crop/{guid}' => [Module\Settings\Profile\Photo\Crop::class, [R::GET, R::POST]], '/photo/crop/{guid}' => [Module\Settings\Profile\Photo\Crop::class, [R::GET, R::POST]],
], ],
'/userexport[/{action}]' => [Module\Settings\UserExport::class, [R::GET, R::POST]], '/userexport[/{action}]' => [Module\Settings\UserExport::class, [R::GET ]],
], ],
'/network' => [ '/network' => [

View file

@ -27,8 +27,8 @@ use Friendica\App\Arguments;
use Friendica\App\Router; use Friendica\App\Router;
use Friendica\Core\Config\ValueObject\Cache; use Friendica\Core\Config\ValueObject\Cache;
use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Session;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Type\Memory;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Database\DBStructure; use Friendica\Database\DBStructure;
use Friendica\DI; use Friendica\DI;
@ -55,7 +55,7 @@ abstract class FixtureTest extends DatabaseTest
$this->dice = (new Dice()) $this->dice = (new Dice())
->addRules(include __DIR__ . '/../static/dependencies.config.php') ->addRules(include __DIR__ . '/../static/dependencies.config.php')
->addRule(Database::class, ['instanceOf' => StaticDatabase::class, 'shared' => true]) ->addRule(Database::class, ['instanceOf' => StaticDatabase::class, 'shared' => true])
->addRule(IHandleSessions::class, ['instanceOf' => Session\Type\Memory::class, 'shared' => true, 'call' => null]) ->addRule(IHandleSessions::class, ['instanceOf' => Memory::class, 'shared' => true, 'call' => null])
->addRule(Arguments::class, [ ->addRule(Arguments::class, [
'instanceOf' => Arguments::class, 'instanceOf' => Arguments::class,
'call' => [ 'call' => [

View file

@ -0,0 +1,218 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Test\src\Core\Session;
use Friendica\Core\Session\Model\UserSession;
use Friendica\Core\Session\Type\ArraySession;
use Friendica\Test\MockedTest;
class UserSessionTest extends MockedTest
{
public function dataLocalUserId()
{
return [
'standard' => [
'data' => [
'authenticated' => true,
'uid' => 21,
],
'expected' => 21,
],
'not_auth' => [
'data' => [
'authenticated' => false,
'uid' => 21,
],
'expected' => false,
],
'no_uid' => [
'data' => [
'authenticated' => true,
],
'expected' => false,
],
'no_auth' => [
'data' => [
'uid' => 21,
],
'expected' => false,
],
'invalid' => [
'data' => [
'authenticated' => false,
'uid' => 'test',
],
'expected' => false,
],
];
}
/**
* @dataProvider dataLocalUserId
*/
public function testGetLocalUserId(array $data, $expected)
{
$userSession = new UserSession(new ArraySession($data));
$this->assertEquals($expected, $userSession->getLocalUserId());
}
public function testPublicContactId()
{
$this->markTestSkipped('Needs Contact::getIdForURL testable first');
}
public function dataGetRemoteUserId()
{
return [
'standard' => [
'data' => [
'authenticated' => true,
'visitor_id' => 21,
],
'expected' => 21,
],
'not_auth' => [
'data' => [
'authenticated' => false,
'visitor_id' => 21,
],
'expected' => false,
],
'no_visitor_id' => [
'data' => [
'authenticated' => true,
],
'expected' => false,
],
'no_auth' => [
'data' => [
'visitor_id' => 21,
],
'expected' => false,
],
'invalid' => [
'data' => [
'authenticated' => false,
'visitor_id' => 'test',
],
'expected' => false,
],
];
}
/**
* @dataProvider dataGetRemoteUserId
*/
public function testGetRemoteUserId(array $data, $expected)
{
$userSession = new UserSession(new ArraySession($data));
$this->assertEquals($expected, $userSession->getRemoteUserId());
}
/// @fixme Add more data when Contact::getIdForUrl is a dynamic class
public function dataGetRemoteContactId()
{
return [
'remote_exists' => [
'uid' => 1,
'data' => [
'remote' => ['1' => '21'],
],
'expected' => 21,
],
];
}
/**
* @dataProvider dataGetRemoteContactId
*/
public function testGetRemoteContactId(int $uid, array $data, $expected)
{
$userSession = new UserSession(new ArraySession($data));
$this->assertEquals($expected, $userSession->getRemoteContactID($uid));
}
public function dataGetUserIdForVisitorContactID()
{
return [
'standard' => [
'cid' => 21,
'data' => [
'remote' => ['3' => '21'],
],
'expected' => 3,
],
'missing' => [
'cid' => 2,
'data' => [
'remote' => ['3' => '21'],
],
'expected' => false,
],
'empty' => [
'cid' => 21,
'data' => [
],
'expected' => false,
],
];
}
/** @dataProvider dataGetUserIdForVisitorContactID */
public function testGetUserIdForVisitorContactID(int $cid, array $data, $expected)
{
$userSession = new UserSession(new ArraySession($data));
$this->assertEquals($expected, $userSession->getUserIDForVisitorContactID($cid));
}
public function dataAuthenticated()
{
return [
'authenticated' => [
'data' => [
'authenticated' => true,
],
'expected' => true,
],
'not_authenticated' => [
'data' => [
'authenticated' => false,
],
'expected' => false,
],
'missing' => [
'data' => [
],
'expected' => false,
],
];
}
/**
* @dataProvider dataAuthenticated
*/
public function testIsAuthenticated(array $data, $expected)
{
$userSession = new UserSession(new ArraySession($data));
$this->assertEquals($expected, $userSession->isAuthenticated());
}
}

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2022.12-dev\n" "Project-Id-Version: 2022.12-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-19 20:30+0000\n" "POT-Creation-Date: 2022-10-24 18:18-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,526 +18,526 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: mod/cal.php:46 mod/cal.php:50 mod/follow.php:40 mod/redir.php:36 #: mod/cal.php:45 mod/cal.php:49 mod/follow.php:39 mod/redir.php:35
#: mod/redir.php:177 src/Module/Conversation/Community.php:194 #: mod/redir.php:176 src/Module/Conversation/Community.php:193
#: src/Module/Debug/ItemBody.php:39 src/Module/Diaspora/Receive.php:57 #: src/Module/Debug/ItemBody.php:38 src/Module/Diaspora/Receive.php:57
#: src/Module/Item/Follow.php:42 src/Module/Item/Ignore.php:42 #: src/Module/Item/Follow.php:41 src/Module/Item/Ignore.php:41
#: src/Module/Item/Pin.php:42 src/Module/Item/Pin.php:57 #: src/Module/Item/Pin.php:41 src/Module/Item/Pin.php:56
#: src/Module/Item/Star.php:43 #: src/Module/Item/Star.php:42
msgid "Access denied." msgid "Access denied."
msgstr "" msgstr ""
#: mod/cal.php:63 mod/cal.php:80 mod/photos.php:69 mod/photos.php:140 #: mod/cal.php:62 mod/cal.php:79 mod/photos.php:68 mod/photos.php:139
#: mod/photos.php:794 src/Model/Profile.php:235 src/Module/Feed.php:73 #: mod/photos.php:793 src/Model/Profile.php:234 src/Module/Feed.php:72
#: src/Module/HCard.php:52 src/Module/Profile/Common.php:41 #: src/Module/HCard.php:51 src/Module/Profile/Common.php:40
#: src/Module/Profile/Common.php:52 src/Module/Profile/Contacts.php:40 #: src/Module/Profile/Common.php:51 src/Module/Profile/Contacts.php:39
#: src/Module/Profile/Contacts.php:50 src/Module/Profile/Media.php:39 #: src/Module/Profile/Contacts.php:49 src/Module/Profile/Media.php:38
#: src/Module/Profile/Status.php:59 src/Module/Register.php:268 #: src/Module/Profile/Status.php:58 src/Module/Register.php:267
#: src/Module/RemoteFollow.php:59 #: src/Module/RemoteFollow.php:59
msgid "User not found." msgid "User not found."
msgstr "" msgstr ""
#: mod/cal.php:122 mod/display.php:262 src/Module/Profile/Profile.php:94 #: mod/cal.php:121 mod/display.php:261 src/Module/Profile/Profile.php:93
#: src/Module/Profile/Profile.php:109 src/Module/Profile/Status.php:110 #: src/Module/Profile/Profile.php:108 src/Module/Profile/Status.php:109
#: src/Module/Update/Profile.php:56 #: src/Module/Update/Profile.php:55
msgid "Access to this profile has been restricted." msgid "Access to this profile has been restricted."
msgstr "" msgstr ""
#: mod/cal.php:243 mod/events.php:376 src/Content/Nav.php:197 #: mod/cal.php:242 mod/events.php:375 src/Content/Nav.php:196
#: src/Content/Nav.php:261 src/Module/BaseProfile.php:84 #: src/Content/Nav.php:260 src/Module/BaseProfile.php:84
#: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:242 #: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:241
#: view/theme/frio/theme.php:246 #: view/theme/frio/theme.php:245
msgid "Events" msgid "Events"
msgstr "" msgstr ""
#: mod/cal.php:244 mod/events.php:377 #: mod/cal.php:243 mod/events.php:376
msgid "View" msgid "View"
msgstr "" msgstr ""
#: mod/cal.php:245 mod/events.php:379 #: mod/cal.php:244 mod/events.php:378
msgid "Previous" msgid "Previous"
msgstr "" msgstr ""
#: mod/cal.php:246 mod/events.php:380 src/Module/Install.php:214 #: mod/cal.php:245 mod/events.php:379 src/Module/Install.php:214
msgid "Next" msgid "Next"
msgstr "" msgstr ""
#: mod/cal.php:249 mod/events.php:385 src/Model/Event.php:461 #: mod/cal.php:248 mod/events.php:384 src/Model/Event.php:460
msgid "today" msgid "today"
msgstr "" msgstr ""
#: mod/cal.php:249 mod/events.php:385 src/Model/Event.php:461
#: src/Util/Temporal.php:341
msgid "month"
msgstr ""
#: mod/cal.php:250 mod/events.php:386 src/Model/Event.php:462 #: mod/cal.php:250 mod/events.php:386 src/Model/Event.php:462
#: src/Util/Temporal.php:342 #: src/Util/Temporal.php:342
msgid "month" msgid "week"
msgstr "" msgstr ""
#: mod/cal.php:251 mod/events.php:387 src/Model/Event.php:463 #: mod/cal.php:251 mod/events.php:387 src/Model/Event.php:463
#: src/Util/Temporal.php:343 #: src/Util/Temporal.php:343
msgid "week"
msgstr ""
#: mod/cal.php:252 mod/events.php:388 src/Model/Event.php:464
#: src/Util/Temporal.php:344
msgid "day" msgid "day"
msgstr "" msgstr ""
#: mod/cal.php:253 mod/events.php:389 #: mod/cal.php:252 mod/events.php:388
msgid "list" msgid "list"
msgstr "" msgstr ""
#: mod/cal.php:265 src/Console/User.php:182 src/Model/User.php:663 #: mod/cal.php:264 src/Console/User.php:182 src/Model/User.php:663
#: src/Module/Admin/Users/Active.php:74 src/Module/Admin/Users/Blocked.php:75 #: src/Module/Admin/Users/Active.php:73 src/Module/Admin/Users/Blocked.php:74
#: src/Module/Admin/Users/Index.php:81 src/Module/Admin/Users/Pending.php:71 #: src/Module/Admin/Users/Index.php:80 src/Module/Admin/Users/Pending.php:71
#: src/Module/Api/Twitter/ContactEndpoint.php:74 #: src/Module/Api/Twitter/ContactEndpoint.php:74
msgid "User not found" msgid "User not found"
msgstr "" msgstr ""
#: mod/cal.php:274 #: mod/cal.php:273
msgid "This calendar format is not supported" msgid "This calendar format is not supported"
msgstr "" msgstr ""
#: mod/cal.php:276 #: mod/cal.php:275
msgid "No exportable data found" msgid "No exportable data found"
msgstr "" msgstr ""
#: mod/cal.php:292 #: mod/cal.php:291
msgid "calendar" msgid "calendar"
msgstr "" msgstr ""
#: mod/display.php:143 mod/photos.php:798 #: mod/display.php:142 mod/photos.php:797
#: src/Module/Conversation/Community.php:188 src/Module/Directory.php:49 #: src/Module/Conversation/Community.php:187 src/Module/Directory.php:48
#: src/Module/Search/Index.php:65 #: src/Module/Search/Index.php:64
msgid "Public access denied." msgid "Public access denied."
msgstr "" msgstr ""
#: mod/display.php:213 mod/display.php:287 #: mod/display.php:212 mod/display.php:286
msgid "The requested item doesn't exist or has been deleted." msgid "The requested item doesn't exist or has been deleted."
msgstr "" msgstr ""
#: mod/display.php:367 #: mod/display.php:366
msgid "The feed for this item is unavailable." msgid "The feed for this item is unavailable."
msgstr "" msgstr ""
#: mod/editpost.php:39 mod/events.php:219 mod/follow.php:57 mod/follow.php:131 #: mod/editpost.php:38 mod/events.php:218 mod/follow.php:56 mod/follow.php:130
#: mod/item.php:182 mod/item.php:187 mod/item.php:865 mod/message.php:70 #: mod/item.php:181 mod/item.php:186 mod/item.php:864 mod/message.php:69
#: mod/message.php:115 mod/notes.php:45 mod/ostatus_subscribe.php:34 #: mod/message.php:114 mod/notes.php:44 mod/ostatus_subscribe.php:33
#: mod/photos.php:160 mod/photos.php:887 mod/repair_ostatus.php:32 #: mod/photos.php:159 mod/photos.php:886 mod/repair_ostatus.php:31
#: mod/settings.php:41 mod/settings.php:51 mod/settings.php:157 #: mod/settings.php:40 mod/settings.php:50 mod/settings.php:156
#: mod/suggest.php:35 mod/uimport.php:33 mod/unfollow.php:36 #: mod/suggest.php:34 mod/uimport.php:33 mod/unfollow.php:35
#: mod/unfollow.php:51 mod/unfollow.php:83 mod/wall_attach.php:67 #: mod/unfollow.php:50 mod/unfollow.php:82 mod/wall_attach.php:66
#: mod/wall_attach.php:69 mod/wall_upload.php:89 mod/wall_upload.php:91 #: mod/wall_attach.php:68 mod/wall_upload.php:88 mod/wall_upload.php:90
#: mod/wallmessage.php:37 mod/wallmessage.php:56 mod/wallmessage.php:90 #: mod/wallmessage.php:37 mod/wallmessage.php:56 mod/wallmessage.php:90
#: mod/wallmessage.php:110 src/Module/Attach.php:56 src/Module/BaseApi.php:94 #: mod/wallmessage.php:110 src/Module/Attach.php:56 src/Module/BaseApi.php:94
#: src/Module/BaseNotifications.php:98 src/Module/Contact/Advanced.php:61 #: src/Module/BaseNotifications.php:98 src/Module/Contact/Advanced.php:60
#: src/Module/Delegation.php:119 src/Module/FollowConfirm.php:39 #: src/Module/Delegation.php:118 src/Module/FollowConfirm.php:38
#: src/Module/FriendSuggest.php:58 src/Module/Group.php:41 #: src/Module/FriendSuggest.php:57 src/Module/Group.php:40
#: src/Module/Group.php:84 src/Module/Invite.php:43 src/Module/Invite.php:132 #: src/Module/Group.php:83 src/Module/Invite.php:42 src/Module/Invite.php:131
#: src/Module/Notifications/Notification.php:77 #: src/Module/Notifications/Notification.php:76
#: src/Module/Notifications/Notification.php:108 #: src/Module/Notifications/Notification.php:107
#: src/Module/Profile/Common.php:56 src/Module/Profile/Contacts.php:56 #: src/Module/Profile/Common.php:55 src/Module/Profile/Contacts.php:55
#: src/Module/Profile/Schedule.php:40 src/Module/Profile/Schedule.php:57 #: src/Module/Profile/Schedule.php:39 src/Module/Profile/Schedule.php:56
#: src/Module/Register.php:78 src/Module/Register.php:91 #: src/Module/Register.php:77 src/Module/Register.php:90
#: src/Module/Register.php:207 src/Module/Register.php:246 #: src/Module/Register.php:206 src/Module/Register.php:245
#: src/Module/Search/Directory.php:38 src/Module/Settings/Account.php:51 #: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:50
#: src/Module/Settings/Account.php:411 src/Module/Settings/Delegation.php:42 #: src/Module/Settings/Account.php:410 src/Module/Settings/Delegation.php:41
#: src/Module/Settings/Delegation.php:70 src/Module/Settings/Display.php:42 #: src/Module/Settings/Delegation.php:69 src/Module/Settings/Display.php:41
#: src/Module/Settings/Display.php:120 #: src/Module/Settings/Display.php:119
#: src/Module/Settings/Profile/Photo/Crop.php:166 #: src/Module/Settings/Profile/Photo/Crop.php:165
#: src/Module/Settings/Profile/Photo/Index.php:112 #: src/Module/Settings/Profile/Photo/Index.php:111
#: src/Module/Settings/UserExport.php:59 src/Module/Settings/UserExport.php:93 #: src/Module/Settings/UserExport.php:84 src/Module/Settings/UserExport.php:118
#: src/Module/Settings/UserExport.php:197 #: src/Module/Settings/UserExport.php:219
#: src/Module/Settings/UserExport.php:217 #: src/Module/Settings/UserExport.php:239
#: src/Module/Settings/UserExport.php:282 #: src/Module/Settings/UserExport.php:304
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""
#: mod/editpost.php:46 mod/editpost.php:56 #: mod/editpost.php:45 mod/editpost.php:55
msgid "Item not found" msgid "Item not found"
msgstr "" msgstr ""
#: mod/editpost.php:65 #: mod/editpost.php:64
msgid "Edit post" msgid "Edit post"
msgstr "" msgstr ""
#: mod/editpost.php:92 mod/notes.php:57 src/Content/Text/HTML.php:882 #: mod/editpost.php:91 mod/notes.php:56 src/Content/Text/HTML.php:882
#: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:75 #: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: mod/editpost.php:93 mod/photos.php:1334 src/Content/Conversation.php:342 #: mod/editpost.php:92 mod/photos.php:1333 src/Content/Conversation.php:345
#: src/Object/Post.php:993 #: src/Object/Post.php:992
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
#: mod/editpost.php:94 mod/message.php:202 mod/message.php:358 #: mod/editpost.php:93 mod/message.php:201 mod/message.php:357
#: mod/wallmessage.php:140 src/Content/Conversation.php:343 #: mod/wallmessage.php:140 src/Content/Conversation.php:346
msgid "Upload photo" msgid "Upload photo"
msgstr "" msgstr ""
#: mod/editpost.php:95 src/Content/Conversation.php:344 #: mod/editpost.php:94 src/Content/Conversation.php:347
msgid "upload photo" msgid "upload photo"
msgstr "" msgstr ""
#: mod/editpost.php:96 src/Content/Conversation.php:345 #: mod/editpost.php:95 src/Content/Conversation.php:348
msgid "Attach file" msgid "Attach file"
msgstr "" msgstr ""
#: mod/editpost.php:97 src/Content/Conversation.php:346 #: mod/editpost.php:96 src/Content/Conversation.php:349
msgid "attach file" msgid "attach file"
msgstr "" msgstr ""
#: mod/editpost.php:98 mod/message.php:203 mod/message.php:359 #: mod/editpost.php:97 mod/message.php:202 mod/message.php:358
#: mod/wallmessage.php:141 #: mod/wallmessage.php:141
msgid "Insert web link" msgid "Insert web link"
msgstr "" msgstr ""
#: mod/editpost.php:99 #: mod/editpost.php:98
msgid "web link" msgid "web link"
msgstr "" msgstr ""
#: mod/editpost.php:100 #: mod/editpost.php:99
msgid "Insert video link" msgid "Insert video link"
msgstr "" msgstr ""
#: mod/editpost.php:101 #: mod/editpost.php:100
msgid "video link" msgid "video link"
msgstr "" msgstr ""
#: mod/editpost.php:102 #: mod/editpost.php:101
msgid "Insert audio link" msgid "Insert audio link"
msgstr "" msgstr ""
#: mod/editpost.php:103 #: mod/editpost.php:102
msgid "audio link" msgid "audio link"
msgstr "" msgstr ""
#: mod/editpost.php:104 src/Content/Conversation.php:356 #: mod/editpost.php:103 src/Content/Conversation.php:359
#: src/Module/Item/Compose.php:201 #: src/Module/Item/Compose.php:200
msgid "Set your location" msgid "Set your location"
msgstr "" msgstr ""
#: mod/editpost.php:105 src/Content/Conversation.php:357 #: mod/editpost.php:104 src/Content/Conversation.php:360
msgid "set location" msgid "set location"
msgstr "" msgstr ""
#: mod/editpost.php:106 src/Content/Conversation.php:358 #: mod/editpost.php:105 src/Content/Conversation.php:361
msgid "Clear browser location" msgid "Clear browser location"
msgstr "" msgstr ""
#: mod/editpost.php:107 src/Content/Conversation.php:359 #: mod/editpost.php:106 src/Content/Conversation.php:362
msgid "clear location" msgid "clear location"
msgstr "" msgstr ""
#: mod/editpost.php:108 mod/message.php:204 mod/message.php:361 #: mod/editpost.php:107 mod/message.php:203 mod/message.php:360
#: mod/photos.php:1485 mod/wallmessage.php:142 src/Content/Conversation.php:372 #: mod/photos.php:1484 mod/wallmessage.php:142 src/Content/Conversation.php:375
#: src/Content/Conversation.php:718 src/Module/Item/Compose.php:205 #: src/Content/Conversation.php:721 src/Module/Item/Compose.php:204
#: src/Object/Post.php:538 #: src/Object/Post.php:537
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""
#: mod/editpost.php:109 src/Content/Conversation.php:373 #: mod/editpost.php:108 src/Content/Conversation.php:376
msgid "Permission settings" msgid "Permission settings"
msgstr "" msgstr ""
#: mod/editpost.php:117 src/Core/ACL.php:326 #: mod/editpost.php:116 src/Core/ACL.php:326
msgid "CC: email addresses" msgid "CC: email addresses"
msgstr "" msgstr ""
#: mod/editpost.php:118 src/Content/Conversation.php:383 #: mod/editpost.php:117 src/Content/Conversation.php:386
msgid "Public post" msgid "Public post"
msgstr "" msgstr ""
#: mod/editpost.php:121 src/Content/Conversation.php:361 #: mod/editpost.php:120 src/Content/Conversation.php:364
#: src/Module/Item/Compose.php:206 #: src/Module/Item/Compose.php:205
msgid "Set title" msgid "Set title"
msgstr "" msgstr ""
#: mod/editpost.php:123 src/Content/Conversation.php:363 #: mod/editpost.php:122 src/Content/Conversation.php:366
#: src/Module/Item/Compose.php:207 #: src/Module/Item/Compose.php:206
msgid "Categories (comma-separated list)" msgid "Categories (comma-separated list)"
msgstr "" msgstr ""
#: mod/editpost.php:124 src/Core/ACL.php:327 #: mod/editpost.php:123 src/Core/ACL.php:327
msgid "Example: bob@example.com, mary@example.com" msgid "Example: bob@example.com, mary@example.com"
msgstr "" msgstr ""
#: mod/editpost.php:129 mod/events.php:515 mod/photos.php:1333 #: mod/editpost.php:128 mod/events.php:514 mod/photos.php:1332
#: mod/photos.php:1389 mod/photos.php:1463 src/Content/Conversation.php:387 #: mod/photos.php:1388 mod/photos.php:1462 src/Content/Conversation.php:390
#: src/Module/Item/Compose.php:200 src/Object/Post.php:1003 #: src/Module/Item/Compose.php:199 src/Object/Post.php:1002
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: mod/editpost.php:131 mod/fbrowser.php:120 mod/fbrowser.php:147 #: mod/editpost.php:130 mod/fbrowser.php:119 mod/fbrowser.php:146
#: mod/follow.php:145 mod/photos.php:1000 mod/photos.php:1101 mod/tagrm.php:36 #: mod/follow.php:144 mod/photos.php:999 mod/photos.php:1100 mod/tagrm.php:35
#: mod/tagrm.php:128 mod/unfollow.php:98 src/Content/Conversation.php:390 #: mod/tagrm.php:127 mod/unfollow.php:97 src/Content/Conversation.php:393
#: src/Module/Contact/Revoke.php:110 src/Module/RemoteFollow.php:128 #: src/Module/Contact/Revoke.php:109 src/Module/RemoteFollow.php:128
#: src/Module/Security/TwoFactor/SignOut.php:127 #: src/Module/Security/TwoFactor/SignOut.php:126
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: mod/editpost.php:135 src/Content/Conversation.php:347 #: mod/editpost.php:134 src/Content/Conversation.php:350
#: src/Module/Item/Compose.php:191 src/Object/Post.php:994 #: src/Module/Item/Compose.php:190 src/Object/Post.php:993
msgid "Bold" msgid "Bold"
msgstr "" msgstr ""
#: mod/editpost.php:136 src/Content/Conversation.php:348 #: mod/editpost.php:135 src/Content/Conversation.php:351
#: src/Module/Item/Compose.php:192 src/Object/Post.php:995 #: src/Module/Item/Compose.php:191 src/Object/Post.php:994
msgid "Italic" msgid "Italic"
msgstr "" msgstr ""
#: mod/editpost.php:137 src/Content/Conversation.php:349 #: mod/editpost.php:136 src/Content/Conversation.php:352
#: src/Module/Item/Compose.php:193 src/Object/Post.php:996 #: src/Module/Item/Compose.php:192 src/Object/Post.php:995
msgid "Underline" msgid "Underline"
msgstr "" msgstr ""
#: mod/editpost.php:138 src/Content/Conversation.php:350 #: mod/editpost.php:137 src/Content/Conversation.php:353
#: src/Module/Item/Compose.php:194 src/Object/Post.php:997 #: src/Module/Item/Compose.php:193 src/Object/Post.php:996
msgid "Quote" msgid "Quote"
msgstr "" msgstr ""
#: mod/editpost.php:139 src/Content/Conversation.php:351 #: mod/editpost.php:138 src/Content/Conversation.php:354
#: src/Module/Item/Compose.php:195 src/Object/Post.php:998 #: src/Module/Item/Compose.php:194 src/Object/Post.php:997
msgid "Code" msgid "Code"
msgstr "" msgstr ""
#: mod/editpost.php:140 src/Content/Conversation.php:353 #: mod/editpost.php:139 src/Content/Conversation.php:356
#: src/Module/Item/Compose.php:197 src/Object/Post.php:1000 #: src/Module/Item/Compose.php:196 src/Object/Post.php:999
msgid "Link" msgid "Link"
msgstr "" msgstr ""
#: mod/editpost.php:141 src/Content/Conversation.php:354 #: mod/editpost.php:140 src/Content/Conversation.php:357
#: src/Module/Item/Compose.php:198 src/Object/Post.php:1001 #: src/Module/Item/Compose.php:197 src/Object/Post.php:1000
msgid "Link or Media" msgid "Link or Media"
msgstr "" msgstr ""
#: mod/editpost.php:144 src/Content/Conversation.php:397 #: mod/editpost.php:143 src/Content/Conversation.php:400
#: src/Content/Widget/VCard.php:114 src/Model/Profile.php:466 #: src/Content/Widget/VCard.php:113 src/Model/Profile.php:465
#: src/Module/Admin/Logs/View.php:93 #: src/Module/Admin/Logs/View.php:93
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: mod/editpost.php:145 src/Content/Conversation.php:398 #: mod/editpost.php:144 src/Content/Conversation.php:401
#: src/Module/Settings/TwoFactor/Trusted.php:140 #: src/Module/Settings/TwoFactor/Trusted.php:139
msgid "Browser" msgid "Browser"
msgstr "" msgstr ""
#: mod/editpost.php:146 mod/events.php:520 mod/photos.php:935 #: mod/editpost.php:145 mod/events.php:519 mod/photos.php:934
#: mod/photos.php:1287 src/Content/Conversation.php:374 #: mod/photos.php:1286 src/Content/Conversation.php:377
msgid "Permissions" msgid "Permissions"
msgstr "" msgstr ""
#: mod/editpost.php:148 src/Content/Conversation.php:400 #: mod/editpost.php:147 src/Content/Conversation.php:403
msgid "Open Compose page" msgid "Open Compose page"
msgstr "" msgstr ""
#: mod/events.php:125 mod/events.php:127 #: mod/events.php:124 mod/events.php:126
msgid "Event can not end before it has started." msgid "Event can not end before it has started."
msgstr "" msgstr ""
#: mod/events.php:133 mod/events.php:135 #: mod/events.php:132 mod/events.php:134
msgid "Event title and start time are required." msgid "Event title and start time are required."
msgstr "" msgstr ""
#: mod/events.php:378 #: mod/events.php:377
msgid "Create New Event" msgid "Create New Event"
msgstr "" msgstr ""
#: mod/events.php:476 src/Module/Admin/Logs/View.php:97 #: mod/events.php:475 src/Module/Admin/Logs/View.php:97
msgid "Event details" msgid "Event details"
msgstr "" msgstr ""
#: mod/events.php:477 #: mod/events.php:476
msgid "Starting date and Title are required." msgid "Starting date and Title are required."
msgstr "" msgstr ""
#: mod/events.php:478 mod/events.php:483 #: mod/events.php:477 mod/events.php:482
msgid "Event Starts:" msgid "Event Starts:"
msgstr "" msgstr ""
#: mod/events.php:478 mod/events.php:508 #: mod/events.php:477 mod/events.php:507
#: src/Module/Admin/Blocklist/Server/Add.php:136 #: src/Module/Admin/Blocklist/Server/Add.php:136
#: src/Module/Admin/Blocklist/Server/Add.php:138 #: src/Module/Admin/Blocklist/Server/Add.php:138
#: src/Module/Admin/Blocklist/Server/Import.php:128 #: src/Module/Admin/Blocklist/Server/Import.php:128
#: src/Module/Admin/Blocklist/Server/Index.php:84 #: src/Module/Admin/Blocklist/Server/Index.php:82
#: src/Module/Admin/Blocklist/Server/Index.php:85 #: src/Module/Admin/Blocklist/Server/Index.php:83
#: src/Module/Admin/Blocklist/Server/Index.php:113 #: src/Module/Admin/Blocklist/Server/Index.php:111
#: src/Module/Admin/Blocklist/Server/Index.php:114 #: src/Module/Admin/Blocklist/Server/Index.php:112
#: src/Module/Admin/Item/Delete.php:69 src/Module/Debug/Probe.php:60 #: src/Module/Admin/Item/Delete.php:69 src/Module/Debug/Probe.php:59
#: src/Module/Install.php:207 src/Module/Install.php:240 #: src/Module/Install.php:207 src/Module/Install.php:240
#: src/Module/Install.php:245 src/Module/Install.php:264 #: src/Module/Install.php:245 src/Module/Install.php:264
#: src/Module/Install.php:275 src/Module/Install.php:280 #: src/Module/Install.php:275 src/Module/Install.php:280
#: src/Module/Install.php:286 src/Module/Install.php:291 #: src/Module/Install.php:286 src/Module/Install.php:291
#: src/Module/Install.php:305 src/Module/Install.php:320 #: src/Module/Install.php:305 src/Module/Install.php:320
#: src/Module/Install.php:347 src/Module/Register.php:149 #: src/Module/Install.php:347 src/Module/Register.php:148
#: src/Module/Security/TwoFactor/Verify.php:102 #: src/Module/Security/TwoFactor/Verify.php:105
#: src/Module/Settings/TwoFactor/Index.php:141 #: src/Module/Settings/TwoFactor/Index.php:140
#: src/Module/Settings/TwoFactor/Verify.php:155 #: src/Module/Settings/TwoFactor/Verify.php:154
msgid "Required" msgid "Required"
msgstr "" msgstr ""
#: mod/events.php:491 mod/events.php:514 #: mod/events.php:490 mod/events.php:513
msgid "Finish date/time is not known or not relevant" msgid "Finish date/time is not known or not relevant"
msgstr "" msgstr ""
#: mod/events.php:493 mod/events.php:498 #: mod/events.php:492 mod/events.php:497
msgid "Event Finishes:" msgid "Event Finishes:"
msgstr "" msgstr ""
#: mod/events.php:504 src/Module/Profile/Profile.php:172 #: mod/events.php:503 src/Module/Profile/Profile.php:171
#: src/Module/Settings/Profile/Index.php:239 #: src/Module/Settings/Profile/Index.php:238
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: mod/events.php:506 src/Content/Widget/VCard.php:105 src/Model/Event.php:81 #: mod/events.php:505 src/Content/Widget/VCard.php:104 src/Model/Event.php:80
#: src/Model/Event.php:108 src/Model/Event.php:470 src/Model/Event.php:920 #: src/Model/Event.php:107 src/Model/Event.php:469 src/Model/Event.php:919
#: src/Model/Profile.php:374 src/Module/Contact/Profile.php:371 #: src/Model/Profile.php:373 src/Module/Contact/Profile.php:370
#: src/Module/Directory.php:148 src/Module/Notifications/Introductions.php:187 #: src/Module/Directory.php:147 src/Module/Notifications/Introductions.php:187
#: src/Module/Profile/Profile.php:194 #: src/Module/Profile/Profile.php:193
msgid "Location:" msgid "Location:"
msgstr "" msgstr ""
#: mod/events.php:508 mod/events.php:510 #: mod/events.php:507 mod/events.php:509
msgid "Title:" msgid "Title:"
msgstr "" msgstr ""
#: mod/events.php:511 mod/events.php:512 #: mod/events.php:510 mod/events.php:511
msgid "Share this event" msgid "Share this event"
msgstr "" msgstr ""
#: mod/events.php:517 mod/message.php:205 mod/message.php:360 #: mod/events.php:516 mod/message.php:204 mod/message.php:359
#: mod/photos.php:917 mod/photos.php:1021 mod/photos.php:1291 #: mod/photos.php:916 mod/photos.php:1020 mod/photos.php:1290
#: mod/photos.php:1332 mod/photos.php:1388 mod/photos.php:1462 #: mod/photos.php:1331 mod/photos.php:1387 mod/photos.php:1461
#: src/Module/Admin/Item/Source.php:60 src/Module/Contact/Advanced.php:133 #: src/Module/Admin/Item/Source.php:60 src/Module/Contact/Advanced.php:132
#: src/Module/Contact/Profile.php:329 #: src/Module/Contact/Profile.php:328
#: src/Module/Debug/ActivityPubConversion.php:141 #: src/Module/Debug/ActivityPubConversion.php:140
#: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64 #: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64
#: src/Module/Debug/Probe.php:55 src/Module/Debug/WebFinger.php:52 #: src/Module/Debug/Probe.php:54 src/Module/Debug/WebFinger.php:51
#: src/Module/Delegation.php:148 src/Module/FriendSuggest.php:146 #: src/Module/Delegation.php:147 src/Module/FriendSuggest.php:145
#: src/Module/Install.php:252 src/Module/Install.php:294 #: src/Module/Install.php:252 src/Module/Install.php:294
#: src/Module/Install.php:331 src/Module/Invite.php:179 #: src/Module/Install.php:331 src/Module/Invite.php:178
#: src/Module/Item/Compose.php:190 src/Module/Profile/Profile.php:247 #: src/Module/Item/Compose.php:189 src/Module/Profile/Profile.php:246
#: src/Module/Settings/Profile/Index.php:223 src/Object/Post.php:992 #: src/Module/Settings/Profile/Index.php:222 src/Object/Post.php:991
#: view/theme/duepuntozero/config.php:86 view/theme/frio/config.php:172 #: view/theme/duepuntozero/config.php:85 view/theme/frio/config.php:171
#: view/theme/quattro/config.php:88 view/theme/vier/config.php:136 #: view/theme/quattro/config.php:87 view/theme/vier/config.php:135
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
#: mod/events.php:518 src/Module/Profile/Profile.php:248 #: mod/events.php:517 src/Module/Profile/Profile.php:247
msgid "Basic" msgid "Basic"
msgstr "" msgstr ""
#: mod/events.php:519 src/Module/Admin/Site.php:437 src/Module/Contact.php:478 #: mod/events.php:518 src/Module/Admin/Site.php:437 src/Module/Contact.php:477
#: src/Module/Profile/Profile.php:249 #: src/Module/Profile/Profile.php:248
msgid "Advanced" msgid "Advanced"
msgstr "" msgstr ""
#: mod/events.php:536 #: mod/events.php:535
msgid "Failed to remove event" msgid "Failed to remove event"
msgstr "" msgstr ""
#: mod/fbrowser.php:62 src/Content/Nav.php:195 src/Module/BaseProfile.php:64 #: mod/fbrowser.php:61 src/Content/Nav.php:194 src/Module/BaseProfile.php:64
#: view/theme/frio/theme.php:240 #: view/theme/frio/theme.php:239
msgid "Photos" msgid "Photos"
msgstr "" msgstr ""
#: mod/fbrowser.php:122 mod/fbrowser.php:149 #: mod/fbrowser.php:121 mod/fbrowser.php:148
#: src/Module/Settings/Profile/Photo/Index.php:129 #: src/Module/Settings/Profile/Photo/Index.php:128
msgid "Upload" msgid "Upload"
msgstr "" msgstr ""
#: mod/fbrowser.php:144 #: mod/fbrowser.php:143
msgid "Files" msgid "Files"
msgstr "" msgstr ""
#: mod/follow.php:75 mod/unfollow.php:97 src/Module/RemoteFollow.php:127 #: mod/follow.php:74 mod/unfollow.php:96 src/Module/RemoteFollow.php:127
msgid "Submit Request" msgid "Submit Request"
msgstr "" msgstr ""
#: mod/follow.php:85 #: mod/follow.php:84
msgid "You already added this contact." msgid "You already added this contact."
msgstr "" msgstr ""
#: mod/follow.php:101 #: mod/follow.php:100
msgid "The network type couldn't be detected. Contact can't be added." msgid "The network type couldn't be detected. Contact can't be added."
msgstr "" msgstr ""
#: mod/follow.php:109 #: mod/follow.php:108
msgid "Diaspora support isn't enabled. Contact can't be added." msgid "Diaspora support isn't enabled. Contact can't be added."
msgstr "" msgstr ""
#: mod/follow.php:114 #: mod/follow.php:113
msgid "OStatus support is disabled. Contact can't be added." msgid "OStatus support is disabled. Contact can't be added."
msgstr "" msgstr ""
#: mod/follow.php:139 src/Content/Item.php:401 src/Content/Widget.php:81 #: mod/follow.php:138 src/Content/Item.php:404 src/Content/Widget.php:80
#: src/Model/Contact.php:1169 src/Model/Contact.php:1180 #: src/Model/Contact.php:1194 src/Model/Contact.php:1205
#: view/theme/vier/theme.php:199 #: view/theme/vier/theme.php:198
msgid "Connect/Follow" msgid "Connect/Follow"
msgstr "" msgstr ""
#: mod/follow.php:140 src/Module/RemoteFollow.php:126 #: mod/follow.php:139 src/Module/RemoteFollow.php:126
msgid "Please answer the following:" msgid "Please answer the following:"
msgstr "" msgstr ""
#: mod/follow.php:141 mod/unfollow.php:95 #: mod/follow.php:140 mod/unfollow.php:94
msgid "Your Identity Address:" msgid "Your Identity Address:"
msgstr "" msgstr ""
#: mod/follow.php:142 mod/unfollow.php:101 #: mod/follow.php:141 mod/unfollow.php:100
#: src/Module/Admin/Blocklist/Contact.php:116 #: src/Module/Admin/Blocklist/Contact.php:116
#: src/Module/Contact/Profile.php:367 #: src/Module/Contact/Profile.php:366
#: src/Module/Notifications/Introductions.php:129 #: src/Module/Notifications/Introductions.php:129
#: src/Module/Notifications/Introductions.php:198 #: src/Module/Notifications/Introductions.php:198
msgid "Profile URL" msgid "Profile URL"
msgstr "" msgstr ""
#: mod/follow.php:143 src/Module/Contact/Profile.php:379 #: mod/follow.php:142 src/Module/Contact/Profile.php:378
#: src/Module/Notifications/Introductions.php:191 #: src/Module/Notifications/Introductions.php:191
#: src/Module/Profile/Profile.php:207 #: src/Module/Profile/Profile.php:206
msgid "Tags:" msgid "Tags:"
msgstr "" msgstr ""
#: mod/follow.php:154 #: mod/follow.php:153
#, php-format #, php-format
msgid "%s knows you" msgid "%s knows you"
msgstr "" msgstr ""
#: mod/follow.php:155 #: mod/follow.php:154
msgid "Add a personal note:" msgid "Add a personal note:"
msgstr "" msgstr ""
#: mod/follow.php:164 mod/unfollow.php:110 src/Module/BaseProfile.php:59 #: mod/follow.php:163 mod/unfollow.php:109 src/Module/BaseProfile.php:59
#: src/Module/Contact.php:448 #: src/Module/Contact.php:447
msgid "Status Messages and Posts" msgid "Status Messages and Posts"
msgstr "" msgstr ""
#: mod/follow.php:192 #: mod/follow.php:191
msgid "The contact could not be added." msgid "The contact could not be added."
msgstr "" msgstr ""
#: mod/item.php:132 mod/item.php:136 #: mod/item.php:131 mod/item.php:135
msgid "Unable to locate original post." msgid "Unable to locate original post."
msgstr "" msgstr ""
#: mod/item.php:338 mod/item.php:343 #: mod/item.php:337 mod/item.php:342
msgid "Empty post discarded." msgid "Empty post discarded."
msgstr "" msgstr ""
#: mod/item.php:675 #: mod/item.php:674
msgid "Post updated." msgid "Post updated."
msgstr "" msgstr ""
#: mod/item.php:685 mod/item.php:690 #: mod/item.php:684 mod/item.php:689
msgid "Item wasn't stored." msgid "Item wasn't stored."
msgstr "" msgstr ""
#: mod/item.php:701 #: mod/item.php:700
msgid "Item couldn't be fetched." msgid "Item couldn't be fetched."
msgstr "" msgstr ""
#: mod/item.php:841 src/Module/Admin/Themes/Details.php:39 #: mod/item.php:840 src/Module/Admin/Themes/Details.php:39
#: src/Module/Admin/Themes/Index.php:59 src/Module/Debug/ItemBody.php:43 #: src/Module/Admin/Themes/Index.php:59 src/Module/Debug/ItemBody.php:42
#: src/Module/Debug/ItemBody.php:58 #: src/Module/Debug/ItemBody.php:57
msgid "Item not found." msgid "Item not found."
msgstr "" msgstr ""
@ -610,7 +610,7 @@ msgid ""
"your email for further instructions." "your email for further instructions."
msgstr "" msgstr ""
#: mod/lostpass.php:130 src/Module/Security/Login.php:162 #: mod/lostpass.php:130 src/Module/Security/Login.php:161
msgid "Nickname or Email: " msgid "Nickname or Email: "
msgstr "" msgstr ""
@ -618,7 +618,7 @@ msgstr ""
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#: mod/lostpass.php:146 src/Module/Security/Login.php:174 #: mod/lostpass.php:146 src/Module/Security/Login.php:173
msgid "Password Reset" msgid "Password Reset"
msgstr "" msgstr ""
@ -679,616 +679,616 @@ msgstr ""
msgid "Your password has been changed at %s" msgid "Your password has been changed at %s"
msgstr "" msgstr ""
#: mod/match.php:63 #: mod/match.php:62
msgid "No keywords to match. Please add keywords to your profile." msgid "No keywords to match. Please add keywords to your profile."
msgstr "" msgstr ""
#: mod/match.php:94 src/Module/BaseSearch.php:120 #: mod/match.php:93 src/Module/BaseSearch.php:119
msgid "No matches" msgid "No matches"
msgstr "" msgstr ""
#: mod/match.php:99 #: mod/match.php:98
msgid "Profile Match" msgid "Profile Match"
msgstr "" msgstr ""
#: mod/message.php:47 mod/message.php:130 src/Content/Nav.php:289 #: mod/message.php:46 mod/message.php:129 src/Content/Nav.php:288
msgid "New Message" msgid "New Message"
msgstr "" msgstr ""
#: mod/message.php:84 mod/wallmessage.php:70 #: mod/message.php:83 mod/wallmessage.php:70
msgid "No recipient selected." msgid "No recipient selected."
msgstr "" msgstr ""
#: mod/message.php:89 #: mod/message.php:88
msgid "Unable to locate contact information." msgid "Unable to locate contact information."
msgstr "" msgstr ""
#: mod/message.php:93 mod/wallmessage.php:76 #: mod/message.php:92 mod/wallmessage.php:76
msgid "Message could not be sent." msgid "Message could not be sent."
msgstr "" msgstr ""
#: mod/message.php:97 mod/wallmessage.php:79 #: mod/message.php:96 mod/wallmessage.php:79
msgid "Message collection failure." msgid "Message collection failure."
msgstr "" msgstr ""
#: mod/message.php:124 src/Module/Notifications/Introductions.php:135 #: mod/message.php:123 src/Module/Notifications/Introductions.php:135
#: src/Module/Notifications/Introductions.php:170 #: src/Module/Notifications/Introductions.php:170
#: src/Module/Notifications/Notification.php:86 #: src/Module/Notifications/Notification.php:85
msgid "Discard" msgid "Discard"
msgstr "" msgstr ""
#: mod/message.php:137 src/Content/Nav.php:286 view/theme/frio/theme.php:247 #: mod/message.php:136 src/Content/Nav.php:285 view/theme/frio/theme.php:246
msgid "Messages" msgid "Messages"
msgstr "" msgstr ""
#: mod/message.php:150 #: mod/message.php:149
msgid "Conversation not found." msgid "Conversation not found."
msgstr "" msgstr ""
#: mod/message.php:155 #: mod/message.php:154
msgid "Message was not deleted." msgid "Message was not deleted."
msgstr "" msgstr ""
#: mod/message.php:170 #: mod/message.php:169
msgid "Conversation was not removed." msgid "Conversation was not removed."
msgstr "" msgstr ""
#: mod/message.php:184 mod/message.php:290 mod/wallmessage.php:124 #: mod/message.php:183 mod/message.php:289 mod/wallmessage.php:124
msgid "Please enter a link URL:" msgid "Please enter a link URL:"
msgstr "" msgstr ""
#: mod/message.php:193 mod/wallmessage.php:129 #: mod/message.php:192 mod/wallmessage.php:129
msgid "Send Private Message" msgid "Send Private Message"
msgstr "" msgstr ""
#: mod/message.php:194 mod/message.php:350 mod/wallmessage.php:131 #: mod/message.php:193 mod/message.php:349 mod/wallmessage.php:131
msgid "To:" msgid "To:"
msgstr "" msgstr ""
#: mod/message.php:195 mod/message.php:351 mod/wallmessage.php:132 #: mod/message.php:194 mod/message.php:350 mod/wallmessage.php:132
msgid "Subject:" msgid "Subject:"
msgstr "" msgstr ""
#: mod/message.php:199 mod/message.php:354 mod/wallmessage.php:138 #: mod/message.php:198 mod/message.php:353 mod/wallmessage.php:138
#: src/Module/Invite.php:172 #: src/Module/Invite.php:171
msgid "Your message:" msgid "Your message:"
msgstr "" msgstr ""
#: mod/message.php:226 #: mod/message.php:225
msgid "No messages." msgid "No messages."
msgstr "" msgstr ""
#: mod/message.php:282 #: mod/message.php:281
msgid "Message not available." msgid "Message not available."
msgstr "" msgstr ""
#: mod/message.php:327 #: mod/message.php:326
msgid "Delete message" msgid "Delete message"
msgstr "" msgstr ""
#: mod/message.php:329 mod/message.php:460 #: mod/message.php:328 mod/message.php:459
msgid "D, d M Y - g:i A" msgid "D, d M Y - g:i A"
msgstr "" msgstr ""
#: mod/message.php:344 mod/message.php:457 #: mod/message.php:343 mod/message.php:456
msgid "Delete conversation" msgid "Delete conversation"
msgstr "" msgstr ""
#: mod/message.php:346 #: mod/message.php:345
msgid "" msgid ""
"No secure communications available. You <strong>may</strong> be able to " "No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page." "respond from the sender's profile page."
msgstr "" msgstr ""
#: mod/message.php:349 #: mod/message.php:348
msgid "Send Reply" msgid "Send Reply"
msgstr "" msgstr ""
#: mod/message.php:431 #: mod/message.php:430
#, php-format #, php-format
msgid "Unknown sender - %s" msgid "Unknown sender - %s"
msgstr "" msgstr ""
#: mod/message.php:433 #: mod/message.php:432
#, php-format #, php-format
msgid "You and %s" msgid "You and %s"
msgstr "" msgstr ""
#: mod/message.php:435 #: mod/message.php:434
#, php-format #, php-format
msgid "%s and You" msgid "%s and You"
msgstr "" msgstr ""
#: mod/message.php:463 #: mod/message.php:462
#, php-format #, php-format
msgid "%d message" msgid "%d message"
msgid_plural "%d messages" msgid_plural "%d messages"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: mod/notes.php:52 src/Module/BaseProfile.php:106 #: mod/notes.php:51 src/Module/BaseProfile.php:106
msgid "Personal Notes" msgid "Personal Notes"
msgstr "" msgstr ""
#: mod/notes.php:56 #: mod/notes.php:55
msgid "Personal notes are visible only by yourself." msgid "Personal notes are visible only by yourself."
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:39 #: mod/ostatus_subscribe.php:38
msgid "Subscribing to contacts" msgid "Subscribing to contacts"
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:48 #: mod/ostatus_subscribe.php:47
msgid "No contact provided." msgid "No contact provided."
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:54 #: mod/ostatus_subscribe.php:53
msgid "Couldn't fetch information for contact." msgid "Couldn't fetch information for contact."
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:65 #: mod/ostatus_subscribe.php:64
msgid "Couldn't fetch friends for contact." msgid "Couldn't fetch friends for contact."
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:71 mod/ostatus_subscribe.php:82 #: mod/ostatus_subscribe.php:70 mod/ostatus_subscribe.php:81
msgid "Couldn't fetch following contacts." msgid "Couldn't fetch following contacts."
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:77 #: mod/ostatus_subscribe.php:76
msgid "Couldn't fetch remote profile." msgid "Couldn't fetch remote profile."
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:87 #: mod/ostatus_subscribe.php:86
msgid "Unsupported network" msgid "Unsupported network"
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:103 mod/repair_ostatus.php:52 #: mod/ostatus_subscribe.php:102 mod/repair_ostatus.php:51
msgid "Done" msgid "Done"
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:117 #: mod/ostatus_subscribe.php:116
msgid "success" msgid "success"
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:119 #: mod/ostatus_subscribe.php:118
msgid "failed" msgid "failed"
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:122 #: mod/ostatus_subscribe.php:121
msgid "ignored" msgid "ignored"
msgstr "" msgstr ""
#: mod/ostatus_subscribe.php:127 mod/repair_ostatus.php:58 #: mod/ostatus_subscribe.php:126 mod/repair_ostatus.php:57
msgid "Keep this window open until done." msgid "Keep this window open until done."
msgstr "" msgstr ""
#: mod/photos.php:108 src/Module/BaseProfile.php:67 #: mod/photos.php:107 src/Module/BaseProfile.php:67
msgid "Photo Albums" msgid "Photo Albums"
msgstr "" msgstr ""
#: mod/photos.php:109 mod/photos.php:1580 #: mod/photos.php:108 mod/photos.php:1579
msgid "Recent Photos" msgid "Recent Photos"
msgstr "" msgstr ""
#: mod/photos.php:111 mod/photos.php:1069 mod/photos.php:1582 #: mod/photos.php:110 mod/photos.php:1068 mod/photos.php:1581
msgid "Upload New Photos" msgid "Upload New Photos"
msgstr "" msgstr ""
#: mod/photos.php:129 src/Module/BaseSettings.php:35 #: mod/photos.php:128 src/Module/BaseSettings.php:35
msgid "everybody" msgid "everybody"
msgstr "" msgstr ""
#: mod/photos.php:167 #: mod/photos.php:166
msgid "Contact information unavailable" msgid "Contact information unavailable"
msgstr "" msgstr ""
#: mod/photos.php:196 #: mod/photos.php:195
msgid "Album not found." msgid "Album not found."
msgstr "" msgstr ""
#: mod/photos.php:250 #: mod/photos.php:249
msgid "Album successfully deleted" msgid "Album successfully deleted"
msgstr "" msgstr ""
#: mod/photos.php:252 #: mod/photos.php:251
msgid "Album was empty." msgid "Album was empty."
msgstr "" msgstr ""
#: mod/photos.php:284 #: mod/photos.php:283
msgid "Failed to delete the photo." msgid "Failed to delete the photo."
msgstr "" msgstr ""
#: mod/photos.php:553 #: mod/photos.php:552
msgid "a photo" msgid "a photo"
msgstr "" msgstr ""
#: mod/photos.php:553 #: mod/photos.php:552
#, php-format #, php-format
msgid "%1$s was tagged in %2$s by %3$s" msgid "%1$s was tagged in %2$s by %3$s"
msgstr "" msgstr ""
#: mod/photos.php:632 mod/photos.php:635 mod/photos.php:662 #: mod/photos.php:631 mod/photos.php:634 mod/photos.php:661
#: mod/wall_upload.php:201 src/Module/Settings/Profile/Photo/Index.php:60 #: mod/wall_upload.php:200 src/Module/Settings/Profile/Photo/Index.php:59
#, php-format #, php-format
msgid "Image exceeds size limit of %s" msgid "Image exceeds size limit of %s"
msgstr "" msgstr ""
#: mod/photos.php:638 #: mod/photos.php:637
msgid "Image upload didn't complete, please try again" msgid "Image upload didn't complete, please try again"
msgstr "" msgstr ""
#: mod/photos.php:641 #: mod/photos.php:640
msgid "Image file is missing" msgid "Image file is missing"
msgstr "" msgstr ""
#: mod/photos.php:646 #: mod/photos.php:645
msgid "" msgid ""
"Server can't accept new file upload at this time, please contact your " "Server can't accept new file upload at this time, please contact your "
"administrator" "administrator"
msgstr "" msgstr ""
#: mod/photos.php:670 #: mod/photos.php:669
msgid "Image file is empty." msgid "Image file is empty."
msgstr "" msgstr ""
#: mod/photos.php:685 mod/wall_upload.php:163 #: mod/photos.php:684 mod/wall_upload.php:162
#: src/Module/Settings/Profile/Photo/Index.php:69 #: src/Module/Settings/Profile/Photo/Index.php:68
msgid "Unable to process image." msgid "Unable to process image."
msgstr "" msgstr ""
#: mod/photos.php:711 mod/wall_upload.php:226 #: mod/photos.php:710 mod/wall_upload.php:225
#: src/Module/Settings/Profile/Photo/Index.php:96 #: src/Module/Settings/Profile/Photo/Index.php:95
msgid "Image upload failed." msgid "Image upload failed."
msgstr "" msgstr ""
#: mod/photos.php:803 #: mod/photos.php:802
msgid "No photos selected" msgid "No photos selected"
msgstr "" msgstr ""
#: mod/photos.php:872 #: mod/photos.php:871
msgid "Access to this item is restricted." msgid "Access to this item is restricted."
msgstr "" msgstr ""
#: mod/photos.php:927 #: mod/photos.php:926
msgid "Upload Photos" msgid "Upload Photos"
msgstr "" msgstr ""
#: mod/photos.php:931 mod/photos.php:1017 #: mod/photos.php:930 mod/photos.php:1016
msgid "New album name: " msgid "New album name: "
msgstr "" msgstr ""
#: mod/photos.php:932 #: mod/photos.php:931
msgid "or select existing album:" msgid "or select existing album:"
msgstr "" msgstr ""
#: mod/photos.php:933 #: mod/photos.php:932
msgid "Do not show a status post for this upload" msgid "Do not show a status post for this upload"
msgstr "" msgstr ""
#: mod/photos.php:998 #: mod/photos.php:997
msgid "Do you really want to delete this photo album and all its photos?" msgid "Do you really want to delete this photo album and all its photos?"
msgstr "" msgstr ""
#: mod/photos.php:999 mod/photos.php:1022 #: mod/photos.php:998 mod/photos.php:1021
msgid "Delete Album" msgid "Delete Album"
msgstr "" msgstr ""
#: mod/photos.php:1026 #: mod/photos.php:1025
msgid "Edit Album" msgid "Edit Album"
msgstr "" msgstr ""
#: mod/photos.php:1027 #: mod/photos.php:1026
msgid "Drop Album" msgid "Drop Album"
msgstr "" msgstr ""
#: mod/photos.php:1031 #: mod/photos.php:1030
msgid "Show Newest First" msgid "Show Newest First"
msgstr "" msgstr ""
#: mod/photos.php:1033 #: mod/photos.php:1032
msgid "Show Oldest First" msgid "Show Oldest First"
msgstr "" msgstr ""
#: mod/photos.php:1054 mod/photos.php:1565 #: mod/photos.php:1053 mod/photos.php:1564
msgid "View Photo" msgid "View Photo"
msgstr "" msgstr ""
#: mod/photos.php:1087 #: mod/photos.php:1086
msgid "Permission denied. Access to this item may be restricted." msgid "Permission denied. Access to this item may be restricted."
msgstr "" msgstr ""
#: mod/photos.php:1089 #: mod/photos.php:1088
msgid "Photo not available" msgid "Photo not available"
msgstr "" msgstr ""
#: mod/photos.php:1099 #: mod/photos.php:1098
msgid "Do you really want to delete this photo?" msgid "Do you really want to delete this photo?"
msgstr "" msgstr ""
#: mod/photos.php:1100 mod/photos.php:1292 #: mod/photos.php:1099 mod/photos.php:1291
msgid "Delete Photo" msgid "Delete Photo"
msgstr "" msgstr ""
#: mod/photos.php:1192 #: mod/photos.php:1191
msgid "View photo" msgid "View photo"
msgstr "" msgstr ""
#: mod/photos.php:1194 #: mod/photos.php:1193
msgid "Edit photo" msgid "Edit photo"
msgstr "" msgstr ""
#: mod/photos.php:1195 #: mod/photos.php:1194
msgid "Delete photo" msgid "Delete photo"
msgstr "" msgstr ""
#: mod/photos.php:1196 #: mod/photos.php:1195
msgid "Use as profile photo" msgid "Use as profile photo"
msgstr "" msgstr ""
#: mod/photos.php:1203 #: mod/photos.php:1202
msgid "Private Photo" msgid "Private Photo"
msgstr "" msgstr ""
#: mod/photos.php:1209 #: mod/photos.php:1208
msgid "View Full Size" msgid "View Full Size"
msgstr "" msgstr ""
#: mod/photos.php:1260 #: mod/photos.php:1259
msgid "Tags: " msgid "Tags: "
msgstr "" msgstr ""
#: mod/photos.php:1263 #: mod/photos.php:1262
msgid "[Select tags to remove]" msgid "[Select tags to remove]"
msgstr "" msgstr ""
#: mod/photos.php:1278 #: mod/photos.php:1277
msgid "New album name" msgid "New album name"
msgstr "" msgstr ""
#: mod/photos.php:1279 #: mod/photos.php:1278
msgid "Caption" msgid "Caption"
msgstr "" msgstr ""
#: mod/photos.php:1280 #: mod/photos.php:1279
msgid "Add a Tag" msgid "Add a Tag"
msgstr "" msgstr ""
#: mod/photos.php:1280 #: mod/photos.php:1279
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "" msgstr ""
#: mod/photos.php:1281 #: mod/photos.php:1280
msgid "Do not rotate" msgid "Do not rotate"
msgstr "" msgstr ""
#: mod/photos.php:1282 #: mod/photos.php:1281
msgid "Rotate CW (right)" msgid "Rotate CW (right)"
msgstr "" msgstr ""
#: mod/photos.php:1283 #: mod/photos.php:1282
msgid "Rotate CCW (left)" msgid "Rotate CCW (left)"
msgstr "" msgstr ""
#: mod/photos.php:1329 mod/photos.php:1385 mod/photos.php:1459 #: mod/photos.php:1328 mod/photos.php:1384 mod/photos.php:1458
#: src/Module/Contact.php:548 src/Module/Item/Compose.php:189 #: src/Module/Contact.php:547 src/Module/Item/Compose.php:188
#: src/Object/Post.php:989 #: src/Object/Post.php:988
msgid "This is you" msgid "This is you"
msgstr "" msgstr ""
#: mod/photos.php:1331 mod/photos.php:1387 mod/photos.php:1461 #: mod/photos.php:1330 mod/photos.php:1386 mod/photos.php:1460
#: src/Object/Post.php:532 src/Object/Post.php:991 #: src/Object/Post.php:531 src/Object/Post.php:990
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: mod/photos.php:1420 src/Content/Conversation.php:634 src/Object/Post.php:256 #: mod/photos.php:1419 src/Content/Conversation.php:637 src/Object/Post.php:255
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: mod/photos.php:1421 mod/settings.php:351 src/Content/Conversation.php:635 #: mod/photos.php:1420 mod/settings.php:350 src/Content/Conversation.php:638
#: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Blocked.php:141 #: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
#: src/Module/Admin/Users/Index.php:154 #: src/Module/Admin/Users/Index.php:153
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: mod/photos.php:1482 src/Object/Post.php:379 #: mod/photos.php:1481 src/Object/Post.php:378
msgid "Like" msgid "Like"
msgstr "" msgstr ""
#: mod/photos.php:1483 src/Object/Post.php:379 #: mod/photos.php:1482 src/Object/Post.php:378
msgid "I like this (toggle)" msgid "I like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1484 src/Object/Post.php:380 #: mod/photos.php:1483 src/Object/Post.php:379
msgid "Dislike" msgid "Dislike"
msgstr "" msgstr ""
#: mod/photos.php:1486 src/Object/Post.php:380 #: mod/photos.php:1485 src/Object/Post.php:379
msgid "I don't like this (toggle)" msgid "I don't like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1508 #: mod/photos.php:1507
msgid "Map" msgid "Map"
msgstr "" msgstr ""
#: mod/photos.php:1571 #: mod/photos.php:1570
msgid "View Album" msgid "View Album"
msgstr "" msgstr ""
#: mod/redir.php:51 mod/redir.php:104 #: mod/redir.php:50 mod/redir.php:103
msgid "Bad Request." msgid "Bad Request."
msgstr "" msgstr ""
#: mod/redir.php:57 mod/redir.php:131 src/Module/Contact/Advanced.php:71 #: mod/redir.php:56 mod/redir.php:130 src/Module/Contact/Advanced.php:70
#: src/Module/Contact/Advanced.php:110 src/Module/Contact/Contacts.php:54 #: src/Module/Contact/Advanced.php:109 src/Module/Contact/Contacts.php:53
#: src/Module/Contact/Conversations.php:79
#: src/Module/Contact/Conversations.php:84 #: src/Module/Contact/Conversations.php:84
#: src/Module/Contact/Conversations.php:89 src/Module/Contact/Media.php:43 #: src/Module/Contact/Conversations.php:89
#: src/Module/Contact/Posts.php:73 src/Module/Contact/Posts.php:78 #: src/Module/Contact/Conversations.php:94 src/Module/Contact/Media.php:43
#: src/Module/Contact/Posts.php:83 src/Module/Contact/Profile.php:143 #: src/Module/Contact/Posts.php:78 src/Module/Contact/Posts.php:83
#: src/Module/Contact/Profile.php:148 src/Module/Contact/Profile.php:153 #: src/Module/Contact/Posts.php:88 src/Module/Contact/Profile.php:142
#: src/Module/FriendSuggest.php:72 src/Module/FriendSuggest.php:110 #: src/Module/Contact/Profile.php:147 src/Module/Contact/Profile.php:152
#: src/Module/Group.php:98 src/Module/Group.php:107 #: src/Module/FriendSuggest.php:71 src/Module/FriendSuggest.php:109
#: src/Module/Group.php:97 src/Module/Group.php:106
msgid "Contact not found." msgid "Contact not found."
msgstr "" msgstr ""
#: mod/removeme.php:66 src/Navigation/Notifications/Repository/Notify.php:467 #: mod/removeme.php:65 src/Navigation/Notifications/Repository/Notify.php:467
msgid "[Friendica System Notify]" msgid "[Friendica System Notify]"
msgstr "" msgstr ""
#: mod/removeme.php:66 #: mod/removeme.php:65
msgid "User deleted their account" msgid "User deleted their account"
msgstr "" msgstr ""
#: mod/removeme.php:67 #: mod/removeme.php:66
msgid "" msgid ""
"On your Friendica node an user deleted their account. Please ensure that " "On your Friendica node an user deleted their account. Please ensure that "
"their data is removed from the backups." "their data is removed from the backups."
msgstr "" msgstr ""
#: mod/removeme.php:68 #: mod/removeme.php:67
#, php-format #, php-format
msgid "The user id is %d" msgid "The user id is %d"
msgstr "" msgstr ""
#: mod/removeme.php:102 mod/removeme.php:105 #: mod/removeme.php:101 mod/removeme.php:104
msgid "Remove My Account" msgid "Remove My Account"
msgstr "" msgstr ""
#: mod/removeme.php:103 #: mod/removeme.php:102
msgid "" msgid ""
"This will completely remove your account. Once this has been done it is not " "This will completely remove your account. Once this has been done it is not "
"recoverable." "recoverable."
msgstr "" msgstr ""
#: mod/removeme.php:104 #: mod/removeme.php:103
msgid "Please enter your password for verification:" msgid "Please enter your password for verification:"
msgstr "" msgstr ""
#: mod/repair_ostatus.php:37 #: mod/repair_ostatus.php:36
msgid "Resubscribing to OStatus contacts" msgid "Resubscribing to OStatus contacts"
msgstr "" msgstr ""
#: mod/repair_ostatus.php:47 src/Module/Debug/ActivityPubConversion.php:130 #: mod/repair_ostatus.php:46 src/Module/Debug/ActivityPubConversion.php:129
#: src/Module/Debug/Babel.php:293 src/Module/Security/TwoFactor/Verify.php:99 #: src/Module/Debug/Babel.php:293 src/Module/Security/TwoFactor/Verify.php:102
msgid "Error" msgid "Error"
msgid_plural "Errors" msgid_plural "Errors"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: mod/settings.php:123 #: mod/settings.php:122
msgid "Failed to connect with email account using the settings provided." msgid "Failed to connect with email account using the settings provided."
msgstr "" msgstr ""
#: mod/settings.php:176 #: mod/settings.php:175
msgid "Connected Apps" msgid "Connected Apps"
msgstr "" msgstr ""
#: mod/settings.php:177 src/Module/Admin/Blocklist/Contact.php:106 #: mod/settings.php:176 src/Module/Admin/Blocklist/Contact.php:106
#: src/Module/Admin/Users/Active.php:130 src/Module/Admin/Users/Blocked.php:131 #: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130
#: src/Module/Admin/Users/Create.php:71 src/Module/Admin/Users/Deleted.php:88 #: src/Module/Admin/Users/Create.php:71 src/Module/Admin/Users/Deleted.php:88
#: src/Module/Admin/Users/Index.php:143 src/Module/Admin/Users/Index.php:163 #: src/Module/Admin/Users/Index.php:142 src/Module/Admin/Users/Index.php:162
#: src/Module/Admin/Users/Pending.php:104 src/Module/Contact/Advanced.php:135 #: src/Module/Admin/Users/Pending.php:104 src/Module/Contact/Advanced.php:134
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: mod/settings.php:178 src/Content/Nav.php:215 #: mod/settings.php:177 src/Content/Nav.php:214
msgid "Home Page" msgid "Home Page"
msgstr "" msgstr ""
#: mod/settings.php:179 src/Module/Admin/Queue.php:78 #: mod/settings.php:178 src/Module/Admin/Queue.php:78
msgid "Created" msgid "Created"
msgstr "" msgstr ""
#: mod/settings.php:180 #: mod/settings.php:179
msgid "Remove authorization" msgid "Remove authorization"
msgstr "" msgstr ""
#: mod/settings.php:206 mod/settings.php:238 mod/settings.php:269 #: mod/settings.php:205 mod/settings.php:237 mod/settings.php:268
#: mod/settings.php:353 src/Module/Admin/Addons/Index.php:69 #: mod/settings.php:352 src/Module/Admin/Addons/Index.php:69
#: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81 #: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81
#: src/Module/Admin/Site.php:432 src/Module/Admin/Themes/Index.php:113 #: src/Module/Admin/Site.php:432 src/Module/Admin/Themes/Index.php:113
#: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:564 #: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:563
#: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:201 #: src/Module/Settings/Delegation.php:169 src/Module/Settings/Display.php:200
msgid "Save Settings" msgid "Save Settings"
msgstr "" msgstr ""
#: mod/settings.php:214 #: mod/settings.php:213
msgid "Addon Settings" msgid "Addon Settings"
msgstr "" msgstr ""
#: mod/settings.php:215 #: mod/settings.php:214
msgid "No Addon settings configured" msgid "No Addon settings configured"
msgstr "" msgstr ""
#: mod/settings.php:236 #: mod/settings.php:235
msgid "Additional Features" msgid "Additional Features"
msgstr "" msgstr ""
#: mod/settings.php:274 #: mod/settings.php:273
msgid "Diaspora (Socialhome, Hubzilla)" msgid "Diaspora (Socialhome, Hubzilla)"
msgstr "" msgstr ""
#: mod/settings.php:274 mod/settings.php:275 #: mod/settings.php:273 mod/settings.php:274
msgid "enabled" msgid "enabled"
msgstr "" msgstr ""
#: mod/settings.php:274 mod/settings.php:275 #: mod/settings.php:273 mod/settings.php:274
msgid "disabled" msgid "disabled"
msgstr "" msgstr ""
#: mod/settings.php:274 mod/settings.php:275 #: mod/settings.php:273 mod/settings.php:274
#, php-format #, php-format
msgid "Built-in support for %s connectivity is %s" msgid "Built-in support for %s connectivity is %s"
msgstr "" msgstr ""
#: mod/settings.php:275 #: mod/settings.php:274
msgid "OStatus (GNU Social)" msgid "OStatus (GNU Social)"
msgstr "" msgstr ""
#: mod/settings.php:301 #: mod/settings.php:300
msgid "Email access is disabled on this site." msgid "Email access is disabled on this site."
msgstr "" msgstr ""
#: mod/settings.php:306 mod/settings.php:351 #: mod/settings.php:305 mod/settings.php:350
msgid "None" msgid "None"
msgstr "" msgstr ""
#: mod/settings.php:312 src/Module/BaseSettings.php:78 #: mod/settings.php:311 src/Module/BaseSettings.php:78
msgid "Social Networks" msgid "Social Networks"
msgstr "" msgstr ""
#: mod/settings.php:317 #: mod/settings.php:316
msgid "General Social Media Settings" msgid "General Social Media Settings"
msgstr "" msgstr ""
#: mod/settings.php:320 #: mod/settings.php:319
msgid "Followed content scope" msgid "Followed content scope"
msgstr "" msgstr ""
#: mod/settings.php:322 #: mod/settings.php:321
msgid "" msgid ""
"By default, conversations in which your follows participated but didn't " "By default, conversations in which your follows participated but didn't "
"start will be shown in your timeline. You can turn this behavior off, or " "start will be shown in your timeline. You can turn this behavior off, or "
"expand it to the conversations in which your follows liked a post." "expand it to the conversations in which your follows liked a post."
msgstr "" msgstr ""
#: mod/settings.php:324 #: mod/settings.php:323
msgid "Only conversations my follows started" msgid "Only conversations my follows started"
msgstr "" msgstr ""
#: mod/settings.php:325 #: mod/settings.php:324
msgid "Conversations my follows started or commented on (default)" msgid "Conversations my follows started or commented on (default)"
msgstr "" msgstr ""
#: mod/settings.php:326 #: mod/settings.php:325
msgid "Any conversation my follows interacted with, including likes" msgid "Any conversation my follows interacted with, including likes"
msgstr "" msgstr ""
#: mod/settings.php:329 #: mod/settings.php:328
msgid "Enable Content Warning" msgid "Enable Content Warning"
msgstr "" msgstr ""
#: mod/settings.php:329 #: mod/settings.php:328
msgid "" msgid ""
"Users on networks like Mastodon or Pleroma are able to set a content warning " "Users on networks like Mastodon or Pleroma are able to set a content warning "
"field which collapse their post by default. This enables the automatic " "field which collapse their post by default. This enables the automatic "
@ -1296,144 +1296,144 @@ msgid ""
"affect any other content filtering you eventually set up." "affect any other content filtering you eventually set up."
msgstr "" msgstr ""
#: mod/settings.php:330 #: mod/settings.php:329
msgid "Enable intelligent shortening" msgid "Enable intelligent shortening"
msgstr "" msgstr ""
#: mod/settings.php:330 #: mod/settings.php:329
msgid "" msgid ""
"Normally the system tries to find the best link to add to shortened posts. " "Normally the system tries to find the best link to add to shortened posts. "
"If disabled, every shortened post will always point to the original " "If disabled, every shortened post will always point to the original "
"friendica post." "friendica post."
msgstr "" msgstr ""
#: mod/settings.php:331 #: mod/settings.php:330
msgid "Enable simple text shortening" msgid "Enable simple text shortening"
msgstr "" msgstr ""
#: mod/settings.php:331 #: mod/settings.php:330
msgid "" msgid ""
"Normally the system shortens posts at the next line feed. If this option is " "Normally the system shortens posts at the next line feed. If this option is "
"enabled then the system will shorten the text at the maximum character limit." "enabled then the system will shorten the text at the maximum character limit."
msgstr "" msgstr ""
#: mod/settings.php:332 #: mod/settings.php:331
msgid "Attach the link title" msgid "Attach the link title"
msgstr "" msgstr ""
#: mod/settings.php:332 #: mod/settings.php:331
msgid "" msgid ""
"When activated, the title of the attached link will be added as a title on " "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 " "posts to Diaspora. This is mostly helpful with \"remote-self\" contacts that "
"share feed content." "share feed content."
msgstr "" msgstr ""
#: mod/settings.php:333 #: mod/settings.php:332
msgid "Your legacy ActivityPub/GNU Social account" msgid "Your legacy ActivityPub/GNU Social account"
msgstr "" msgstr ""
#: mod/settings.php:333 #: mod/settings.php:332
msgid "" msgid ""
"If you enter your old account name from an ActivityPub based system or your " "If you enter your old account name from an ActivityPub based system or your "
"GNU Social/Statusnet account name here (in the format user@domain.tld), your " "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." "contacts will be added automatically. The field will be emptied when done."
msgstr "" msgstr ""
#: mod/settings.php:336 #: mod/settings.php:335
msgid "Repair OStatus subscriptions" msgid "Repair OStatus subscriptions"
msgstr "" msgstr ""
#: mod/settings.php:340 #: mod/settings.php:339
msgid "Email/Mailbox Setup" msgid "Email/Mailbox Setup"
msgstr "" msgstr ""
#: mod/settings.php:341 #: mod/settings.php:340
msgid "" msgid ""
"If you wish to communicate with email contacts using this service " "If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox." "(optional), please specify how to connect to your mailbox."
msgstr "" msgstr ""
#: mod/settings.php:342 #: mod/settings.php:341
msgid "Last successful email check:" msgid "Last successful email check:"
msgstr "" msgstr ""
#: mod/settings.php:344 #: mod/settings.php:343
msgid "IMAP server name:" msgid "IMAP server name:"
msgstr "" msgstr ""
#: mod/settings.php:345 #: mod/settings.php:344
msgid "IMAP port:" msgid "IMAP port:"
msgstr "" msgstr ""
#: mod/settings.php:346 #: mod/settings.php:345
msgid "Security:" msgid "Security:"
msgstr "" msgstr ""
#: mod/settings.php:347 #: mod/settings.php:346
msgid "Email login name:" msgid "Email login name:"
msgstr "" msgstr ""
#: mod/settings.php:348 #: mod/settings.php:347
msgid "Email password:" msgid "Email password:"
msgstr "" msgstr ""
#: mod/settings.php:349 #: mod/settings.php:348
msgid "Reply-to address:" msgid "Reply-to address:"
msgstr "" msgstr ""
#: mod/settings.php:350 #: mod/settings.php:349
msgid "Send public posts to all email contacts:" msgid "Send public posts to all email contacts:"
msgstr "" msgstr ""
#: mod/settings.php:351 #: mod/settings.php:350
msgid "Action after import:" msgid "Action after import:"
msgstr "" msgstr ""
#: mod/settings.php:351 src/Content/Nav.php:283 #: mod/settings.php:350 src/Content/Nav.php:282
msgid "Mark as seen" msgid "Mark as seen"
msgstr "" msgstr ""
#: mod/settings.php:351 #: mod/settings.php:350
msgid "Move to folder" msgid "Move to folder"
msgstr "" msgstr ""
#: mod/settings.php:352 #: mod/settings.php:351
msgid "Move to folder:" msgid "Move to folder:"
msgstr "" msgstr ""
#: mod/suggest.php:45 #: mod/suggest.php:44
msgid "" msgid ""
"No suggestions available. If this is a new site, please try again in 24 " "No suggestions available. If this is a new site, please try again in 24 "
"hours." "hours."
msgstr "" msgstr ""
#: mod/suggest.php:56 src/Content/Widget.php:84 view/theme/vier/theme.php:202 #: mod/suggest.php:55 src/Content/Widget.php:83 view/theme/vier/theme.php:201
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "" msgstr ""
#: mod/tagger.php:78 src/Content/Item.php:301 src/Model/Item.php:2861 #: mod/tagger.php:77 src/Content/Item.php:304 src/Model/Item.php:2860
msgid "photo" msgid "photo"
msgstr "" msgstr ""
#: mod/tagger.php:78 src/Content/Item.php:295 src/Content/Item.php:305 #: mod/tagger.php:77 src/Content/Item.php:298 src/Content/Item.php:308
msgid "status" msgid "status"
msgstr "" msgstr ""
#: mod/tagger.php:111 src/Content/Item.php:315 #: mod/tagger.php:110 src/Content/Item.php:318
#, php-format #, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s" msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "" msgstr ""
#: mod/tagrm.php:114 #: mod/tagrm.php:113
msgid "Remove Item Tag" msgid "Remove Item Tag"
msgstr "" msgstr ""
#: mod/tagrm.php:116 #: mod/tagrm.php:115
msgid "Select a tag to remove: " msgid "Select a tag to remove: "
msgstr "" msgstr ""
#: mod/tagrm.php:127 src/Module/Settings/Delegation.php:179 #: mod/tagrm.php:126 src/Module/Settings/Delegation.php:178
#: src/Module/Settings/TwoFactor/Trusted.php:144 #: src/Module/Settings/TwoFactor/Trusted.php:143
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
@ -1441,13 +1441,13 @@ msgstr ""
msgid "User imports on closed servers can only be done by an administrator." msgid "User imports on closed servers can only be done by an administrator."
msgstr "" msgstr ""
#: mod/uimport.php:55 src/Module/Register.php:100 #: mod/uimport.php:55 src/Module/Register.php:99
msgid "" msgid ""
"This site has exceeded the number of allowed daily account registrations. " "This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow." "Please try again tomorrow."
msgstr "" msgstr ""
#: mod/uimport.php:62 src/Module/Register.php:174 #: mod/uimport.php:62 src/Module/Register.php:173
msgid "Import" msgid "Import"
msgstr "" msgstr ""
@ -1482,50 +1482,50 @@ msgid ""
"select \"Export account\"" "select \"Export account\""
msgstr "" msgstr ""
#: mod/unfollow.php:66 mod/unfollow.php:135 #: mod/unfollow.php:65 mod/unfollow.php:134
msgid "You aren't following this contact." msgid "You aren't following this contact."
msgstr "" msgstr ""
#: mod/unfollow.php:72 #: mod/unfollow.php:71
msgid "Unfollowing is currently not supported by your network." msgid "Unfollowing is currently not supported by your network."
msgstr "" msgstr ""
#: mod/unfollow.php:93 #: mod/unfollow.php:92
msgid "Disconnect/Unfollow" msgid "Disconnect/Unfollow"
msgstr "" msgstr ""
#: mod/unfollow.php:144 #: mod/unfollow.php:143
msgid "Contact was successfully unfollowed" msgid "Contact was successfully unfollowed"
msgstr "" msgstr ""
#: mod/unfollow.php:147 #: mod/unfollow.php:146
msgid "Unable to unfollow this contact, please contact your administrator" msgid "Unable to unfollow this contact, please contact your administrator"
msgstr "" msgstr ""
#: mod/wall_attach.php:40 mod/wall_attach.php:46 mod/wall_attach.php:75 #: mod/wall_attach.php:39 mod/wall_attach.php:45 mod/wall_attach.php:74
#: mod/wall_upload.php:54 mod/wall_upload.php:63 mod/wall_upload.php:97 #: mod/wall_upload.php:53 mod/wall_upload.php:62 mod/wall_upload.php:96
#: mod/wall_upload.php:148 mod/wall_upload.php:150 #: mod/wall_upload.php:147 mod/wall_upload.php:149
msgid "Invalid request." msgid "Invalid request."
msgstr "" msgstr ""
#: mod/wall_attach.php:93 #: mod/wall_attach.php:92
msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" msgid "Sorry, maybe your upload is bigger than the PHP configuration allows"
msgstr "" msgstr ""
#: mod/wall_attach.php:93 #: mod/wall_attach.php:92
msgid "Or - did you try to upload an empty file?" msgid "Or - did you try to upload an empty file?"
msgstr "" msgstr ""
#: mod/wall_attach.php:104 #: mod/wall_attach.php:103
#, php-format #, php-format
msgid "File exceeds size limit of %s" msgid "File exceeds size limit of %s"
msgstr "" msgstr ""
#: mod/wall_attach.php:119 #: mod/wall_attach.php:118
msgid "File upload failed." msgid "File upload failed."
msgstr "" msgstr ""
#: mod/wall_upload.php:218 src/Model/Photo.php:1087 #: mod/wall_upload.php:217 src/Model/Photo.php:1086
msgid "Wall Photos" msgid "Wall Photos"
msgstr "" msgstr ""
@ -1549,11 +1549,11 @@ msgid ""
"your site allow private mail from unknown senders." "your site allow private mail from unknown senders."
msgstr "" msgstr ""
#: src/App.php:491 #: src/App.php:497
msgid "No system theme config value set." msgid "No system theme config value set."
msgstr "" msgstr ""
#: src/App.php:612 #: src/App.php:618
msgid "Apologies but the website is unavailable at the moment." msgid "Apologies but the website is unavailable at the moment."
msgstr "" msgstr ""
@ -1571,16 +1571,16 @@ msgstr ""
msgid "toggle mobile" msgid "toggle mobile"
msgstr "" msgstr ""
#: src/App/Router.php:283 #: src/App/Router.php:288
#, php-format #, php-format
msgid "Method not allowed for this module. Allowed method(s): %s" msgid "Method not allowed for this module. Allowed method(s): %s"
msgstr "" msgstr ""
#: src/App/Router.php:285 src/Module/HTTPException/PageNotFound.php:49 #: src/App/Router.php:290 src/Module/HTTPException/PageNotFound.php:49
msgid "Page not found." msgid "Page not found."
msgstr "" msgstr ""
#: src/App/Router.php:313 #: src/App/Router.php:318
msgid "You must be logged in to use addons. " msgid "You must be logged in to use addons. "
msgstr "" msgstr ""
@ -1594,17 +1594,17 @@ msgstr ""
msgid "All contacts" msgid "All contacts"
msgstr "" msgstr ""
#: src/BaseModule.php:424 src/Content/Widget.php:236 src/Core/ACL.php:194 #: src/BaseModule.php:424 src/Content/Widget.php:235 src/Core/ACL.php:194
#: src/Module/Contact.php:371 src/Module/PermissionTooltip.php:123 #: src/Module/Contact.php:370 src/Module/PermissionTooltip.php:122
#: src/Module/PermissionTooltip.php:145 #: src/Module/PermissionTooltip.php:144
msgid "Followers" msgid "Followers"
msgstr "" msgstr ""
#: src/BaseModule.php:429 src/Content/Widget.php:237 src/Module/Contact.php:372 #: src/BaseModule.php:429 src/Content/Widget.php:236 src/Module/Contact.php:371
msgid "Following" msgid "Following"
msgstr "" msgstr ""
#: src/BaseModule.php:434 src/Content/Widget.php:238 src/Module/Contact.php:373 #: src/BaseModule.php:434 src/Content/Widget.php:237 src/Module/Contact.php:372
msgid "Mutual friends" msgid "Mutual friends"
msgstr "" msgstr ""
@ -1762,13 +1762,13 @@ msgstr ""
msgid "Enter new password: " msgid "Enter new password: "
msgstr "" msgstr ""
#: src/Console/User.php:210 src/Module/Security/PasswordTooLong.php:66 #: src/Console/User.php:210 src/Module/Security/PasswordTooLong.php:69
#: src/Module/Settings/Account.php:76 #: src/Module/Settings/Account.php:75
msgid "Password update failed. Please try again." msgid "Password update failed. Please try again."
msgstr "" msgstr ""
#: src/Console/User.php:213 src/Module/Security/PasswordTooLong.php:69 #: src/Console/User.php:213 src/Module/Security/PasswordTooLong.php:72
#: src/Module/Settings/Account.php:79 #: src/Module/Settings/Account.php:78
msgid "Password changed." msgid "Password changed."
msgstr "" msgstr ""
@ -1857,10 +1857,10 @@ msgstr ""
msgid "RSS/Atom" msgid "RSS/Atom"
msgstr "" msgstr ""
#: src/Content/ContactSelector.php:129 src/Module/Admin/Users/Active.php:130 #: src/Content/ContactSelector.php:129 src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:131 src/Module/Admin/Users/Create.php:73 #: src/Module/Admin/Users/Blocked.php:130 src/Module/Admin/Users/Create.php:73
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142
#: src/Module/Admin/Users/Index.php:163 src/Module/Admin/Users/Pending.php:104 #: src/Module/Admin/Users/Index.php:162 src/Module/Admin/Users/Pending.php:104
msgid "Email" msgid "Email"
msgstr "" msgstr ""
@ -1921,258 +1921,258 @@ msgstr ""
msgid "%s (via %s)" msgid "%s (via %s)"
msgstr "" msgstr ""
#: src/Content/Conversation.php:211 #: src/Content/Conversation.php:214
#, php-format #, php-format
msgid "%s likes this." msgid "%s likes this."
msgstr "" msgstr ""
#: src/Content/Conversation.php:214 #: src/Content/Conversation.php:217
#, php-format #, php-format
msgid "%s doesn't like this." msgid "%s doesn't like this."
msgstr "" msgstr ""
#: src/Content/Conversation.php:217 #: src/Content/Conversation.php:220
#, php-format #, php-format
msgid "%s attends." msgid "%s attends."
msgstr "" msgstr ""
#: src/Content/Conversation.php:220 #: src/Content/Conversation.php:223
#, php-format #, php-format
msgid "%s doesn't attend." msgid "%s doesn't attend."
msgstr "" msgstr ""
#: src/Content/Conversation.php:223 #: src/Content/Conversation.php:226
#, php-format #, php-format
msgid "%s attends maybe." msgid "%s attends maybe."
msgstr "" msgstr ""
#: src/Content/Conversation.php:226 src/Content/Conversation.php:264 #: src/Content/Conversation.php:229 src/Content/Conversation.php:267
#: src/Content/Conversation.php:878 #: src/Content/Conversation.php:881
#, php-format #, php-format
msgid "%s reshared this." msgid "%s reshared this."
msgstr "" msgstr ""
#: src/Content/Conversation.php:232 #: src/Content/Conversation.php:235
msgid "and" msgid "and"
msgstr "" msgstr ""
#: src/Content/Conversation.php:235 #: src/Content/Conversation.php:238
#, php-format #, php-format
msgid "and %d other people" msgid "and %d other people"
msgstr "" msgstr ""
#: src/Content/Conversation.php:243 #: src/Content/Conversation.php:246
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> like this" msgid "<span %1$s>%2$d people</span> like this"
msgstr "" msgstr ""
#: src/Content/Conversation.php:244 #: src/Content/Conversation.php:247
#, php-format #, php-format
msgid "%s like this." msgid "%s like this."
msgstr "" msgstr ""
#: src/Content/Conversation.php:247 #: src/Content/Conversation.php:250
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't like this" msgid "<span %1$s>%2$d people</span> don't like this"
msgstr "" msgstr ""
#: src/Content/Conversation.php:248 #: src/Content/Conversation.php:251
#, php-format #, php-format
msgid "%s don't like this." msgid "%s don't like this."
msgstr "" msgstr ""
#: src/Content/Conversation.php:251 #: src/Content/Conversation.php:254
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend" msgid "<span %1$s>%2$d people</span> attend"
msgstr "" msgstr ""
#: src/Content/Conversation.php:252 #: src/Content/Conversation.php:255
#, php-format #, php-format
msgid "%s attend." msgid "%s attend."
msgstr "" msgstr ""
#: src/Content/Conversation.php:255 #: src/Content/Conversation.php:258
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't attend" msgid "<span %1$s>%2$d people</span> don't attend"
msgstr "" msgstr ""
#: src/Content/Conversation.php:256 #: src/Content/Conversation.php:259
#, php-format #, php-format
msgid "%s don't attend." msgid "%s don't attend."
msgstr "" msgstr ""
#: src/Content/Conversation.php:259 #: src/Content/Conversation.php:262
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend maybe" msgid "<span %1$s>%2$d people</span> attend maybe"
msgstr "" msgstr ""
#: src/Content/Conversation.php:260 #: src/Content/Conversation.php:263
#, php-format #, php-format
msgid "%s attend maybe." msgid "%s attend maybe."
msgstr "" msgstr ""
#: src/Content/Conversation.php:263 #: src/Content/Conversation.php:266
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> reshared this" msgid "<span %1$s>%2$d people</span> reshared this"
msgstr "" msgstr ""
#: src/Content/Conversation.php:311 #: src/Content/Conversation.php:314
msgid "Visible to <strong>everybody</strong>" msgid "Visible to <strong>everybody</strong>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:312 src/Module/Item/Compose.php:199 #: src/Content/Conversation.php:315 src/Module/Item/Compose.php:198
#: src/Object/Post.php:1002 #: src/Object/Post.php:1001
msgid "Please enter a image/video/audio/webpage URL:" msgid "Please enter a image/video/audio/webpage URL:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:313 #: src/Content/Conversation.php:316
msgid "Tag term:" msgid "Tag term:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:314 src/Module/Filer/SaveTag.php:74 #: src/Content/Conversation.php:317 src/Module/Filer/SaveTag.php:73
msgid "Save to Folder:" msgid "Save to Folder:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:315 #: src/Content/Conversation.php:318
msgid "Where are you right now?" msgid "Where are you right now?"
msgstr "" msgstr ""
#: src/Content/Conversation.php:316 #: src/Content/Conversation.php:319
msgid "Delete item(s)?" msgid "Delete item(s)?"
msgstr "" msgstr ""
#: src/Content/Conversation.php:328 src/Module/Item/Compose.php:176 #: src/Content/Conversation.php:331 src/Module/Item/Compose.php:175
msgid "Created at" msgid "Created at"
msgstr "" msgstr ""
#: src/Content/Conversation.php:338 #: src/Content/Conversation.php:341
msgid "New Post" msgid "New Post"
msgstr "" msgstr ""
#: src/Content/Conversation.php:341 #: src/Content/Conversation.php:344
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: src/Content/Conversation.php:352 src/Module/Item/Compose.php:196 #: src/Content/Conversation.php:355 src/Module/Item/Compose.php:195
#: src/Object/Post.php:999 #: src/Object/Post.php:998
msgid "Image" msgid "Image"
msgstr "" msgstr ""
#: src/Content/Conversation.php:355 #: src/Content/Conversation.php:358
msgid "Video" msgid "Video"
msgstr "" msgstr ""
#: src/Content/Conversation.php:368 src/Module/Item/Compose.php:223 #: src/Content/Conversation.php:371 src/Module/Item/Compose.php:222
msgid "Scheduled at" msgid "Scheduled at"
msgstr "" msgstr ""
#: src/Content/Conversation.php:662 src/Object/Post.php:244 #: src/Content/Conversation.php:665 src/Object/Post.php:243
msgid "Pinned item" msgid "Pinned item"
msgstr "" msgstr ""
#: src/Content/Conversation.php:678 src/Object/Post.php:486 #: src/Content/Conversation.php:681 src/Object/Post.php:485
#: src/Object/Post.php:487 #: src/Object/Post.php:486
#, php-format #, php-format
msgid "View %s's profile @ %s" msgid "View %s's profile @ %s"
msgstr "" msgstr ""
#: src/Content/Conversation.php:691 src/Object/Post.php:474 #: src/Content/Conversation.php:694 src/Object/Post.php:473
msgid "Categories:" msgid "Categories:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:692 src/Object/Post.php:475 #: src/Content/Conversation.php:695 src/Object/Post.php:474
msgid "Filed under:" msgid "Filed under:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:700 src/Object/Post.php:500 #: src/Content/Conversation.php:703 src/Object/Post.php:499
#, php-format #, php-format
msgid "%s from %s" msgid "%s from %s"
msgstr "" msgstr ""
#: src/Content/Conversation.php:716 #: src/Content/Conversation.php:719
msgid "View in context" msgid "View in context"
msgstr "" msgstr ""
#: src/Content/Conversation.php:781 #: src/Content/Conversation.php:784
msgid "remove" msgid "remove"
msgstr "" msgstr ""
#: src/Content/Conversation.php:785 #: src/Content/Conversation.php:788
msgid "Delete Selected Items" msgid "Delete Selected Items"
msgstr "" msgstr ""
#: src/Content/Conversation.php:850 src/Content/Conversation.php:853 #: src/Content/Conversation.php:853 src/Content/Conversation.php:856
#: src/Content/Conversation.php:856 src/Content/Conversation.php:859 #: src/Content/Conversation.php:859 src/Content/Conversation.php:862
#, php-format #, php-format
msgid "You had been addressed (%s)." msgid "You had been addressed (%s)."
msgstr "" msgstr ""
#: src/Content/Conversation.php:862 #: src/Content/Conversation.php:865
#, php-format #, php-format
msgid "You are following %s." msgid "You are following %s."
msgstr "" msgstr ""
#: src/Content/Conversation.php:865 #: src/Content/Conversation.php:868
msgid "You subscribed to one or more tags in this post." msgid "You subscribed to one or more tags in this post."
msgstr "" msgstr ""
#: src/Content/Conversation.php:880 #: src/Content/Conversation.php:883
msgid "Reshared" msgid "Reshared"
msgstr "" msgstr ""
#: src/Content/Conversation.php:880
#, php-format
msgid "Reshared by %s <%s>"
msgstr ""
#: src/Content/Conversation.php:883 #: src/Content/Conversation.php:883
#, php-format #, php-format
msgid "%s is participating in this thread." msgid "Reshared by %s <%s>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:886 #: src/Content/Conversation.php:886
msgid "Stored for general reasons" #, php-format
msgid "%s is participating in this thread."
msgstr "" msgstr ""
#: src/Content/Conversation.php:889 #: src/Content/Conversation.php:889
msgid "Stored for general reasons"
msgstr ""
#: src/Content/Conversation.php:892
msgid "Global post" msgid "Global post"
msgstr "" msgstr ""
#: src/Content/Conversation.php:892 #: src/Content/Conversation.php:895
msgid "Sent via an relay server" msgid "Sent via an relay server"
msgstr "" msgstr ""
#: src/Content/Conversation.php:892 #: src/Content/Conversation.php:895
#, php-format #, php-format
msgid "Sent via the relay server %s <%s>" msgid "Sent via the relay server %s <%s>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:895 #: src/Content/Conversation.php:898
msgid "Fetched" msgid "Fetched"
msgstr "" msgstr ""
#: src/Content/Conversation.php:895 #: src/Content/Conversation.php:898
#, php-format #, php-format
msgid "Fetched because of %s <%s>" msgid "Fetched because of %s <%s>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:898 #: src/Content/Conversation.php:901
msgid "Stored because of a child post to complete this thread." msgid "Stored because of a child post to complete this thread."
msgstr "" msgstr ""
#: src/Content/Conversation.php:901 #: src/Content/Conversation.php:904
msgid "Local delivery" msgid "Local delivery"
msgstr "" msgstr ""
#: src/Content/Conversation.php:904 #: src/Content/Conversation.php:907
msgid "Stored because of your activity (like, comment, star, ...)" msgid "Stored because of your activity (like, comment, star, ...)"
msgstr "" msgstr ""
#: src/Content/Conversation.php:907 #: src/Content/Conversation.php:910
msgid "Distributed" msgid "Distributed"
msgstr "" msgstr ""
#: src/Content/Conversation.php:910 #: src/Content/Conversation.php:913
msgid "Pushed to us" msgid "Pushed to us"
msgstr "" msgstr ""
@ -2274,333 +2274,333 @@ msgstr ""
msgid "Display membership date in profile" msgid "Display membership date in profile"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:152 src/Content/Nav.php:242 #: src/Content/ForumManager.php:151 src/Content/Nav.php:241
#: src/Content/Text/HTML.php:903 src/Content/Widget.php:525 #: src/Content/Text/HTML.php:903 src/Content/Widget.php:524
msgid "Forums" msgid "Forums"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:154 #: src/Content/ForumManager.php:153
msgid "External link to forum" msgid "External link to forum"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:157 src/Content/Widget.php:504 #: src/Content/ForumManager.php:156 src/Content/Widget.php:503
msgid "show less" msgid "show less"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:158 src/Content/Widget.php:406 #: src/Content/ForumManager.php:157 src/Content/Widget.php:405
#: src/Content/Widget.php:505 #: src/Content/Widget.php:504
msgid "show more" msgid "show more"
msgstr "" msgstr ""
#: src/Content/Item.php:292 src/Model/Item.php:2859 #: src/Content/Item.php:295 src/Model/Item.php:2858
msgid "event" msgid "event"
msgstr "" msgstr ""
#: src/Content/Item.php:384 view/theme/frio/theme.php:268 #: src/Content/Item.php:387 view/theme/frio/theme.php:267
msgid "Follow Thread" msgid "Follow Thread"
msgstr "" msgstr ""
#: src/Content/Item.php:385 src/Model/Contact.php:1174 #: src/Content/Item.php:388 src/Model/Contact.php:1199
msgid "View Status" msgid "View Status"
msgstr "" msgstr ""
#: src/Content/Item.php:386 src/Content/Item.php:404 src/Model/Contact.php:1112 #: src/Content/Item.php:389 src/Content/Item.php:407 src/Model/Contact.php:1137
#: src/Model/Contact.php:1166 src/Model/Contact.php:1175 #: src/Model/Contact.php:1191 src/Model/Contact.php:1200
#: src/Module/Directory.php:158 src/Module/Settings/Profile/Index.php:226 #: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:225
msgid "View Profile" msgid "View Profile"
msgstr "" msgstr ""
#: src/Content/Item.php:387 src/Model/Contact.php:1176 #: src/Content/Item.php:390 src/Model/Contact.php:1201
msgid "View Photos" msgid "View Photos"
msgstr "" msgstr ""
#: src/Content/Item.php:388 src/Model/Contact.php:1167 #: src/Content/Item.php:391 src/Model/Contact.php:1192
#: src/Model/Contact.php:1177 #: src/Model/Contact.php:1202
msgid "Network Posts" msgid "Network Posts"
msgstr "" msgstr ""
#: src/Content/Item.php:389 src/Model/Contact.php:1168 #: src/Content/Item.php:392 src/Model/Contact.php:1193
#: src/Model/Contact.php:1178 #: src/Model/Contact.php:1203
msgid "View Contact" msgid "View Contact"
msgstr "" msgstr ""
#: src/Content/Item.php:390 src/Model/Contact.php:1179 #: src/Content/Item.php:393 src/Model/Contact.php:1204
msgid "Send PM" msgid "Send PM"
msgstr "" msgstr ""
#: src/Content/Item.php:391 src/Module/Admin/Blocklist/Contact.php:100 #: src/Content/Item.php:394 src/Module/Admin/Blocklist/Contact.php:100
#: src/Module/Admin/Users/Active.php:141 src/Module/Admin/Users/Index.php:155 #: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154
#: src/Module/Contact.php:402 src/Module/Contact/Profile.php:350 #: src/Module/Contact.php:401 src/Module/Contact/Profile.php:349
#: src/Module/Contact/Profile.php:451 #: src/Module/Contact/Profile.php:450
msgid "Block" msgid "Block"
msgstr "" msgstr ""
#: src/Content/Item.php:392 src/Module/Contact.php:403 #: src/Content/Item.php:395 src/Module/Contact.php:402
#: src/Module/Contact/Profile.php:351 src/Module/Contact/Profile.php:459 #: src/Module/Contact/Profile.php:350 src/Module/Contact/Profile.php:458
#: src/Module/Notifications/Introductions.php:134 #: src/Module/Notifications/Introductions.php:134
#: src/Module/Notifications/Introductions.php:206 #: src/Module/Notifications/Introductions.php:206
#: src/Module/Notifications/Notification.php:90 #: src/Module/Notifications/Notification.php:89
msgid "Ignore" msgid "Ignore"
msgstr "" msgstr ""
#: src/Content/Item.php:396 src/Object/Post.php:455 #: src/Content/Item.php:399 src/Object/Post.php:454
msgid "Languages" msgid "Languages"
msgstr "" msgstr ""
#: src/Content/Nav.php:91 #: src/Content/Nav.php:90
msgid "Nothing new here" msgid "Nothing new here"
msgstr "" msgstr ""
#: src/Content/Nav.php:95 src/Module/Special/HTTPException.php:50 #: src/Content/Nav.php:94 src/Module/Special/HTTPException.php:50
msgid "Go back" msgid "Go back"
msgstr "" msgstr ""
#: src/Content/Nav.php:96 #: src/Content/Nav.php:95
msgid "Clear notifications" msgid "Clear notifications"
msgstr "" msgstr ""
#: src/Content/Nav.php:97 src/Content/Text/HTML.php:890 #: src/Content/Nav.php:96 src/Content/Text/HTML.php:890
msgid "@name, !forum, #tags, content" msgid "@name, !forum, #tags, content"
msgstr "" msgstr ""
#: src/Content/Nav.php:186 src/Module/Security/Login.php:159 #: src/Content/Nav.php:185 src/Module/Security/Login.php:158
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: src/Content/Nav.php:186 #: src/Content/Nav.php:185
msgid "End this session" msgid "End this session"
msgstr "" msgstr ""
#: src/Content/Nav.php:188 src/Module/Bookmarklet.php:45 #: src/Content/Nav.php:187 src/Module/Bookmarklet.php:44
#: src/Module/Security/Login.php:160 #: src/Module/Security/Login.php:159
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: src/Content/Nav.php:188 #: src/Content/Nav.php:187
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr ""
#: src/Content/Nav.php:193 src/Module/BaseProfile.php:56 #: src/Content/Nav.php:192 src/Module/BaseProfile.php:56
#: src/Module/Contact.php:437 src/Module/Contact/Profile.php:382 #: src/Module/Contact.php:436 src/Module/Contact/Profile.php:381
#: src/Module/Settings/TwoFactor/Index.php:120 view/theme/frio/theme.php:238 #: src/Module/Settings/TwoFactor/Index.php:119 view/theme/frio/theme.php:237
msgid "Status" msgid "Status"
msgstr "" msgstr ""
#: src/Content/Nav.php:193 src/Content/Nav.php:276 #: src/Content/Nav.php:192 src/Content/Nav.php:275
#: view/theme/frio/theme.php:238 #: view/theme/frio/theme.php:237
msgid "Your posts and conversations" msgid "Your posts and conversations"
msgstr "" msgstr ""
#: src/Content/Nav.php:194 src/Module/BaseProfile.php:48 #: src/Content/Nav.php:193 src/Module/BaseProfile.php:48
#: src/Module/BaseSettings.php:55 src/Module/Contact.php:461 #: src/Module/BaseSettings.php:55 src/Module/Contact.php:460
#: src/Module/Contact/Profile.php:384 src/Module/Profile/Profile.php:241 #: src/Module/Contact/Profile.php:383 src/Module/Profile/Profile.php:240
#: src/Module/Welcome.php:57 view/theme/frio/theme.php:239 #: src/Module/Welcome.php:57 view/theme/frio/theme.php:238
msgid "Profile" msgid "Profile"
msgstr "" msgstr ""
#: src/Content/Nav.php:194 view/theme/frio/theme.php:239 #: src/Content/Nav.php:193 view/theme/frio/theme.php:238
msgid "Your profile page" msgid "Your profile page"
msgstr "" msgstr ""
#: src/Content/Nav.php:195 view/theme/frio/theme.php:240 #: src/Content/Nav.php:194 view/theme/frio/theme.php:239
msgid "Your photos" msgid "Your photos"
msgstr "" msgstr ""
#: src/Content/Nav.php:196 src/Module/BaseProfile.php:72 #: src/Content/Nav.php:195 src/Module/BaseProfile.php:72
#: src/Module/BaseProfile.php:75 src/Module/Contact.php:453 #: src/Module/BaseProfile.php:75 src/Module/Contact.php:452
#: view/theme/frio/theme.php:241 #: view/theme/frio/theme.php:240
msgid "Media" msgid "Media"
msgstr "" msgstr ""
#: src/Content/Nav.php:196 view/theme/frio/theme.php:241 #: src/Content/Nav.php:195 view/theme/frio/theme.php:240
msgid "Your postings with media" msgid "Your postings with media"
msgstr "" msgstr ""
#: src/Content/Nav.php:197 view/theme/frio/theme.php:242 #: src/Content/Nav.php:196 view/theme/frio/theme.php:241
msgid "Your events" msgid "Your events"
msgstr "" msgstr ""
#: src/Content/Nav.php:198 #: src/Content/Nav.php:197
msgid "Personal notes" msgid "Personal notes"
msgstr "" msgstr ""
#: src/Content/Nav.php:198 #: src/Content/Nav.php:197
msgid "Your personal notes" msgid "Your personal notes"
msgstr "" msgstr ""
#: src/Content/Nav.php:215 src/Content/Nav.php:276 #: src/Content/Nav.php:214 src/Content/Nav.php:275
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: src/Content/Nav.php:219 src/Module/Register.php:169 #: src/Content/Nav.php:218 src/Module/Register.php:168
#: src/Module/Security/Login.php:125 #: src/Module/Security/Login.php:124
msgid "Register" msgid "Register"
msgstr "" msgstr ""
#: src/Content/Nav.php:219 #: src/Content/Nav.php:218
msgid "Create an account" msgid "Create an account"
msgstr "" msgstr ""
#: src/Content/Nav.php:225 src/Module/Help.php:67 #: src/Content/Nav.php:224 src/Module/Help.php:67
#: src/Module/Settings/TwoFactor/AppSpecific.php:129 #: src/Module/Settings/TwoFactor/AppSpecific.php:128
#: src/Module/Settings/TwoFactor/Index.php:119 #: src/Module/Settings/TwoFactor/Index.php:118
#: src/Module/Settings/TwoFactor/Recovery.php:107 #: src/Module/Settings/TwoFactor/Recovery.php:106
#: src/Module/Settings/TwoFactor/Verify.php:146 view/theme/vier/theme.php:244 #: src/Module/Settings/TwoFactor/Verify.php:145 view/theme/vier/theme.php:243
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#: src/Content/Nav.php:225 #: src/Content/Nav.php:224
msgid "Help and documentation" msgid "Help and documentation"
msgstr "" msgstr ""
#: src/Content/Nav.php:229 #: src/Content/Nav.php:228
msgid "Apps" msgid "Apps"
msgstr "" msgstr ""
#: src/Content/Nav.php:229 #: src/Content/Nav.php:228
msgid "Addon applications, utilities, games" msgid "Addon applications, utilities, games"
msgstr "" msgstr ""
#: src/Content/Nav.php:233 src/Content/Text/HTML.php:888 #: src/Content/Nav.php:232 src/Content/Text/HTML.php:888
#: src/Module/Admin/Logs/View.php:87 src/Module/Search/Index.php:112 #: src/Module/Admin/Logs/View.php:87 src/Module/Search/Index.php:111
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: src/Content/Nav.php:233 #: src/Content/Nav.php:232
msgid "Search site content" msgid "Search site content"
msgstr "" msgstr ""
#: src/Content/Nav.php:236 src/Content/Text/HTML.php:897 #: src/Content/Nav.php:235 src/Content/Text/HTML.php:897
msgid "Full Text" msgid "Full Text"
msgstr "" msgstr ""
#: src/Content/Nav.php:237 src/Content/Text/HTML.php:898 #: src/Content/Nav.php:236 src/Content/Text/HTML.php:898
#: src/Content/Widget/TagCloud.php:68 #: src/Content/Widget/TagCloud.php:68
msgid "Tags" msgid "Tags"
msgstr "" msgstr ""
#: src/Content/Nav.php:238 src/Content/Nav.php:297 #: src/Content/Nav.php:237 src/Content/Nav.php:296
#: src/Content/Text/HTML.php:899 src/Module/BaseProfile.php:125 #: src/Content/Text/HTML.php:899 src/Module/BaseProfile.php:125
#: src/Module/BaseProfile.php:128 src/Module/Contact.php:374 #: src/Module/BaseProfile.php:128 src/Module/Contact.php:373
#: src/Module/Contact.php:468 view/theme/frio/theme.php:249 #: src/Module/Contact.php:467 view/theme/frio/theme.php:248
msgid "Contacts" msgid "Contacts"
msgstr "" msgstr ""
#: src/Content/Nav.php:257 #: src/Content/Nav.php:256
msgid "Community" msgid "Community"
msgstr "" msgstr ""
#: src/Content/Nav.php:257 #: src/Content/Nav.php:256
msgid "Conversations on this and other servers" msgid "Conversations on this and other servers"
msgstr "" msgstr ""
#: src/Content/Nav.php:261 src/Module/BaseProfile.php:87 #: src/Content/Nav.php:260 src/Module/BaseProfile.php:87
#: src/Module/BaseProfile.php:98 view/theme/frio/theme.php:246 #: src/Module/BaseProfile.php:98 view/theme/frio/theme.php:245
msgid "Events and Calendar" msgid "Events and Calendar"
msgstr "" msgstr ""
#: src/Content/Nav.php:264 #: src/Content/Nav.php:263
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""
#: src/Content/Nav.php:264 #: src/Content/Nav.php:263
msgid "People directory" msgid "People directory"
msgstr "" msgstr ""
#: src/Content/Nav.php:266 src/Module/BaseAdmin.php:86 #: src/Content/Nav.php:265 src/Module/BaseAdmin.php:85
msgid "Information" msgid "Information"
msgstr "" msgstr ""
#: src/Content/Nav.php:266 #: src/Content/Nav.php:265
msgid "Information about this friendica instance" msgid "Information about this friendica instance"
msgstr "" msgstr ""
#: src/Content/Nav.php:269 src/Module/Admin/Tos.php:76 #: src/Content/Nav.php:268 src/Module/Admin/Tos.php:76
#: src/Module/BaseAdmin.php:97 src/Module/Register.php:177 #: src/Module/BaseAdmin.php:96 src/Module/Register.php:176
#: src/Module/Tos.php:87 #: src/Module/Tos.php:87
msgid "Terms of Service" msgid "Terms of Service"
msgstr "" msgstr ""
#: src/Content/Nav.php:269 #: src/Content/Nav.php:268
msgid "Terms of Service of this Friendica instance" msgid "Terms of Service of this Friendica instance"
msgstr "" msgstr ""
#: src/Content/Nav.php:274 view/theme/frio/theme.php:245 #: src/Content/Nav.php:273 view/theme/frio/theme.php:244
msgid "Network" msgid "Network"
msgstr "" msgstr ""
#: src/Content/Nav.php:274 view/theme/frio/theme.php:245 #: src/Content/Nav.php:273 view/theme/frio/theme.php:244
msgid "Conversations from your friends" msgid "Conversations from your friends"
msgstr "" msgstr ""
#: src/Content/Nav.php:280 #: src/Content/Nav.php:279
msgid "Introductions" msgid "Introductions"
msgstr "" msgstr ""
#: src/Content/Nav.php:280 #: src/Content/Nav.php:279
msgid "Friend Requests" msgid "Friend Requests"
msgstr "" msgstr ""
#: src/Content/Nav.php:281 src/Module/BaseNotifications.php:149 #: src/Content/Nav.php:280 src/Module/BaseNotifications.php:149
#: src/Module/Notifications/Introductions.php:75 #: src/Module/Notifications/Introductions.php:75
msgid "Notifications" msgid "Notifications"
msgstr "" msgstr ""
#: src/Content/Nav.php:282 #: src/Content/Nav.php:281
msgid "See all notifications" msgid "See all notifications"
msgstr "" msgstr ""
#: src/Content/Nav.php:283 #: src/Content/Nav.php:282
msgid "Mark all system notifications as seen" msgid "Mark all system notifications as seen"
msgstr "" msgstr ""
#: src/Content/Nav.php:286 view/theme/frio/theme.php:247 #: src/Content/Nav.php:285 view/theme/frio/theme.php:246
msgid "Private mail" msgid "Private mail"
msgstr "" msgstr ""
#: src/Content/Nav.php:287 #: src/Content/Nav.php:286
msgid "Inbox" msgid "Inbox"
msgstr "" msgstr ""
#: src/Content/Nav.php:288 #: src/Content/Nav.php:287
msgid "Outbox" msgid "Outbox"
msgstr "" msgstr ""
#: src/Content/Nav.php:292 #: src/Content/Nav.php:291
msgid "Accounts" msgid "Accounts"
msgstr "" msgstr ""
#: src/Content/Nav.php:292 #: src/Content/Nav.php:291
msgid "Manage other pages" msgid "Manage other pages"
msgstr "" msgstr ""
#: src/Content/Nav.php:295 src/Module/Admin/Addons/Details.php:114 #: src/Content/Nav.php:294 src/Module/Admin/Addons/Details.php:114
#: src/Module/Admin/Themes/Details.php:93 src/Module/BaseSettings.php:122 #: src/Module/Admin/Themes/Details.php:93 src/Module/BaseSettings.php:122
#: src/Module/Welcome.php:52 view/theme/frio/theme.php:248 #: src/Module/Welcome.php:52 view/theme/frio/theme.php:247
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: src/Content/Nav.php:295 view/theme/frio/theme.php:248 #: src/Content/Nav.php:294 view/theme/frio/theme.php:247
msgid "Account settings" msgid "Account settings"
msgstr "" msgstr ""
#: src/Content/Nav.php:297 view/theme/frio/theme.php:249 #: src/Content/Nav.php:296 view/theme/frio/theme.php:248
msgid "Manage/edit friends and contacts" msgid "Manage/edit friends and contacts"
msgstr "" msgstr ""
#: src/Content/Nav.php:302 src/Module/BaseAdmin.php:127 #: src/Content/Nav.php:301 src/Module/BaseAdmin.php:126
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/Content/Nav.php:302 #: src/Content/Nav.php:301
msgid "Site setup and configuration" msgid "Site setup and configuration"
msgstr "" msgstr ""
#: src/Content/Nav.php:305 #: src/Content/Nav.php:304
msgid "Navigation" msgid "Navigation"
msgstr "" msgstr ""
#: src/Content/Nav.php:305 #: src/Content/Nav.php:304
msgid "Site map" msgid "Site map"
msgstr "" msgstr ""
@ -2639,8 +2639,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:1263 src/Model/Item.php:3462 #: src/Content/Text/BBCode.php:1263 src/Model/Item.php:3461
#: src/Model/Item.php:3468 src/Model/Item.php:3469 #: src/Model/Item.php:3467 src/Model/Item.php:3468
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -2672,150 +2672,150 @@ msgstr ""
msgid "The end" msgid "The end"
msgstr "" msgstr ""
#: src/Content/Text/HTML.php:882 src/Content/Widget/VCard.php:110 #: src/Content/Text/HTML.php:882 src/Content/Widget/VCard.php:109
#: src/Model/Profile.php:460 #: src/Model/Profile.php:459
msgid "Follow" msgid "Follow"
msgstr "" msgstr ""
#: src/Content/Widget.php:52 #: src/Content/Widget.php:51
msgid "Add New Contact" msgid "Add New Contact"
msgstr "" msgstr ""
#: src/Content/Widget.php:53 #: src/Content/Widget.php:52
msgid "Enter address or web location" msgid "Enter address or web location"
msgstr "" msgstr ""
#: src/Content/Widget.php:54 #: src/Content/Widget.php:53
msgid "Example: bob@example.com, http://example.com/barbara" msgid "Example: bob@example.com, http://example.com/barbara"
msgstr "" msgstr ""
#: src/Content/Widget.php:56 #: src/Content/Widget.php:55
msgid "Connect" msgid "Connect"
msgstr "" msgstr ""
#: src/Content/Widget.php:73 #: src/Content/Widget.php:72
#, php-format #, php-format
msgid "%d invitation available" msgid "%d invitation available"
msgid_plural "%d invitations available" msgid_plural "%d invitations available"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Content/Widget.php:79 view/theme/vier/theme.php:197 #: src/Content/Widget.php:78 view/theme/vier/theme.php:196
msgid "Find People" msgid "Find People"
msgstr "" msgstr ""
#: src/Content/Widget.php:80 view/theme/vier/theme.php:198 #: src/Content/Widget.php:79 view/theme/vier/theme.php:197
msgid "Enter name or interest" msgid "Enter name or interest"
msgstr "" msgstr ""
#: src/Content/Widget.php:82 view/theme/vier/theme.php:200 #: src/Content/Widget.php:81 view/theme/vier/theme.php:199
msgid "Examples: Robert Morgenstein, Fishing" msgid "Examples: Robert Morgenstein, Fishing"
msgstr "" msgstr ""
#: src/Content/Widget.php:83 src/Module/Contact.php:395 #: src/Content/Widget.php:82 src/Module/Contact.php:394
#: src/Module/Directory.php:97 view/theme/vier/theme.php:201 #: src/Module/Directory.php:96 view/theme/vier/theme.php:200
msgid "Find" msgid "Find"
msgstr "" msgstr ""
#: src/Content/Widget.php:85 view/theme/vier/theme.php:203 #: src/Content/Widget.php:84 view/theme/vier/theme.php:202
msgid "Similar Interests" msgid "Similar Interests"
msgstr "" msgstr ""
#: src/Content/Widget.php:86 view/theme/vier/theme.php:204 #: src/Content/Widget.php:85 view/theme/vier/theme.php:203
msgid "Random Profile" msgid "Random Profile"
msgstr "" msgstr ""
#: src/Content/Widget.php:87 view/theme/vier/theme.php:205 #: src/Content/Widget.php:86 view/theme/vier/theme.php:204
msgid "Invite Friends" msgid "Invite Friends"
msgstr "" msgstr ""
#: src/Content/Widget.php:88 src/Module/Directory.php:89 #: src/Content/Widget.php:87 src/Module/Directory.php:88
#: view/theme/vier/theme.php:206 #: view/theme/vier/theme.php:205
msgid "Global Directory" msgid "Global Directory"
msgstr "" msgstr ""
#: src/Content/Widget.php:90 view/theme/vier/theme.php:208 #: src/Content/Widget.php:89 view/theme/vier/theme.php:207
msgid "Local Directory" msgid "Local Directory"
msgstr "" msgstr ""
#: src/Content/Widget.php:212 src/Model/Group.php:588 #: src/Content/Widget.php:211 src/Model/Group.php:587
#: src/Module/Contact.php:358 src/Module/Welcome.php:76 #: src/Module/Contact.php:357 src/Module/Welcome.php:76
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: src/Content/Widget.php:214 #: src/Content/Widget.php:213
msgid "Everyone" msgid "Everyone"
msgstr "" msgstr ""
#: src/Content/Widget.php:243 #: src/Content/Widget.php:242
msgid "Relationships" msgid "Relationships"
msgstr "" msgstr ""
#: src/Content/Widget.php:245 src/Module/Contact.php:310 #: src/Content/Widget.php:244 src/Module/Contact.php:309
#: src/Module/Group.php:292 #: src/Module/Group.php:291
msgid "All Contacts" msgid "All Contacts"
msgstr "" msgstr ""
#: src/Content/Widget.php:284 #: src/Content/Widget.php:283
msgid "Protocols" msgid "Protocols"
msgstr "" msgstr ""
#: src/Content/Widget.php:286 #: src/Content/Widget.php:285
msgid "All Protocols" msgid "All Protocols"
msgstr "" msgstr ""
#: src/Content/Widget.php:314 #: src/Content/Widget.php:313
msgid "Saved Folders" msgid "Saved Folders"
msgstr "" msgstr ""
#: src/Content/Widget.php:316 src/Content/Widget.php:347 #: src/Content/Widget.php:315 src/Content/Widget.php:346
msgid "Everything" msgid "Everything"
msgstr "" msgstr ""
#: src/Content/Widget.php:345 #: src/Content/Widget.php:344
msgid "Categories" msgid "Categories"
msgstr "" msgstr ""
#: src/Content/Widget.php:402 #: src/Content/Widget.php:401
#, php-format #, php-format
msgid "%d contact in common" msgid "%d contact in common"
msgid_plural "%d contacts in common" msgid_plural "%d contacts in common"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Content/Widget.php:498 #: src/Content/Widget.php:497
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: src/Content/Widget.php:522 #: src/Content/Widget.php:521
msgid "Persons" msgid "Persons"
msgstr "" msgstr ""
#: src/Content/Widget.php:523 #: src/Content/Widget.php:522
msgid "Organisations" msgid "Organisations"
msgstr "" msgstr ""
#: src/Content/Widget.php:524 src/Model/Contact.php:1605 #: src/Content/Widget.php:523 src/Model/Contact.php:1630
msgid "News" msgid "News"
msgstr "" msgstr ""
#: src/Content/Widget.php:528 src/Module/Settings/Account.php:457 #: src/Content/Widget.php:527 src/Module/Settings/Account.php:456
msgid "Account Types" msgid "Account Types"
msgstr "" msgstr ""
#: src/Content/Widget.php:529 src/Module/Admin/BaseUsers.php:52 #: src/Content/Widget.php:528 src/Module/Admin/BaseUsers.php:51
msgid "All" msgid "All"
msgstr "" msgstr ""
#: src/Content/Widget/CalendarExport.php:54 #: src/Content/Widget/CalendarExport.php:56
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: src/Content/Widget/CalendarExport.php:55 #: src/Content/Widget/CalendarExport.php:57
msgid "Export calendar as ical" msgid "Export calendar as ical"
msgstr "" msgstr ""
#: src/Content/Widget/CalendarExport.php:56 #: src/Content/Widget/CalendarExport.php:58
msgid "Export calendar as csv" msgid "Export calendar as csv"
msgstr "" msgstr ""
@ -2823,61 +2823,61 @@ msgstr ""
msgid "No contacts" msgid "No contacts"
msgstr "" msgstr ""
#: src/Content/Widget/ContactBlock.php:108 #: src/Content/Widget/ContactBlock.php:110
#, php-format #, php-format
msgid "%d Contact" msgid "%d Contact"
msgid_plural "%d Contacts" msgid_plural "%d Contacts"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Content/Widget/ContactBlock.php:125 #: src/Content/Widget/ContactBlock.php:127
msgid "View Contacts" msgid "View Contacts"
msgstr "" msgstr ""
#: src/Content/Widget/SavedSearches.php:48 #: src/Content/Widget/SavedSearches.php:47
msgid "Remove term" msgid "Remove term"
msgstr "" msgstr ""
#: src/Content/Widget/SavedSearches.php:61 #: src/Content/Widget/SavedSearches.php:60
msgid "Saved Searches" msgid "Saved Searches"
msgstr "" msgstr ""
#: src/Content/Widget/TrendingTags.php:51 #: src/Content/Widget/TrendingTags.php:52
#, php-format #, php-format
msgid "Trending Tags (last %d hour)" msgid "Trending Tags (last %d hour)"
msgid_plural "Trending Tags (last %d hours)" msgid_plural "Trending Tags (last %d hours)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Content/Widget/TrendingTags.php:52 #: src/Content/Widget/TrendingTags.php:53
msgid "More Trending Tags" msgid "More Trending Tags"
msgstr "" msgstr ""
#: src/Content/Widget/VCard.php:103 src/Model/Profile.php:379 #: src/Content/Widget/VCard.php:102 src/Model/Profile.php:378
#: src/Module/Contact/Profile.php:373 src/Module/Profile/Profile.php:176 #: src/Module/Contact/Profile.php:372 src/Module/Profile/Profile.php:175
msgid "XMPP:" msgid "XMPP:"
msgstr "" msgstr ""
#: src/Content/Widget/VCard.php:104 src/Model/Profile.php:380 #: src/Content/Widget/VCard.php:103 src/Model/Profile.php:379
#: src/Module/Contact/Profile.php:375 src/Module/Profile/Profile.php:180 #: src/Module/Contact/Profile.php:374 src/Module/Profile/Profile.php:179
msgid "Matrix:" msgid "Matrix:"
msgstr "" msgstr ""
#: src/Content/Widget/VCard.php:108 src/Model/Profile.php:472 #: src/Content/Widget/VCard.php:107 src/Model/Profile.php:471
#: src/Module/Notifications/Introductions.php:201 #: src/Module/Notifications/Introductions.php:201
msgid "Network:" msgid "Network:"
msgstr "" msgstr ""
#: src/Content/Widget/VCard.php:112 src/Model/Profile.php:462 #: src/Content/Widget/VCard.php:111 src/Model/Profile.php:461
msgid "Unfollow" msgid "Unfollow"
msgstr "" msgstr ""
#: src/Core/ACL.php:165 src/Module/Profile/Profile.php:242 #: src/Core/ACL.php:165 src/Module/Profile/Profile.php:241
msgid "Yourself" msgid "Yourself"
msgstr "" msgstr ""
#: src/Core/ACL.php:201 src/Module/PermissionTooltip.php:129 #: src/Core/ACL.php:201 src/Module/PermissionTooltip.php:128
#: src/Module/PermissionTooltip.php:151 #: src/Module/PermissionTooltip.php:150
msgid "Mutuals" msgid "Mutuals"
msgstr "" msgstr ""
@ -2885,8 +2885,8 @@ msgstr ""
msgid "Post to Email" msgid "Post to Email"
msgstr "" msgstr ""
#: src/Core/ACL.php:320 src/Module/PermissionTooltip.php:86 #: src/Core/ACL.php:320 src/Module/PermissionTooltip.php:85
#: src/Module/PermissionTooltip.php:198 #: src/Module/PermissionTooltip.php:197
msgid "Public" msgid "Public"
msgstr "" msgstr ""
@ -2896,7 +2896,7 @@ msgid ""
"community pages and by anyone with its link." "community pages and by anyone with its link."
msgstr "" msgstr ""
#: src/Core/ACL.php:322 src/Module/PermissionTooltip.php:94 #: src/Core/ACL.php:322 src/Module/PermissionTooltip.php:93
msgid "Limited/Private" msgid "Limited/Private"
msgstr "" msgstr ""
@ -3237,142 +3237,142 @@ msgstr ""
msgid "Could not connect to database." msgid "Could not connect to database."
msgstr "" msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:428
#: src/Module/Settings/Display.php:183
msgid "Monday"
msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:429 #: src/Core/L10n.php:403 src/Model/Event.php:429
#: src/Module/Settings/Display.php:184 #: src/Module/Settings/Display.php:184
msgid "Monday" msgid "Tuesday"
msgstr "" msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:430 #: src/Core/L10n.php:403 src/Model/Event.php:430
#: src/Module/Settings/Display.php:185 #: src/Module/Settings/Display.php:185
msgid "Tuesday" msgid "Wednesday"
msgstr "" msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:431 #: src/Core/L10n.php:403 src/Model/Event.php:431
#: src/Module/Settings/Display.php:186 #: src/Module/Settings/Display.php:186
msgid "Wednesday" msgid "Thursday"
msgstr "" msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:432 #: src/Core/L10n.php:403 src/Model/Event.php:432
#: src/Module/Settings/Display.php:187 #: src/Module/Settings/Display.php:187
msgid "Thursday" msgid "Friday"
msgstr "" msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:433 #: src/Core/L10n.php:403 src/Model/Event.php:433
#: src/Module/Settings/Display.php:188 #: src/Module/Settings/Display.php:188
msgid "Friday"
msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:434
#: src/Module/Settings/Display.php:189
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr ""
#: src/Core/L10n.php:403 src/Model/Event.php:428 #: src/Core/L10n.php:403 src/Model/Event.php:427
#: src/Module/Settings/Display.php:183 #: src/Module/Settings/Display.php:182
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:449 #: src/Core/L10n.php:407 src/Model/Event.php:448
msgid "January" msgid "January"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:450 #: src/Core/L10n.php:407 src/Model/Event.php:449
msgid "February" msgid "February"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:451 #: src/Core/L10n.php:407 src/Model/Event.php:450
msgid "March" msgid "March"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:452 #: src/Core/L10n.php:407 src/Model/Event.php:451
msgid "April" msgid "April"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Core/L10n.php:426 src/Model/Event.php:440 #: src/Core/L10n.php:407 src/Core/L10n.php:426 src/Model/Event.php:439
msgid "May" msgid "May"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:453 #: src/Core/L10n.php:407 src/Model/Event.php:452
msgid "June" msgid "June"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:454 #: src/Core/L10n.php:407 src/Model/Event.php:453
msgid "July" msgid "July"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:455 #: src/Core/L10n.php:407 src/Model/Event.php:454
msgid "August" msgid "August"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:456 #: src/Core/L10n.php:407 src/Model/Event.php:455
msgid "September" msgid "September"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:457 #: src/Core/L10n.php:407 src/Model/Event.php:456
msgid "October" msgid "October"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:458 #: src/Core/L10n.php:407 src/Model/Event.php:457
msgid "November" msgid "November"
msgstr "" msgstr ""
#: src/Core/L10n.php:407 src/Model/Event.php:459 #: src/Core/L10n.php:407 src/Model/Event.php:458
msgid "December" msgid "December"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:421 #: src/Core/L10n.php:422 src/Model/Event.php:420
msgid "Mon" msgid "Mon"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:422 #: src/Core/L10n.php:422 src/Model/Event.php:421
msgid "Tue" msgid "Tue"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:423 #: src/Core/L10n.php:422 src/Model/Event.php:422
msgid "Wed" msgid "Wed"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:424 #: src/Core/L10n.php:422 src/Model/Event.php:423
msgid "Thu" msgid "Thu"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:425 #: src/Core/L10n.php:422 src/Model/Event.php:424
msgid "Fri" msgid "Fri"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:426 #: src/Core/L10n.php:422 src/Model/Event.php:425
msgid "Sat" msgid "Sat"
msgstr "" msgstr ""
#: src/Core/L10n.php:422 src/Model/Event.php:420 #: src/Core/L10n.php:422 src/Model/Event.php:419
msgid "Sun" msgid "Sun"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:436 #: src/Core/L10n.php:426 src/Model/Event.php:435
msgid "Jan" msgid "Jan"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:437 #: src/Core/L10n.php:426 src/Model/Event.php:436
msgid "Feb" msgid "Feb"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:438 #: src/Core/L10n.php:426 src/Model/Event.php:437
msgid "Mar" msgid "Mar"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:439 #: src/Core/L10n.php:426 src/Model/Event.php:438
msgid "Apr" msgid "Apr"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:441 #: src/Core/L10n.php:426 src/Model/Event.php:440
msgid "Jun" msgid "Jun"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:442 #: src/Core/L10n.php:426 src/Model/Event.php:441
msgid "Jul" msgid "Jul"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:443 #: src/Core/L10n.php:426 src/Model/Event.php:442
msgid "Aug" msgid "Aug"
msgstr "" msgstr ""
@ -3380,15 +3380,15 @@ msgstr ""
msgid "Sep" msgid "Sep"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:445 #: src/Core/L10n.php:426 src/Model/Event.php:444
msgid "Oct" msgid "Oct"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:446 #: src/Core/L10n.php:426 src/Model/Event.php:445
msgid "Nov" msgid "Nov"
msgstr "" msgstr ""
#: src/Core/L10n.php:426 src/Model/Event.php:447 #: src/Core/L10n.php:426 src/Model/Event.php:446
msgid "Dec" msgid "Dec"
msgstr "" msgstr ""
@ -3588,404 +3588,404 @@ msgstr ""
msgid "Legacy module file not found: %s" msgid "Legacy module file not found: %s"
msgstr "" msgstr ""
#: src/Model/Contact.php:1170 src/Model/Contact.php:1181 #: src/Model/Contact.php:1195 src/Model/Contact.php:1206
msgid "UnFollow" msgid "UnFollow"
msgstr "" msgstr ""
#: src/Model/Contact.php:1187 src/Module/Admin/Users/Pending.php:107 #: src/Model/Contact.php:1212 src/Module/Admin/Users/Pending.php:107
#: src/Module/Notifications/Introductions.php:132 #: src/Module/Notifications/Introductions.php:132
#: src/Module/Notifications/Introductions.php:204 #: src/Module/Notifications/Introductions.php:204
msgid "Approve" msgid "Approve"
msgstr "" msgstr ""
#: src/Model/Contact.php:1601 #: src/Model/Contact.php:1626
msgid "Organisation" msgid "Organisation"
msgstr "" msgstr ""
#: src/Model/Contact.php:1609 #: src/Model/Contact.php:1634
msgid "Forum" msgid "Forum"
msgstr "" msgstr ""
#: src/Model/Contact.php:2795 #: src/Model/Contact.php:2820
msgid "Disallowed profile URL." msgid "Disallowed profile URL."
msgstr "" msgstr ""
#: src/Model/Contact.php:2800 src/Module/Friendica.php:82 #: src/Model/Contact.php:2825 src/Module/Friendica.php:82
msgid "Blocked domain" msgid "Blocked domain"
msgstr "" msgstr ""
#: src/Model/Contact.php:2805 #: src/Model/Contact.php:2830
msgid "Connect URL missing." msgid "Connect URL missing."
msgstr "" msgstr ""
#: src/Model/Contact.php:2814 #: src/Model/Contact.php:2839
msgid "" msgid ""
"The contact could not be added. Please check the relevant network " "The contact could not be added. Please check the relevant network "
"credentials in your Settings -> Social Networks page." "credentials in your Settings -> Social Networks page."
msgstr "" msgstr ""
#: src/Model/Contact.php:2856 #: src/Model/Contact.php:2881
msgid "The profile address specified does not provide adequate information." msgid "The profile address specified does not provide adequate information."
msgstr "" msgstr ""
#: src/Model/Contact.php:2858 #: src/Model/Contact.php:2883
msgid "No compatible communication protocols or feeds were discovered." msgid "No compatible communication protocols or feeds were discovered."
msgstr "" msgstr ""
#: src/Model/Contact.php:2861 #: src/Model/Contact.php:2886
msgid "An author or name was not found." msgid "An author or name was not found."
msgstr "" msgstr ""
#: src/Model/Contact.php:2864 #: src/Model/Contact.php:2889
msgid "No browser URL could be matched to this address." msgid "No browser URL could be matched to this address."
msgstr "" msgstr ""
#: src/Model/Contact.php:2867 #: src/Model/Contact.php:2892
msgid "" msgid ""
"Unable to match @-style Identity Address with a known protocol or email " "Unable to match @-style Identity Address with a known protocol or email "
"contact." "contact."
msgstr "" msgstr ""
#: src/Model/Contact.php:2868 #: src/Model/Contact.php:2893
msgid "Use mailto: in front of address to force email check." msgid "Use mailto: in front of address to force email check."
msgstr "" msgstr ""
#: src/Model/Contact.php:2874 #: src/Model/Contact.php:2899
msgid "" msgid ""
"The profile address specified belongs to a network which has been disabled " "The profile address specified belongs to a network which has been disabled "
"on this site." "on this site."
msgstr "" msgstr ""
#: src/Model/Contact.php:2879 #: src/Model/Contact.php:2904
msgid "" msgid ""
"Limited profile. This person will be unable to receive direct/personal " "Limited profile. This person will be unable to receive direct/personal "
"notifications from you." "notifications from you."
msgstr "" msgstr ""
#: src/Model/Contact.php:2938 #: src/Model/Contact.php:2963
msgid "Unable to retrieve contact information." msgid "Unable to retrieve contact information."
msgstr "" msgstr ""
#: src/Model/Event.php:53 #: src/Model/Event.php:52
msgid "l F d, Y \\@ g:i A \\G\\M\\TP (e)" msgid "l F d, Y \\@ g:i A \\G\\M\\TP (e)"
msgstr "" msgstr ""
#: src/Model/Event.php:74 src/Model/Event.php:91 src/Model/Event.php:468 #: src/Model/Event.php:73 src/Model/Event.php:90 src/Model/Event.php:467
#: src/Model/Event.php:902 #: src/Model/Event.php:901
msgid "Starts:" msgid "Starts:"
msgstr "" msgstr ""
#: src/Model/Event.php:77 src/Model/Event.php:97 src/Model/Event.php:469 #: src/Model/Event.php:76 src/Model/Event.php:96 src/Model/Event.php:468
#: src/Model/Event.php:906 #: src/Model/Event.php:905
msgid "Finishes:" msgid "Finishes:"
msgstr "" msgstr ""
#: src/Model/Event.php:418 #: src/Model/Event.php:417
msgid "all-day" msgid "all-day"
msgstr "" msgstr ""
#: src/Model/Event.php:444 #: src/Model/Event.php:443
msgid "Sept" msgid "Sept"
msgstr "" msgstr ""
#: src/Model/Event.php:466 #: src/Model/Event.php:465
msgid "No events to display" msgid "No events to display"
msgstr "" msgstr ""
#: src/Model/Event.php:582 #: src/Model/Event.php:581
msgid "l, F j" msgid "l, F j"
msgstr "" msgstr ""
#: src/Model/Event.php:613 #: src/Model/Event.php:612
msgid "Edit event" msgid "Edit event"
msgstr "" msgstr ""
#: src/Model/Event.php:614 #: src/Model/Event.php:613
msgid "Duplicate event" msgid "Duplicate event"
msgstr "" msgstr ""
#: src/Model/Event.php:615 #: src/Model/Event.php:614
msgid "Delete event" msgid "Delete event"
msgstr "" msgstr ""
#: src/Model/Event.php:858 src/Module/Debug/Localtime.php:38 #: src/Model/Event.php:857 src/Module/Debug/Localtime.php:38
msgid "l F d, Y \\@ g:i A" msgid "l F d, Y \\@ g:i A"
msgstr "" msgstr ""
#: src/Model/Event.php:859 #: src/Model/Event.php:858
msgid "D g:i A" msgid "D g:i A"
msgstr "" msgstr ""
#: src/Model/Event.php:860 #: src/Model/Event.php:859
msgid "g:i A" msgid "g:i A"
msgstr "" msgstr ""
#: src/Model/Event.php:921 src/Model/Event.php:923 #: src/Model/Event.php:920 src/Model/Event.php:922
msgid "Show map" msgid "Show map"
msgstr "" msgstr ""
#: src/Model/Event.php:922 #: src/Model/Event.php:921
msgid "Hide map" msgid "Hide map"
msgstr "" msgstr ""
#: src/Model/Event.php:1015 #: src/Model/Event.php:1014
#, php-format #, php-format
msgid "%s's birthday" msgid "%s's birthday"
msgstr "" msgstr ""
#: src/Model/Event.php:1016 #: src/Model/Event.php:1015
#, php-format #, php-format
msgid "Happy Birthday %s" msgid "Happy Birthday %s"
msgstr "" msgstr ""
#: src/Model/Group.php:106 #: src/Model/Group.php:105
msgid "" msgid ""
"A deleted group with this name was revived. Existing item permissions " "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 " "<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." "not what you intended, please create another group with a different name."
msgstr "" msgstr ""
#: src/Model/Group.php:504 #: src/Model/Group.php:503
msgid "Default privacy group for new contacts" msgid "Default privacy group for new contacts"
msgstr "" msgstr ""
#: src/Model/Group.php:536 #: src/Model/Group.php:535
msgid "Everybody" msgid "Everybody"
msgstr "" msgstr ""
#: src/Model/Group.php:555 #: src/Model/Group.php:554
msgid "edit" msgid "edit"
msgstr "" msgstr ""
#: src/Model/Group.php:587 #: src/Model/Group.php:586
msgid "add" msgid "add"
msgstr "" msgstr ""
#: src/Model/Group.php:592 #: src/Model/Group.php:591
msgid "Edit group" msgid "Edit group"
msgstr "" msgstr ""
#: src/Model/Group.php:593 src/Module/Group.php:193 #: src/Model/Group.php:592 src/Module/Group.php:192
msgid "Contacts not in any group" msgid "Contacts not in any group"
msgstr "" msgstr ""
#: src/Model/Group.php:595 #: src/Model/Group.php:594
msgid "Create a new group" msgid "Create a new group"
msgstr "" msgstr ""
#: src/Model/Group.php:596 src/Module/Group.php:178 src/Module/Group.php:201 #: src/Model/Group.php:595 src/Module/Group.php:177 src/Module/Group.php:200
#: src/Module/Group.php:276 #: src/Module/Group.php:275
msgid "Group Name: " msgid "Group Name: "
msgstr "" msgstr ""
#: src/Model/Group.php:597 #: src/Model/Group.php:596
msgid "Edit groups" msgid "Edit groups"
msgstr "" msgstr ""
#: src/Model/Item.php:1971 #: src/Model/Item.php:1970
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "" msgstr ""
#: src/Model/Item.php:2863 #: src/Model/Item.php:2862
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: src/Model/Item.php:2865 #: src/Model/Item.php:2864
msgid "comment" msgid "comment"
msgstr "" msgstr ""
#: src/Model/Item.php:2868 #: src/Model/Item.php:2867
msgid "post" msgid "post"
msgstr "" msgstr ""
#: src/Model/Item.php:3011 #: src/Model/Item.php:3010
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3374 #: src/Model/Item.php:3373
msgid "bytes" msgid "bytes"
msgstr "" msgstr ""
#: src/Model/Item.php:3405 #: src/Model/Item.php:3404
#, php-format #, php-format
msgid "%2$s (%3$d%%, %1$d vote)" msgid "%2$s (%3$d%%, %1$d vote)"
msgid_plural "%2$s (%3$d%%, %1$d votes)" msgid_plural "%2$s (%3$d%%, %1$d votes)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3407 #: src/Model/Item.php:3406
#, php-format #, php-format
msgid "%2$s (%1$d vote)" msgid "%2$s (%1$d vote)"
msgid_plural "%2$s (%1$d votes)" msgid_plural "%2$s (%1$d votes)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3412 #: src/Model/Item.php:3411
#, php-format #, php-format
msgid "%d voter. Poll end: %s" msgid "%d voter. Poll end: %s"
msgid_plural "%d voters. Poll end: %s" msgid_plural "%d voters. Poll end: %s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3414 #: src/Model/Item.php:3413
#, php-format #, php-format
msgid "%d voter." msgid "%d voter."
msgid_plural "%d voters." msgid_plural "%d voters."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Model/Item.php:3416 #: src/Model/Item.php:3415
#, php-format #, php-format
msgid "Poll end: %s" msgid "Poll end: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3450 src/Model/Item.php:3451 #: src/Model/Item.php:3449 src/Model/Item.php:3450
msgid "View on separate page" msgid "View on separate page"
msgstr "" msgstr ""
#: src/Model/Mail.php:138 src/Model/Mail.php:266 #: src/Model/Mail.php:137 src/Model/Mail.php:265
msgid "[no subject]" msgid "[no subject]"
msgstr "" msgstr ""
#: src/Model/Profile.php:362 src/Module/Profile/Profile.php:256 #: src/Model/Profile.php:361 src/Module/Profile/Profile.php:255
#: src/Module/Profile/Profile.php:258 #: src/Module/Profile/Profile.php:257
msgid "Edit profile" msgid "Edit profile"
msgstr "" msgstr ""
#: src/Model/Profile.php:364 #: src/Model/Profile.php:363
msgid "Change profile photo" msgid "Change profile photo"
msgstr "" msgstr ""
#: src/Model/Profile.php:377 src/Module/Directory.php:153 #: src/Model/Profile.php:376 src/Module/Directory.php:152
#: src/Module/Profile/Profile.php:184 #: src/Module/Profile/Profile.php:183
msgid "Homepage:" msgid "Homepage:"
msgstr "" msgstr ""
#: src/Model/Profile.php:378 src/Module/Contact/Profile.php:377 #: src/Model/Profile.php:377 src/Module/Contact/Profile.php:376
#: src/Module/Notifications/Introductions.php:189 #: src/Module/Notifications/Introductions.php:189
msgid "About:" msgid "About:"
msgstr "" msgstr ""
#: src/Model/Profile.php:464 #: src/Model/Profile.php:463
msgid "Atom feed" msgid "Atom feed"
msgstr "" msgstr ""
#: src/Model/Profile.php:507 #: src/Model/Profile.php:506
msgid "F d" msgid "F d"
msgstr "" msgstr ""
#: src/Model/Profile.php:571 src/Model/Profile.php:660 #: src/Model/Profile.php:570 src/Model/Profile.php:659
msgid "[today]" msgid "[today]"
msgstr "" msgstr ""
#: src/Model/Profile.php:580 #: src/Model/Profile.php:579
msgid "Birthday Reminders" msgid "Birthday Reminders"
msgstr "" msgstr ""
#: src/Model/Profile.php:581 #: src/Model/Profile.php:580
msgid "Birthdays this week:" msgid "Birthdays this week:"
msgstr "" msgstr ""
#: src/Model/Profile.php:609 #: src/Model/Profile.php:608
msgid "g A l F d" msgid "g A l F d"
msgstr "" msgstr ""
#: src/Model/Profile.php:647 #: src/Model/Profile.php:646
msgid "[No description]" msgid "[No description]"
msgstr "" msgstr ""
#: src/Model/Profile.php:673 #: src/Model/Profile.php:672
msgid "Event Reminders" msgid "Event Reminders"
msgstr "" msgstr ""
#: src/Model/Profile.php:674 #: src/Model/Profile.php:673
msgid "Upcoming events the next 7 days:" msgid "Upcoming events the next 7 days:"
msgstr "" msgstr ""
#: src/Model/Profile.php:868 #: src/Model/Profile.php:867
#, php-format #, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s" msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "" msgstr ""
#: src/Model/Profile.php:1008 #: src/Model/Profile.php:1007
msgid "Hometown:" msgid "Hometown:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1009 #: src/Model/Profile.php:1008
msgid "Marital Status:" msgid "Marital Status:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1010 #: src/Model/Profile.php:1009
msgid "With:" msgid "With:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1011 #: src/Model/Profile.php:1010
msgid "Since:" msgid "Since:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1012 #: src/Model/Profile.php:1011
msgid "Sexual Preference:" msgid "Sexual Preference:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1013 #: src/Model/Profile.php:1012
msgid "Political Views:" msgid "Political Views:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1014 #: src/Model/Profile.php:1013
msgid "Religious Views:" msgid "Religious Views:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1015 #: src/Model/Profile.php:1014
msgid "Likes:" msgid "Likes:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1016 #: src/Model/Profile.php:1015
msgid "Dislikes:" msgid "Dislikes:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1017 #: src/Model/Profile.php:1016
msgid "Title/Description:" msgid "Title/Description:"
msgstr "" msgstr ""
#: src/Model/Profile.php:1018 src/Module/Admin/Summary.php:235 #: src/Model/Profile.php:1017 src/Module/Admin/Summary.php:235
msgid "Summary" msgid "Summary"
msgstr "" msgstr ""
#: src/Model/Profile.php:1019 #: src/Model/Profile.php:1018
msgid "Musical interests" msgid "Musical interests"
msgstr "" msgstr ""
#: src/Model/Profile.php:1020 #: src/Model/Profile.php:1019
msgid "Books, literature" msgid "Books, literature"
msgstr "" msgstr ""
#: src/Model/Profile.php:1021 #: src/Model/Profile.php:1020
msgid "Television" msgid "Television"
msgstr "" msgstr ""
#: src/Model/Profile.php:1022 #: src/Model/Profile.php:1021
msgid "Film/dance/culture/entertainment" msgid "Film/dance/culture/entertainment"
msgstr "" msgstr ""
#: src/Model/Profile.php:1023 #: src/Model/Profile.php:1022
msgid "Hobbies/Interests" msgid "Hobbies/Interests"
msgstr "" msgstr ""
#: src/Model/Profile.php:1024 #: src/Model/Profile.php:1023
msgid "Love/romance" msgid "Love/romance"
msgstr "" msgstr ""
#: src/Model/Profile.php:1025 #: src/Model/Profile.php:1024
msgid "Work/employment" msgid "Work/employment"
msgstr "" msgstr ""
#: src/Model/Profile.php:1026 #: src/Model/Profile.php:1025
msgid "School/education" msgid "School/education"
msgstr "" msgstr ""
#: src/Model/Profile.php:1027 #: src/Model/Profile.php:1026
msgid "Contact information and Social Networks" msgid "Contact information and Social Networks"
msgstr "" msgstr ""
@ -4040,13 +4040,13 @@ msgstr ""
msgid "Invalid OpenID url" msgid "Invalid OpenID url"
msgstr "" msgstr ""
#: src/Model/User.php:997 src/Security/Authentication.php:240 #: src/Model/User.php:997 src/Security/Authentication.php:239
msgid "" msgid ""
"We encountered a problem while logging in with the OpenID you provided. " "We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID." "Please check the correct spelling of the ID."
msgstr "" msgstr ""
#: src/Model/User.php:997 src/Security/Authentication.php:240 #: src/Model/User.php:997 src/Security/Authentication.php:239
msgid "The error message was:" msgid "The error message was:"
msgstr "" msgstr ""
@ -4291,21 +4291,21 @@ msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:94 #: src/Module/Admin/Blocklist/Contact.php:94
#: src/Module/Admin/Blocklist/Server/Add.php:121 #: src/Module/Admin/Blocklist/Server/Add.php:121
#: src/Module/Admin/Blocklist/Server/Import.php:117 #: src/Module/Admin/Blocklist/Server/Import.php:117
#: src/Module/Admin/Blocklist/Server/Index.php:93 #: src/Module/Admin/Blocklist/Server/Index.php:91
#: src/Module/Admin/Federation.php:202 src/Module/Admin/Item/Delete.php:64 #: src/Module/Admin/Federation.php:202 src/Module/Admin/Item/Delete.php:64
#: src/Module/Admin/Logs/Settings.php:79 src/Module/Admin/Logs/View.php:84 #: src/Module/Admin/Logs/Settings.php:79 src/Module/Admin/Logs/View.php:84
#: src/Module/Admin/Queue.php:72 src/Module/Admin/Site.php:429 #: src/Module/Admin/Queue.php:72 src/Module/Admin/Site.php:429
#: src/Module/Admin/Storage.php:138 src/Module/Admin/Summary.php:234 #: src/Module/Admin/Storage.php:138 src/Module/Admin/Summary.php:234
#: src/Module/Admin/Themes/Details.php:90 src/Module/Admin/Themes/Index.php:111 #: src/Module/Admin/Themes/Details.php:90 src/Module/Admin/Themes/Index.php:111
#: src/Module/Admin/Tos.php:75 src/Module/Admin/Users/Active.php:137 #: src/Module/Admin/Tos.php:75 src/Module/Admin/Users/Active.php:136
#: src/Module/Admin/Users/Blocked.php:138 src/Module/Admin/Users/Create.php:61 #: src/Module/Admin/Users/Blocked.php:137 src/Module/Admin/Users/Create.php:61
#: src/Module/Admin/Users/Deleted.php:85 src/Module/Admin/Users/Index.php:150 #: src/Module/Admin/Users/Deleted.php:85 src/Module/Admin/Users/Index.php:149
#: src/Module/Admin/Users/Pending.php:101 #: src/Module/Admin/Users/Pending.php:101
msgid "Administration" msgid "Administration"
msgstr "" msgstr ""
#: src/Module/Admin/Addons/Details.php:112 src/Module/Admin/Addons/Index.php:68 #: src/Module/Admin/Addons/Details.php:112 src/Module/Admin/Addons/Index.php:68
#: src/Module/BaseAdmin.php:94 src/Module/BaseSettings.php:85 #: src/Module/BaseAdmin.php:93 src/Module/BaseSettings.php:85
msgid "Addons" msgid "Addons"
msgstr "" msgstr ""
@ -4345,81 +4345,81 @@ msgid ""
"the open addon registry at %2$s" "the open addon registry at %2$s"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:55 #: src/Module/Admin/BaseUsers.php:54
msgid "List of all users" msgid "List of all users"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:60 #: src/Module/Admin/BaseUsers.php:59
msgid "Active" msgid "Active"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:63 #: src/Module/Admin/BaseUsers.php:62
msgid "List of active accounts" msgid "List of active accounts"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:68 src/Module/Contact.php:318 #: src/Module/Admin/BaseUsers.php:67 src/Module/Contact.php:317
#: src/Module/Contact.php:378 #: src/Module/Contact.php:377
msgid "Pending" msgid "Pending"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:71 #: src/Module/Admin/BaseUsers.php:70
msgid "List of pending registrations" msgid "List of pending registrations"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:76 src/Module/Contact.php:326 #: src/Module/Admin/BaseUsers.php:75 src/Module/Contact.php:325
#: src/Module/Contact.php:379 #: src/Module/Contact.php:378
msgid "Blocked" msgid "Blocked"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:79 #: src/Module/Admin/BaseUsers.php:78
msgid "List of blocked users" msgid "List of blocked users"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:84 #: src/Module/Admin/BaseUsers.php:83
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:87 #: src/Module/Admin/BaseUsers.php:86
msgid "List of pending user deletions" msgid "List of pending user deletions"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:495 #: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:494
msgid "Normal Account Page" msgid "Normal Account Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:502 #: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:501
msgid "Soapbox Page" msgid "Soapbox Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:509 #: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:508
msgid "Public Forum" msgid "Public Forum"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:104 src/Module/Settings/Account.php:516 #: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:515
msgid "Automatic Friend Page" msgid "Automatic Friend Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:105 #: src/Module/Admin/BaseUsers.php:104
msgid "Private Forum" msgid "Private Forum"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:467 #: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:466
msgid "Personal Page" msgid "Personal Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:474 #: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:473
msgid "Organisation Page" msgid "Organisation Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:481 #: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:480
msgid "News Page" msgid "News Page"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:111 src/Module/Settings/Account.php:488 #: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:487
msgid "Community Forum" msgid "Community Forum"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:112 #: src/Module/Admin/BaseUsers.php:111
msgid "Relay" msgid "Relay"
msgstr "" msgstr ""
@ -4449,8 +4449,8 @@ msgid "Block Remote Contact"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:98 #: src/Module/Admin/Blocklist/Contact.php:98
#: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140 #: src/Module/Admin/Users/Active.php:138 src/Module/Admin/Users/Blocked.php:139
#: src/Module/Admin/Users/Index.php:152 src/Module/Admin/Users/Pending.php:103 #: src/Module/Admin/Users/Index.php:151 src/Module/Admin/Users/Pending.php:103
msgid "select all" msgid "select all"
msgstr "" msgstr ""
@ -4459,9 +4459,9 @@ msgid "select none"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:101 #: src/Module/Admin/Blocklist/Contact.php:101
#: src/Module/Admin/Users/Blocked.php:143 src/Module/Admin/Users/Index.php:157 #: src/Module/Admin/Users/Blocked.php:142 src/Module/Admin/Users/Index.php:156
#: src/Module/Contact.php:402 src/Module/Contact/Profile.php:350 #: src/Module/Contact.php:401 src/Module/Contact/Profile.php:349
#: src/Module/Contact/Profile.php:451 #: src/Module/Contact/Profile.php:450
msgid "Unblock" msgid "Unblock"
msgstr "" msgstr ""
@ -4532,7 +4532,7 @@ msgid "Block A New Server Domain Pattern"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Add.php:123 #: src/Module/Admin/Blocklist/Server/Add.php:123
#: src/Module/Admin/Blocklist/Server/Index.php:97 #: src/Module/Admin/Blocklist/Server/Index.php:95
msgid "" msgid ""
"<p>The server domain pattern syntax is case-insensitive shell wildcard, " "<p>The server domain pattern syntax is case-insensitive shell wildcard, "
"comprising the following special characters:</p>\n" "comprising the following special characters:</p>\n"
@ -4543,7 +4543,7 @@ msgid ""
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Add.php:128 #: src/Module/Admin/Blocklist/Server/Add.php:128
#: src/Module/Admin/Blocklist/Server/Index.php:105 #: src/Module/Admin/Blocklist/Server/Index.php:103
msgid "Check pattern" msgid "Check pattern"
msgstr "" msgstr ""
@ -4575,12 +4575,12 @@ msgid "Add pattern to the blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Add.php:136 #: src/Module/Admin/Blocklist/Server/Add.php:136
#: src/Module/Admin/Blocklist/Server/Index.php:114 #: src/Module/Admin/Blocklist/Server/Index.php:112
msgid "Server Domain Pattern" msgid "Server Domain Pattern"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Add.php:136 #: src/Module/Admin/Blocklist/Server/Add.php:136
#: src/Module/Admin/Blocklist/Server/Index.php:114 #: src/Module/Admin/Blocklist/Server/Index.php:112
msgid "" msgid ""
"The domain pattern of the new server to add to the blocklist. Do not include " "The domain pattern of the new server to add to the blocklist. Do not include "
"the protocol." "the protocol."
@ -4643,7 +4643,7 @@ msgid ""
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Import.php:120 #: src/Module/Admin/Blocklist/Server/Import.php:120
#: src/Module/Admin/Blocklist/Server/Index.php:104 #: src/Module/Admin/Blocklist/Server/Index.php:102
msgid "Upload file" msgid "Upload file"
msgstr "" msgstr ""
@ -4671,7 +4671,7 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Admin/Blocklist/Server/Import.php:128 #: src/Module/Admin/Blocklist/Server/Import.php:128
#: src/Module/Admin/Blocklist/Server/Index.php:113 #: src/Module/Admin/Blocklist/Server/Index.php:111
msgid "Server domain pattern blocklist CSV file" msgid "Server domain pattern blocklist CSV file"
msgstr "" msgstr ""
@ -4693,63 +4693,63 @@ msgstr ""
msgid "Replaces the current blocklist by the imported patterns." msgid "Replaces the current blocklist by the imported patterns."
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:84 #: src/Module/Admin/Blocklist/Server/Index.php:82
#: src/Module/Admin/Blocklist/Server/Index.php:108 #: src/Module/Admin/Blocklist/Server/Index.php:106
msgid "Blocked server domain pattern" msgid "Blocked server domain pattern"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:85 #: src/Module/Admin/Blocklist/Server/Index.php:83
#: src/Module/Admin/Blocklist/Server/Index.php:109 src/Module/Friendica.php:83 #: src/Module/Admin/Blocklist/Server/Index.php:107 src/Module/Friendica.php:83
msgid "Reason for the block" msgid "Reason for the block"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:86 #: src/Module/Admin/Blocklist/Server/Index.php:84
msgid "Delete server domain pattern" msgid "Delete server domain pattern"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:86 #: src/Module/Admin/Blocklist/Server/Index.php:84
msgid "Check to delete this entry from the blocklist" msgid "Check to delete this entry from the blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:94 #: src/Module/Admin/Blocklist/Server/Index.php:92
msgid "Server Domain Pattern Blocklist" msgid "Server Domain Pattern Blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:95 #: src/Module/Admin/Blocklist/Server/Index.php:93
msgid "" msgid ""
"This page can be used to define a blocklist of server domain patterns from " "This page can be used to define a blocklist of server domain patterns from "
"the federated network that are not allowed to interact with your node. For " "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." "each domain pattern you should also provide the reason why you block it."
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:96 #: src/Module/Admin/Blocklist/Server/Index.php:94
msgid "" msgid ""
"The list of blocked server domain patterns will be made publically available " "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 " "on the <a href=\"/friendica\">/friendica</a> page so that your users and "
"people investigating communication problems can find the reason easily." "people investigating communication problems can find the reason easily."
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:102 #: src/Module/Admin/Blocklist/Server/Index.php:100
msgid "Import server domain pattern blocklist" msgid "Import server domain pattern blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:103 #: src/Module/Admin/Blocklist/Server/Index.php:101
msgid "Add new entry to the blocklist" msgid "Add new entry to the blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:106 #: src/Module/Admin/Blocklist/Server/Index.php:104
msgid "Save changes to the blocklist" msgid "Save changes to the blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:107 #: src/Module/Admin/Blocklist/Server/Index.php:105
msgid "Current Entries in the Blocklist" msgid "Current Entries in the Blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:110 #: src/Module/Admin/Blocklist/Server/Index.php:108
msgid "Delete entry from the blocklist" msgid "Delete entry from the blocklist"
msgstr "" msgstr ""
#: src/Module/Admin/Blocklist/Server/Index.php:111 #: src/Module/Admin/Blocklist/Server/Index.php:109
msgid "Delete entry from the blocklist?" msgid "Delete entry from the blocklist?"
msgstr "" msgstr ""
@ -4885,7 +4885,7 @@ msgid ""
"only reflect the part of the network your node is aware of." "only reflect the part of the network your node is aware of."
msgstr "" msgstr ""
#: src/Module/Admin/Federation.php:203 src/Module/BaseAdmin.php:88 #: src/Module/Admin/Federation.php:203 src/Module/BaseAdmin.php:87
msgid "Federation Statistics" msgid "Federation Statistics"
msgstr "" msgstr ""
@ -4906,7 +4906,7 @@ msgstr[1] ""
msgid "Item marked for deletion." msgid "Item marked for deletion."
msgstr "" msgstr ""
#: src/Module/Admin/Item/Delete.php:65 src/Module/BaseAdmin.php:107 #: src/Module/Admin/Item/Delete.php:65 src/Module/BaseAdmin.php:106
msgid "Delete Item" msgid "Delete Item"
msgstr "" msgstr ""
@ -4935,7 +4935,7 @@ msgstr ""
msgid "The GUID of the item you want to delete." msgid "The GUID of the item you want to delete."
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:53 src/Module/BaseAdmin.php:117 #: src/Module/Admin/Item/Source.php:53 src/Module/BaseAdmin.php:116
msgid "Item Source" msgid "Item Source"
msgstr "" msgstr ""
@ -4959,8 +4959,8 @@ msgstr ""
msgid "Tag" msgid "Tag"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:63 src/Module/Admin/Users/Active.php:130 #: src/Module/Admin/Item/Source.php:63 src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:131 src/Module/Admin/Users/Index.php:143 #: src/Module/Admin/Users/Blocked.php:130 src/Module/Admin/Users/Index.php:142
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -4993,8 +4993,8 @@ msgstr ""
msgid "PHP log currently disabled." msgid "PHP log currently disabled."
msgstr "" msgstr ""
#: src/Module/Admin/Logs/Settings.php:80 src/Module/BaseAdmin.php:109 #: src/Module/Admin/Logs/Settings.php:80 src/Module/BaseAdmin.php:108
#: src/Module/BaseAdmin.php:110 #: src/Module/BaseAdmin.php:109
msgid "Logs" msgid "Logs"
msgstr "" msgstr ""
@ -5047,7 +5047,7 @@ msgid ""
"is readable." "is readable."
msgstr "" msgstr ""
#: src/Module/Admin/Logs/View.php:85 src/Module/BaseAdmin.php:111 #: src/Module/Admin/Logs/View.php:85 src/Module/BaseAdmin.php:110
msgid "View Logs" msgid "View Logs"
msgstr "" msgstr ""
@ -5056,7 +5056,7 @@ msgid "Search in logs"
msgstr "" msgstr ""
#: src/Module/Admin/Logs/View.php:89 #: src/Module/Admin/Logs/View.php:89
#: src/Module/Notifications/Notifications.php:139 #: src/Module/Notifications/Notifications.php:140
msgid "Show all" msgid "Show all"
msgstr "" msgstr ""
@ -5089,7 +5089,7 @@ msgid "Data"
msgstr "" msgstr ""
#: src/Module/Admin/Logs/View.php:99 #: src/Module/Admin/Logs/View.php:99
#: src/Module/Debug/ActivityPubConversion.php:58 #: src/Module/Debug/ActivityPubConversion.php:57
msgid "Source" msgid "Source"
msgstr "" msgstr ""
@ -5153,11 +5153,11 @@ msgstr ""
msgid "Priority" msgid "Priority"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:334 src/Module/Settings/Display.php:138 #: src/Module/Admin/Site.php:334 src/Module/Settings/Display.php:137
msgid "No special theme for mobile devices" msgid "No special theme for mobile devices"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:351 src/Module/Settings/Display.php:148 #: src/Module/Admin/Site.php:351 src/Module/Settings/Display.php:147
#, php-format #, php-format
msgid "%s - (Experimental)" msgid "%s - (Experimental)"
msgstr "" msgstr ""
@ -5234,7 +5234,7 @@ msgstr ""
msgid "Interactors" msgid "Interactors"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:430 src/Module/BaseAdmin.php:91 #: src/Module/Admin/Site.php:430 src/Module/BaseAdmin.php:90
msgid "Site" msgid "Site"
msgstr "" msgstr ""
@ -5246,7 +5246,7 @@ msgstr ""
msgid "Republish users to directory" msgid "Republish users to directory"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:434 src/Module/Register.php:153 #: src/Module/Admin/Site.php:434 src/Module/Register.php:152
msgid "Registration" msgid "Registration"
msgstr "" msgstr ""
@ -6032,8 +6032,8 @@ msgid ""
"received." "received."
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:541 src/Module/Contact/Profile.php:275 #: src/Module/Admin/Site.php:541 src/Module/Contact/Profile.php:274
#: src/Module/Settings/TwoFactor/Index.php:126 #: src/Module/Settings/TwoFactor/Index.php:125
msgid "Disabled" msgid "Disabled"
msgstr "" msgstr ""
@ -6097,7 +6097,7 @@ msgstr ""
msgid "Storage Configuration" msgid "Storage Configuration"
msgstr "" msgstr ""
#: src/Module/Admin/Storage.php:141 src/Module/BaseAdmin.php:92 #: src/Module/Admin/Storage.php:141 src/Module/BaseAdmin.php:91
msgid "Storage" msgid "Storage"
msgstr "" msgstr ""
@ -6313,7 +6313,7 @@ msgid "Screenshot"
msgstr "" msgstr ""
#: src/Module/Admin/Themes/Details.php:91 src/Module/Admin/Themes/Index.php:112 #: src/Module/Admin/Themes/Details.php:91 src/Module/Admin/Themes/Index.php:112
#: src/Module/BaseAdmin.php:95 #: src/Module/BaseAdmin.php:94
msgid "Themes" msgid "Themes"
msgstr "" msgstr ""
@ -6378,106 +6378,106 @@ msgid ""
"of sections should be [h2] and below." "of sections should be [h2] and below."
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:46 src/Module/Admin/Users/Index.php:46 #: src/Module/Admin/Users/Active.php:45 src/Module/Admin/Users/Index.php:45
#, php-format #, php-format
msgid "%s user blocked" msgid "%s user blocked"
msgid_plural "%s users blocked" msgid_plural "%s users blocked"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Admin/Users/Active.php:54 src/Module/Admin/Users/Active.php:89 #: src/Module/Admin/Users/Active.php:53 src/Module/Admin/Users/Active.php:88
#: src/Module/Admin/Users/Blocked.php:55 src/Module/Admin/Users/Blocked.php:90 #: src/Module/Admin/Users/Blocked.php:54 src/Module/Admin/Users/Blocked.php:89
#: src/Module/Admin/Users/Index.php:61 src/Module/Admin/Users/Index.php:96 #: src/Module/Admin/Users/Index.php:60 src/Module/Admin/Users/Index.php:95
msgid "You can't remove yourself" msgid "You can't remove yourself"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:58 src/Module/Admin/Users/Blocked.php:59 #: src/Module/Admin/Users/Active.php:57 src/Module/Admin/Users/Blocked.php:58
#: src/Module/Admin/Users/Index.php:65 #: src/Module/Admin/Users/Index.php:64
#, php-format #, php-format
msgid "%s user deleted" msgid "%s user deleted"
msgid_plural "%s users deleted" msgid_plural "%s users deleted"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Admin/Users/Active.php:87 src/Module/Admin/Users/Blocked.php:88 #: src/Module/Admin/Users/Active.php:86 src/Module/Admin/Users/Blocked.php:87
#: src/Module/Admin/Users/Index.php:94 #: src/Module/Admin/Users/Index.php:93
#, php-format #, php-format
msgid "User \"%s\" deleted" msgid "User \"%s\" deleted"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:97 src/Module/Admin/Users/Index.php:104 #: src/Module/Admin/Users/Active.php:96 src/Module/Admin/Users/Index.php:103
#, php-format #, php-format
msgid "User \"%s\" blocked" msgid "User \"%s\" blocked"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:130 src/Module/Admin/Users/Blocked.php:131 #: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142
#: src/Module/Admin/Users/Index.php:163 #: src/Module/Admin/Users/Index.php:162
msgid "Register date" msgid "Register date"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:130 src/Module/Admin/Users/Blocked.php:131 #: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142
#: src/Module/Admin/Users/Index.php:163 #: src/Module/Admin/Users/Index.php:162
msgid "Last login" msgid "Last login"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:130 src/Module/Admin/Users/Blocked.php:131 #: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142
#: src/Module/Admin/Users/Index.php:163 #: src/Module/Admin/Users/Index.php:162
msgid "Last public item" msgid "Last public item"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:138 #: src/Module/Admin/Users/Active.php:137
msgid "Active Accounts" msgid "Active Accounts"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:142 src/Module/Admin/Users/Blocked.php:142 #: src/Module/Admin/Users/Active.php:141 src/Module/Admin/Users/Blocked.php:141
#: src/Module/Admin/Users/Index.php:156 #: src/Module/Admin/Users/Index.php:155
msgid "User blocked" msgid "User blocked"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:142 src/Module/Admin/Users/Blocked.php:143
#: src/Module/Admin/Users/Index.php:157
msgid "Site admin"
msgstr ""
#: src/Module/Admin/Users/Active.php:143 src/Module/Admin/Users/Blocked.php:144 #: src/Module/Admin/Users/Active.php:143 src/Module/Admin/Users/Blocked.php:144
#: src/Module/Admin/Users/Index.php:158 #: src/Module/Admin/Users/Index.php:158
msgid "Site admin"
msgstr ""
#: src/Module/Admin/Users/Active.php:144 src/Module/Admin/Users/Blocked.php:145
#: src/Module/Admin/Users/Index.php:159
msgid "Account expired" msgid "Account expired"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:145 src/Module/Admin/Users/Index.php:162 #: src/Module/Admin/Users/Active.php:144 src/Module/Admin/Users/Index.php:161
msgid "Create a new user" msgid "Create a new user"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:151 src/Module/Admin/Users/Blocked.php:151 #: src/Module/Admin/Users/Active.php:150 src/Module/Admin/Users/Blocked.php:150
#: src/Module/Admin/Users/Index.php:168 #: src/Module/Admin/Users/Index.php:167
msgid "" msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on " "Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?" "this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:152 src/Module/Admin/Users/Blocked.php:152 #: src/Module/Admin/Users/Active.php:151 src/Module/Admin/Users/Blocked.php:151
#: src/Module/Admin/Users/Index.php:169 #: src/Module/Admin/Users/Index.php:168
msgid "" msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this " "The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?" "site will be permanently deleted!\\n\\nAre you sure?"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Blocked.php:47 src/Module/Admin/Users/Index.php:53 #: src/Module/Admin/Users/Blocked.php:46 src/Module/Admin/Users/Index.php:52
#, php-format #, php-format
msgid "%s user unblocked" msgid "%s user unblocked"
msgid_plural "%s users unblocked" msgid_plural "%s users unblocked"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Admin/Users/Blocked.php:97 src/Module/Admin/Users/Index.php:110 #: src/Module/Admin/Users/Blocked.php:96 src/Module/Admin/Users/Index.php:109
#, php-format #, php-format
msgid "User \"%s\" unblocked" msgid "User \"%s\" unblocked"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Blocked.php:139 #: src/Module/Admin/Users/Blocked.php:138
msgid "Blocked Users" msgid "Blocked Users"
msgstr "" msgstr ""
@ -6509,16 +6509,16 @@ msgstr ""
msgid "Users awaiting permanent deletion" msgid "Users awaiting permanent deletion"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:163 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:162
msgid "Permanent deletion" msgid "Permanent deletion"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Index.php:151 src/Module/Admin/Users/Index.php:161 #: src/Module/Admin/Users/Index.php:150 src/Module/Admin/Users/Index.php:160
#: src/Module/BaseAdmin.php:93 #: src/Module/BaseAdmin.php:92
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Index.php:153 #: src/Module/Admin/Users/Index.php:152
msgid "User waiting for permanent deletion" msgid "User waiting for permanent deletion"
msgstr "" msgstr ""
@ -6608,11 +6608,11 @@ msgstr ""
msgid "Contact not found" msgid "Contact not found"
msgstr "" msgstr ""
#: src/Module/Apps.php:56 #: src/Module/Apps.php:55
msgid "No installed applications." msgid "No installed applications."
msgstr "" msgstr ""
#: src/Module/Apps.php:61 #: src/Module/Apps.php:60
msgid "Applications" msgid "Applications"
msgstr "" msgstr ""
@ -6620,89 +6620,89 @@ msgstr ""
msgid "Item was not found." msgid "Item was not found."
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:55 src/Module/BaseAdmin.php:59 #: src/Module/BaseAdmin.php:54 src/Module/BaseAdmin.php:58
msgid "Please login to continue." msgid "Please login to continue."
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:64 #: src/Module/BaseAdmin.php:63
msgid "You don't have access to administration pages." msgid "You don't have access to administration pages."
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:68 #: src/Module/BaseAdmin.php:67
msgid "" msgid ""
"Submanaged account can't access the administration pages. Please log back in " "Submanaged account can't access the administration pages. Please log back in "
"as the main account." "as the main account."
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:87 #: src/Module/BaseAdmin.php:86
msgid "Overview" msgid "Overview"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:90 #: src/Module/BaseAdmin.php:89
msgid "Configuration" msgid "Configuration"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:96 src/Module/BaseSettings.php:63 #: src/Module/BaseAdmin.php:95 src/Module/BaseSettings.php:63
msgid "Additional features" msgid "Additional features"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:99 #: src/Module/BaseAdmin.php:98
msgid "Database" msgid "Database"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:100 #: src/Module/BaseAdmin.php:99
msgid "DB updates" msgid "DB updates"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:101 #: src/Module/BaseAdmin.php:100
msgid "Inspect Deferred Workers" msgid "Inspect Deferred Workers"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:102 #: src/Module/BaseAdmin.php:101
msgid "Inspect worker Queue" msgid "Inspect worker Queue"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:104 #: src/Module/BaseAdmin.php:103
msgid "Tools" msgid "Tools"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:105 #: src/Module/BaseAdmin.php:104
msgid "Contact Blocklist" msgid "Contact Blocklist"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:106 #: src/Module/BaseAdmin.php:105
msgid "Server Blocklist" msgid "Server Blocklist"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:113 #: src/Module/BaseAdmin.php:112
msgid "Diagnostics" msgid "Diagnostics"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:114 #: src/Module/BaseAdmin.php:113
msgid "PHP Info" msgid "PHP Info"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:115 #: src/Module/BaseAdmin.php:114
msgid "probe address" msgid "probe address"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:116 #: src/Module/BaseAdmin.php:115
msgid "check webfinger" msgid "check webfinger"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:118 #: src/Module/BaseAdmin.php:117
msgid "Babel" msgid "Babel"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:119 src/Module/Debug/ActivityPubConversion.php:138 #: src/Module/BaseAdmin.php:118 src/Module/Debug/ActivityPubConversion.php:137
msgid "ActivityPub Conversion" msgid "ActivityPub Conversion"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:128 #: src/Module/BaseAdmin.php:127
msgid "Addon Features" msgid "Addon Features"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:129 #: src/Module/BaseAdmin.php:128
msgid "User registrations waiting for confirmation" msgid "User registrations waiting for confirmation"
msgstr "" msgstr ""
@ -6733,7 +6733,7 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/BaseProfile.php:51 src/Module/Contact.php:464 #: src/Module/BaseProfile.php:51 src/Module/Contact.php:463
msgid "Profile Details" msgid "Profile Details"
msgstr "" msgstr ""
@ -6741,7 +6741,7 @@ msgstr ""
msgid "Only You Can See This" msgid "Only You Can See This"
msgstr "" msgstr ""
#: src/Module/BaseProfile.php:114 src/Module/Profile/Schedule.php:83 #: src/Module/BaseProfile.php:114 src/Module/Profile/Schedule.php:82
msgid "Scheduled Posts" msgid "Scheduled Posts"
msgstr "" msgstr ""
@ -6753,12 +6753,12 @@ msgstr ""
msgid "Tips for New Members" msgid "Tips for New Members"
msgstr "" msgstr ""
#: src/Module/BaseSearch.php:70 #: src/Module/BaseSearch.php:69
#, php-format #, php-format
msgid "People Search - %s" msgid "People Search - %s"
msgstr "" msgstr ""
#: src/Module/BaseSearch.php:80 #: src/Module/BaseSearch.php:79
#, php-format #, php-format
msgid "Forum Search - %s" msgid "Forum Search - %s"
msgstr "" msgstr ""
@ -6767,8 +6767,8 @@ msgstr ""
msgid "Account" msgid "Account"
msgstr "" msgstr ""
#: src/Module/BaseSettings.php:48 src/Module/Security/TwoFactor/Verify.php:97 #: src/Module/BaseSettings.php:48 src/Module/Security/TwoFactor/Verify.php:100
#: src/Module/Settings/TwoFactor/Index.php:118 #: src/Module/Settings/TwoFactor/Index.php:117
msgid "Two-factor authentication" msgid "Two-factor authentication"
msgstr "" msgstr ""
@ -6776,7 +6776,7 @@ msgstr ""
msgid "Display" msgid "Display"
msgstr "" msgstr ""
#: src/Module/BaseSettings.php:92 src/Module/Settings/Delegation.php:171 #: src/Module/BaseSettings.php:92 src/Module/Settings/Delegation.php:170
msgid "Manage Accounts" msgid "Manage Accounts"
msgstr "" msgstr ""
@ -6784,7 +6784,7 @@ msgstr ""
msgid "Connected apps" msgid "Connected apps"
msgstr "" msgstr ""
#: src/Module/BaseSettings.php:106 src/Module/Settings/UserExport.php:77 #: src/Module/BaseSettings.php:106 src/Module/Settings/UserExport.php:102
msgid "Export personal data" msgid "Export personal data"
msgstr "" msgstr ""
@ -6792,564 +6792,564 @@ msgstr ""
msgid "Remove account" msgid "Remove account"
msgstr "" msgstr ""
#: src/Module/Bookmarklet.php:55 #: src/Module/Bookmarklet.php:54
msgid "This page is missing a url parameter." msgid "This page is missing a url parameter."
msgstr "" msgstr ""
#: src/Module/Bookmarklet.php:67 #: src/Module/Bookmarklet.php:66
msgid "The post was created" msgid "The post was created"
msgstr "" msgstr ""
#: src/Module/Contact.php:89 #: src/Module/Contact.php:88
#, php-format #, php-format
msgid "%d contact edited." msgid "%d contact edited."
msgid_plural "%d contacts edited." msgid_plural "%d contacts edited."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Contact.php:313 #: src/Module/Contact.php:312
msgid "Show all contacts" msgid "Show all contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:321 #: src/Module/Contact.php:320
msgid "Only show pending contacts" msgid "Only show pending contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:329 #: src/Module/Contact.php:328
msgid "Only show blocked contacts" msgid "Only show blocked contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:334 src/Module/Contact.php:381 #: src/Module/Contact.php:333 src/Module/Contact.php:380
#: src/Object/Post.php:339 #: src/Object/Post.php:338
msgid "Ignored" msgid "Ignored"
msgstr "" msgstr ""
#: src/Module/Contact.php:337 #: src/Module/Contact.php:336
msgid "Only show ignored contacts" msgid "Only show ignored contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:342 src/Module/Contact.php:382 #: src/Module/Contact.php:341 src/Module/Contact.php:381
msgid "Archived" msgid "Archived"
msgstr "" msgstr ""
#: src/Module/Contact.php:345 #: src/Module/Contact.php:344
msgid "Only show archived contacts" msgid "Only show archived contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:350 src/Module/Contact.php:380 #: src/Module/Contact.php:349 src/Module/Contact.php:379
msgid "Hidden" msgid "Hidden"
msgstr "" msgstr ""
#: src/Module/Contact.php:353 #: src/Module/Contact.php:352
msgid "Only show hidden contacts" msgid "Only show hidden contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:361 #: src/Module/Contact.php:360
msgid "Organize your contact groups" msgid "Organize your contact groups"
msgstr "" msgstr ""
#: src/Module/Contact.php:393 #: src/Module/Contact.php:392
msgid "Search your contacts" msgid "Search your contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:394 src/Module/Search/Index.php:207 #: src/Module/Contact.php:393 src/Module/Search/Index.php:206
#, php-format #, php-format
msgid "Results for: %s" msgid "Results for: %s"
msgstr "" msgstr ""
#: src/Module/Contact.php:401 #: src/Module/Contact.php:400
msgid "Update" msgid "Update"
msgstr "" msgstr ""
#: src/Module/Contact.php:403 src/Module/Contact/Profile.php:351 #: src/Module/Contact.php:402 src/Module/Contact/Profile.php:350
#: src/Module/Contact/Profile.php:459 #: src/Module/Contact/Profile.php:458
msgid "Unignore" msgid "Unignore"
msgstr "" msgstr ""
#: src/Module/Contact.php:405 #: src/Module/Contact.php:404
msgid "Batch Actions" msgid "Batch Actions"
msgstr "" msgstr ""
#: src/Module/Contact.php:440 #: src/Module/Contact.php:439
msgid "Conversations started by this contact" msgid "Conversations started by this contact"
msgstr "" msgstr ""
#: src/Module/Contact.php:445 #: src/Module/Contact.php:444
msgid "Posts and Comments" msgid "Posts and Comments"
msgstr "" msgstr ""
#: src/Module/Contact.php:456 #: src/Module/Contact.php:455
msgid "Posts containing media objects" msgid "Posts containing media objects"
msgstr "" msgstr ""
#: src/Module/Contact.php:471 #: src/Module/Contact.php:470
msgid "View all known contacts" msgid "View all known contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:481 #: src/Module/Contact.php:480
msgid "Advanced Contact Settings" msgid "Advanced Contact Settings"
msgstr "" msgstr ""
#: src/Module/Contact.php:515 #: src/Module/Contact.php:514
msgid "Mutual Friendship" msgid "Mutual Friendship"
msgstr "" msgstr ""
#: src/Module/Contact.php:519 #: src/Module/Contact.php:518
msgid "is a fan of yours" msgid "is a fan of yours"
msgstr "" msgstr ""
#: src/Module/Contact.php:523 #: src/Module/Contact.php:522
msgid "you are a fan of" msgid "you are a fan of"
msgstr "" msgstr ""
#: src/Module/Contact.php:541 #: src/Module/Contact.php:540
msgid "Pending outgoing contact request" msgid "Pending outgoing contact request"
msgstr "" msgstr ""
#: src/Module/Contact.php:543 #: src/Module/Contact.php:542
msgid "Pending incoming contact request" msgid "Pending incoming contact request"
msgstr "" msgstr ""
#: src/Module/Contact.php:556 src/Module/Contact/Profile.php:336 #: src/Module/Contact.php:555 src/Module/Contact/Profile.php:335
#, php-format #, php-format
msgid "Visit %s's profile [%s]" msgid "Visit %s's profile [%s]"
msgstr "" msgstr ""
#: src/Module/Contact/Advanced.php:100 #: src/Module/Contact/Advanced.php:99
msgid "Contact update failed." msgid "Contact update failed."
msgstr "" msgstr ""
#: src/Module/Contact/Advanced.php:131 #: src/Module/Contact/Advanced.php:130
msgid "Return to contact editor" msgid "Return to contact editor"
msgstr "" msgstr ""
#: src/Module/Contact/Advanced.php:136 #: src/Module/Contact/Advanced.php:135
msgid "Account Nickname" msgid "Account Nickname"
msgstr "" msgstr ""
#: src/Module/Contact/Advanced.php:137 #: src/Module/Contact/Advanced.php:136
msgid "Account URL" msgid "Account URL"
msgstr "" msgstr ""
#: src/Module/Contact/Advanced.php:138 #: src/Module/Contact/Advanced.php:137
msgid "Poll/Feed URL" msgid "Poll/Feed URL"
msgstr "" msgstr ""
#: src/Module/Contact/Advanced.php:139 #: src/Module/Contact/Advanced.php:138
msgid "New photo from this URL" msgid "New photo from this URL"
msgstr "" msgstr ""
#: src/Module/Contact/Contacts.php:49 src/Module/Conversation/Network.php:187 #: src/Module/Contact/Contacts.php:48 src/Module/Conversation/Network.php:186
#: src/Module/Group.php:102 #: src/Module/Group.php:101
msgid "Invalid contact." msgid "Invalid contact."
msgstr "" msgstr ""
#: src/Module/Contact/Contacts.php:72 #: src/Module/Contact/Contacts.php:71
msgid "No known contacts." msgid "No known contacts."
msgstr "" msgstr ""
#: src/Module/Contact/Contacts.php:86 src/Module/Profile/Common.php:98 #: src/Module/Contact/Contacts.php:85 src/Module/Profile/Common.php:97
msgid "No common contacts." msgid "No common contacts."
msgstr "" msgstr ""
#: src/Module/Contact/Contacts.php:98 src/Module/Profile/Contacts.php:96 #: src/Module/Contact/Contacts.php:97 src/Module/Profile/Contacts.php:95
#, php-format #, php-format
msgid "Follower (%s)" msgid "Follower (%s)"
msgid_plural "Followers (%s)" msgid_plural "Followers (%s)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Contact/Contacts.php:102 src/Module/Profile/Contacts.php:99 #: src/Module/Contact/Contacts.php:101 src/Module/Profile/Contacts.php:98
#, php-format #, php-format
msgid "Following (%s)" msgid "Following (%s)"
msgid_plural "Following (%s)" msgid_plural "Following (%s)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Contact/Contacts.php:106 src/Module/Profile/Contacts.php:102 #: src/Module/Contact/Contacts.php:105 src/Module/Profile/Contacts.php:101
#, php-format #, php-format
msgid "Mutual friend (%s)" msgid "Mutual friend (%s)"
msgid_plural "Mutual friends (%s)" msgid_plural "Mutual friends (%s)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Contact/Contacts.php:108 src/Module/Profile/Contacts.php:104 #: src/Module/Contact/Contacts.php:107 src/Module/Profile/Contacts.php:103
#, php-format #, php-format
msgid "These contacts both follow and are followed by <strong>%s</strong>." msgid "These contacts both follow and are followed by <strong>%s</strong>."
msgstr "" msgstr ""
#: src/Module/Contact/Contacts.php:114 src/Module/Profile/Common.php:86 #: src/Module/Contact/Contacts.php:113 src/Module/Profile/Common.php:85
#, php-format #, php-format
msgid "Common contact (%s)" msgid "Common contact (%s)"
msgid_plural "Common contacts (%s)" msgid_plural "Common contacts (%s)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Contact/Contacts.php:116 src/Module/Profile/Common.php:88 #: src/Module/Contact/Contacts.php:115 src/Module/Profile/Common.php:87
#, php-format #, php-format
msgid "" msgid ""
"Both <strong>%s</strong> and yourself have publicly interacted with these " "Both <strong>%s</strong> and yourself have publicly interacted with these "
"contacts (follow, comment or likes on public posts)." "contacts (follow, comment or likes on public posts)."
msgstr "" msgstr ""
#: src/Module/Contact/Contacts.php:122 src/Module/Profile/Contacts.php:110 #: src/Module/Contact/Contacts.php:121 src/Module/Profile/Contacts.php:109
#, php-format #, php-format
msgid "Contact (%s)" msgid "Contact (%s)"
msgid_plural "Contacts (%s)" msgid_plural "Contacts (%s)"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Contact/Profile.php:129 #: src/Module/Contact/Profile.php:128
msgid "Failed to update contact record." msgid "Failed to update contact record."
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:179 #: src/Module/Contact/Profile.php:178
msgid "Contact has been unblocked" msgid "Contact has been unblocked"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:183 #: src/Module/Contact/Profile.php:182
msgid "Contact has been blocked" msgid "Contact has been blocked"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:195 #: src/Module/Contact/Profile.php:194
msgid "Contact has been unignored" msgid "Contact has been unignored"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:199 #: src/Module/Contact/Profile.php:198
msgid "Contact has been ignored" msgid "Contact has been ignored"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:231 #: src/Module/Contact/Profile.php:230
#, php-format #, php-format
msgid "You are mutual friends with %s" msgid "You are mutual friends with %s"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:232 #: src/Module/Contact/Profile.php:231
#, php-format #, php-format
msgid "You are sharing with %s" msgid "You are sharing with %s"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:233 #: src/Module/Contact/Profile.php:232
#, php-format #, php-format
msgid "%s is sharing with you" msgid "%s is sharing with you"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:249 #: src/Module/Contact/Profile.php:248
msgid "Private communications are not available for this contact." msgid "Private communications are not available for this contact."
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:251 #: src/Module/Contact/Profile.php:250
msgid "Never" msgid "Never"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:254 #: src/Module/Contact/Profile.php:253
msgid "(Update was not successful)" msgid "(Update was not successful)"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:254 #: src/Module/Contact/Profile.php:253
msgid "(Update was successful)" msgid "(Update was successful)"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:256 src/Module/Contact/Profile.php:422 #: src/Module/Contact/Profile.php:255 src/Module/Contact/Profile.php:421
msgid "Suggest friends" msgid "Suggest friends"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:260 #: src/Module/Contact/Profile.php:259
#, php-format #, php-format
msgid "Network type: %s" msgid "Network type: %s"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:265 #: src/Module/Contact/Profile.php:264
msgid "Communications lost with this contact!" msgid "Communications lost with this contact!"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:271 #: src/Module/Contact/Profile.php:270
msgid "Fetch further information for feeds" msgid "Fetch further information for feeds"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:273 #: src/Module/Contact/Profile.php:272
msgid "" msgid ""
"Fetch information like preview pictures, title and teaser from the feed " "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 " "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." "are taken from the meta header in the feed item and are posted as hash tags."
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:276 #: src/Module/Contact/Profile.php:275
msgid "Fetch information" msgid "Fetch information"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:277 #: src/Module/Contact/Profile.php:276
msgid "Fetch keywords" msgid "Fetch keywords"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:278 #: src/Module/Contact/Profile.php:277
msgid "Fetch information and keywords" msgid "Fetch information and keywords"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:288 src/Module/Contact/Profile.php:294 #: src/Module/Contact/Profile.php:287 src/Module/Contact/Profile.php:293
#: src/Module/Contact/Profile.php:299 src/Module/Contact/Profile.php:305 #: src/Module/Contact/Profile.php:298 src/Module/Contact/Profile.php:304
msgid "No mirroring" msgid "No mirroring"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:289 #: src/Module/Contact/Profile.php:288
msgid "Mirror as forwarded posting" msgid "Mirror as forwarded posting"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:290 src/Module/Contact/Profile.php:300 #: src/Module/Contact/Profile.php:289 src/Module/Contact/Profile.php:299
#: src/Module/Contact/Profile.php:306 #: src/Module/Contact/Profile.php:305
msgid "Mirror as my own posting" msgid "Mirror as my own posting"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:295 src/Module/Contact/Profile.php:301 #: src/Module/Contact/Profile.php:294 src/Module/Contact/Profile.php:300
msgid "Native reshare" msgid "Native reshare"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:318 #: src/Module/Contact/Profile.php:317
msgid "Contact Information / Notes" msgid "Contact Information / Notes"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:319 #: src/Module/Contact/Profile.php:318
msgid "Contact Settings" msgid "Contact Settings"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:327 #: src/Module/Contact/Profile.php:326
msgid "Contact" msgid "Contact"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:331 #: src/Module/Contact/Profile.php:330
msgid "Their personal note" msgid "Their personal note"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:333 #: src/Module/Contact/Profile.php:332
msgid "Edit contact notes" msgid "Edit contact notes"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:337 #: src/Module/Contact/Profile.php:336
msgid "Block/Unblock contact" msgid "Block/Unblock contact"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:338 #: src/Module/Contact/Profile.php:337
msgid "Ignore contact" msgid "Ignore contact"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:339 #: src/Module/Contact/Profile.php:338
msgid "View conversations" msgid "View conversations"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:344 #: src/Module/Contact/Profile.php:343
msgid "Last update:" msgid "Last update:"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:346 #: src/Module/Contact/Profile.php:345
msgid "Update public posts" msgid "Update public posts"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:348 src/Module/Contact/Profile.php:432 #: src/Module/Contact/Profile.php:347 src/Module/Contact/Profile.php:431
msgid "Update now" msgid "Update now"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:355 #: src/Module/Contact/Profile.php:354
msgid "Currently blocked" msgid "Currently blocked"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:356 #: src/Module/Contact/Profile.php:355
msgid "Currently ignored" msgid "Currently ignored"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:357 #: src/Module/Contact/Profile.php:356
msgid "Currently archived" msgid "Currently archived"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:358 #: src/Module/Contact/Profile.php:357
msgid "Awaiting connection acknowledge" msgid "Awaiting connection acknowledge"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:359 #: src/Module/Contact/Profile.php:358
#: src/Module/Notifications/Introductions.php:192 #: src/Module/Notifications/Introductions.php:192
msgid "Hide this contact from others" msgid "Hide this contact from others"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:359 #: src/Module/Contact/Profile.php:358
msgid "" msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible" "Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:360 #: src/Module/Contact/Profile.php:359
msgid "Notification for new posts" msgid "Notification for new posts"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:360 #: src/Module/Contact/Profile.php:359
msgid "Send a notification of every new post of this contact" msgid "Send a notification of every new post of this contact"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:362 #: src/Module/Contact/Profile.php:361
msgid "Keyword Deny List" msgid "Keyword Deny List"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:362 #: src/Module/Contact/Profile.php:361
msgid "" msgid ""
"Comma separated list of keywords that should not be converted to hashtags, " "Comma separated list of keywords that should not be converted to hashtags, "
"when \"Fetch information and keywords\" is selected" "when \"Fetch information and keywords\" is selected"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:380 #: src/Module/Contact/Profile.php:379
#: src/Module/Settings/TwoFactor/Index.php:140 #: src/Module/Settings/TwoFactor/Index.php:139
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:388 #: src/Module/Contact/Profile.php:387
msgid "Mirror postings from this contact" msgid "Mirror postings from this contact"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:390 #: src/Module/Contact/Profile.php:389
msgid "" msgid ""
"Mark this contact as remote_self, this will cause friendica to repost new " "Mark this contact as remote_self, this will cause friendica to repost new "
"entries from this contact." "entries from this contact."
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:442 #: src/Module/Contact/Profile.php:441
msgid "Refetch contact data" msgid "Refetch contact data"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:453 #: src/Module/Contact/Profile.php:452
msgid "Toggle Blocked status" msgid "Toggle Blocked status"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:461 #: src/Module/Contact/Profile.php:460
msgid "Toggle Ignored status" msgid "Toggle Ignored status"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:468 src/Module/Contact/Revoke.php:107 #: src/Module/Contact/Profile.php:467 src/Module/Contact/Revoke.php:106
msgid "Revoke Follow" msgid "Revoke Follow"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:470 #: src/Module/Contact/Profile.php:469
msgid "Revoke the follow from this contact" msgid "Revoke the follow from this contact"
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:64 #: src/Module/Contact/Revoke.php:63
msgid "Unknown contact." msgid "Unknown contact."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:74 src/Module/Group.php:111 #: src/Module/Contact/Revoke.php:73 src/Module/Group.php:110
msgid "Contact is deleted." msgid "Contact is deleted."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:78 #: src/Module/Contact/Revoke.php:77
msgid "Contact is being deleted." msgid "Contact is being deleted."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:92 #: src/Module/Contact/Revoke.php:91
msgid "Follow was successfully revoked." msgid "Follow was successfully revoked."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:108 #: src/Module/Contact/Revoke.php:107
msgid "" msgid ""
"Do you really want to revoke this contact's follow? This cannot be undone " "Do you really want to revoke this contact's follow? This cannot be undone "
"and they will have to manually follow you back again." "and they will have to manually follow you back again."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:109 #: src/Module/Contact/Revoke.php:108
#: src/Module/Notifications/Introductions.php:144 #: src/Module/Notifications/Introductions.php:144
#: src/Module/OAuth/Acknowledge.php:53 src/Module/Register.php:131 #: src/Module/OAuth/Acknowledge.php:53 src/Module/Register.php:130
#: src/Module/Settings/TwoFactor/Trusted.php:126 #: src/Module/Settings/TwoFactor/Trusted.php:125
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:74 #: src/Module/Conversation/Community.php:73
msgid "" msgid ""
"This community stream shows all public posts received by this node. They may " "This community stream shows all public posts received by this node. They may "
"not reflect the opinions of this nodes users." "not reflect the opinions of this nodes users."
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:87 #: src/Module/Conversation/Community.php:86
msgid "Local Community" msgid "Local Community"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:90 #: src/Module/Conversation/Community.php:89
msgid "Posts from local users on this server" msgid "Posts from local users on this server"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:98 #: src/Module/Conversation/Community.php:97
msgid "Global Community" msgid "Global Community"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:101 #: src/Module/Conversation/Community.php:100
msgid "Posts from users of the whole federated network" msgid "Posts from users of the whole federated network"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:134 #: src/Module/Conversation/Community.php:133
msgid "Own Contacts" msgid "Own Contacts"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:138 #: src/Module/Conversation/Community.php:137
msgid "Include" msgid "Include"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:139 #: src/Module/Conversation/Community.php:138
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:156 src/Module/Search/Index.php:152 #: src/Module/Conversation/Community.php:155 src/Module/Search/Index.php:151
#: src/Module/Search/Index.php:194 #: src/Module/Search/Index.php:193
msgid "No results." msgid "No results."
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:212 #: src/Module/Conversation/Community.php:211
msgid "Community option not available." msgid "Community option not available."
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:228 #: src/Module/Conversation/Community.php:227
msgid "Not available." msgid "Not available."
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:173 #: src/Module/Conversation/Network.php:172
msgid "No such group" msgid "No such group"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:177 #: src/Module/Conversation/Network.php:176
#, php-format #, php-format
msgid "Group: %s" msgid "Group: %s"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:255 #: src/Module/Conversation/Network.php:254
msgid "Latest Activity" msgid "Latest Activity"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:258 #: src/Module/Conversation/Network.php:257
msgid "Sort by latest activity" msgid "Sort by latest activity"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:263 #: src/Module/Conversation/Network.php:262
msgid "Latest Posts" msgid "Latest Posts"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:266 #: src/Module/Conversation/Network.php:265
msgid "Sort by post received date" msgid "Sort by post received date"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:271 #: src/Module/Conversation/Network.php:270
msgid "Latest Creation" msgid "Latest Creation"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:274 #: src/Module/Conversation/Network.php:273
msgid "Sort by post creation date" msgid "Sort by post creation date"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:279 #: src/Module/Conversation/Network.php:278
#: src/Module/Settings/Profile/Index.php:228 #: src/Module/Settings/Profile/Index.php:227
msgid "Personal" msgid "Personal"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:282 #: src/Module/Conversation/Network.php:281
msgid "Posts that mention or involve you" msgid "Posts that mention or involve you"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:287 src/Object/Post.php:351 #: src/Module/Conversation/Network.php:286 src/Object/Post.php:350
msgid "Starred" msgid "Starred"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:290 #: src/Module/Conversation/Network.php:289
msgid "Favourite Posts" msgid "Favourite Posts"
msgstr "" msgstr ""
@ -7364,23 +7364,23 @@ msgid ""
"code or the translation of Friendica. Thank you all!" "code or the translation of Friendica. Thank you all!"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:54 #: src/Module/Debug/ActivityPubConversion.php:53
msgid "Formatted" msgid "Formatted"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:66 #: src/Module/Debug/ActivityPubConversion.php:65
msgid "Activity" msgid "Activity"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:118 #: src/Module/Debug/ActivityPubConversion.php:117
msgid "Object data" msgid "Object data"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:125 #: src/Module/Debug/ActivityPubConversion.php:124
msgid "Result Item" msgid "Result Item"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:139 #: src/Module/Debug/ActivityPubConversion.php:138
msgid "Source activity" msgid "Source activity"
msgstr "" msgstr ""
@ -7560,12 +7560,12 @@ msgstr ""
msgid "Twitter Source / Tweet URL (requires API key)" msgid "Twitter Source / Tweet URL (requires API key)"
msgstr "" msgstr ""
#: src/Module/Debug/Feed.php:53 src/Module/Filer/SaveTag.php:48 #: src/Module/Debug/Feed.php:52 src/Module/Filer/SaveTag.php:47
#: src/Module/Settings/Profile/Index.php:142 #: src/Module/Settings/Profile/Index.php:141
msgid "You must be logged in to use this module" msgid "You must be logged in to use this module"
msgstr "" msgstr ""
#: src/Module/Debug/Feed.php:78 #: src/Module/Debug/Feed.php:77
msgid "Source URL" msgid "Source URL"
msgstr "" msgstr ""
@ -7598,94 +7598,94 @@ msgstr ""
msgid "Please select your timezone:" msgid "Please select your timezone:"
msgstr "" msgstr ""
#: src/Module/Debug/Probe.php:39 src/Module/Debug/WebFinger.php:38 #: src/Module/Debug/Probe.php:38 src/Module/Debug/WebFinger.php:37
msgid "Only logged in users are permitted to perform a probing." msgid "Only logged in users are permitted to perform a probing."
msgstr "" msgstr ""
#: src/Module/Debug/Probe.php:53 #: src/Module/Debug/Probe.php:52
msgid "Probe Diagnostic" msgid "Probe Diagnostic"
msgstr "" msgstr ""
#: src/Module/Debug/Probe.php:54 #: src/Module/Debug/Probe.php:53
msgid "Output" msgid "Output"
msgstr "" msgstr ""
#: src/Module/Debug/Probe.php:57 #: src/Module/Debug/Probe.php:56
msgid "Lookup address" msgid "Lookup address"
msgstr "" msgstr ""
#: src/Module/Debug/WebFinger.php:51 #: src/Module/Debug/WebFinger.php:50
msgid "Webfinger Diagnostic" msgid "Webfinger Diagnostic"
msgstr "" msgstr ""
#: src/Module/Debug/WebFinger.php:53 #: src/Module/Debug/WebFinger.php:52
msgid "Lookup address:" msgid "Lookup address:"
msgstr "" msgstr ""
#: src/Module/Delegation.php:111 #: src/Module/Delegation.php:110
#, php-format #, php-format
msgid "You are now logged in as %s" msgid "You are now logged in as %s"
msgstr "" msgstr ""
#: src/Module/Delegation.php:143 #: src/Module/Delegation.php:142
msgid "Switch between your accounts" msgid "Switch between your accounts"
msgstr "" msgstr ""
#: src/Module/Delegation.php:144 #: src/Module/Delegation.php:143
msgid "Manage your accounts" msgid "Manage your accounts"
msgstr "" msgstr ""
#: src/Module/Delegation.php:145 #: src/Module/Delegation.php:144
msgid "" msgid ""
"Toggle between different identities or community/group pages which share " "Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions" "your account details or which you have been granted \"manage\" permissions"
msgstr "" msgstr ""
#: src/Module/Delegation.php:146 #: src/Module/Delegation.php:145
msgid "Select an identity to manage: " msgid "Select an identity to manage: "
msgstr "" msgstr ""
#: src/Module/Directory.php:75 #: src/Module/Directory.php:74
msgid "No entries (some entries may be hidden)." msgid "No entries (some entries may be hidden)."
msgstr "" msgstr ""
#: src/Module/Directory.php:91 #: src/Module/Directory.php:90
msgid "Find on this site" msgid "Find on this site"
msgstr "" msgstr ""
#: src/Module/Directory.php:93 #: src/Module/Directory.php:92
msgid "Results for:" msgid "Results for:"
msgstr "" msgstr ""
#: src/Module/Directory.php:95 #: src/Module/Directory.php:94
msgid "Site Directory" msgid "Site Directory"
msgstr "" msgstr ""
#: src/Module/Filer/RemoveTag.php:102 #: src/Module/Filer/RemoveTag.php:105
msgid "Item was not deleted" msgid "Item was not deleted"
msgstr "" msgstr ""
#: src/Module/Filer/RemoveTag.php:112 #: src/Module/Filer/RemoveTag.php:115
msgid "Item was not removed" msgid "Item was not removed"
msgstr "" msgstr ""
#: src/Module/Filer/SaveTag.php:74 #: src/Module/Filer/SaveTag.php:73
msgid "- select -" msgid "- select -"
msgstr "" msgstr ""
#: src/Module/FriendSuggest.php:83 #: src/Module/FriendSuggest.php:82
msgid "Suggested contact not found." msgid "Suggested contact not found."
msgstr "" msgstr ""
#: src/Module/FriendSuggest.php:101 #: src/Module/FriendSuggest.php:100
msgid "Friend suggestion sent." msgid "Friend suggestion sent."
msgstr "" msgstr ""
#: src/Module/FriendSuggest.php:138 #: src/Module/FriendSuggest.php:137
msgid "Suggest Friends" msgid "Suggest Friends"
msgstr "" msgstr ""
#: src/Module/FriendSuggest.php:141 #: src/Module/FriendSuggest.php:140
#, php-format #, php-format
msgid "Suggest a friend for %s" msgid "Suggest a friend for %s"
msgstr "" msgstr ""
@ -7737,87 +7737,87 @@ msgid ""
"Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"
msgstr "" msgstr ""
#: src/Module/Group.php:57 #: src/Module/Group.php:56
msgid "Could not create group." msgid "Could not create group."
msgstr "" msgstr ""
#: src/Module/Group.php:68 src/Module/Group.php:214 src/Module/Group.php:238 #: src/Module/Group.php:67 src/Module/Group.php:213 src/Module/Group.php:237
msgid "Group not found." msgid "Group not found."
msgstr "" msgstr ""
#: src/Module/Group.php:74 #: src/Module/Group.php:73
msgid "Group name was not changed." msgid "Group name was not changed."
msgstr "" msgstr ""
#: src/Module/Group.php:92 #: src/Module/Group.php:91
msgid "Unknown group." msgid "Unknown group."
msgstr "" msgstr ""
#: src/Module/Group.php:117 #: src/Module/Group.php:116
msgid "Unable to add the contact to the group." msgid "Unable to add the contact to the group."
msgstr "" msgstr ""
#: src/Module/Group.php:120 #: src/Module/Group.php:119
msgid "Contact successfully added to group." msgid "Contact successfully added to group."
msgstr "" msgstr ""
#: src/Module/Group.php:124 #: src/Module/Group.php:123
msgid "Unable to remove the contact from the group." msgid "Unable to remove the contact from the group."
msgstr "" msgstr ""
#: src/Module/Group.php:127 #: src/Module/Group.php:126
msgid "Contact successfully removed from group." msgid "Contact successfully removed from group."
msgstr "" msgstr ""
#: src/Module/Group.php:131 #: src/Module/Group.php:130
msgid "Bad request." msgid "Bad request."
msgstr "" msgstr ""
#: src/Module/Group.php:170 #: src/Module/Group.php:169
msgid "Save Group" msgid "Save Group"
msgstr "" msgstr ""
#: src/Module/Group.php:171 #: src/Module/Group.php:170
msgid "Filter" msgid "Filter"
msgstr "" msgstr ""
#: src/Module/Group.php:177 #: src/Module/Group.php:176
msgid "Create a group of contacts/friends." msgid "Create a group of contacts/friends."
msgstr "" msgstr ""
#: src/Module/Group.php:219 #: src/Module/Group.php:218
msgid "Unable to remove group." msgid "Unable to remove group."
msgstr "" msgstr ""
#: src/Module/Group.php:270 #: src/Module/Group.php:269
msgid "Delete Group" msgid "Delete Group"
msgstr "" msgstr ""
#: src/Module/Group.php:280 #: src/Module/Group.php:279
msgid "Edit Group Name" msgid "Edit Group Name"
msgstr "" msgstr ""
#: src/Module/Group.php:290 #: src/Module/Group.php:289
msgid "Members" msgid "Members"
msgstr "" msgstr ""
#: src/Module/Group.php:293 #: src/Module/Group.php:292
msgid "Group is empty" msgid "Group is empty"
msgstr "" msgstr ""
#: src/Module/Group.php:306 #: src/Module/Group.php:305
msgid "Remove contact from group" msgid "Remove contact from group"
msgstr "" msgstr ""
#: src/Module/Group.php:327 #: src/Module/Group.php:326
msgid "Click on a contact to add or remove." msgid "Click on a contact to add or remove."
msgstr "" msgstr ""
#: src/Module/Group.php:341 #: src/Module/Group.php:340
msgid "Add contact to group" msgid "Add contact to group"
msgstr "" msgstr ""
#: src/Module/HCard.php:46 #: src/Module/HCard.php:45
msgid "No profile" msgid "No profile"
msgstr "" msgstr ""
@ -7829,7 +7829,7 @@ msgstr ""
msgid "Help:" msgid "Help:"
msgstr "" msgstr ""
#: src/Module/Home.php:55 #: src/Module/Home.php:54
#, php-format #, php-format
msgid "Welcome to %s" msgid "Welcome to %s"
msgstr "" msgstr ""
@ -7990,40 +7990,40 @@ msgid ""
"administrator email. This will allow you to enter the site admin panel." "administrator email. This will allow you to enter the site admin panel."
msgstr "" msgstr ""
#: src/Module/Invite.php:58 #: src/Module/Invite.php:57
msgid "Total invitation limit exceeded." msgid "Total invitation limit exceeded."
msgstr "" msgstr ""
#: src/Module/Invite.php:83 #: src/Module/Invite.php:82
#, php-format #, php-format
msgid "%s : Not a valid email address." msgid "%s : Not a valid email address."
msgstr "" msgstr ""
#: src/Module/Invite.php:109 #: src/Module/Invite.php:108
msgid "Please join us on Friendica" msgid "Please join us on Friendica"
msgstr "" msgstr ""
#: src/Module/Invite.php:118 #: src/Module/Invite.php:117
msgid "Invitation limit exceeded. Please contact your site administrator." msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr "" msgstr ""
#: src/Module/Invite.php:122 #: src/Module/Invite.php:121
#, php-format #, php-format
msgid "%s : Message delivery failed." msgid "%s : Message delivery failed."
msgstr "" msgstr ""
#: src/Module/Invite.php:126 #: src/Module/Invite.php:125
#, php-format #, php-format
msgid "%d message sent." msgid "%d message sent."
msgid_plural "%d messages sent." msgid_plural "%d messages sent."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Invite.php:144 #: src/Module/Invite.php:143
msgid "You have no more invitations available" msgid "You have no more invitations available"
msgstr "" msgstr ""
#: src/Module/Invite.php:151 #: src/Module/Invite.php:150
#, php-format #, php-format
msgid "" msgid ""
"Visit %s for a list of public sites that you can join. Friendica members on " "Visit %s for a list of public sites that you can join. Friendica members on "
@ -8031,14 +8031,14 @@ msgid ""
"other social networks." "other social networks."
msgstr "" msgstr ""
#: src/Module/Invite.php:153 #: src/Module/Invite.php:152
#, php-format #, php-format
msgid "" msgid ""
"To accept this invitation, please visit and register at %s or any other " "To accept this invitation, please visit and register at %s or any other "
"public Friendica website." "public Friendica website."
msgstr "" msgstr ""
#: src/Module/Invite.php:154 #: src/Module/Invite.php:153
#, php-format #, php-format
msgid "" msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social " "Friendica sites all inter-connect to create a huge privacy-enhanced social "
@ -8047,94 +8047,94 @@ msgid ""
"sites you can join." "sites you can join."
msgstr "" msgstr ""
#: src/Module/Invite.php:158 #: src/Module/Invite.php:157
msgid "" msgid ""
"Our apologies. This system is not currently configured to connect with other " "Our apologies. This system is not currently configured to connect with other "
"public sites or invite members." "public sites or invite members."
msgstr "" msgstr ""
#: src/Module/Invite.php:161 #: src/Module/Invite.php:160
msgid "" msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social " "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 " "web that is owned and controlled by its members. They can also connect with "
"many traditional social networks." "many traditional social networks."
msgstr "" msgstr ""
#: src/Module/Invite.php:160 #: src/Module/Invite.php:159
#, php-format #, php-format
msgid "To accept this invitation, please visit and register at %s." msgid "To accept this invitation, please visit and register at %s."
msgstr "" msgstr ""
#: src/Module/Invite.php:168 #: src/Module/Invite.php:167
msgid "Send invitations" msgid "Send invitations"
msgstr "" msgstr ""
#: src/Module/Invite.php:169 #: src/Module/Invite.php:168
msgid "Enter email addresses, one per line:" msgid "Enter email addresses, one per line:"
msgstr "" msgstr ""
#: src/Module/Invite.php:173 #: src/Module/Invite.php:172
msgid "" msgid ""
"You are cordially invited to join me and other close friends on Friendica - " "You are cordially invited to join me and other close friends on Friendica - "
"and help us to create a better social web." "and help us to create a better social web."
msgstr "" msgstr ""
#: src/Module/Invite.php:175 #: src/Module/Invite.php:174
msgid "You will need to supply this invitation code: $invite_code" msgid "You will need to supply this invitation code: $invite_code"
msgstr "" msgstr ""
#: src/Module/Invite.php:175 #: src/Module/Invite.php:174
msgid "" msgid ""
"Once you have registered, please connect with me via my profile page at:" "Once you have registered, please connect with me via my profile page at:"
msgstr "" msgstr ""
#: src/Module/Invite.php:177 #: src/Module/Invite.php:176
msgid "" msgid ""
"For more information about the Friendica project and why we feel it is " "For more information about the Friendica project and why we feel it is "
"important, please visit http://friendi.ca" "important, please visit http://friendi.ca"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:86 #: src/Module/Item/Compose.php:85
msgid "Please enter a post body." msgid "Please enter a post body."
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:99 #: src/Module/Item/Compose.php:98
msgid "This feature is only available with the frio theme." msgid "This feature is only available with the frio theme."
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:123 #: src/Module/Item/Compose.php:122
msgid "Compose new personal note" msgid "Compose new personal note"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:132 #: src/Module/Item/Compose.php:131
msgid "Compose new post" msgid "Compose new post"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:188 #: src/Module/Item/Compose.php:187
msgid "Visibility" msgid "Visibility"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:202 #: src/Module/Item/Compose.php:201
msgid "Clear the location" msgid "Clear the location"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:203 #: src/Module/Item/Compose.php:202
msgid "Location services are unavailable on your device" msgid "Location services are unavailable on your device"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:204 #: src/Module/Item/Compose.php:203
msgid "" msgid ""
"Location services are disabled. Please check the website's permissions on " "Location services are disabled. Please check the website's permissions on "
"your device" "your device"
msgstr "" msgstr ""
#: src/Module/Item/Compose.php:210 #: src/Module/Item/Compose.php:209
msgid "" msgid ""
"You can make this page always open when you use the New Post button in the " "You can make this page always open when you use the New Post button in the "
"<a href=\"/settings/display\">Theme Customization settings</a>." "<a href=\"/settings/display\">Theme Customization settings</a>."
msgstr "" msgstr ""
#: src/Module/Item/Follow.php:52 #: src/Module/Item/Follow.php:51
msgid "Unable to follow this item." msgid "Unable to follow this item."
msgstr "" msgstr ""
@ -8175,8 +8175,8 @@ msgid "Claims to be known to you: "
msgstr "" msgstr ""
#: src/Module/Notifications/Introductions.php:144 #: src/Module/Notifications/Introductions.php:144
#: src/Module/OAuth/Acknowledge.php:54 src/Module/Register.php:132 #: src/Module/OAuth/Acknowledge.php:54 src/Module/Register.php:131
#: src/Module/Settings/TwoFactor/Trusted.php:126 #: src/Module/Settings/TwoFactor/Trusted.php:125
msgid "No" msgid "No"
msgstr "" msgstr ""
@ -8211,40 +8211,40 @@ msgid "No introductions."
msgstr "" msgstr ""
#: src/Module/Notifications/Introductions.php:217 #: src/Module/Notifications/Introductions.php:217
#: src/Module/Notifications/Notifications.php:134 #: src/Module/Notifications/Notifications.php:135
#, php-format #, php-format
msgid "No more %s notifications." msgid "No more %s notifications."
msgstr "" msgstr ""
#: src/Module/Notifications/Notification.php:136 #: src/Module/Notifications/Notification.php:135
msgid "You must be logged in to show this page." msgid "You must be logged in to show this page."
msgstr "" msgstr ""
#: src/Module/Notifications/Notifications.php:65 #: src/Module/Notifications/Notifications.php:66
msgid "Network Notifications" msgid "Network Notifications"
msgstr "" msgstr ""
#: src/Module/Notifications/Notifications.php:71 #: src/Module/Notifications/Notifications.php:72
msgid "System Notifications" msgid "System Notifications"
msgstr "" msgstr ""
#: src/Module/Notifications/Notifications.php:77 #: src/Module/Notifications/Notifications.php:78
msgid "Personal Notifications" msgid "Personal Notifications"
msgstr "" msgstr ""
#: src/Module/Notifications/Notifications.php:83 #: src/Module/Notifications/Notifications.php:84
msgid "Home Notifications" msgid "Home Notifications"
msgstr "" msgstr ""
#: src/Module/Notifications/Notifications.php:139 #: src/Module/Notifications/Notifications.php:140
msgid "Show unread" msgid "Show unread"
msgstr "" msgstr ""
#: src/Module/Notifications/Ping.php:225 #: src/Module/Notifications/Ping.php:224
msgid "{0} requested registration" msgid "{0} requested registration"
msgstr "" msgstr ""
#: src/Module/Notifications/Ping.php:236 #: src/Module/Notifications/Ping.php:235
#, php-format #, php-format
msgid "{0} and %d others requested registration" msgid "{0} and %d others requested registration"
msgstr "" msgstr ""
@ -8259,15 +8259,15 @@ msgid ""
"and/or create new posts for you?" "and/or create new posts for you?"
msgstr "" msgstr ""
#: src/Module/OAuth/Authorize.php:55 #: src/Module/OAuth/Authorize.php:54
msgid "Unsupported or missing response type" msgid "Unsupported or missing response type"
msgstr "" msgstr ""
#: src/Module/OAuth/Authorize.php:60 src/Module/OAuth/Token.php:72 #: src/Module/OAuth/Authorize.php:59 src/Module/OAuth/Token.php:72
msgid "Incomplete request data" msgid "Incomplete request data"
msgstr "" msgstr ""
#: src/Module/OAuth/Authorize.php:107 #: src/Module/OAuth/Authorize.php:106
#, php-format #, php-format
msgid "" msgid ""
"Please copy the following authentication code into your application and " "Please copy the following authentication code into your application and "
@ -8278,308 +8278,308 @@ msgstr ""
msgid "Unsupported or missing grant type" msgid "Unsupported or missing grant type"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:50 #: src/Module/PermissionTooltip.php:49
#, php-format #, php-format
msgid "Wrong type \"%s\", expected one of: %s" msgid "Wrong type \"%s\", expected one of: %s"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:67 #: src/Module/PermissionTooltip.php:66
msgid "Model not found" msgid "Model not found"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:90 #: src/Module/PermissionTooltip.php:89
msgid "Unlisted" msgid "Unlisted"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:108 #: src/Module/PermissionTooltip.php:107
msgid "Remote privacy information not available." msgid "Remote privacy information not available."
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:117 #: src/Module/PermissionTooltip.php:116
msgid "Visible to:" msgid "Visible to:"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:201 #: src/Module/PermissionTooltip.php:200
#, php-format #, php-format
msgid "Collection (%s)" msgid "Collection (%s)"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:205 #: src/Module/PermissionTooltip.php:204
#, php-format #, php-format
msgid "Followers (%s)" msgid "Followers (%s)"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:224 #: src/Module/PermissionTooltip.php:223
#, php-format #, php-format
msgid "%d more" msgid "%d more"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:228 #: src/Module/PermissionTooltip.php:227
#, php-format #, php-format
msgid "<b>To:</b> %s<br>" msgid "<b>To:</b> %s<br>"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:231 #: src/Module/PermissionTooltip.php:230
#, php-format #, php-format
msgid "<b>CC:</b> %s<br>" msgid "<b>CC:</b> %s<br>"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:234 #: src/Module/PermissionTooltip.php:233
#, php-format #, php-format
msgid "<b>BCC:</b> %s<br>" msgid "<b>BCC:</b> %s<br>"
msgstr "" msgstr ""
#: src/Module/Photo.php:129 #: src/Module/Photo.php:128
msgid "The Photo is not available." msgid "The Photo is not available."
msgstr "" msgstr ""
#: src/Module/Photo.php:142 #: src/Module/Photo.php:141
#, php-format #, php-format
msgid "The Photo with id %s is not available." msgid "The Photo with id %s is not available."
msgstr "" msgstr ""
#: src/Module/Photo.php:175 #: src/Module/Photo.php:174
#, php-format #, php-format
msgid "Invalid external resource with url %s." msgid "Invalid external resource with url %s."
msgstr "" msgstr ""
#: src/Module/Photo.php:177 #: src/Module/Photo.php:176
#, php-format #, php-format
msgid "Invalid photo with id %s." msgid "Invalid photo with id %s."
msgstr "" msgstr ""
#: src/Module/Profile/Contacts.php:120 #: src/Module/Profile/Contacts.php:119
msgid "No contacts." msgid "No contacts."
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:82 #: src/Module/Profile/Profile.php:81
msgid "Profile not found." msgid "Profile not found."
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:135 #: src/Module/Profile/Profile.php:134
#, php-format #, php-format
msgid "" msgid ""
"You're currently viewing your profile as <b>%s</b> <a href=\"%s\" class=" "You're currently viewing your profile as <b>%s</b> <a href=\"%s\" class="
"\"btn btn-sm pull-right\">Cancel</a>" "\"btn btn-sm pull-right\">Cancel</a>"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:144 src/Module/Settings/Account.php:580 #: src/Module/Profile/Profile.php:143 src/Module/Settings/Account.php:579
msgid "Full Name:" msgid "Full Name:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:149 #: src/Module/Profile/Profile.php:148
msgid "Member since:" msgid "Member since:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:155 #: src/Module/Profile/Profile.php:154
msgid "j F, Y" msgid "j F, Y"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:156 #: src/Module/Profile/Profile.php:155
msgid "j F" msgid "j F"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:164 src/Util/Temporal.php:167 #: src/Module/Profile/Profile.php:163 src/Util/Temporal.php:166
msgid "Birthday:" msgid "Birthday:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:167 src/Module/Settings/Profile/Index.php:246 #: src/Module/Profile/Profile.php:166 src/Module/Settings/Profile/Index.php:245
#: src/Util/Temporal.php:169 #: src/Util/Temporal.php:168
msgid "Age: " msgid "Age: "
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:167 src/Module/Settings/Profile/Index.php:246 #: src/Module/Profile/Profile.php:166 src/Module/Settings/Profile/Index.php:245
#: src/Util/Temporal.php:169 #: src/Util/Temporal.php:168
#, php-format #, php-format
msgid "%d year old" msgid "%d year old"
msgid_plural "%d years old" msgid_plural "%d years old"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Profile/Profile.php:234 #: src/Module/Profile/Profile.php:233
msgid "Forums:" msgid "Forums:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:246 #: src/Module/Profile/Profile.php:245
msgid "View profile as:" msgid "View profile as:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:263 #: src/Module/Profile/Profile.php:262
msgid "View as" msgid "View as"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:326 src/Module/Profile/Profile.php:329 #: src/Module/Profile/Profile.php:325 src/Module/Profile/Profile.php:328
#: src/Module/Profile/Status.php:66 src/Module/Profile/Status.php:69 #: src/Module/Profile/Status.php:65 src/Module/Profile/Status.php:68
#: src/Protocol/Feed.php:1028 src/Protocol/OStatus.php:1047 #: src/Protocol/Feed.php:1028 src/Protocol/OStatus.php:1047
#, php-format #, php-format
msgid "%s's timeline" msgid "%s's timeline"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:327 src/Module/Profile/Status.php:67 #: src/Module/Profile/Profile.php:326 src/Module/Profile/Status.php:66
#: src/Protocol/Feed.php:1032 src/Protocol/OStatus.php:1052 #: src/Protocol/Feed.php:1032 src/Protocol/OStatus.php:1052
#, php-format #, php-format
msgid "%s's posts" msgid "%s's posts"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:328 src/Module/Profile/Status.php:68 #: src/Module/Profile/Profile.php:327 src/Module/Profile/Status.php:67
#: src/Protocol/Feed.php:1035 src/Protocol/OStatus.php:1056 #: src/Protocol/Feed.php:1035 src/Protocol/OStatus.php:1056
#, php-format #, php-format
msgid "%s's comments" msgid "%s's comments"
msgstr "" msgstr ""
#: src/Module/Profile/Schedule.php:85 #: src/Module/Profile/Schedule.php:84
msgid "Scheduled" msgid "Scheduled"
msgstr "" msgstr ""
#: src/Module/Profile/Schedule.php:86 #: src/Module/Profile/Schedule.php:85
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: src/Module/Profile/Schedule.php:87 #: src/Module/Profile/Schedule.php:86
msgid "Remove post" msgid "Remove post"
msgstr "" msgstr ""
#: src/Module/Register.php:85 #: src/Module/Register.php:84
msgid "Only parent users can create additional accounts." msgid "Only parent users can create additional accounts."
msgstr "" msgstr ""
#: src/Module/Register.php:117 #: src/Module/Register.php:116
msgid "" msgid ""
"You may (optionally) fill in this form via OpenID by supplying your OpenID " "You may (optionally) fill in this form via OpenID by supplying your OpenID "
"and clicking \"Register\"." "and clicking \"Register\"."
msgstr "" msgstr ""
#: src/Module/Register.php:118 #: src/Module/Register.php:117
msgid "" msgid ""
"If you are not familiar with OpenID, please leave that field blank and fill " "If you are not familiar with OpenID, please leave that field blank and fill "
"in the rest of the items." "in the rest of the items."
msgstr "" msgstr ""
#: src/Module/Register.php:119 #: src/Module/Register.php:118
msgid "Your OpenID (optional): " msgid "Your OpenID (optional): "
msgstr "" msgstr ""
#: src/Module/Register.php:128 #: src/Module/Register.php:127
msgid "Include your profile in member directory?" msgid "Include your profile in member directory?"
msgstr "" msgstr ""
#: src/Module/Register.php:149 #: src/Module/Register.php:148
msgid "Note for the admin" msgid "Note for the admin"
msgstr "" msgstr ""
#: src/Module/Register.php:149 #: src/Module/Register.php:148
msgid "Leave a message for the admin, why you want to join this node" msgid "Leave a message for the admin, why you want to join this node"
msgstr "" msgstr ""
#: src/Module/Register.php:150 #: src/Module/Register.php:149
msgid "Membership on this site is by invitation only." msgid "Membership on this site is by invitation only."
msgstr "" msgstr ""
#: src/Module/Register.php:151 #: src/Module/Register.php:150
msgid "Your invitation code: " msgid "Your invitation code: "
msgstr "" msgstr ""
#: src/Module/Register.php:159 #: src/Module/Register.php:158
msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
msgstr "" msgstr ""
#: src/Module/Register.php:160 #: src/Module/Register.php:159
msgid "" msgid ""
"Your Email Address: (Initial information will be send there, so this has to " "Your Email Address: (Initial information will be send there, so this has to "
"be an existing address.)" "be an existing address.)"
msgstr "" msgstr ""
#: src/Module/Register.php:161 #: src/Module/Register.php:160
msgid "Please repeat your e-mail address:" msgid "Please repeat your e-mail address:"
msgstr "" msgstr ""
#: src/Module/Register.php:163 src/Module/Security/PasswordTooLong.php:98 #: src/Module/Register.php:162 src/Module/Security/PasswordTooLong.php:101
#: src/Module/Settings/Account.php:571 #: src/Module/Settings/Account.php:570
msgid "New Password:" msgid "New Password:"
msgstr "" msgstr ""
#: src/Module/Register.php:163 #: src/Module/Register.php:162
msgid "Leave empty for an auto generated password." msgid "Leave empty for an auto generated password."
msgstr "" msgstr ""
#: src/Module/Register.php:164 src/Module/Security/PasswordTooLong.php:99 #: src/Module/Register.php:163 src/Module/Security/PasswordTooLong.php:102
#: src/Module/Settings/Account.php:572 #: src/Module/Settings/Account.php:571
msgid "Confirm:" msgid "Confirm:"
msgstr "" msgstr ""
#: src/Module/Register.php:165 #: src/Module/Register.php:164
#, php-format #, php-format
msgid "" msgid ""
"Choose a profile nickname. This must begin with a text character. Your " "Choose a profile nickname. This must begin with a text character. Your "
"profile address on this site will then be \"<strong>nickname@%s</strong>\"." "profile address on this site will then be \"<strong>nickname@%s</strong>\"."
msgstr "" msgstr ""
#: src/Module/Register.php:166 #: src/Module/Register.php:165
msgid "Choose a nickname: " msgid "Choose a nickname: "
msgstr "" msgstr ""
#: src/Module/Register.php:175 #: src/Module/Register.php:174
msgid "Import your profile to this friendica instance" msgid "Import your profile to this friendica instance"
msgstr "" msgstr ""
#: src/Module/Register.php:182 #: src/Module/Register.php:181
msgid "Note: This node explicitly contains adult content" msgid "Note: This node explicitly contains adult content"
msgstr "" msgstr ""
#: src/Module/Register.php:184 src/Module/Settings/Delegation.php:155 #: src/Module/Register.php:183 src/Module/Settings/Delegation.php:154
msgid "Parent Password:" msgid "Parent Password:"
msgstr "" msgstr ""
#: src/Module/Register.php:184 src/Module/Settings/Delegation.php:155 #: src/Module/Register.php:183 src/Module/Settings/Delegation.php:154
msgid "" msgid ""
"Please enter the password of the parent account to legitimize your request." "Please enter the password of the parent account to legitimize your request."
msgstr "" msgstr ""
#: src/Module/Register.php:213 #: src/Module/Register.php:212
msgid "Password doesn't match." msgid "Password doesn't match."
msgstr "" msgstr ""
#: src/Module/Register.php:219 #: src/Module/Register.php:218
msgid "Please enter your password." msgid "Please enter your password."
msgstr "" msgstr ""
#: src/Module/Register.php:261 #: src/Module/Register.php:260
msgid "You have entered too much information." msgid "You have entered too much information."
msgstr "" msgstr ""
#: src/Module/Register.php:284 #: src/Module/Register.php:283
msgid "Please enter the identical mail address in the second field." msgid "Please enter the identical mail address in the second field."
msgstr "" msgstr ""
#: src/Module/Register.php:311 #: src/Module/Register.php:310
msgid "The additional account was created." msgid "The additional account was created."
msgstr "" msgstr ""
#: src/Module/Register.php:336 #: src/Module/Register.php:335
msgid "" msgid ""
"Registration successful. Please check your email for further instructions." "Registration successful. Please check your email for further instructions."
msgstr "" msgstr ""
#: src/Module/Register.php:340 #: src/Module/Register.php:339
#, php-format #, php-format
msgid "" msgid ""
"Failed to send email message. Here your accout details:<br> login: %s<br> " "Failed to send email message. Here your accout details:<br> login: %s<br> "
"password: %s<br><br>You can change your password after login." "password: %s<br><br>You can change your password after login."
msgstr "" msgstr ""
#: src/Module/Register.php:346 #: src/Module/Register.php:345
msgid "Registration successful." msgid "Registration successful."
msgstr "" msgstr ""
#: src/Module/Register.php:351 src/Module/Register.php:358 #: src/Module/Register.php:350 src/Module/Register.php:357
msgid "Your registration can not be processed." msgid "Your registration can not be processed."
msgstr "" msgstr ""
#: src/Module/Register.php:357 #: src/Module/Register.php:356
msgid "You have to leave a request note for the admin." msgid "You have to leave a request note for the admin."
msgstr "" msgstr ""
#: src/Module/Register.php:403 #: src/Module/Register.php:402
msgid "Your registration is pending approval by the site owner." msgid "Your registration is pending approval by the site owner."
msgstr "" msgstr ""
@ -8624,86 +8624,86 @@ msgstr ""
msgid "Your Webfinger address or profile URL:" msgid "Your Webfinger address or profile URL:"
msgstr "" msgstr ""
#: src/Module/Search/Acl.php:56 #: src/Module/Search/Acl.php:55
msgid "You must be logged in to use this module." msgid "You must be logged in to use this module."
msgstr "" msgstr ""
#: src/Module/Search/Index.php:69 #: src/Module/Search/Index.php:68
msgid "Only logged in users are permitted to perform a search." msgid "Only logged in users are permitted to perform a search."
msgstr "" msgstr ""
#: src/Module/Search/Index.php:89 #: src/Module/Search/Index.php:88
msgid "Only one search per minute is permitted for not logged in users." msgid "Only one search per minute is permitted for not logged in users."
msgstr "" msgstr ""
#: src/Module/Search/Index.php:205 #: src/Module/Search/Index.php:204
#, php-format #, php-format
msgid "Items tagged with: %s" msgid "Items tagged with: %s"
msgstr "" msgstr ""
#: src/Module/Search/Saved.php:60 #: src/Module/Search/Saved.php:59
msgid "Search term was not saved." msgid "Search term was not saved."
msgstr "" msgstr ""
#: src/Module/Search/Saved.php:63 #: src/Module/Search/Saved.php:62
msgid "Search term already saved." msgid "Search term already saved."
msgstr "" msgstr ""
#: src/Module/Search/Saved.php:69 #: src/Module/Search/Saved.php:68
msgid "Search term was not removed." msgid "Search term was not removed."
msgstr "" msgstr ""
#: src/Module/Security/Login.php:124 #: src/Module/Security/Login.php:123
msgid "Create a New Account" msgid "Create a New Account"
msgstr "" msgstr ""
#: src/Module/Security/Login.php:144 #: src/Module/Security/Login.php:143
msgid "Your OpenID: " msgid "Your OpenID: "
msgstr "" msgstr ""
#: src/Module/Security/Login.php:147 #: src/Module/Security/Login.php:146
msgid "" msgid ""
"Please enter your username and password to add the OpenID to your existing " "Please enter your username and password to add the OpenID to your existing "
"account." "account."
msgstr "" msgstr ""
#: src/Module/Security/Login.php:149 #: src/Module/Security/Login.php:148
msgid "Or login using OpenID: " msgid "Or login using OpenID: "
msgstr "" msgstr ""
#: src/Module/Security/Login.php:163 #: src/Module/Security/Login.php:162
msgid "Password: " msgid "Password: "
msgstr "" msgstr ""
#: src/Module/Security/Login.php:164 #: src/Module/Security/Login.php:163
msgid "Remember me" msgid "Remember me"
msgstr "" msgstr ""
#: src/Module/Security/Login.php:173 #: src/Module/Security/Login.php:172
msgid "Forgot your password?" msgid "Forgot your password?"
msgstr "" msgstr ""
#: src/Module/Security/Login.php:176 #: src/Module/Security/Login.php:175
msgid "Website Terms of Service" msgid "Website Terms of Service"
msgstr "" msgstr ""
#: src/Module/Security/Login.php:177 #: src/Module/Security/Login.php:176
msgid "terms of service" msgid "terms of service"
msgstr "" msgstr ""
#: src/Module/Security/Login.php:179 #: src/Module/Security/Login.php:178
msgid "Website Privacy Policy" msgid "Website Privacy Policy"
msgstr "" msgstr ""
#: src/Module/Security/Login.php:180 #: src/Module/Security/Login.php:179
msgid "privacy policy" msgid "privacy policy"
msgstr "" msgstr ""
#: src/Module/Security/Logout.php:85 #: src/Module/Security/Logout.php:84
#: src/Module/Security/TwoFactor/SignOut.php:80 #: src/Module/Security/TwoFactor/SignOut.php:79
#: src/Module/Security/TwoFactor/SignOut.php:88 #: src/Module/Security/TwoFactor/SignOut.php:87
#: src/Module/Security/TwoFactor/SignOut.php:110 #: src/Module/Security/TwoFactor/SignOut.php:109
#: src/Module/Security/TwoFactor/SignOut.php:117 #: src/Module/Security/TwoFactor/SignOut.php:116
msgid "Logged out." msgid "Logged out."
msgstr "" msgstr ""
@ -8723,271 +8723,271 @@ msgid ""
"account to add the OpenID to it." "account to add the OpenID to it."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:54 #: src/Module/Security/PasswordTooLong.php:57
#: src/Module/Settings/Account.php:68 #: src/Module/Settings/Account.php:67
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:61 #: src/Module/Security/PasswordTooLong.php:64
msgid "Password does not need changing." msgid "Password does not need changing."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:74 #: src/Module/Security/PasswordTooLong.php:77
#: src/Module/Settings/Account.php:82 #: src/Module/Settings/Account.php:81
msgid "Password unchanged." msgid "Password unchanged."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:88 #: src/Module/Security/PasswordTooLong.php:91
msgid "Password Too Long" msgid "Password Too Long"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:89 #: src/Module/Security/PasswordTooLong.php:92
msgid "" msgid ""
"Since version 2022.09, we've realized that any password longer than 72 " "Since version 2022.09, we've realized that any password longer than 72 "
"characters is truncated during hashing. To prevent any confusion about this " "characters is truncated during hashing. To prevent any confusion about this "
"behavior, please update your password to be fewer or equal to 72 characters." "behavior, please update your password to be fewer or equal to 72 characters."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:90 #: src/Module/Security/PasswordTooLong.php:93
msgid "Update Password" msgid "Update Password"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:97 #: src/Module/Security/PasswordTooLong.php:100
#: src/Module/Settings/Account.php:573 #: src/Module/Settings/Account.php:572
msgid "Current Password:" msgid "Current Password:"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:97 #: src/Module/Security/PasswordTooLong.php:100
#: src/Module/Settings/Account.php:573 #: src/Module/Settings/Account.php:572
msgid "Your current password to confirm the changes" msgid "Your current password to confirm the changes"
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:98 #: src/Module/Security/PasswordTooLong.php:101
#: src/Module/Settings/Account.php:556 #: src/Module/Settings/Account.php:555
msgid "" msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white " "Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)." "spaces, accentuated letters and colon (:)."
msgstr "" msgstr ""
#: src/Module/Security/PasswordTooLong.php:98 #: src/Module/Security/PasswordTooLong.php:101
#: src/Module/Settings/Account.php:557 #: src/Module/Settings/Account.php:556
msgid "Password length is limited to 72 characters." msgid "Password length is limited to 72 characters."
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:75 #: src/Module/Security/TwoFactor/Recovery.php:74
#, php-format #, php-format
msgid "Remaining recovery codes: %d" msgid "Remaining recovery codes: %d"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:81 #: src/Module/Security/TwoFactor/Recovery.php:80
#: src/Module/Security/TwoFactor/Verify.php:78 #: src/Module/Security/TwoFactor/Verify.php:81
#: src/Module/Settings/TwoFactor/Verify.php:95 #: src/Module/Settings/TwoFactor/Verify.php:94
msgid "Invalid code, please retry." msgid "Invalid code, please retry."
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:100 #: src/Module/Security/TwoFactor/Recovery.php:99
msgid "Two-factor recovery" msgid "Two-factor recovery"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:101 #: src/Module/Security/TwoFactor/Recovery.php:100
msgid "" msgid ""
"<p>You can enter one of your one-time recovery codes in case you lost access " "<p>You can enter one of your one-time recovery codes in case you lost access "
"to your mobile device.</p>" "to your mobile device.</p>"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:102 #: src/Module/Security/TwoFactor/Recovery.php:101
#, php-format #, php-format
msgid "" msgid ""
"Dont have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>" "Dont have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:103 #: src/Module/Security/TwoFactor/Recovery.php:102
msgid "Please enter a recovery code" msgid "Please enter a recovery code"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:104 #: src/Module/Security/TwoFactor/Recovery.php:103
msgid "Submit recovery code and complete login" msgid "Submit recovery code and complete login"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:124 #: src/Module/Security/TwoFactor/SignOut.php:123
msgid "Sign out of this browser?" msgid "Sign out of this browser?"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:125 #: src/Module/Security/TwoFactor/SignOut.php:124
msgid "" msgid ""
"<p>If you trust this browser, you will not be asked for verification code " "<p>If you trust this browser, you will not be asked for verification code "
"the next time you sign in.</p>" "the next time you sign in.</p>"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:126 #: src/Module/Security/TwoFactor/SignOut.php:125
msgid "Sign out" msgid "Sign out"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:128 #: src/Module/Security/TwoFactor/SignOut.php:127
msgid "Trust and sign out" msgid "Trust and sign out"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:97 #: src/Module/Security/TwoFactor/Trust.php:96
msgid "Couldn't save browser to Cookie." msgid "Couldn't save browser to Cookie."
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:142 #: src/Module/Security/TwoFactor/Trust.php:141
msgid "Trust this browser?" msgid "Trust this browser?"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:143 #: src/Module/Security/TwoFactor/Trust.php:142
msgid "" msgid ""
"<p>If you choose to trust this browser, you will not be asked for a " "<p>If you choose to trust this browser, you will not be asked for a "
"verification code the next time you sign in.</p>" "verification code the next time you sign in.</p>"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:144 #: src/Module/Security/TwoFactor/Trust.php:143
msgid "Not now" msgid "Not now"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:145 #: src/Module/Security/TwoFactor/Trust.php:144
msgid "Don't trust" msgid "Don't trust"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:146 #: src/Module/Security/TwoFactor/Trust.php:145
msgid "Trust" msgid "Trust"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:98 #: src/Module/Security/TwoFactor/Verify.php:101
msgid "" msgid ""
"<p>Open the two-factor authentication app on your device to get an " "<p>Open the two-factor authentication app on your device to get an "
"authentication code and verify your identity.</p>" "authentication code and verify your identity.</p>"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:101 #: src/Module/Security/TwoFactor/Verify.php:104
#, php-format #, php-format
msgid "" msgid ""
"If you do not have access to your authentication code you can use a <a href=" "If you do not have access to your authentication code you can use a <a href="
"\"%s\">two-factor recovery code</a>." "\"%s\">two-factor recovery code</a>."
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:102 #: src/Module/Security/TwoFactor/Verify.php:105
#: src/Module/Settings/TwoFactor/Verify.php:155 #: src/Module/Settings/TwoFactor/Verify.php:154
msgid "Please enter a code from your authentication app" msgid "Please enter a code from your authentication app"
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:103 #: src/Module/Security/TwoFactor/Verify.php:106
msgid "Verify code and complete login" msgid "Verify code and complete login"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:97 #: src/Module/Settings/Account.php:96
msgid "Please use a shorter name." msgid "Please use a shorter name."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:100 #: src/Module/Settings/Account.php:99
msgid "Name too short." msgid "Name too short."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:109 #: src/Module/Settings/Account.php:108
msgid "Wrong Password." msgid "Wrong Password."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:114 #: src/Module/Settings/Account.php:113
msgid "Invalid email." msgid "Invalid email."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:120 #: src/Module/Settings/Account.php:119
msgid "Cannot change to that email." msgid "Cannot change to that email."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:150 src/Module/Settings/Account.php:202 #: src/Module/Settings/Account.php:149 src/Module/Settings/Account.php:201
#: src/Module/Settings/Account.php:222 src/Module/Settings/Account.php:306 #: src/Module/Settings/Account.php:221 src/Module/Settings/Account.php:305
#: src/Module/Settings/Account.php:355 #: src/Module/Settings/Account.php:354
msgid "Settings were not updated." msgid "Settings were not updated."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:367 #: src/Module/Settings/Account.php:366
msgid "Contact CSV file upload error" msgid "Contact CSV file upload error"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:386 #: src/Module/Settings/Account.php:385
msgid "Importing Contacts done" msgid "Importing Contacts done"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:399 #: src/Module/Settings/Account.php:398
msgid "Relocate message has been send to your contacts" msgid "Relocate message has been send to your contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:416 #: src/Module/Settings/Account.php:415
msgid "Unable to find your profile. Please contact your admin." msgid "Unable to find your profile. Please contact your admin."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:458 #: src/Module/Settings/Account.php:457
msgid "Personal Page Subtypes" msgid "Personal Page Subtypes"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:459 #: src/Module/Settings/Account.php:458
msgid "Community Forum Subtypes" msgid "Community Forum Subtypes"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:469 #: src/Module/Settings/Account.php:468
msgid "Account for a personal profile." msgid "Account for a personal profile."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:476 #: src/Module/Settings/Account.php:475
msgid "" msgid ""
"Account for an organisation that automatically approves contact requests as " "Account for an organisation that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:483 #: src/Module/Settings/Account.php:482
msgid "" msgid ""
"Account for a news reflector that automatically approves contact requests as " "Account for a news reflector that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:490 #: src/Module/Settings/Account.php:489
msgid "Account for community discussions." msgid "Account for community discussions."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:497 #: src/Module/Settings/Account.php:496
msgid "" msgid ""
"Account for a regular personal profile that requires manual approval of " "Account for a regular personal profile that requires manual approval of "
"\"Friends\" and \"Followers\"." "\"Friends\" and \"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:504 #: src/Module/Settings/Account.php:503
msgid "" msgid ""
"Account for a public profile that automatically approves contact requests as " "Account for a public profile that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:511 #: src/Module/Settings/Account.php:510
msgid "Automatically approves all contact requests." msgid "Automatically approves all contact requests."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:518 #: src/Module/Settings/Account.php:517
msgid "" msgid ""
"Account for a popular profile that automatically approves contact requests " "Account for a popular profile that automatically approves contact requests "
"as \"Friends\"." "as \"Friends\"."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:523 #: src/Module/Settings/Account.php:522
msgid "Private Forum [Experimental]" msgid "Private Forum [Experimental]"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:525 #: src/Module/Settings/Account.php:524
msgid "Requires manual approval of contact requests." msgid "Requires manual approval of contact requests."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:534 #: src/Module/Settings/Account.php:533
msgid "OpenID:" msgid "OpenID:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:534 #: src/Module/Settings/Account.php:533
msgid "(Optional) Allow this OpenID to login to this account." msgid "(Optional) Allow this OpenID to login to this account."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:542 #: src/Module/Settings/Account.php:541
msgid "Publish your profile in your local site directory?" msgid "Publish your profile in your local site directory?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:542 #: src/Module/Settings/Account.php:541
#, php-format #, php-format
msgid "" msgid ""
"Your profile will be published in this node's <a href=\"%s\">local " "Your profile will be published in this node's <a href=\"%s\">local "
@ -8995,89 +8995,89 @@ msgid ""
"system settings." "system settings."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:548 #: src/Module/Settings/Account.php:547
#, php-format #, php-format
msgid "" msgid ""
"Your profile will also be published in the global friendica directories (e." "Your profile will also be published in the global friendica directories (e."
"g. <a href=\"%s\">%s</a>)." "g. <a href=\"%s\">%s</a>)."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:561 #: src/Module/Settings/Account.php:560
msgid "Account Settings" msgid "Account Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:562 #: src/Module/Settings/Account.php:561
#, php-format #, php-format
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'." msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:570 #: src/Module/Settings/Account.php:569
msgid "Password Settings" msgid "Password Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:572 #: src/Module/Settings/Account.php:571
msgid "Leave password fields blank unless changing" msgid "Leave password fields blank unless changing"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:574 #: src/Module/Settings/Account.php:573
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:574 #: src/Module/Settings/Account.php:573
msgid "Your current password to confirm the changes of the email address" msgid "Your current password to confirm the changes of the email address"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:577 #: src/Module/Settings/Account.php:576
msgid "Delete OpenID URL" msgid "Delete OpenID URL"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:579 #: src/Module/Settings/Account.php:578
msgid "Basic Settings" msgid "Basic Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:581 #: src/Module/Settings/Account.php:580
msgid "Email Address:" msgid "Email Address:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:582 #: src/Module/Settings/Account.php:581
msgid "Your Timezone:" msgid "Your Timezone:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:583 #: src/Module/Settings/Account.php:582
msgid "Your Language:" msgid "Your Language:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:583 #: src/Module/Settings/Account.php:582
msgid "" msgid ""
"Set the language we use to show you friendica interface and to send you " "Set the language we use to show you friendica interface and to send you "
"emails" "emails"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:584 #: src/Module/Settings/Account.php:583
msgid "Default Post Location:" msgid "Default Post Location:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:585 #: src/Module/Settings/Account.php:584
msgid "Use Browser Location:" msgid "Use Browser Location:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:587 #: src/Module/Settings/Account.php:586
msgid "Security and Privacy Settings" msgid "Security and Privacy Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:589 #: src/Module/Settings/Account.php:588
msgid "Maximum Friend Requests/Day:" msgid "Maximum Friend Requests/Day:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:589 src/Module/Settings/Account.php:599 #: src/Module/Settings/Account.php:588 src/Module/Settings/Account.php:598
msgid "(to prevent spam abuse)" msgid "(to prevent spam abuse)"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:591 #: src/Module/Settings/Account.php:590
msgid "Allow your profile to be searchable globally?" msgid "Allow your profile to be searchable globally?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:591 #: src/Module/Settings/Account.php:590
msgid "" msgid ""
"Activate this setting if you want others to easily find and follow you. Your " "Activate this setting if you want others to easily find and follow you. Your "
"profile will be searchable on remote systems. This setting also determines " "profile will be searchable on remote systems. This setting also determines "
@ -9085,43 +9085,43 @@ msgid ""
"indexed or not." "indexed or not."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:592 #: src/Module/Settings/Account.php:591
msgid "Hide your contact/friend list from viewers of your profile?" msgid "Hide your contact/friend list from viewers of your profile?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:592 #: src/Module/Settings/Account.php:591
msgid "" msgid ""
"A list of your contacts is displayed on your profile page. Activate this " "A list of your contacts is displayed on your profile page. Activate this "
"option to disable the display of your contact list." "option to disable the display of your contact list."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:593 #: src/Module/Settings/Account.php:592
msgid "Hide your profile details from anonymous viewers?" msgid "Hide your profile details from anonymous viewers?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:593 #: src/Module/Settings/Account.php:592
msgid "" msgid ""
"Anonymous visitors will only see your profile picture, your display name and " "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 " "the nickname you are using on your profile page. Your public posts and "
"replies will still be accessible by other means." "replies will still be accessible by other means."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:594 #: src/Module/Settings/Account.php:593
msgid "Make public posts unlisted" msgid "Make public posts unlisted"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:594 #: src/Module/Settings/Account.php:593
msgid "" msgid ""
"Your public posts will not appear on the community pages or in search " "Your public posts will not appear on the community pages or in search "
"results, nor be sent to relay servers. However they can still appear on " "results, nor be sent to relay servers. However they can still appear on "
"public feeds on remote servers." "public feeds on remote servers."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:595 #: src/Module/Settings/Account.php:594
msgid "Make all posted pictures accessible" msgid "Make all posted pictures accessible"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:595 #: src/Module/Settings/Account.php:594
msgid "" msgid ""
"This option makes every posted picture accessible via the direct link. This " "This option makes every posted picture accessible via the direct link. This "
"is a workaround for the problem that most other networks can't handle " "is a workaround for the problem that most other networks can't handle "
@ -9129,566 +9129,566 @@ msgid ""
"public on your photo albums though." "public on your photo albums though."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:596 #: src/Module/Settings/Account.php:595
msgid "Allow friends to post to your profile page?" msgid "Allow friends to post to your profile page?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:596 #: src/Module/Settings/Account.php:595
msgid "" msgid ""
"Your contacts may write posts on your profile wall. These posts will be " "Your contacts may write posts on your profile wall. These posts will be "
"distributed to your contacts" "distributed to your contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:597 #: src/Module/Settings/Account.php:596
msgid "Allow friends to tag your posts?" msgid "Allow friends to tag your posts?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:597 #: src/Module/Settings/Account.php:596
msgid "Your contacts can add additional tags to your posts." msgid "Your contacts can add additional tags to your posts."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:598 #: src/Module/Settings/Account.php:597
msgid "Permit unknown people to send you private mail?" msgid "Permit unknown people to send you private mail?"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:598 #: src/Module/Settings/Account.php:597
msgid "" msgid ""
"Friendica network users may send you private messages even if they are not " "Friendica network users may send you private messages even if they are not "
"in your contact list." "in your contact list."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:599 #: src/Module/Settings/Account.php:598
msgid "Maximum private messages per day from unknown people:" msgid "Maximum private messages per day from unknown people:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:601 #: src/Module/Settings/Account.php:600
msgid "Default Post Permissions" msgid "Default Post Permissions"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:605 #: src/Module/Settings/Account.php:604
msgid "Expiration settings" msgid "Expiration settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:606 #: src/Module/Settings/Account.php:605
msgid "Automatically expire posts after this many days:" msgid "Automatically expire posts after this many days:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:606 #: src/Module/Settings/Account.php:605
msgid "If empty, posts will not expire. Expired posts will be deleted" msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:607 #: src/Module/Settings/Account.php:606
msgid "Expire posts" msgid "Expire posts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:607 #: src/Module/Settings/Account.php:606
msgid "When activated, posts and comments will be expired." msgid "When activated, posts and comments will be expired."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:608 #: src/Module/Settings/Account.php:607
msgid "Expire personal notes" msgid "Expire personal notes"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:608 #: src/Module/Settings/Account.php:607
msgid "" msgid ""
"When activated, the personal notes on your profile page will be expired." "When activated, the personal notes on your profile page will be expired."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:609 #: src/Module/Settings/Account.php:608
msgid "Expire starred posts" msgid "Expire starred posts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:609 #: src/Module/Settings/Account.php:608
msgid "" msgid ""
"Starring posts keeps them from being expired. That behaviour is overwritten " "Starring posts keeps them from being expired. That behaviour is overwritten "
"by this setting." "by this setting."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:610 #: src/Module/Settings/Account.php:609
msgid "Only expire posts by others" msgid "Only expire posts by others"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:610 #: src/Module/Settings/Account.php:609
msgid "" msgid ""
"When activated, your own posts never expire. Then the settings above are " "When activated, your own posts never expire. Then the settings above are "
"only valid for posts you received." "only valid for posts you received."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:613 #: src/Module/Settings/Account.php:612
msgid "Notification Settings" msgid "Notification Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:614 #: src/Module/Settings/Account.php:613
msgid "Send a notification email when:" msgid "Send a notification email when:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:615 #: src/Module/Settings/Account.php:614
msgid "You receive an introduction" msgid "You receive an introduction"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:616 #: src/Module/Settings/Account.php:615
msgid "Your introductions are confirmed" msgid "Your introductions are confirmed"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:617 #: src/Module/Settings/Account.php:616
msgid "Someone writes on your profile wall" msgid "Someone writes on your profile wall"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:618 #: src/Module/Settings/Account.php:617
msgid "Someone writes a followup comment" msgid "Someone writes a followup comment"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:619 #: src/Module/Settings/Account.php:618
msgid "You receive a private message" msgid "You receive a private message"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:620 #: src/Module/Settings/Account.php:619
msgid "You receive a friend suggestion" msgid "You receive a friend suggestion"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:621 #: src/Module/Settings/Account.php:620
msgid "You are tagged in a post" msgid "You are tagged in a post"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:623 #: src/Module/Settings/Account.php:622
msgid "Create a desktop notification when:" msgid "Create a desktop notification when:"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:624 #: src/Module/Settings/Account.php:623
msgid "Someone tagged you" msgid "Someone tagged you"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:625 #: src/Module/Settings/Account.php:624
msgid "Someone directly commented on your post" msgid "Someone directly commented on your post"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:626 #: src/Module/Settings/Account.php:625
msgid "Someone liked your content" msgid "Someone liked your content"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:626 src/Module/Settings/Account.php:627 #: src/Module/Settings/Account.php:625 src/Module/Settings/Account.php:626
msgid "Can only be enabled, when the direct comment notification is enabled." msgid "Can only be enabled, when the direct comment notification is enabled."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:627 #: src/Module/Settings/Account.php:626
msgid "Someone shared your content" msgid "Someone shared your content"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:628 #: src/Module/Settings/Account.php:627
msgid "Someone commented in your thread" msgid "Someone commented in your thread"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:629 #: src/Module/Settings/Account.php:628
msgid "Someone commented in a thread where you commented" msgid "Someone commented in a thread where you commented"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:630 #: src/Module/Settings/Account.php:629
msgid "Someone commented in a thread where you interacted" msgid "Someone commented in a thread where you interacted"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:632 #: src/Module/Settings/Account.php:631
msgid "Activate desktop notifications" msgid "Activate desktop notifications"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:632 #: src/Module/Settings/Account.php:631
msgid "Show desktop popup on new notifications" msgid "Show desktop popup on new notifications"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:636 #: src/Module/Settings/Account.php:635
msgid "Text-only notification emails" msgid "Text-only notification emails"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:638 #: src/Module/Settings/Account.php:637
msgid "Send text only notification emails, without the html part" msgid "Send text only notification emails, without the html part"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:642 #: src/Module/Settings/Account.php:641
msgid "Show detailled notifications" msgid "Show detailled notifications"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:644 #: src/Module/Settings/Account.php:643
msgid "" msgid ""
"Per default, notifications are condensed to a single notification per item. " "Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed." "When enabled every notification is displayed."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:648 #: src/Module/Settings/Account.php:647
msgid "Show notifications of ignored contacts" msgid "Show notifications of ignored contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:650 #: src/Module/Settings/Account.php:649
msgid "" msgid ""
"You don't see posts from ignored contacts. But you still see their comments. " "You don't see posts from ignored contacts. But you still see their comments. "
"This setting controls if you want to still receive regular notifications " "This setting controls if you want to still receive regular notifications "
"that are caused by ignored contacts or not." "that are caused by ignored contacts or not."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:653 #: src/Module/Settings/Account.php:652
msgid "Advanced Account/Page Type Settings" msgid "Advanced Account/Page Type Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:654 #: src/Module/Settings/Account.php:653
msgid "Change the behaviour of this account for special situations" msgid "Change the behaviour of this account for special situations"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:657 #: src/Module/Settings/Account.php:656
msgid "Import Contacts" msgid "Import Contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:658 #: src/Module/Settings/Account.php:657
msgid "" msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the " "Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account." "first column you exported from the old account."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:659 #: src/Module/Settings/Account.php:658
msgid "Upload File" msgid "Upload File"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:662 #: src/Module/Settings/Account.php:661
msgid "Relocate" msgid "Relocate"
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:663 #: src/Module/Settings/Account.php:662
msgid "" msgid ""
"If you have moved this profile from another server, and some of your " "If you have moved this profile from another server, and some of your "
"contacts don't receive your updates, try pushing this button." "contacts don't receive your updates, try pushing this button."
msgstr "" msgstr ""
#: src/Module/Settings/Account.php:664 #: src/Module/Settings/Account.php:663
msgid "Resend relocate message to contacts" msgid "Resend relocate message to contacts"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:53 #: src/Module/Settings/Delegation.php:52
msgid "Delegation successfully granted." msgid "Delegation successfully granted."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:55 #: src/Module/Settings/Delegation.php:54
msgid "Parent user not found, unavailable or password doesn't match." msgid "Parent user not found, unavailable or password doesn't match."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:59 #: src/Module/Settings/Delegation.php:58
msgid "Delegation successfully revoked." msgid "Delegation successfully revoked."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:81 src/Module/Settings/Delegation.php:103 #: src/Module/Settings/Delegation.php:80 src/Module/Settings/Delegation.php:102
msgid "" msgid ""
"Delegated administrators can view but not change delegation permissions." "Delegated administrators can view but not change delegation permissions."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:95 #: src/Module/Settings/Delegation.php:94
msgid "Delegate user not found." msgid "Delegate user not found."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:143 #: src/Module/Settings/Delegation.php:142
msgid "No parent user" msgid "No parent user"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:154 #: src/Module/Settings/Delegation.php:153
#: src/Module/Settings/Delegation.php:165 #: src/Module/Settings/Delegation.php:164
msgid "Parent User" msgid "Parent User"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:162 #: src/Module/Settings/Delegation.php:161
msgid "Additional Accounts" msgid "Additional Accounts"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:163 #: src/Module/Settings/Delegation.php:162
msgid "" msgid ""
"Register additional accounts that are automatically connected to your " "Register additional accounts that are automatically connected to your "
"existing account so you can manage them from this account." "existing account so you can manage them from this account."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:164 #: src/Module/Settings/Delegation.php:163
msgid "Register an additional account" msgid "Register an additional account"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:168 #: src/Module/Settings/Delegation.php:167
msgid "" msgid ""
"Parent users have total control about this account, including the account " "Parent users have total control about this account, including the account "
"settings. Please double check whom you give this access." "settings. Please double check whom you give this access."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:172 #: src/Module/Settings/Delegation.php:171
msgid "Delegates" msgid "Delegates"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:174 #: src/Module/Settings/Delegation.php:173
msgid "" msgid ""
"Delegates are able to manage all aspects of this account/page except for " "Delegates are able to manage all aspects of this account/page except for "
"basic account settings. Please do not delegate your personal account to " "basic account settings. Please do not delegate your personal account to "
"anybody that you do not trust completely." "anybody that you do not trust completely."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:175 #: src/Module/Settings/Delegation.php:174
msgid "Existing Page Delegates" msgid "Existing Page Delegates"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:177 #: src/Module/Settings/Delegation.php:176
msgid "Potential Delegates" msgid "Potential Delegates"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:180 #: src/Module/Settings/Delegation.php:179
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:181 #: src/Module/Settings/Delegation.php:180
msgid "No entries." msgid "No entries."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:107 #: src/Module/Settings/Display.php:106
msgid "The theme you chose isn't available." msgid "The theme you chose isn't available."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:146 #: src/Module/Settings/Display.php:145
#, php-format #, php-format
msgid "%s - (Unsupported)" msgid "%s - (Unsupported)"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:200 #: src/Module/Settings/Display.php:199
msgid "Display Settings" msgid "Display Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:202 #: src/Module/Settings/Display.php:201
msgid "General Theme Settings" msgid "General Theme Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:203 #: src/Module/Settings/Display.php:202
msgid "Custom Theme Settings" msgid "Custom Theme Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:204 #: src/Module/Settings/Display.php:203
msgid "Content Settings" msgid "Content Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:205 view/theme/duepuntozero/config.php:87 #: src/Module/Settings/Display.php:204 view/theme/duepuntozero/config.php:86
#: view/theme/frio/config.php:173 view/theme/quattro/config.php:89 #: view/theme/frio/config.php:172 view/theme/quattro/config.php:88
#: view/theme/vier/config.php:137 #: view/theme/vier/config.php:136
msgid "Theme settings" msgid "Theme settings"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:206 #: src/Module/Settings/Display.php:205
msgid "Calendar" msgid "Calendar"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:212 #: src/Module/Settings/Display.php:211
msgid "Display Theme:" msgid "Display Theme:"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:213 #: src/Module/Settings/Display.php:212
msgid "Mobile Theme:" msgid "Mobile Theme:"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:216 #: src/Module/Settings/Display.php:215
msgid "Number of items to display per page:" msgid "Number of items to display per page:"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:216 src/Module/Settings/Display.php:217 #: src/Module/Settings/Display.php:215 src/Module/Settings/Display.php:216
msgid "Maximum of 100 items" msgid "Maximum of 100 items"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:217 #: src/Module/Settings/Display.php:216
msgid "Number of items to display per page when viewed from mobile device:" msgid "Number of items to display per page when viewed from mobile device:"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:218 #: src/Module/Settings/Display.php:217
msgid "Update browser every xx seconds" msgid "Update browser every xx seconds"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:218 #: src/Module/Settings/Display.php:217
msgid "Minimum of 10 seconds. Enter -1 to disable it." msgid "Minimum of 10 seconds. Enter -1 to disable it."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:219 #: src/Module/Settings/Display.php:218
msgid "Automatic updates only at the top of the post stream pages" msgid "Automatic updates only at the top of the post stream pages"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:219 #: src/Module/Settings/Display.php:218
msgid "" msgid ""
"Auto update may add new posts at the top of the post stream pages, which can " "Auto update may add new posts at the top of the post stream pages, which can "
"affect the scroll position and perturb normal reading if it happens anywhere " "affect the scroll position and perturb normal reading if it happens anywhere "
"else the top of the page." "else the top of the page."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:220 #: src/Module/Settings/Display.php:219
msgid "Display emoticons" msgid "Display emoticons"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:220 #: src/Module/Settings/Display.php:219
msgid "When enabled, emoticons are replaced with matching symbols." msgid "When enabled, emoticons are replaced with matching symbols."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:221 #: src/Module/Settings/Display.php:220
msgid "Infinite scroll" msgid "Infinite scroll"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:221 #: src/Module/Settings/Display.php:220
msgid "Automatic fetch new items when reaching the page end." msgid "Automatic fetch new items when reaching the page end."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:222 #: src/Module/Settings/Display.php:221
msgid "Enable Smart Threading" msgid "Enable Smart Threading"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:222 #: src/Module/Settings/Display.php:221
msgid "Enable the automatic suppression of extraneous thread indentation." msgid "Enable the automatic suppression of extraneous thread indentation."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:223 #: src/Module/Settings/Display.php:222
msgid "Display the Dislike feature" msgid "Display the Dislike feature"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:223 #: src/Module/Settings/Display.php:222
msgid "Display the Dislike button and dislike reactions on posts and comments." msgid "Display the Dislike button and dislike reactions on posts and comments."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:224 #: src/Module/Settings/Display.php:223
msgid "Display the resharer" msgid "Display the resharer"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:224 #: src/Module/Settings/Display.php:223
msgid "Display the first resharer as icon and text on a reshared item." msgid "Display the first resharer as icon and text on a reshared item."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:225 #: src/Module/Settings/Display.php:224
msgid "Stay local" msgid "Stay local"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:225 #: src/Module/Settings/Display.php:224
msgid "Don't go to a remote system when following a contact link." msgid "Don't go to a remote system when following a contact link."
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:227 #: src/Module/Settings/Display.php:226
msgid "Beginning of week:" msgid "Beginning of week:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:84 #: src/Module/Settings/Profile/Index.php:83
msgid "Profile Name is required." msgid "Profile Name is required."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:132 #: src/Module/Settings/Profile/Index.php:131
msgid "Profile couldn't be updated." msgid "Profile couldn't be updated."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:172
#: src/Module/Settings/Profile/Index.php:192
msgid "Label:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:173 #: src/Module/Settings/Profile/Index.php:173
#: src/Module/Settings/Profile/Index.php:193 #: src/Module/Settings/Profile/Index.php:193
msgid "Label:" msgid "Value:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:174 #: src/Module/Settings/Profile/Index.php:183
#: src/Module/Settings/Profile/Index.php:194 #: src/Module/Settings/Profile/Index.php:203
msgid "Value:" msgid "Field Permissions"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:184 #: src/Module/Settings/Profile/Index.php:184
#: src/Module/Settings/Profile/Index.php:204 #: src/Module/Settings/Profile/Index.php:204
msgid "Field Permissions"
msgstr ""
#: src/Module/Settings/Profile/Index.php:185
#: src/Module/Settings/Profile/Index.php:205
msgid "(click to open/close)" msgid "(click to open/close)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:191 #: src/Module/Settings/Profile/Index.php:190
msgid "Add a new profile field" msgid "Add a new profile field"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:221 #: src/Module/Settings/Profile/Index.php:220
msgid "Profile Actions" msgid "Profile Actions"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:222 #: src/Module/Settings/Profile/Index.php:221
msgid "Edit Profile Details" msgid "Edit Profile Details"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:224 #: src/Module/Settings/Profile/Index.php:223
msgid "Change Profile Photo" msgid "Change Profile Photo"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:229 #: src/Module/Settings/Profile/Index.php:228
msgid "Profile picture" msgid "Profile picture"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:230 #: src/Module/Settings/Profile/Index.php:229
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:231 src/Util/Temporal.php:96 #: src/Module/Settings/Profile/Index.php:230 src/Util/Temporal.php:95
#: src/Util/Temporal.php:98 #: src/Util/Temporal.php:97
msgid "Miscellaneous" msgid "Miscellaneous"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:232 #: src/Module/Settings/Profile/Index.php:231
msgid "Custom Profile Fields" msgid "Custom Profile Fields"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:234 src/Module/Welcome.php:58 #: src/Module/Settings/Profile/Index.php:233 src/Module/Welcome.php:58
msgid "Upload Profile Photo" msgid "Upload Profile Photo"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:238 #: src/Module/Settings/Profile/Index.php:237
msgid "Display name:" msgid "Display name:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:241 #: src/Module/Settings/Profile/Index.php:240
msgid "Street Address:" msgid "Street Address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:242 #: src/Module/Settings/Profile/Index.php:241
msgid "Locality/City:" msgid "Locality/City:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:243 #: src/Module/Settings/Profile/Index.php:242
msgid "Region/State:" msgid "Region/State:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:244 #: src/Module/Settings/Profile/Index.php:243
msgid "Postal/Zip Code:" msgid "Postal/Zip Code:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:245 #: src/Module/Settings/Profile/Index.php:244
msgid "Country:" msgid "Country:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:247 #: src/Module/Settings/Profile/Index.php:246
msgid "XMPP (Jabber) address:" msgid "XMPP (Jabber) address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:247 #: src/Module/Settings/Profile/Index.php:246
msgid "The XMPP address will be published so that people can follow you there." msgid "The XMPP address will be published so that people can follow you there."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:248 #: src/Module/Settings/Profile/Index.php:247
msgid "Matrix (Element) address:" msgid "Matrix (Element) address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:248 #: src/Module/Settings/Profile/Index.php:247
msgid "" msgid ""
"The Matrix address will be published so that people can follow you there." "The Matrix address will be published so that people can follow you there."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:249 #: src/Module/Settings/Profile/Index.php:248
msgid "Homepage URL:" msgid "Homepage URL:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:250 #: src/Module/Settings/Profile/Index.php:249
msgid "Public Keywords:" msgid "Public Keywords:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:250 #: src/Module/Settings/Profile/Index.php:249
msgid "(Used for suggesting potential friends, can be seen by others)" msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:251 #: src/Module/Settings/Profile/Index.php:250
msgid "Private Keywords:" msgid "Private Keywords:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:251 #: src/Module/Settings/Profile/Index.php:250
msgid "(Used for searching profiles, never shown to others)" msgid "(Used for searching profiles, never shown to others)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:252 #: src/Module/Settings/Profile/Index.php:251
#, php-format #, php-format
msgid "" msgid ""
"<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>\n" "<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>\n"
@ -9699,257 +9699,257 @@ msgid ""
"contacts or the Friendica contacts in the selected groups.</p>" "contacts or the Friendica contacts in the selected groups.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:108 #: src/Module/Settings/Profile/Photo/Crop.php:107
#: src/Module/Settings/Profile/Photo/Crop.php:126 #: src/Module/Settings/Profile/Photo/Crop.php:125
#: src/Module/Settings/Profile/Photo/Crop.php:144 #: src/Module/Settings/Profile/Photo/Crop.php:143
#: src/Module/Settings/Profile/Photo/Index.php:102 #: src/Module/Settings/Profile/Photo/Index.php:101
#, php-format #, php-format
msgid "Image size reduction [%s] failed." msgid "Image size reduction [%s] failed."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:151 #: src/Module/Settings/Profile/Photo/Crop.php:150
msgid "" msgid ""
"Shift-reload the page or clear browser cache if the new photo does not " "Shift-reload the page or clear browser cache if the new photo does not "
"display immediately." "display immediately."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:156 #: src/Module/Settings/Profile/Photo/Crop.php:155
msgid "Unable to process image" msgid "Unable to process image"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:175 #: src/Module/Settings/Profile/Photo/Crop.php:174
msgid "Photo not found." msgid "Photo not found."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:197 #: src/Module/Settings/Profile/Photo/Crop.php:196
msgid "Profile picture successfully updated." msgid "Profile picture successfully updated."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:223 #: src/Module/Settings/Profile/Photo/Crop.php:222
#: src/Module/Settings/Profile/Photo/Crop.php:227 #: src/Module/Settings/Profile/Photo/Crop.php:226
msgid "Crop Image" msgid "Crop Image"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:224 #: src/Module/Settings/Profile/Photo/Crop.php:223
msgid "Please adjust the image cropping for optimum viewing." msgid "Please adjust the image cropping for optimum viewing."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Crop.php:226 #: src/Module/Settings/Profile/Photo/Crop.php:225
msgid "Use Image As Is" msgid "Use Image As Is"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:46 #: src/Module/Settings/Profile/Photo/Index.php:45
msgid "Missing uploaded image." msgid "Missing uploaded image."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:125 #: src/Module/Settings/Profile/Photo/Index.php:124
msgid "Profile Picture Settings" msgid "Profile Picture Settings"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:126 #: src/Module/Settings/Profile/Photo/Index.php:125
msgid "Current Profile Picture" msgid "Current Profile Picture"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:127 #: src/Module/Settings/Profile/Photo/Index.php:126
msgid "Upload Profile Picture" msgid "Upload Profile Picture"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:128 #: src/Module/Settings/Profile/Photo/Index.php:127
msgid "Upload Picture:" msgid "Upload Picture:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:133 #: src/Module/Settings/Profile/Photo/Index.php:132
msgid "or" msgid "or"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:135 #: src/Module/Settings/Profile/Photo/Index.php:134
msgid "skip this step" msgid "skip this step"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Photo/Index.php:137 #: src/Module/Settings/Profile/Photo/Index.php:136
msgid "select a photo from your photo albums" msgid "select a photo from your photo albums"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:66 #: src/Module/Settings/TwoFactor/AppSpecific.php:65
#: src/Module/Settings/TwoFactor/Recovery.php:64 #: src/Module/Settings/TwoFactor/Recovery.php:63
#: src/Module/Settings/TwoFactor/Trusted.php:67 #: src/Module/Settings/TwoFactor/Trusted.php:66
#: src/Module/Settings/TwoFactor/Verify.php:69 #: src/Module/Settings/TwoFactor/Verify.php:68
msgid "Please enter your password to access this page." msgid "Please enter your password to access this page."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:84 #: src/Module/Settings/TwoFactor/AppSpecific.php:83
msgid "App-specific password generation failed: The description is empty." msgid "App-specific password generation failed: The description is empty."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:87 #: src/Module/Settings/TwoFactor/AppSpecific.php:86
msgid "" msgid ""
"App-specific password generation failed: This description already exists." "App-specific password generation failed: This description already exists."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:91 #: src/Module/Settings/TwoFactor/AppSpecific.php:90
msgid "New app-specific password generated." msgid "New app-specific password generated."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:97 #: src/Module/Settings/TwoFactor/AppSpecific.php:96
msgid "App-specific passwords successfully revoked." msgid "App-specific passwords successfully revoked."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:107 #: src/Module/Settings/TwoFactor/AppSpecific.php:106
msgid "App-specific password successfully revoked." msgid "App-specific password successfully revoked."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:128 #: src/Module/Settings/TwoFactor/AppSpecific.php:127
msgid "Two-factor app-specific passwords" msgid "Two-factor app-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:130 #: src/Module/Settings/TwoFactor/AppSpecific.php:129
msgid "" msgid ""
"<p>App-specific passwords are randomly generated passwords used instead your " "<p>App-specific passwords are randomly generated passwords used instead your "
"regular password to authenticate your account on third-party applications " "regular password to authenticate your account on third-party applications "
"that don't support two-factor authentication.</p>" "that don't support two-factor authentication.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:131 #: src/Module/Settings/TwoFactor/AppSpecific.php:130
msgid "" msgid ""
"Make sure to copy your new app-specific password now. You wont be able to " "Make sure to copy your new app-specific password now. You wont be able to "
"see it again!" "see it again!"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:134 #: src/Module/Settings/TwoFactor/AppSpecific.php:133
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:135 #: src/Module/Settings/TwoFactor/AppSpecific.php:134
msgid "Last Used" msgid "Last Used"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:136 #: src/Module/Settings/TwoFactor/AppSpecific.php:135
msgid "Revoke" msgid "Revoke"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:137 #: src/Module/Settings/TwoFactor/AppSpecific.php:136
msgid "Revoke All" msgid "Revoke All"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:140 #: src/Module/Settings/TwoFactor/AppSpecific.php:139
msgid "" msgid ""
"When you generate a new app-specific password, you must use it right away, " "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." "it will be shown to you once after you generate it."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:141 #: src/Module/Settings/TwoFactor/AppSpecific.php:140
msgid "Generate new app-specific password" msgid "Generate new app-specific password"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:142 #: src/Module/Settings/TwoFactor/AppSpecific.php:141
msgid "Friendiqa on my Fairphone 2..." msgid "Friendiqa on my Fairphone 2..."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:143 #: src/Module/Settings/TwoFactor/AppSpecific.php:142
msgid "Generate" msgid "Generate"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:69 #: src/Module/Settings/TwoFactor/Index.php:68
msgid "Two-factor authentication successfully disabled." msgid "Two-factor authentication successfully disabled."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:121 #: src/Module/Settings/TwoFactor/Index.php:120
msgid "" msgid ""
"<p>Use an application on a mobile device to get two-factor authentication " "<p>Use an application on a mobile device to get two-factor authentication "
"codes when prompted on login.</p>" "codes when prompted on login.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:125 #: src/Module/Settings/TwoFactor/Index.php:124
msgid "Authenticator app" msgid "Authenticator app"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:126 #: src/Module/Settings/TwoFactor/Index.php:125
msgid "Configured" msgid "Configured"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:126 #: src/Module/Settings/TwoFactor/Index.php:125
msgid "Not Configured" msgid "Not Configured"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:127 #: src/Module/Settings/TwoFactor/Index.php:126
msgid "<p>You haven't finished configuring your authenticator app.</p>" msgid "<p>You haven't finished configuring your authenticator app.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:128 #: src/Module/Settings/TwoFactor/Index.php:127
msgid "<p>Your authenticator app is correctly configured.</p>" msgid "<p>Your authenticator app is correctly configured.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:130 #: src/Module/Settings/TwoFactor/Index.php:129
msgid "Recovery codes" msgid "Recovery codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:131 #: src/Module/Settings/TwoFactor/Index.php:130
msgid "Remaining valid codes" msgid "Remaining valid codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:133 #: src/Module/Settings/TwoFactor/Index.php:132
msgid "" msgid ""
"<p>These one-use codes can replace an authenticator app code in case you " "<p>These one-use codes can replace an authenticator app code in case you "
"have lost access to it.</p>" "have lost access to it.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:135 #: src/Module/Settings/TwoFactor/Index.php:134
msgid "App-specific passwords" msgid "App-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:136 #: src/Module/Settings/TwoFactor/Index.php:135
msgid "Generated app-specific passwords" msgid "Generated app-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:138 #: src/Module/Settings/TwoFactor/Index.php:137
msgid "" msgid ""
"<p>These randomly generated passwords allow you to authenticate on apps not " "<p>These randomly generated passwords allow you to authenticate on apps not "
"supporting two-factor authentication.</p>" "supporting two-factor authentication.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:141 #: src/Module/Settings/TwoFactor/Index.php:140
msgid "Current password:" msgid "Current password:"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:141 #: src/Module/Settings/TwoFactor/Index.php:140
msgid "" msgid ""
"You need to provide your current password to change two-factor " "You need to provide your current password to change two-factor "
"authentication settings." "authentication settings."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:142 #: src/Module/Settings/TwoFactor/Index.php:141
msgid "Enable two-factor authentication" msgid "Enable two-factor authentication"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:143 #: src/Module/Settings/TwoFactor/Index.php:142
msgid "Disable two-factor authentication" msgid "Disable two-factor authentication"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:144 #: src/Module/Settings/TwoFactor/Index.php:143
msgid "Show recovery codes" msgid "Show recovery codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:145 #: src/Module/Settings/TwoFactor/Index.php:144
msgid "Manage app-specific passwords" msgid "Manage app-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:146 #: src/Module/Settings/TwoFactor/Index.php:145
msgid "Manage trusted browsers" msgid "Manage trusted browsers"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:147 #: src/Module/Settings/TwoFactor/Index.php:146
msgid "Finish app configuration" msgid "Finish app configuration"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:80 #: src/Module/Settings/TwoFactor/Recovery.php:79
msgid "New recovery codes successfully generated." msgid "New recovery codes successfully generated."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:106 #: src/Module/Settings/TwoFactor/Recovery.php:105
msgid "Two-factor recovery codes" msgid "Two-factor recovery codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:108 #: src/Module/Settings/TwoFactor/Recovery.php:107
msgid "" msgid ""
"<p>Recovery codes can be used to access your account in the event you lose " "<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.</" "access to your device and cannot receive two-factor authentication codes.</"
@ -9957,68 +9957,68 @@ msgid ""
"dont have the recovery codes you will lose access to your account.</p>" "dont have the recovery codes you will lose access to your account.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:110 #: src/Module/Settings/TwoFactor/Recovery.php:109
msgid "" msgid ""
"When you generate new recovery codes, you must copy the new codes. Your old " "When you generate new recovery codes, you must copy the new codes. Your old "
"codes wont work anymore." "codes wont work anymore."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:111 #: src/Module/Settings/TwoFactor/Recovery.php:110
msgid "Generate new recovery codes" msgid "Generate new recovery codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:113 #: src/Module/Settings/TwoFactor/Recovery.php:112
msgid "Next: Verification" msgid "Next: Verification"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:84 #: src/Module/Settings/TwoFactor/Trusted.php:83
msgid "Trusted browsers successfully removed." msgid "Trusted browsers successfully removed."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:94 #: src/Module/Settings/TwoFactor/Trusted.php:93
msgid "Trusted browser successfully removed." msgid "Trusted browser successfully removed."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:136 #: src/Module/Settings/TwoFactor/Trusted.php:135
msgid "Two-factor Trusted Browsers" msgid "Two-factor Trusted Browsers"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:137 #: src/Module/Settings/TwoFactor/Trusted.php:136
msgid "" msgid ""
"Trusted browsers are individual browsers you chose to skip two-factor " "Trusted browsers are individual browsers you chose to skip two-factor "
"authentication to access Friendica. Please use this feature sparingly, as it " "authentication to access Friendica. Please use this feature sparingly, as it "
"can negate the benefit of two-factor authentication." "can negate the benefit of two-factor authentication."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:138 #: src/Module/Settings/TwoFactor/Trusted.php:137
msgid "Device" msgid "Device"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:139 #: src/Module/Settings/TwoFactor/Trusted.php:138
msgid "OS" msgid "OS"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:141 #: src/Module/Settings/TwoFactor/Trusted.php:140
msgid "Trusted" msgid "Trusted"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:142 #: src/Module/Settings/TwoFactor/Trusted.php:141
msgid "Created At" msgid "Created At"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:143 #: src/Module/Settings/TwoFactor/Trusted.php:142
msgid "Last Use" msgid "Last Use"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:145 #: src/Module/Settings/TwoFactor/Trusted.php:144
msgid "Remove All" msgid "Remove All"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:91 #: src/Module/Settings/TwoFactor/Verify.php:90
msgid "Two-factor authentication successfully activated." msgid "Two-factor authentication successfully activated."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:125 #: src/Module/Settings/TwoFactor/Verify.php:124
#, php-format #, php-format
msgid "" msgid ""
"<p>Or you can submit the authentication settings manually:</p>\n" "<p>Or you can submit the authentication settings manually:</p>\n"
@ -10038,53 +10038,53 @@ msgid ""
"</dl>" "</dl>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:145 #: src/Module/Settings/TwoFactor/Verify.php:144
msgid "Two-factor code verification" msgid "Two-factor code verification"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:147 #: src/Module/Settings/TwoFactor/Verify.php:146
msgid "" msgid ""
"<p>Please scan this QR Code with your authenticator app and submit the " "<p>Please scan this QR Code with your authenticator app and submit the "
"provided code.</p>" "provided code.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:149 #: src/Module/Settings/TwoFactor/Verify.php:148
#, php-format #, php-format
msgid "" msgid ""
"<p>Or you can open the following URL in your mobile device:</p><p><a href=" "<p>Or you can open the following URL in your mobile device:</p><p><a href="
"\"%s\">%s</a></p>" "\"%s\">%s</a></p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:156 #: src/Module/Settings/TwoFactor/Verify.php:155
msgid "Verify code and enable two-factor authentication" msgid "Verify code and enable two-factor authentication"
msgstr "" msgstr ""
#: src/Module/Settings/UserExport.php:69 #: src/Module/Settings/UserExport.php:94
msgid "Export account" msgid "Export account"
msgstr "" msgstr ""
#: src/Module/Settings/UserExport.php:69 #: src/Module/Settings/UserExport.php:94
msgid "" msgid ""
"Export your account info and contacts. Use this to make a backup of your " "Export your account info and contacts. Use this to make a backup of your "
"account and/or to move it to another server." "account and/or to move it to another server."
msgstr "" msgstr ""
#: src/Module/Settings/UserExport.php:70 #: src/Module/Settings/UserExport.php:95
msgid "Export all" msgid "Export all"
msgstr "" msgstr ""
#: src/Module/Settings/UserExport.php:70 #: src/Module/Settings/UserExport.php:95
msgid "" msgid ""
"Export your account info, contacts and all your items as json. Could be a " "Export your account 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 " "very big file, and could take a lot of time. Use this to make a full backup "
"of your account (photos are not exported)" "of your account (photos are not exported)"
msgstr "" msgstr ""
#: src/Module/Settings/UserExport.php:71 #: src/Module/Settings/UserExport.php:96
msgid "Export Contacts to CSV" msgid "Export Contacts to CSV"
msgstr "" msgstr ""
#: src/Module/Settings/UserExport.php:71 #: src/Module/Settings/UserExport.php:96
msgid "" msgid ""
"Export the list of the accounts you are following as CSV file. Compatible to " "Export the list of the accounts you are following as CSV file. Compatible to "
"e.g. Mastodon." "e.g. Mastodon."
@ -10298,64 +10298,64 @@ msgid ""
"features and resources." "features and resources."
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNavNotification.php:135 #: src/Navigation/Notifications/Factory/FormattedNavNotification.php:138
msgid "{0} wants to follow you" msgid "{0} wants to follow you"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNavNotification.php:137 #: src/Navigation/Notifications/Factory/FormattedNavNotification.php:140
msgid "{0} has started following you" msgid "{0} has started following you"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:93 #: src/Navigation/Notifications/Factory/FormattedNotify.php:96
#, php-format #, php-format
msgid "%s liked %s's post" msgid "%s liked %s's post"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:105 #: src/Navigation/Notifications/Factory/FormattedNotify.php:108
#, php-format #, php-format
msgid "%s disliked %s's post" msgid "%s disliked %s's post"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:117 #: src/Navigation/Notifications/Factory/FormattedNotify.php:120
#, php-format #, php-format
msgid "%s is attending %s's event" msgid "%s is attending %s's event"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:129 #: src/Navigation/Notifications/Factory/FormattedNotify.php:132
#, php-format #, php-format
msgid "%s is not attending %s's event" msgid "%s is not attending %s's event"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:141 #: src/Navigation/Notifications/Factory/FormattedNotify.php:144
#, php-format #, php-format
msgid "%s may attending %s's event" msgid "%s may attending %s's event"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:171 #: src/Navigation/Notifications/Factory/FormattedNotify.php:174
#, php-format #, php-format
msgid "%s is now friends with %s" msgid "%s is now friends with %s"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:338 #: src/Navigation/Notifications/Factory/FormattedNotify.php:341
#: src/Navigation/Notifications/Factory/FormattedNotify.php:376 #: src/Navigation/Notifications/Factory/FormattedNotify.php:379
#, php-format #, php-format
msgid "%s commented on %s's post" msgid "%s commented on %s's post"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/FormattedNotify.php:375 #: src/Navigation/Notifications/Factory/FormattedNotify.php:378
#, php-format #, php-format
msgid "%s created a new post" msgid "%s created a new post"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/Introduction.php:134 #: src/Navigation/Notifications/Factory/Introduction.php:137
msgid "Friend Suggestion" msgid "Friend Suggestion"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/Introduction.php:160 #: src/Navigation/Notifications/Factory/Introduction.php:163
msgid "Friend/Connect Request" msgid "Friend/Connect Request"
msgstr "" msgstr ""
#: src/Navigation/Notifications/Factory/Introduction.php:160 #: src/Navigation/Notifications/Factory/Introduction.php:163
msgid "New Follower" msgid "New Follower"
msgstr "" msgstr ""
@ -10745,205 +10745,205 @@ msgstr ""
msgid "%s posted an update." msgid "%s posted an update."
msgstr "" msgstr ""
#: src/Object/Post.php:136 #: src/Object/Post.php:135
msgid "Private Message" msgid "Private Message"
msgstr "" msgstr ""
#: src/Object/Post.php:140 #: src/Object/Post.php:139
msgid "Public Message" msgid "Public Message"
msgstr "" msgstr ""
#: src/Object/Post.php:144 #: src/Object/Post.php:143
msgid "Unlisted Message" msgid "Unlisted Message"
msgstr "" msgstr ""
#: src/Object/Post.php:179 #: src/Object/Post.php:178
msgid "This entry was edited" msgid "This entry was edited"
msgstr "" msgstr ""
#: src/Object/Post.php:207 #: src/Object/Post.php:206
msgid "Connector Message" msgid "Connector Message"
msgstr "" msgstr ""
#: src/Object/Post.php:222 src/Object/Post.php:224 #: src/Object/Post.php:221 src/Object/Post.php:223
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: src/Object/Post.php:248 #: src/Object/Post.php:247
msgid "Delete globally" msgid "Delete globally"
msgstr "" msgstr ""
#: src/Object/Post.php:248 #: src/Object/Post.php:247
msgid "Remove locally" msgid "Remove locally"
msgstr "" msgstr ""
#: src/Object/Post.php:264 #: src/Object/Post.php:263
#, php-format #, php-format
msgid "Block %s" msgid "Block %s"
msgstr "" msgstr ""
#: src/Object/Post.php:269 #: src/Object/Post.php:268
msgid "Save to folder" msgid "Save to folder"
msgstr "" msgstr ""
#: src/Object/Post.php:304 #: src/Object/Post.php:303
msgid "I will attend" msgid "I will attend"
msgstr "" msgstr ""
#: src/Object/Post.php:304 #: src/Object/Post.php:303
msgid "I will not attend" msgid "I will not attend"
msgstr "" msgstr ""
#: src/Object/Post.php:304 #: src/Object/Post.php:303
msgid "I might attend" msgid "I might attend"
msgstr "" msgstr ""
#: src/Object/Post.php:334 #: src/Object/Post.php:333
msgid "Ignore thread" msgid "Ignore thread"
msgstr "" msgstr ""
#: src/Object/Post.php:335 #: src/Object/Post.php:334
msgid "Unignore thread" msgid "Unignore thread"
msgstr "" msgstr ""
#: src/Object/Post.php:336 #: src/Object/Post.php:335
msgid "Toggle ignore status" msgid "Toggle ignore status"
msgstr "" msgstr ""
#: src/Object/Post.php:346 #: src/Object/Post.php:345
msgid "Add star" msgid "Add star"
msgstr "" msgstr ""
#: src/Object/Post.php:347 #: src/Object/Post.php:346
msgid "Remove star" msgid "Remove star"
msgstr "" msgstr ""
#: src/Object/Post.php:348 #: src/Object/Post.php:347
msgid "Toggle star status" msgid "Toggle star status"
msgstr "" msgstr ""
#: src/Object/Post.php:359 #: src/Object/Post.php:358
msgid "Pin" msgid "Pin"
msgstr "" msgstr ""
#: src/Object/Post.php:360 #: src/Object/Post.php:359
msgid "Unpin" msgid "Unpin"
msgstr "" msgstr ""
#: src/Object/Post.php:361 #: src/Object/Post.php:360
msgid "Toggle pin status" msgid "Toggle pin status"
msgstr "" msgstr ""
#: src/Object/Post.php:364 #: src/Object/Post.php:363
msgid "Pinned" msgid "Pinned"
msgstr "" msgstr ""
#: src/Object/Post.php:369 #: src/Object/Post.php:368
msgid "Add tag" msgid "Add tag"
msgstr "" msgstr ""
#: src/Object/Post.php:382 #: src/Object/Post.php:381
msgid "Quote share this" msgid "Quote share this"
msgstr "" msgstr ""
#: src/Object/Post.php:382 #: src/Object/Post.php:381
msgid "Quote Share" msgid "Quote Share"
msgstr "" msgstr ""
#: src/Object/Post.php:385 #: src/Object/Post.php:384
msgid "Reshare this" msgid "Reshare this"
msgstr "" msgstr ""
#: src/Object/Post.php:385 #: src/Object/Post.php:384
msgid "Reshare" msgid "Reshare"
msgstr "" msgstr ""
#: src/Object/Post.php:386 #: src/Object/Post.php:385
msgid "Cancel your Reshare" msgid "Cancel your Reshare"
msgstr "" msgstr ""
#: src/Object/Post.php:386 #: src/Object/Post.php:385
msgid "Unshare" msgid "Unshare"
msgstr "" msgstr ""
#: src/Object/Post.php:433 #: src/Object/Post.php:432
#, php-format #, php-format
msgid "%s (Received %s)" msgid "%s (Received %s)"
msgstr "" msgstr ""
#: src/Object/Post.php:438 #: src/Object/Post.php:437
msgid "Comment this item on your system" msgid "Comment this item on your system"
msgstr "" msgstr ""
#: src/Object/Post.php:438 #: src/Object/Post.php:437
msgid "Remote comment" msgid "Remote comment"
msgstr "" msgstr ""
#: src/Object/Post.php:459 #: src/Object/Post.php:458
msgid "Share via ..." msgid "Share via ..."
msgstr "" msgstr ""
#: src/Object/Post.php:459 #: src/Object/Post.php:458
msgid "Share via external services" msgid "Share via external services"
msgstr "" msgstr ""
#: src/Object/Post.php:488 #: src/Object/Post.php:487
msgid "to" msgid "to"
msgstr "" msgstr ""
#: src/Object/Post.php:489 #: src/Object/Post.php:488
msgid "via" msgid "via"
msgstr "" msgstr ""
#: src/Object/Post.php:490 #: src/Object/Post.php:489
msgid "Wall-to-Wall" msgid "Wall-to-Wall"
msgstr "" msgstr ""
#: src/Object/Post.php:491 #: src/Object/Post.php:490
msgid "via Wall-To-Wall:" msgid "via Wall-To-Wall:"
msgstr "" msgstr ""
#: src/Object/Post.php:533 #: src/Object/Post.php:532
#, php-format #, php-format
msgid "Reply to %s" msgid "Reply to %s"
msgstr "" msgstr ""
#: src/Object/Post.php:536 #: src/Object/Post.php:535
msgid "More" msgid "More"
msgstr "" msgstr ""
#: src/Object/Post.php:554 #: src/Object/Post.php:553
msgid "Notifier task is pending" msgid "Notifier task is pending"
msgstr "" msgstr ""
#: src/Object/Post.php:555 #: src/Object/Post.php:554
msgid "Delivery to remote servers is pending" msgid "Delivery to remote servers is pending"
msgstr "" msgstr ""
#: src/Object/Post.php:556 #: src/Object/Post.php:555
msgid "Delivery to remote servers is underway" msgid "Delivery to remote servers is underway"
msgstr "" msgstr ""
#: src/Object/Post.php:557 #: src/Object/Post.php:556
msgid "Delivery to remote servers is mostly done" msgid "Delivery to remote servers is mostly done"
msgstr "" msgstr ""
#: src/Object/Post.php:558 #: src/Object/Post.php:557
msgid "Delivery to remote servers is done" msgid "Delivery to remote servers is done"
msgstr "" msgstr ""
#: src/Object/Post.php:578 #: src/Object/Post.php:577
#, php-format #, php-format
msgid "%d comment" msgid "%d comment"
msgid_plural "%d comments" msgid_plural "%d comments"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Object/Post.php:579 #: src/Object/Post.php:578
msgid "Show more" msgid "Show more"
msgstr "" msgstr ""
#: src/Object/Post.php:580 #: src/Object/Post.php:579
msgid "Show fewer" msgid "Show fewer"
msgstr "" msgstr ""
@ -10970,20 +10970,20 @@ msgstr ""
msgid "The folder %s must be writable by webserver." msgid "The folder %s must be writable by webserver."
msgstr "" msgstr ""
#: src/Security/Authentication.php:226 #: src/Security/Authentication.php:225
msgid "Login failed." msgid "Login failed."
msgstr "" msgstr ""
#: src/Security/Authentication.php:271 #: src/Security/Authentication.php:270
msgid "Login failed. Please check your credentials." msgid "Login failed. Please check your credentials."
msgstr "" msgstr ""
#: src/Security/Authentication.php:382 #: src/Security/Authentication.php:381
#, php-format #, php-format
msgid "Welcome %s" msgid "Welcome %s"
msgstr "" msgstr ""
#: src/Security/Authentication.php:383 #: src/Security/Authentication.php:382
msgid "Please upload a profile photo." msgid "Please upload a profile photo."
msgstr "" msgstr ""
@ -11010,73 +11010,73 @@ msgstr ""
msgid "thanks" msgid "thanks"
msgstr "" msgstr ""
#: src/Util/Temporal.php:171 #: src/Util/Temporal.php:170
msgid "YYYY-MM-DD or MM-DD" msgid "YYYY-MM-DD or MM-DD"
msgstr "" msgstr ""
#: src/Util/Temporal.php:279 #: src/Util/Temporal.php:278
#, php-format #, php-format
msgid "Time zone: <strong>%s</strong> <a href=\"%s\">Change in Settings</a>" msgid "Time zone: <strong>%s</strong> <a href=\"%s\">Change in Settings</a>"
msgstr "" msgstr ""
#: src/Util/Temporal.php:318 src/Util/Temporal.php:325 #: src/Util/Temporal.php:317 src/Util/Temporal.php:324
msgid "never" msgid "never"
msgstr "" msgstr ""
#: src/Util/Temporal.php:332 #: src/Util/Temporal.php:331
msgid "less than a second ago" msgid "less than a second ago"
msgstr "" msgstr ""
#: src/Util/Temporal.php:341 #: src/Util/Temporal.php:340
msgid "year" msgid "year"
msgstr "" msgstr ""
#: src/Util/Temporal.php:341 #: src/Util/Temporal.php:340
msgid "years" msgid "years"
msgstr "" msgstr ""
#: src/Util/Temporal.php:342 #: src/Util/Temporal.php:341
msgid "months" msgid "months"
msgstr "" msgstr ""
#: src/Util/Temporal.php:343 #: src/Util/Temporal.php:342
msgid "weeks" msgid "weeks"
msgstr "" msgstr ""
#: src/Util/Temporal.php:344 #: src/Util/Temporal.php:343
msgid "days" msgid "days"
msgstr "" msgstr ""
#: src/Util/Temporal.php:345 #: src/Util/Temporal.php:344
msgid "hour" msgid "hour"
msgstr "" msgstr ""
#: src/Util/Temporal.php:345 #: src/Util/Temporal.php:344
msgid "hours" msgid "hours"
msgstr "" msgstr ""
#: src/Util/Temporal.php:346 #: src/Util/Temporal.php:345
msgid "minute" msgid "minute"
msgstr "" msgstr ""
#: src/Util/Temporal.php:346 #: src/Util/Temporal.php:345
msgid "minutes" msgid "minutes"
msgstr "" msgstr ""
#: src/Util/Temporal.php:347 #: src/Util/Temporal.php:346
msgid "second" msgid "second"
msgstr "" msgstr ""
#: src/Util/Temporal.php:347 #: src/Util/Temporal.php:346
msgid "seconds" msgid "seconds"
msgstr "" msgstr ""
#: src/Util/Temporal.php:357 #: src/Util/Temporal.php:356
#, php-format #, php-format
msgid "in %1$d %2$s" msgid "in %1$d %2$s"
msgstr "" msgstr ""
#: src/Util/Temporal.php:360 #: src/Util/Temporal.php:359
#, php-format #, php-format
msgid "%1$d %2$s ago" msgid "%1$d %2$s ago"
msgstr "" msgstr ""
@ -11093,156 +11093,156 @@ msgstr ""
msgid "Empty Post" msgid "Empty Post"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:69 #: view/theme/duepuntozero/config.php:68
msgid "default" msgid "default"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:70 #: view/theme/duepuntozero/config.php:69
msgid "greenzero" msgid "greenzero"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:71 #: view/theme/duepuntozero/config.php:70
msgid "purplezero" msgid "purplezero"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:72 #: view/theme/duepuntozero/config.php:71
msgid "easterbunny" msgid "easterbunny"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:73 #: view/theme/duepuntozero/config.php:72
msgid "darkzero" msgid "darkzero"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:74 #: view/theme/duepuntozero/config.php:73
msgid "comix" msgid "comix"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:75 #: view/theme/duepuntozero/config.php:74
msgid "slackr" msgid "slackr"
msgstr "" msgstr ""
#: view/theme/duepuntozero/config.php:88 #: view/theme/duepuntozero/config.php:87
msgid "Variations" msgid "Variations"
msgstr "" msgstr ""
#: view/theme/frio/config.php:154 #: view/theme/frio/config.php:153
msgid "Light (Accented)" msgid "Light (Accented)"
msgstr "" msgstr ""
#: view/theme/frio/config.php:155 #: view/theme/frio/config.php:154
msgid "Dark (Accented)" msgid "Dark (Accented)"
msgstr "" msgstr ""
#: view/theme/frio/config.php:156 #: view/theme/frio/config.php:155
msgid "Black (Accented)" msgid "Black (Accented)"
msgstr "" msgstr ""
#: view/theme/frio/config.php:168 #: view/theme/frio/config.php:167
msgid "Note" msgid "Note"
msgstr "" msgstr ""
#: view/theme/frio/config.php:168 #: view/theme/frio/config.php:167
msgid "Check image permissions if all users are allowed to see the image" msgid "Check image permissions if all users are allowed to see the image"
msgstr "" msgstr ""
#: view/theme/frio/config.php:174 #: view/theme/frio/config.php:173
msgid "Custom" msgid "Custom"
msgstr "" msgstr ""
#: view/theme/frio/config.php:175 #: view/theme/frio/config.php:174
msgid "Legacy" msgid "Legacy"
msgstr "" msgstr ""
#: view/theme/frio/config.php:176 #: view/theme/frio/config.php:175
msgid "Accented" msgid "Accented"
msgstr "" msgstr ""
#: view/theme/frio/config.php:177 #: view/theme/frio/config.php:176
msgid "Select color scheme" msgid "Select color scheme"
msgstr "" msgstr ""
#: view/theme/frio/config.php:178 #: view/theme/frio/config.php:177
msgid "Select scheme accent" msgid "Select scheme accent"
msgstr "" msgstr ""
#: view/theme/frio/config.php:178 #: view/theme/frio/config.php:177
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: view/theme/frio/config.php:178 #: view/theme/frio/config.php:177
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: view/theme/frio/config.php:178 #: view/theme/frio/config.php:177
msgid "Purple" msgid "Purple"
msgstr "" msgstr ""
#: view/theme/frio/config.php:178 #: view/theme/frio/config.php:177
msgid "Green" msgid "Green"
msgstr "" msgstr ""
#: view/theme/frio/config.php:178 #: view/theme/frio/config.php:177
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: view/theme/frio/config.php:179 #: view/theme/frio/config.php:178
msgid "Copy or paste schemestring" msgid "Copy or paste schemestring"
msgstr "" msgstr ""
#: view/theme/frio/config.php:179 #: view/theme/frio/config.php:178
msgid "" msgid ""
"You can copy this string to share your theme with others. Pasting here " "You can copy this string to share your theme with others. Pasting here "
"applies the schemestring" "applies the schemestring"
msgstr "" msgstr ""
#: view/theme/frio/config.php:180 #: view/theme/frio/config.php:179
msgid "Navigation bar background color" msgid "Navigation bar background color"
msgstr "" msgstr ""
#: view/theme/frio/config.php:181 #: view/theme/frio/config.php:180
msgid "Navigation bar icon color " msgid "Navigation bar icon color "
msgstr "" msgstr ""
#: view/theme/frio/config.php:182 #: view/theme/frio/config.php:181
msgid "Link color" msgid "Link color"
msgstr "" msgstr ""
#: view/theme/frio/config.php:183 #: view/theme/frio/config.php:182
msgid "Set the background color" msgid "Set the background color"
msgstr "" msgstr ""
#: view/theme/frio/config.php:184 #: view/theme/frio/config.php:183
msgid "Content background opacity" msgid "Content background opacity"
msgstr "" msgstr ""
#: view/theme/frio/config.php:185 #: view/theme/frio/config.php:184
msgid "Set the background image" msgid "Set the background image"
msgstr "" msgstr ""
#: view/theme/frio/config.php:186 #: view/theme/frio/config.php:185
msgid "Background image style" msgid "Background image style"
msgstr "" msgstr ""
#: view/theme/frio/config.php:189 #: view/theme/frio/config.php:188
msgid "Always open Compose page" msgid "Always open Compose page"
msgstr "" msgstr ""
#: view/theme/frio/config.php:189 #: view/theme/frio/config.php:188
msgid "" msgid ""
"The New Post button always open the <a href=\"/compose\">Compose page</a> " "The New Post button always open the <a href=\"/compose\">Compose page</a> "
"instead of the modal form. When this is disabled, the Compose page can be " "instead of the modal form. When this is disabled, the Compose page can be "
"accessed with a middle click on the link or from the modal." "accessed with a middle click on the link or from the modal."
msgstr "" msgstr ""
#: view/theme/frio/config.php:193 #: view/theme/frio/config.php:192
msgid "Login page background image" msgid "Login page background image"
msgstr "" msgstr ""
#: view/theme/frio/config.php:197 #: view/theme/frio/config.php:196
msgid "Login page background color" msgid "Login page background color"
msgstr "" msgstr ""
#: view/theme/frio/config.php:197 #: view/theme/frio/config.php:196
msgid "Leave background image and color empty for theme defaults" msgid "Leave background image and color empty for theme defaults"
msgstr "" msgstr ""
@ -11290,78 +11290,78 @@ msgstr ""
msgid "Back to top" msgid "Back to top"
msgstr "" msgstr ""
#: view/theme/frio/theme.php:220 #: view/theme/frio/theme.php:219
msgid "Guest" msgid "Guest"
msgstr "" msgstr ""
#: view/theme/frio/theme.php:223 #: view/theme/frio/theme.php:222
msgid "Visitor" msgid "Visitor"
msgstr "" msgstr ""
#: view/theme/quattro/config.php:90 #: view/theme/quattro/config.php:89
msgid "Alignment" msgid "Alignment"
msgstr "" msgstr ""
#: view/theme/quattro/config.php:90 #: view/theme/quattro/config.php:89
msgid "Left" msgid "Left"
msgstr "" msgstr ""
#: view/theme/quattro/config.php:90 #: view/theme/quattro/config.php:89
msgid "Center" msgid "Center"
msgstr "" msgstr ""
#: view/theme/quattro/config.php:91 #: view/theme/quattro/config.php:90
msgid "Color scheme" msgid "Color scheme"
msgstr "" msgstr ""
#: view/theme/quattro/config.php:92 #: view/theme/quattro/config.php:91
msgid "Posts font size" msgid "Posts font size"
msgstr "" msgstr ""
#: view/theme/quattro/config.php:93 #: view/theme/quattro/config.php:92
msgid "Textareas font size" msgid "Textareas font size"
msgstr "" msgstr ""
#: view/theme/vier/config.php:92 #: view/theme/vier/config.php:91
msgid "Comma separated list of helper forums" msgid "Comma separated list of helper forums"
msgstr "" msgstr ""
#: view/theme/vier/config.php:132 #: view/theme/vier/config.php:131
msgid "don't show" msgid "don't show"
msgstr "" msgstr ""
#: view/theme/vier/config.php:132 #: view/theme/vier/config.php:131
msgid "show" msgid "show"
msgstr "" msgstr ""
#: view/theme/vier/config.php:138 #: view/theme/vier/config.php:137
msgid "Set style" msgid "Set style"
msgstr "" msgstr ""
#: view/theme/vier/config.php:139 #: view/theme/vier/config.php:138
msgid "Community Pages" msgid "Community Pages"
msgstr "" msgstr ""
#: view/theme/vier/config.php:140 view/theme/vier/theme.php:152 #: view/theme/vier/config.php:139 view/theme/vier/theme.php:151
msgid "Community Profiles" msgid "Community Profiles"
msgstr "" msgstr ""
#: view/theme/vier/config.php:141 #: view/theme/vier/config.php:140
msgid "Help or @NewHere ?" msgid "Help or @NewHere ?"
msgstr "" msgstr ""
#: view/theme/vier/config.php:142 view/theme/vier/theme.php:323 #: view/theme/vier/config.php:141 view/theme/vier/theme.php:322
msgid "Connect Services" msgid "Connect Services"
msgstr "" msgstr ""
#: view/theme/vier/config.php:143 #: view/theme/vier/config.php:142
msgid "Find Friends" msgid "Find Friends"
msgstr "" msgstr ""
#: view/theme/vier/config.php:144 view/theme/vier/theme.php:179 #: view/theme/vier/config.php:143 view/theme/vier/theme.php:178
msgid "Last users" msgid "Last users"
msgstr "" msgstr ""
#: view/theme/vier/theme.php:238 #: view/theme/vier/theme.php:237
msgid "Quick Start" msgid "Quick Start"
msgstr "" msgstr ""

View file

@ -24,7 +24,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-06 07:33+0000\n" "POT-Creation-Date: 2022-10-21 08:18+0000\n"
"PO-Revision-Date: 2011-05-05 10:19+0000\n" "PO-Revision-Date: 2011-05-05 10:19+0000\n"
"Last-Translator: Alexander An <ravnina@gmail.com>, 2020-2022\n" "Last-Translator: Alexander An <ravnina@gmail.com>, 2020-2022\n"
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
@ -34,132 +34,132 @@ msgstr ""
"Language: ru\n" "Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: mod/cal.php:46 mod/cal.php:50 mod/follow.php:39 mod/redir.php:36 #: mod/cal.php:45 mod/cal.php:49 mod/follow.php:39 mod/redir.php:35
#: mod/redir.php:177 src/Module/Conversation/Community.php:181 #: mod/redir.php:176 src/Module/Conversation/Community.php:193
#: src/Module/Debug/ItemBody.php:38 src/Module/Diaspora/Receive.php:57 #: src/Module/Debug/ItemBody.php:38 src/Module/Diaspora/Receive.php:57
#: src/Module/Item/Follow.php:42 src/Module/Item/Ignore.php:41 #: src/Module/Item/Follow.php:41 src/Module/Item/Ignore.php:41
#: src/Module/Item/Pin.php:42 src/Module/Item/Pin.php:57 #: src/Module/Item/Pin.php:41 src/Module/Item/Pin.php:56
#: src/Module/Item/Star.php:43 #: src/Module/Item/Star.php:42
msgid "Access denied." msgid "Access denied."
msgstr "Доступ запрещен." msgstr "Доступ запрещен."
#: mod/cal.php:63 mod/cal.php:80 mod/photos.php:69 mod/photos.php:140 #: mod/cal.php:62 mod/cal.php:79 mod/photos.php:68 mod/photos.php:139
#: mod/photos.php:798 src/Model/Profile.php:231 src/Module/Feed.php:72 #: mod/photos.php:793 src/Model/Profile.php:234 src/Module/Feed.php:72
#: src/Module/HCard.php:52 src/Module/Profile/Common.php:41 #: src/Module/HCard.php:51 src/Module/Profile/Common.php:40
#: src/Module/Profile/Common.php:52 src/Module/Profile/Contacts.php:40 #: src/Module/Profile/Common.php:51 src/Module/Profile/Contacts.php:39
#: src/Module/Profile/Contacts.php:50 src/Module/Profile/Media.php:38 #: src/Module/Profile/Contacts.php:49 src/Module/Profile/Media.php:38
#: src/Module/Profile/Status.php:59 src/Module/Register.php:267 #: src/Module/Profile/Status.php:58 src/Module/Register.php:267
#: src/Module/RemoteFollow.php:58 #: src/Module/RemoteFollow.php:59
msgid "User not found." msgid "User not found."
msgstr "Пользователь не найден." msgstr "Пользователь не найден."
#: mod/cal.php:122 mod/display.php:247 src/Module/Profile/Profile.php:94 #: mod/cal.php:121 mod/display.php:261 src/Module/Profile/Profile.php:93
#: src/Module/Profile/Profile.php:109 src/Module/Profile/Status.php:110 #: src/Module/Profile/Profile.php:108 src/Module/Profile/Status.php:109
#: src/Module/Update/Profile.php:56 #: src/Module/Update/Profile.php:55
msgid "Access to this profile has been restricted." msgid "Access to this profile has been restricted."
msgstr "Доступ к этому профилю ограничен." msgstr "Доступ к этому профилю ограничен."
#: mod/cal.php:243 mod/events.php:374 src/Content/Nav.php:194 #: mod/cal.php:242 mod/events.php:375 src/Content/Nav.php:197
#: src/Content/Nav.php:258 src/Module/BaseProfile.php:84 #: src/Content/Nav.php:261 src/Module/BaseProfile.php:84
#: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:229 #: src/Module/BaseProfile.php:95 view/theme/frio/theme.php:242
#: view/theme/frio/theme.php:233 #: view/theme/frio/theme.php:246
msgid "Events" msgid "Events"
msgstr "Мероприятия" msgstr "Мероприятия"
#: mod/cal.php:244 mod/events.php:375 #: mod/cal.php:243 mod/events.php:376
msgid "View" msgid "View"
msgstr "Смотреть" msgstr "Смотреть"
#: mod/cal.php:245 mod/events.php:377 #: mod/cal.php:244 mod/events.php:378
msgid "Previous" msgid "Previous"
msgstr "Назад" msgstr "Назад"
#: mod/cal.php:246 mod/events.php:378 src/Module/Install.php:214 #: mod/cal.php:245 mod/events.php:379 src/Module/Install.php:214
msgid "Next" msgid "Next"
msgstr "Далее" msgstr "Далее"
#: mod/cal.php:249 mod/events.php:383 src/Model/Event.php:457 #: mod/cal.php:248 mod/events.php:384 src/Model/Event.php:460
msgid "today" msgid "today"
msgstr "сегодня" msgstr "сегодня"
#: mod/cal.php:250 mod/events.php:384 src/Model/Event.php:458 #: mod/cal.php:249 mod/events.php:385 src/Model/Event.php:461
#: src/Util/Temporal.php:334 #: src/Util/Temporal.php:342
msgid "month" msgid "month"
msgstr "мес." msgstr "мес."
#: mod/cal.php:251 mod/events.php:385 src/Model/Event.php:459 #: mod/cal.php:250 mod/events.php:386 src/Model/Event.php:462
#: src/Util/Temporal.php:335 #: src/Util/Temporal.php:343
msgid "week" msgid "week"
msgstr "неделя" msgstr "неделя"
#: mod/cal.php:252 mod/events.php:386 src/Model/Event.php:460 #: mod/cal.php:251 mod/events.php:387 src/Model/Event.php:463
#: src/Util/Temporal.php:336 #: src/Util/Temporal.php:344
msgid "day" msgid "day"
msgstr "день" msgstr "день"
#: mod/cal.php:253 mod/events.php:387 #: mod/cal.php:252 mod/events.php:388
msgid "list" msgid "list"
msgstr "список" msgstr "список"
#: mod/cal.php:265 src/Console/User.php:182 src/Model/User.php:661 #: mod/cal.php:264 src/Console/User.php:182 src/Model/User.php:663
#: src/Module/Admin/Users/Active.php:73 src/Module/Admin/Users/Blocked.php:74 #: src/Module/Admin/Users/Active.php:73 src/Module/Admin/Users/Blocked.php:75
#: src/Module/Admin/Users/Index.php:80 src/Module/Admin/Users/Pending.php:71 #: src/Module/Admin/Users/Index.php:81 src/Module/Admin/Users/Pending.php:71
#: src/Module/Api/Twitter/ContactEndpoint.php:74 #: src/Module/Api/Twitter/ContactEndpoint.php:74
msgid "User not found" msgid "User not found"
msgstr "Пользователь не найден" msgstr "Пользователь не найден"
#: mod/cal.php:274 #: mod/cal.php:273
msgid "This calendar format is not supported" msgid "This calendar format is not supported"
msgstr "Этот формат календарей не поддерживается" msgstr "Этот формат календарей не поддерживается"
#: mod/cal.php:276 #: mod/cal.php:275
msgid "No exportable data found" msgid "No exportable data found"
msgstr "Нет данных для экспорта" msgstr "Нет данных для экспорта"
#: mod/cal.php:292 #: mod/cal.php:291
msgid "calendar" msgid "calendar"
msgstr "календарь" msgstr "календарь"
#: mod/display.php:142 mod/photos.php:802 #: mod/display.php:142 mod/photos.php:797
#: src/Module/Conversation/Community.php:175 src/Module/Directory.php:49 #: src/Module/Conversation/Community.php:187 src/Module/Directory.php:48
#: src/Module/Search/Index.php:50 #: src/Module/Search/Index.php:64
msgid "Public access denied." msgid "Public access denied."
msgstr "Свободный доступ закрыт." msgstr "Свободный доступ закрыт."
#: mod/display.php:198 mod/display.php:272 #: mod/display.php:212 mod/display.php:286
msgid "The requested item doesn't exist or has been deleted." msgid "The requested item doesn't exist or has been deleted."
msgstr "Запрошенная запись не существует или была удалена." msgstr "Запрошенная запись не существует или была удалена."
#: mod/display.php:352 #: mod/display.php:366
msgid "The feed for this item is unavailable." msgid "The feed for this item is unavailable."
msgstr "Лента недоступна для этого объекта." msgstr "Лента недоступна для этого объекта."
#: mod/editpost.php:38 mod/events.php:217 mod/follow.php:56 mod/follow.php:130 #: mod/editpost.php:38 mod/events.php:218 mod/follow.php:56 mod/follow.php:130
#: mod/item.php:181 mod/item.php:186 mod/item.php:875 mod/message.php:69 #: mod/item.php:181 mod/item.php:186 mod/item.php:864 mod/message.php:69
#: mod/message.php:111 mod/notes.php:44 mod/ostatus_subscribe.php:33 #: mod/message.php:114 mod/notes.php:44 mod/ostatus_subscribe.php:33
#: mod/photos.php:160 mod/photos.php:891 mod/repair_ostatus.php:31 #: mod/photos.php:159 mod/photos.php:886 mod/repair_ostatus.php:31
#: mod/settings.php:40 mod/settings.php:50 mod/settings.php:156 #: mod/settings.php:40 mod/settings.php:50 mod/settings.php:156
#: mod/suggest.php:34 mod/uimport.php:33 mod/unfollow.php:35 #: mod/suggest.php:34 mod/uimport.php:33 mod/unfollow.php:35
#: mod/unfollow.php:50 mod/unfollow.php:82 mod/wall_attach.php:67 #: mod/unfollow.php:50 mod/unfollow.php:82 mod/wall_attach.php:66
#: mod/wall_attach.php:69 mod/wall_upload.php:89 mod/wall_upload.php:91 #: mod/wall_attach.php:68 mod/wall_upload.php:88 mod/wall_upload.php:90
#: mod/wallmessage.php:37 mod/wallmessage.php:56 mod/wallmessage.php:90 #: mod/wallmessage.php:37 mod/wallmessage.php:56 mod/wallmessage.php:90
#: mod/wallmessage.php:110 src/Module/Attach.php:56 src/Module/BaseApi.php:93 #: mod/wallmessage.php:110 src/Module/Attach.php:56 src/Module/BaseApi.php:94
#: src/Module/BaseNotifications.php:97 src/Module/Contact/Advanced.php:60 #: src/Module/BaseNotifications.php:98 src/Module/Contact/Advanced.php:60
#: src/Module/Delegation.php:119 src/Module/FollowConfirm.php:38 #: src/Module/Delegation.php:118 src/Module/FollowConfirm.php:38
#: src/Module/FriendSuggest.php:56 src/Module/Group.php:42 #: src/Module/FriendSuggest.php:57 src/Module/Group.php:40
#: src/Module/Group.php:85 src/Module/Invite.php:42 src/Module/Invite.php:131 #: src/Module/Group.php:83 src/Module/Invite.php:42 src/Module/Invite.php:131
#: src/Module/Notifications/Notification.php:75 #: src/Module/Notifications/Notification.php:76
#: src/Module/Notifications/Notification.php:106 #: src/Module/Notifications/Notification.php:107
#: src/Module/Profile/Common.php:56 src/Module/Profile/Contacts.php:56 #: src/Module/Profile/Common.php:55 src/Module/Profile/Contacts.php:55
#: src/Module/Profile/Schedule.php:39 src/Module/Profile/Schedule.php:56 #: src/Module/Profile/Schedule.php:39 src/Module/Profile/Schedule.php:56
#: src/Module/Register.php:77 src/Module/Register.php:90 #: src/Module/Register.php:77 src/Module/Register.php:90
#: src/Module/Register.php:206 src/Module/Register.php:245 #: src/Module/Register.php:206 src/Module/Register.php:245
#: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:49 #: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:50
#: src/Module/Settings/Account.php:409 src/Module/Settings/Delegation.php:42 #: src/Module/Settings/Account.php:410 src/Module/Settings/Delegation.php:41
#: src/Module/Settings/Delegation.php:70 src/Module/Settings/Display.php:42 #: src/Module/Settings/Delegation.php:69 src/Module/Settings/Display.php:41
#: src/Module/Settings/Display.php:120 #: src/Module/Settings/Display.php:119
#: src/Module/Settings/Profile/Photo/Crop.php:166 #: src/Module/Settings/Profile/Photo/Crop.php:165
#: src/Module/Settings/Profile/Photo/Index.php:112 #: src/Module/Settings/Profile/Photo/Index.php:111
#: src/Module/Settings/UserExport.php:58 src/Module/Settings/UserExport.php:92 #: src/Module/Settings/UserExport.php:58 src/Module/Settings/UserExport.php:92
#: src/Module/Settings/UserExport.php:196 #: src/Module/Settings/UserExport.php:196
#: src/Module/Settings/UserExport.php:216 #: src/Module/Settings/UserExport.php:216
@ -175,34 +175,34 @@ msgstr "Элемент не найден"
msgid "Edit post" msgid "Edit post"
msgstr "Редактировать запись" msgstr "Редактировать запись"
#: mod/editpost.php:91 mod/notes.php:56 src/Content/Text/HTML.php:875 #: mod/editpost.php:91 mod/notes.php:56 src/Content/Text/HTML.php:882
#: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:73 #: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74
msgid "Save" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
#: mod/editpost.php:92 mod/photos.php:1338 src/Content/Conversation.php:338 #: mod/editpost.php:92 mod/photos.php:1333 src/Content/Conversation.php:342
#: src/Module/Contact/Poke.php:176 src/Object/Post.php:989 #: src/Object/Post.php:993
msgid "Loading..." msgid "Loading..."
msgstr "Загрузка..." msgstr "Загрузка..."
#: mod/editpost.php:93 mod/message.php:198 mod/message.php:355 #: mod/editpost.php:93 mod/message.php:201 mod/message.php:357
#: mod/wallmessage.php:140 src/Content/Conversation.php:339 #: mod/wallmessage.php:140 src/Content/Conversation.php:343
msgid "Upload photo" msgid "Upload photo"
msgstr "Загрузить фото" msgstr "Загрузить фото"
#: mod/editpost.php:94 src/Content/Conversation.php:340 #: mod/editpost.php:94 src/Content/Conversation.php:344
msgid "upload photo" msgid "upload photo"
msgstr "загрузить фото" msgstr "загрузить фото"
#: mod/editpost.php:95 src/Content/Conversation.php:341 #: mod/editpost.php:95 src/Content/Conversation.php:345
msgid "Attach file" msgid "Attach file"
msgstr "Прикрепить файл" msgstr "Прикрепить файл"
#: mod/editpost.php:96 src/Content/Conversation.php:342 #: mod/editpost.php:96 src/Content/Conversation.php:346
msgid "attach file" msgid "attach file"
msgstr "приложить файл" msgstr "приложить файл"
#: mod/editpost.php:97 mod/message.php:199 mod/message.php:356 #: mod/editpost.php:97 mod/message.php:202 mod/message.php:358
#: mod/wallmessage.php:141 #: mod/wallmessage.php:141
msgid "Insert web link" msgid "Insert web link"
msgstr "Вставить веб-ссылку" msgstr "Вставить веб-ссылку"
@ -227,31 +227,31 @@ msgstr "Вставить ссылку аудио"
msgid "audio link" msgid "audio link"
msgstr "аудио-ссылка" msgstr "аудио-ссылка"
#: mod/editpost.php:103 src/Content/Conversation.php:352 #: mod/editpost.php:103 src/Content/Conversation.php:356
#: src/Module/Item/Compose.php:173 #: src/Module/Item/Compose.php:200
msgid "Set your location" msgid "Set your location"
msgstr "Задать ваше местоположение" msgstr "Задать ваше местоположение"
#: mod/editpost.php:104 src/Content/Conversation.php:353 #: mod/editpost.php:104 src/Content/Conversation.php:357
msgid "set location" msgid "set location"
msgstr "установить местонахождение" msgstr "установить местонахождение"
#: mod/editpost.php:105 src/Content/Conversation.php:354 #: mod/editpost.php:105 src/Content/Conversation.php:358
msgid "Clear browser location" msgid "Clear browser location"
msgstr "Очистить местонахождение браузера" msgstr "Очистить местонахождение браузера"
#: mod/editpost.php:106 src/Content/Conversation.php:355 #: mod/editpost.php:106 src/Content/Conversation.php:359
msgid "clear location" msgid "clear location"
msgstr "убрать местонахождение" msgstr "убрать местонахождение"
#: mod/editpost.php:107 mod/message.php:200 mod/message.php:358 #: mod/editpost.php:107 mod/message.php:203 mod/message.php:360
#: mod/photos.php:1489 mod/wallmessage.php:142 #: mod/photos.php:1484 mod/wallmessage.php:142
#: src/Content/Conversation.php:368 src/Content/Conversation.php:712 #: src/Content/Conversation.php:372 src/Content/Conversation.php:718
#: src/Module/Item/Compose.php:177 src/Object/Post.php:528 #: src/Module/Item/Compose.php:204 src/Object/Post.php:538
msgid "Please wait" msgid "Please wait"
msgstr "Пожалуйста, подождите" msgstr "Пожалуйста, подождите"
#: mod/editpost.php:108 src/Content/Conversation.php:369 #: mod/editpost.php:108 src/Content/Conversation.php:373
msgid "Permission settings" msgid "Permission settings"
msgstr "Настройки разрешений" msgstr "Настройки разрешений"
@ -259,17 +259,17 @@ msgstr "Настройки разрешений"
msgid "CC: email addresses" msgid "CC: email addresses"
msgstr "Копии на email адреса" msgstr "Копии на email адреса"
#: mod/editpost.php:117 src/Content/Conversation.php:379 #: mod/editpost.php:117 src/Content/Conversation.php:383
msgid "Public post" msgid "Public post"
msgstr "Публичная запись" msgstr "Публичная запись"
#: mod/editpost.php:120 src/Content/Conversation.php:357 #: mod/editpost.php:120 src/Content/Conversation.php:361
#: src/Module/Item/Compose.php:178 #: src/Module/Item/Compose.php:205
msgid "Set title" msgid "Set title"
msgstr "Установить заголовок" msgstr "Установить заголовок"
#: mod/editpost.php:122 src/Content/Conversation.php:359 #: mod/editpost.php:122 src/Content/Conversation.php:363
#: src/Module/Item/Compose.php:179 #: src/Module/Item/Compose.php:206
msgid "Categories (comma-separated list)" msgid "Categories (comma-separated list)"
msgstr "Категории (список через запятую)" msgstr "Категории (список через запятую)"
@ -277,71 +277,72 @@ msgstr "Категории (список через запятую)"
msgid "Example: bob@example.com, mary@example.com" msgid "Example: bob@example.com, mary@example.com"
msgstr "Пример: bob@example.com, mary@example.com" msgstr "Пример: bob@example.com, mary@example.com"
#: mod/editpost.php:128 mod/events.php:513 mod/photos.php:1337 #: mod/editpost.php:128 mod/events.php:514 mod/photos.php:1332
#: mod/photos.php:1393 mod/photos.php:1467 src/Content/Conversation.php:383 #: mod/photos.php:1388 mod/photos.php:1462 src/Content/Conversation.php:387
#: src/Module/Item/Compose.php:172 src/Object/Post.php:999 #: src/Module/Item/Compose.php:199 src/Object/Post.php:1003
msgid "Preview" msgid "Preview"
msgstr "Просмотр" msgstr "Просмотр"
#: mod/editpost.php:130 mod/fbrowser.php:118 mod/fbrowser.php:145 #: mod/editpost.php:130 mod/fbrowser.php:119 mod/fbrowser.php:146
#: mod/follow.php:144 mod/photos.php:1004 mod/photos.php:1105 mod/tagrm.php:35 #: mod/follow.php:144 mod/photos.php:999 mod/photos.php:1100 mod/tagrm.php:35
#: mod/tagrm.php:127 mod/unfollow.php:97 src/Content/Conversation.php:386 #: mod/tagrm.php:127 mod/unfollow.php:97 src/Content/Conversation.php:390
#: src/Module/Contact/Revoke.php:108 src/Module/RemoteFollow.php:127 #: src/Module/Contact/Revoke.php:109 src/Module/RemoteFollow.php:128
#: src/Module/Security/TwoFactor/SignOut.php:126
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
#: mod/editpost.php:134 src/Content/Conversation.php:343 #: mod/editpost.php:134 src/Content/Conversation.php:347
#: src/Module/Item/Compose.php:163 src/Object/Post.php:990 #: src/Module/Item/Compose.php:190 src/Object/Post.php:994
msgid "Bold" msgid "Bold"
msgstr "Жирный" msgstr "Жирный"
#: mod/editpost.php:135 src/Content/Conversation.php:344 #: mod/editpost.php:135 src/Content/Conversation.php:348
#: src/Module/Item/Compose.php:164 src/Object/Post.php:991 #: src/Module/Item/Compose.php:191 src/Object/Post.php:995
msgid "Italic" msgid "Italic"
msgstr "Kурсивный" msgstr "Kурсивный"
#: mod/editpost.php:136 src/Content/Conversation.php:345 #: mod/editpost.php:136 src/Content/Conversation.php:349
#: src/Module/Item/Compose.php:165 src/Object/Post.php:992 #: src/Module/Item/Compose.php:192 src/Object/Post.php:996
msgid "Underline" msgid "Underline"
msgstr "Подчеркнутый" msgstr "Подчеркнутый"
#: mod/editpost.php:137 src/Content/Conversation.php:346 #: mod/editpost.php:137 src/Content/Conversation.php:350
#: src/Module/Item/Compose.php:166 src/Object/Post.php:993 #: src/Module/Item/Compose.php:193 src/Object/Post.php:997
msgid "Quote" msgid "Quote"
msgstr "Цитата" msgstr "Цитата"
#: mod/editpost.php:138 src/Content/Conversation.php:347 #: mod/editpost.php:138 src/Content/Conversation.php:351
#: src/Module/Item/Compose.php:167 src/Object/Post.php:994 #: src/Module/Item/Compose.php:194 src/Object/Post.php:998
msgid "Code" msgid "Code"
msgstr "Код" msgstr "Код"
#: mod/editpost.php:139 src/Content/Conversation.php:349 #: mod/editpost.php:139 src/Content/Conversation.php:353
#: src/Module/Item/Compose.php:169 src/Object/Post.php:996 #: src/Module/Item/Compose.php:196 src/Object/Post.php:1000
msgid "Link" msgid "Link"
msgstr "Ссылка" msgstr "Ссылка"
#: mod/editpost.php:140 src/Content/Conversation.php:350 #: mod/editpost.php:140 src/Content/Conversation.php:354
#: src/Module/Item/Compose.php:170 src/Object/Post.php:997 #: src/Module/Item/Compose.php:197 src/Object/Post.php:1001
msgid "Link or Media" msgid "Link or Media"
msgstr "Ссылка или медиа" msgstr "Ссылка или медиа"
#: mod/editpost.php:143 src/Content/Conversation.php:393 #: mod/editpost.php:143 src/Content/Conversation.php:397
#: src/Content/Widget/VCard.php:113 src/Model/Profile.php:462 #: src/Content/Widget/VCard.php:114 src/Model/Profile.php:465
#: src/Module/Admin/Logs/View.php:93 #: src/Module/Admin/Logs/View.php:93
msgid "Message" msgid "Message"
msgstr "Сообщение" msgstr "Сообщение"
#: mod/editpost.php:144 src/Content/Conversation.php:394 #: mod/editpost.php:144 src/Content/Conversation.php:398
#: src/Module/Settings/TwoFactor/Trusted.php:137 #: src/Module/Settings/TwoFactor/Trusted.php:139
msgid "Browser" msgid "Browser"
msgstr "Браузер" msgstr "Браузер"
#: mod/editpost.php:145 mod/events.php:518 mod/photos.php:939 #: mod/editpost.php:145 mod/events.php:519 mod/photos.php:934
#: mod/photos.php:1291 src/Content/Conversation.php:370 #: mod/photos.php:1286 src/Content/Conversation.php:374
msgid "Permissions" msgid "Permissions"
msgstr "Разрешения" msgstr "Разрешения"
#: mod/editpost.php:147 src/Content/Conversation.php:396 #: mod/editpost.php:147 src/Content/Conversation.php:400
msgid "Open Compose page" msgid "Open Compose page"
msgstr "Развернуть редактор" msgstr "Развернуть редактор"
@ -353,28 +354,30 @@ msgstr "Эвент не может закончится до старта."
msgid "Event title and start time are required." msgid "Event title and start time are required."
msgstr "Название мероприятия и время начала обязательны для заполнения." msgstr "Название мероприятия и время начала обязательны для заполнения."
#: mod/events.php:376 #: mod/events.php:377
msgid "Create New Event" msgid "Create New Event"
msgstr "Создать новое мероприятие" msgstr "Создать новое мероприятие"
#: mod/events.php:474 src/Module/Admin/Logs/View.php:97 #: mod/events.php:475 src/Module/Admin/Logs/View.php:97
msgid "Event details" msgid "Event details"
msgstr "Сведения о мероприятии" msgstr "Сведения о мероприятии"
#: mod/events.php:475 #: mod/events.php:476
msgid "Starting date and Title are required." msgid "Starting date and Title are required."
msgstr "Необходима дата старта и заголовок." msgstr "Необходима дата старта и заголовок."
#: mod/events.php:476 mod/events.php:481 #: mod/events.php:477 mod/events.php:482
msgid "Event Starts:" msgid "Event Starts:"
msgstr "Начало мероприятия:" msgstr "Начало мероприятия:"
#: mod/events.php:476 mod/events.php:506 #: mod/events.php:477 mod/events.php:507
#: src/Module/Admin/Blocklist/Server/Add.php:104 #: src/Module/Admin/Blocklist/Server/Add.php:136
#: src/Module/Admin/Blocklist/Server/Add.php:106 #: src/Module/Admin/Blocklist/Server/Add.php:138
#: src/Module/Admin/Blocklist/Server/Index.php:68 #: src/Module/Admin/Blocklist/Server/Import.php:128
#: src/Module/Admin/Blocklist/Server/Index.php:69 #: src/Module/Admin/Blocklist/Server/Index.php:84
#: src/Module/Admin/Blocklist/Server/Index.php:96 #: src/Module/Admin/Blocklist/Server/Index.php:85
#: src/Module/Admin/Blocklist/Server/Index.php:113
#: src/Module/Admin/Blocklist/Server/Index.php:114
#: src/Module/Admin/Item/Delete.php:69 src/Module/Debug/Probe.php:59 #: src/Module/Admin/Item/Delete.php:69 src/Module/Debug/Probe.php:59
#: src/Module/Install.php:207 src/Module/Install.php:240 #: src/Module/Install.php:207 src/Module/Install.php:240
#: src/Module/Install.php:245 src/Module/Install.php:264 #: src/Module/Install.php:245 src/Module/Install.php:264
@ -382,87 +385,87 @@ msgstr "Начало мероприятия:"
#: src/Module/Install.php:286 src/Module/Install.php:291 #: src/Module/Install.php:286 src/Module/Install.php:291
#: src/Module/Install.php:305 src/Module/Install.php:320 #: src/Module/Install.php:305 src/Module/Install.php:320
#: src/Module/Install.php:347 src/Module/Register.php:148 #: src/Module/Install.php:347 src/Module/Register.php:148
#: src/Module/Security/TwoFactor/Verify.php:100 #: src/Module/Security/TwoFactor/Verify.php:102
#: src/Module/Settings/TwoFactor/Index.php:133 #: src/Module/Settings/TwoFactor/Index.php:140
#: src/Module/Settings/TwoFactor/Verify.php:154 #: src/Module/Settings/TwoFactor/Verify.php:154
msgid "Required" msgid "Required"
msgstr "Требуется" msgstr "Требуется"
#: mod/events.php:489 mod/events.php:512 #: mod/events.php:490 mod/events.php:513
msgid "Finish date/time is not known or not relevant" msgid "Finish date/time is not known or not relevant"
msgstr "Дата/время окончания не известны, или не указаны" msgstr "Дата/время окончания не известны, или не указаны"
#: mod/events.php:491 mod/events.php:496 #: mod/events.php:492 mod/events.php:497
msgid "Event Finishes:" msgid "Event Finishes:"
msgstr "Окончание мероприятия:" msgstr "Окончание мероприятия:"
#: mod/events.php:502 src/Module/Profile/Profile.php:172 #: mod/events.php:503 src/Module/Profile/Profile.php:171
#: src/Module/Settings/Profile/Index.php:238 #: src/Module/Settings/Profile/Index.php:238
msgid "Description:" msgid "Description:"
msgstr "Описание:" msgstr "Описание:"
#: mod/events.php:504 src/Content/Widget/VCard.php:104 src/Model/Event.php:80 #: mod/events.php:505 src/Content/Widget/VCard.php:105 src/Model/Event.php:80
#: src/Model/Event.php:107 src/Model/Event.php:466 src/Model/Event.php:915 #: src/Model/Event.php:107 src/Model/Event.php:469 src/Model/Event.php:919
#: src/Model/Profile.php:370 src/Module/Contact/Profile.php:369 #: src/Model/Profile.php:373 src/Module/Contact/Profile.php:371
#: src/Module/Directory.php:148 src/Module/Notifications/Introductions.php:185 #: src/Module/Directory.php:147 src/Module/Notifications/Introductions.php:186
#: src/Module/Profile/Profile.php:194 #: src/Module/Profile/Profile.php:193
msgid "Location:" msgid "Location:"
msgstr "Откуда:" msgstr "Откуда:"
#: mod/events.php:506 mod/events.php:508 #: mod/events.php:507 mod/events.php:509
msgid "Title:" msgid "Title:"
msgstr "Титул:" msgstr "Титул:"
#: mod/events.php:509 mod/events.php:510 #: mod/events.php:510 mod/events.php:511
msgid "Share this event" msgid "Share this event"
msgstr "Поделиться этим мероприятием" msgstr "Поделиться этим мероприятием"
#: mod/events.php:515 mod/message.php:201 mod/message.php:357 #: mod/events.php:516 mod/message.php:204 mod/message.php:359
#: mod/photos.php:921 mod/photos.php:1025 mod/photos.php:1295 #: mod/photos.php:916 mod/photos.php:1020 mod/photos.php:1290
#: mod/photos.php:1336 mod/photos.php:1392 mod/photos.php:1466 #: mod/photos.php:1331 mod/photos.php:1387 mod/photos.php:1461
#: src/Module/Admin/Item/Source.php:65 src/Module/Contact/Advanced.php:132 #: src/Module/Admin/Item/Source.php:60 src/Module/Contact/Advanced.php:132
#: src/Module/Contact/Poke.php:177 src/Module/Contact/Profile.php:327 #: src/Module/Contact/Profile.php:329
#: src/Module/Debug/ActivityPubConversion.php:145 #: src/Module/Debug/ActivityPubConversion.php:140
#: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64 #: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64
#: src/Module/Debug/Probe.php:54 src/Module/Debug/WebFinger.php:51 #: src/Module/Debug/Probe.php:54 src/Module/Debug/WebFinger.php:51
#: src/Module/Delegation.php:148 src/Module/FriendSuggest.php:144 #: src/Module/Delegation.php:147 src/Module/FriendSuggest.php:145
#: src/Module/Install.php:252 src/Module/Install.php:294 #: src/Module/Install.php:252 src/Module/Install.php:294
#: src/Module/Install.php:331 src/Module/Invite.php:178 #: src/Module/Install.php:331 src/Module/Invite.php:178
#: src/Module/Item/Compose.php:162 src/Module/Profile/Profile.php:247 #: src/Module/Item/Compose.php:189 src/Module/Profile/Profile.php:246
#: src/Module/Settings/Profile/Index.php:222 src/Object/Post.php:988 #: src/Module/Settings/Profile/Index.php:222 src/Object/Post.php:992
#: view/theme/duepuntozero/config.php:69 view/theme/frio/config.php:160 #: view/theme/duepuntozero/config.php:86 view/theme/frio/config.php:172
#: view/theme/quattro/config.php:71 view/theme/vier/config.php:119 #: view/theme/quattro/config.php:88 view/theme/vier/config.php:136
msgid "Submit" msgid "Submit"
msgstr "Отправить" msgstr "Отправить"
#: mod/events.php:516 src/Module/Profile/Profile.php:248 #: mod/events.php:517 src/Module/Profile/Profile.php:247
msgid "Basic" msgid "Basic"
msgstr "Базовый" msgstr "Базовый"
#: mod/events.php:517 src/Module/Admin/Site.php:439 src/Module/Contact.php:474 #: mod/events.php:518 src/Module/Admin/Site.php:437 src/Module/Contact.php:477
#: src/Module/Profile/Profile.php:249 #: src/Module/Profile/Profile.php:248
msgid "Advanced" msgid "Advanced"
msgstr "Расширенный" msgstr "Расширенный"
#: mod/events.php:534 #: mod/events.php:535
msgid "Failed to remove event" msgid "Failed to remove event"
msgstr "Ошибка удаления события" msgstr "Ошибка удаления события"
#: mod/fbrowser.php:61 src/Content/Nav.php:192 src/Module/BaseProfile.php:64 #: mod/fbrowser.php:61 src/Content/Nav.php:195 src/Module/BaseProfile.php:64
#: view/theme/frio/theme.php:227 #: view/theme/frio/theme.php:240
msgid "Photos" msgid "Photos"
msgstr "Фото" msgstr "Фото"
#: mod/fbrowser.php:120 mod/fbrowser.php:147 #: mod/fbrowser.php:121 mod/fbrowser.php:148
#: src/Module/Settings/Profile/Photo/Index.php:129 #: src/Module/Settings/Profile/Photo/Index.php:128
msgid "Upload" msgid "Upload"
msgstr "Загрузить" msgstr "Загрузить"
#: mod/fbrowser.php:142 #: mod/fbrowser.php:143
msgid "Files" msgid "Files"
msgstr "Файлы" msgstr "Файлы"
#: mod/follow.php:74 mod/unfollow.php:96 src/Module/RemoteFollow.php:126 #: mod/follow.php:74 mod/unfollow.php:96 src/Module/RemoteFollow.php:127
msgid "Submit Request" msgid "Submit Request"
msgstr "Отправить запрос" msgstr "Отправить запрос"
@ -482,13 +485,13 @@ msgstr "Поддержка Diaspora не включена. Контакт не
msgid "OStatus support is disabled. Contact can't be added." msgid "OStatus support is disabled. Contact can't be added."
msgstr "Поддержка OStatus выключена. Контакт не может быть добавлен." msgstr "Поддержка OStatus выключена. Контакт не может быть добавлен."
#: mod/follow.php:138 src/Content/Item.php:443 src/Content/Widget.php:78 #: mod/follow.php:138 src/Content/Item.php:401 src/Content/Widget.php:81
#: src/Model/Contact.php:1102 src/Model/Contact.php:1114 #: src/Model/Contact.php:1194 src/Model/Contact.php:1205
#: view/theme/vier/theme.php:172 #: view/theme/vier/theme.php:199
msgid "Connect/Follow" msgid "Connect/Follow"
msgstr "Подключиться/Подписаться" msgstr "Подключиться/Подписаться"
#: mod/follow.php:139 src/Module/RemoteFollow.php:125 #: mod/follow.php:139 src/Module/RemoteFollow.php:126
msgid "Please answer the following:" msgid "Please answer the following:"
msgstr "Пожалуйста, ответьте следующее:" msgstr "Пожалуйста, ответьте следующее:"
@ -498,15 +501,15 @@ msgstr "Ваш адрес:"
#: mod/follow.php:141 mod/unfollow.php:100 #: mod/follow.php:141 mod/unfollow.php:100
#: src/Module/Admin/Blocklist/Contact.php:116 #: src/Module/Admin/Blocklist/Contact.php:116
#: src/Module/Contact/Profile.php:365 #: src/Module/Contact/Profile.php:367
#: src/Module/Notifications/Introductions.php:127 #: src/Module/Notifications/Introductions.php:128
#: src/Module/Notifications/Introductions.php:196 #: src/Module/Notifications/Introductions.php:197
msgid "Profile URL" msgid "Profile URL"
msgstr "URL профиля" msgstr "URL профиля"
#: mod/follow.php:142 src/Module/Contact/Profile.php:377 #: mod/follow.php:142 src/Module/Contact/Profile.php:379
#: src/Module/Notifications/Introductions.php:189 #: src/Module/Notifications/Introductions.php:190
#: src/Module/Profile/Profile.php:207 #: src/Module/Profile/Profile.php:206
msgid "Tags:" msgid "Tags:"
msgstr "Ключевые слова: " msgstr "Ключевые слова: "
@ -520,7 +523,7 @@ msgid "Add a personal note:"
msgstr "Добавить личную заметку:" msgstr "Добавить личную заметку:"
#: mod/follow.php:163 mod/unfollow.php:109 src/Module/BaseProfile.php:59 #: mod/follow.php:163 mod/unfollow.php:109 src/Module/BaseProfile.php:59
#: src/Module/Contact.php:444 #: src/Module/Contact.php:447
msgid "Status Messages and Posts" msgid "Status Messages and Posts"
msgstr "Записи и статусы" msgstr "Записи и статусы"
@ -536,19 +539,19 @@ msgstr "Не удалось найти оригинальную запись."
msgid "Empty post discarded." msgid "Empty post discarded."
msgstr "Пустое сообщение отбрасывается." msgstr "Пустое сообщение отбрасывается."
#: mod/item.php:687 #: mod/item.php:674
msgid "Post updated." msgid "Post updated."
msgstr "Запись обновлена." msgstr "Запись обновлена."
#: mod/item.php:697 mod/item.php:702 #: mod/item.php:684 mod/item.php:689
msgid "Item wasn't stored." msgid "Item wasn't stored."
msgstr "Запись не была сохранена." msgstr "Запись не была сохранена."
#: mod/item.php:713 #: mod/item.php:700
msgid "Item couldn't be fetched." msgid "Item couldn't be fetched."
msgstr "Не удалось получить запись." msgstr "Не удалось получить запись."
#: mod/item.php:853 src/Module/Admin/Themes/Details.php:39 #: mod/item.php:840 src/Module/Admin/Themes/Details.php:39
#: src/Module/Admin/Themes/Index.php:59 src/Module/Debug/ItemBody.php:42 #: src/Module/Admin/Themes/Index.php:59 src/Module/Debug/ItemBody.php:42
#: src/Module/Debug/ItemBody.php:57 #: src/Module/Debug/ItemBody.php:57
msgid "Item not found." msgid "Item not found."
@ -620,7 +623,7 @@ msgid ""
"your email for further instructions." "your email for further instructions."
msgstr "Введите адрес электронной почты и подтвердите, что вы хотите сбросить ваш пароль. Затем проверьте свою электронную почту для получения дальнейших инструкций." msgstr "Введите адрес электронной почты и подтвердите, что вы хотите сбросить ваш пароль. Затем проверьте свою электронную почту для получения дальнейших инструкций."
#: mod/lostpass.php:130 src/Module/Security/Login.php:147 #: mod/lostpass.php:130 src/Module/Security/Login.php:161
msgid "Nickname or Email: " msgid "Nickname or Email: "
msgstr "Ник или E-mail: " msgstr "Ник или E-mail: "
@ -628,7 +631,7 @@ msgstr "Ник или E-mail: "
msgid "Reset" msgid "Reset"
msgstr "Сброс" msgstr "Сброс"
#: mod/lostpass.php:146 src/Module/Security/Login.php:159 #: mod/lostpass.php:146 src/Module/Security/Login.php:173
msgid "Password Reset" msgid "Password Reset"
msgstr "Сброс пароля" msgstr "Сброс пароля"
@ -700,7 +703,7 @@ msgstr "Нет соответствий"
msgid "Profile Match" msgid "Profile Match"
msgstr "Похожие профили" msgstr "Похожие профили"
#: mod/message.php:46 mod/message.php:126 src/Content/Nav.php:286 #: mod/message.php:46 mod/message.php:129 src/Content/Nav.php:289
msgid "New Message" msgid "New Message"
msgstr "Новое сообщение" msgstr "Новое сообщение"
@ -708,107 +711,107 @@ msgstr "Новое сообщение"
msgid "No recipient selected." msgid "No recipient selected."
msgstr "Не выбран получатель." msgstr "Не выбран получатель."
#: mod/message.php:87 #: mod/message.php:88
msgid "Unable to locate contact information." msgid "Unable to locate contact information."
msgstr "Не удалось найти контактную информацию." msgstr "Не удалось найти контактную информацию."
#: mod/message.php:90 mod/wallmessage.php:76 #: mod/message.php:92 mod/wallmessage.php:76
msgid "Message could not be sent." msgid "Message could not be sent."
msgstr "Сообщение не может быть отправлено." msgstr "Сообщение не может быть отправлено."
#: mod/message.php:93 mod/wallmessage.php:79 #: mod/message.php:96 mod/wallmessage.php:79
msgid "Message collection failure." msgid "Message collection failure."
msgstr "Неудача коллекции сообщения." msgstr "Неудача коллекции сообщения."
#: mod/message.php:120 src/Module/Notifications/Introductions.php:133 #: mod/message.php:123 src/Module/Notifications/Introductions.php:134
#: src/Module/Notifications/Introductions.php:168 #: src/Module/Notifications/Introductions.php:169
#: src/Module/Notifications/Notification.php:84 #: src/Module/Notifications/Notification.php:85
msgid "Discard" msgid "Discard"
msgstr "Отказаться" msgstr "Отказаться"
#: mod/message.php:133 src/Content/Nav.php:283 view/theme/frio/theme.php:234 #: mod/message.php:136 src/Content/Nav.php:286 view/theme/frio/theme.php:247
msgid "Messages" msgid "Messages"
msgstr "Сообщения" msgstr "Сообщения"
#: mod/message.php:146 #: mod/message.php:149
msgid "Conversation not found." msgid "Conversation not found."
msgstr "Беседа не найдена." msgstr "Беседа не найдена."
#: mod/message.php:151 #: mod/message.php:154
msgid "Message was not deleted." msgid "Message was not deleted."
msgstr "Сообщение не было удалено." msgstr "Сообщение не было удалено."
#: mod/message.php:166 #: mod/message.php:169
msgid "Conversation was not removed." msgid "Conversation was not removed."
msgstr "Беседа не была удалена." msgstr "Беседа не была удалена."
#: mod/message.php:180 mod/message.php:286 mod/wallmessage.php:124 #: mod/message.php:183 mod/message.php:289 mod/wallmessage.php:124
msgid "Please enter a link URL:" msgid "Please enter a link URL:"
msgstr "Пожалуйста, введите URL ссылки:" msgstr "Пожалуйста, введите URL ссылки:"
#: mod/message.php:189 mod/wallmessage.php:129 #: mod/message.php:192 mod/wallmessage.php:129
msgid "Send Private Message" msgid "Send Private Message"
msgstr "Отправить личное сообщение" msgstr "Отправить личное сообщение"
#: mod/message.php:190 mod/message.php:347 mod/wallmessage.php:131 #: mod/message.php:193 mod/message.php:349 mod/wallmessage.php:131
msgid "To:" msgid "To:"
msgstr "Кому:" msgstr "Кому:"
#: mod/message.php:191 mod/message.php:348 mod/wallmessage.php:132 #: mod/message.php:194 mod/message.php:350 mod/wallmessage.php:132
msgid "Subject:" msgid "Subject:"
msgstr "Тема:" msgstr "Тема:"
#: mod/message.php:195 mod/message.php:351 mod/wallmessage.php:138 #: mod/message.php:198 mod/message.php:353 mod/wallmessage.php:138
#: src/Module/Invite.php:171 #: src/Module/Invite.php:171
msgid "Your message:" msgid "Your message:"
msgstr "Ваше сообщение:" msgstr "Ваше сообщение:"
#: mod/message.php:222 #: mod/message.php:225
msgid "No messages." msgid "No messages."
msgstr "Нет сообщений." msgstr "Нет сообщений."
#: mod/message.php:278 #: mod/message.php:281
msgid "Message not available." msgid "Message not available."
msgstr "Сообщение не доступно." msgstr "Сообщение не доступно."
#: mod/message.php:323 #: mod/message.php:326
msgid "Delete message" msgid "Delete message"
msgstr "Удалить сообщение" msgstr "Удалить сообщение"
#: mod/message.php:325 mod/message.php:457 #: mod/message.php:328 mod/message.php:459
msgid "D, d M Y - g:i A" msgid "D, d M Y - g:i A"
msgstr "D, d M Y - g:i A" msgstr "D, d M Y - g:i A"
#: mod/message.php:340 mod/message.php:454 #: mod/message.php:343 mod/message.php:456
msgid "Delete conversation" msgid "Delete conversation"
msgstr "Удалить историю общения" msgstr "Удалить историю общения"
#: mod/message.php:342 #: mod/message.php:345
msgid "" msgid ""
"No secure communications available. You <strong>may</strong> be able to " "No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page." "respond from the sender's profile page."
msgstr "Невозможно защищённое соединение. Вы <strong>имеете</strong> возможность ответить со страницы профиля отправителя." msgstr "Невозможно защищённое соединение. Вы <strong>имеете</strong> возможность ответить со страницы профиля отправителя."
#: mod/message.php:346 #: mod/message.php:348
msgid "Send Reply" msgid "Send Reply"
msgstr "Отправить ответ" msgstr "Отправить ответ"
#: mod/message.php:428 #: mod/message.php:430
#, php-format #, php-format
msgid "Unknown sender - %s" msgid "Unknown sender - %s"
msgstr "Неизвестный отправитель - %s" msgstr "Неизвестный отправитель - %s"
#: mod/message.php:430 #: mod/message.php:432
#, php-format #, php-format
msgid "You and %s" msgid "You and %s"
msgstr "Вы и %s" msgstr "Вы и %s"
#: mod/message.php:432 #: mod/message.php:434
#, php-format #, php-format
msgid "%s and You" msgid "%s and You"
msgstr "%s и Вы" msgstr "%s и Вы"
#: mod/message.php:460 #: mod/message.php:462
#, php-format #, php-format
msgid "%d message" msgid "%d message"
msgid_plural "%d messages" msgid_plural "%d messages"
@ -829,322 +832,322 @@ msgstr "Личные заметки видны только вам."
msgid "Subscribing to contacts" msgid "Subscribing to contacts"
msgstr "Подписка на контакты" msgstr "Подписка на контакты"
#: mod/ostatus_subscribe.php:48 #: mod/ostatus_subscribe.php:47
msgid "No contact provided." msgid "No contact provided."
msgstr "Не указан контакт." msgstr "Не указан контакт."
#: mod/ostatus_subscribe.php:54 #: mod/ostatus_subscribe.php:53
msgid "Couldn't fetch information for contact." msgid "Couldn't fetch information for contact."
msgstr "Невозможно получить информацию о контакте." msgstr "Невозможно получить информацию о контакте."
#: mod/ostatus_subscribe.php:65 #: mod/ostatus_subscribe.php:64
msgid "Couldn't fetch friends for contact." msgid "Couldn't fetch friends for contact."
msgstr "Невозможно получить друзей для контакта." msgstr "Невозможно получить друзей для контакта."
#: mod/ostatus_subscribe.php:71 mod/ostatus_subscribe.php:82 #: mod/ostatus_subscribe.php:70 mod/ostatus_subscribe.php:81
msgid "Couldn't fetch following contacts." msgid "Couldn't fetch following contacts."
msgstr "Не удалось загрузить контакты подписчиков." msgstr "Не удалось загрузить контакты подписчиков."
#: mod/ostatus_subscribe.php:77 #: mod/ostatus_subscribe.php:76
msgid "Couldn't fetch remote profile." msgid "Couldn't fetch remote profile."
msgstr "Не получилось загрузить профиль." msgstr "Не получилось загрузить профиль."
#: mod/ostatus_subscribe.php:87 #: mod/ostatus_subscribe.php:86
msgid "Unsupported network" msgid "Unsupported network"
msgstr "Сеть не поддерживается" msgstr "Сеть не поддерживается"
#: mod/ostatus_subscribe.php:103 mod/repair_ostatus.php:51 #: mod/ostatus_subscribe.php:102 mod/repair_ostatus.php:51
msgid "Done" msgid "Done"
msgstr "Готово" msgstr "Готово"
#: mod/ostatus_subscribe.php:117 #: mod/ostatus_subscribe.php:116
msgid "success" msgid "success"
msgstr "удачно" msgstr "удачно"
#: mod/ostatus_subscribe.php:119 #: mod/ostatus_subscribe.php:118
msgid "failed" msgid "failed"
msgstr "неудача" msgstr "неудача"
#: mod/ostatus_subscribe.php:122 #: mod/ostatus_subscribe.php:121
msgid "ignored" msgid "ignored"
msgstr "игнорирован" msgstr "игнорирован"
#: mod/ostatus_subscribe.php:127 mod/repair_ostatus.php:57 #: mod/ostatus_subscribe.php:126 mod/repair_ostatus.php:57
msgid "Keep this window open until done." msgid "Keep this window open until done."
msgstr "Держать окно открытым до завершения." msgstr "Держать окно открытым до завершения."
#: mod/photos.php:108 src/Module/BaseProfile.php:67 #: mod/photos.php:107 src/Module/BaseProfile.php:67
msgid "Photo Albums" msgid "Photo Albums"
msgstr "Фотоальбомы" msgstr "Фотоальбомы"
#: mod/photos.php:109 mod/photos.php:1584 #: mod/photos.php:108 mod/photos.php:1579
msgid "Recent Photos" msgid "Recent Photos"
msgstr "Последние фото" msgstr "Последние фото"
#: mod/photos.php:111 mod/photos.php:1073 mod/photos.php:1586 #: mod/photos.php:110 mod/photos.php:1068 mod/photos.php:1581
msgid "Upload New Photos" msgid "Upload New Photos"
msgstr "Загрузить новые фото" msgstr "Загрузить новые фото"
#: mod/photos.php:129 src/Module/BaseSettings.php:35 #: mod/photos.php:128 src/Module/BaseSettings.php:35
msgid "everybody" msgid "everybody"
msgstr "все" msgstr "все"
#: mod/photos.php:167 #: mod/photos.php:166
msgid "Contact information unavailable" msgid "Contact information unavailable"
msgstr "Информация о контакте недоступна" msgstr "Информация о контакте недоступна"
#: mod/photos.php:196 #: mod/photos.php:195
msgid "Album not found." msgid "Album not found."
msgstr "Альбом не найден." msgstr "Альбом не найден."
#: mod/photos.php:250 #: mod/photos.php:249
msgid "Album successfully deleted" msgid "Album successfully deleted"
msgstr "Альбом успешно удалён" msgstr "Альбом успешно удалён"
#: mod/photos.php:252 #: mod/photos.php:251
msgid "Album was empty." msgid "Album was empty."
msgstr "Альбом был пуст." msgstr "Альбом был пуст."
#: mod/photos.php:284 #: mod/photos.php:283
msgid "Failed to delete the photo." msgid "Failed to delete the photo."
msgstr "Не получилось удалить фото." msgstr "Не получилось удалить фото."
#: mod/photos.php:553 #: mod/photos.php:552
msgid "a photo" msgid "a photo"
msgstr "фото" msgstr "фото"
#: mod/photos.php:553 #: mod/photos.php:552
#, php-format #, php-format
msgid "%1$s was tagged in %2$s by %3$s" msgid "%1$s was tagged in %2$s by %3$s"
msgstr "%1$s отмечен/а/ в %2$s by %3$s" msgstr "%1$s отмечен/а/ в %2$s by %3$s"
#: mod/photos.php:636 mod/photos.php:639 mod/photos.php:666 #: mod/photos.php:631 mod/photos.php:634 mod/photos.php:661
#: mod/wall_upload.php:201 src/Module/Settings/Profile/Photo/Index.php:60 #: mod/wall_upload.php:200 src/Module/Settings/Profile/Photo/Index.php:59
#, php-format #, php-format
msgid "Image exceeds size limit of %s" msgid "Image exceeds size limit of %s"
msgstr "Изображение превышает лимит размера в %s" msgstr "Изображение превышает лимит размера в %s"
#: mod/photos.php:642 #: mod/photos.php:637
msgid "Image upload didn't complete, please try again" msgid "Image upload didn't complete, please try again"
msgstr "Не получилось загрузить изображение, попробуйте снова" msgstr "Не получилось загрузить изображение, попробуйте снова"
#: mod/photos.php:645 #: mod/photos.php:640
msgid "Image file is missing" msgid "Image file is missing"
msgstr "Файл изображения не найден" msgstr "Файл изображения не найден"
#: mod/photos.php:650 #: mod/photos.php:645
msgid "" msgid ""
"Server can't accept new file upload at this time, please contact your " "Server can't accept new file upload at this time, please contact your "
"administrator" "administrator"
msgstr "Сервер не принимает новые файлы для загрузки в настоящий момент, пожалуйста, свяжитесь с администратором" msgstr "Сервер не принимает новые файлы для загрузки в настоящий момент, пожалуйста, свяжитесь с администратором"
#: mod/photos.php:674 #: mod/photos.php:669
msgid "Image file is empty." msgid "Image file is empty."
msgstr "Файл изображения пуст." msgstr "Файл изображения пуст."
#: mod/photos.php:689 mod/wall_upload.php:163 #: mod/photos.php:684 mod/wall_upload.php:162
#: src/Module/Settings/Profile/Photo/Index.php:69 #: src/Module/Settings/Profile/Photo/Index.php:68
msgid "Unable to process image." msgid "Unable to process image."
msgstr "Невозможно обработать фото." msgstr "Невозможно обработать фото."
#: mod/photos.php:715 mod/wall_upload.php:226 #: mod/photos.php:710 mod/wall_upload.php:225
#: src/Module/Settings/Profile/Photo/Index.php:96 #: src/Module/Settings/Profile/Photo/Index.php:95
msgid "Image upload failed." msgid "Image upload failed."
msgstr "Загрузка фото неудачная." msgstr "Загрузка фото неудачная."
#: mod/photos.php:807 #: mod/photos.php:802
msgid "No photos selected" msgid "No photos selected"
msgstr "Не выбрано фото." msgstr "Не выбрано фото."
#: mod/photos.php:876 #: mod/photos.php:871
msgid "Access to this item is restricted." msgid "Access to this item is restricted."
msgstr "Доступ к этому пункту ограничен." msgstr "Доступ к этому пункту ограничен."
#: mod/photos.php:931 #: mod/photos.php:926
msgid "Upload Photos" msgid "Upload Photos"
msgstr "Загрузить фото" msgstr "Загрузить фото"
#: mod/photos.php:935 mod/photos.php:1021 #: mod/photos.php:930 mod/photos.php:1016
msgid "New album name: " msgid "New album name: "
msgstr "Название нового альбома: " msgstr "Название нового альбома: "
#: mod/photos.php:936 #: mod/photos.php:931
msgid "or select existing album:" msgid "or select existing album:"
msgstr "или выберите имеющийся альбом:" msgstr "или выберите имеющийся альбом:"
#: mod/photos.php:937 #: mod/photos.php:932
msgid "Do not show a status post for this upload" msgid "Do not show a status post for this upload"
msgstr "Не показывать статус-сообщение для этой закачки" msgstr "Не показывать статус-сообщение для этой закачки"
#: mod/photos.php:1002 #: mod/photos.php:997
msgid "Do you really want to delete this photo album and all its photos?" msgid "Do you really want to delete this photo album and all its photos?"
msgstr "Вы действительно хотите удалить этот альбом и все его фотографии?" msgstr "Вы действительно хотите удалить этот альбом и все его фотографии?"
#: mod/photos.php:1003 mod/photos.php:1026 #: mod/photos.php:998 mod/photos.php:1021
msgid "Delete Album" msgid "Delete Album"
msgstr "Удалить альбом" msgstr "Удалить альбом"
#: mod/photos.php:1030 #: mod/photos.php:1025
msgid "Edit Album" msgid "Edit Album"
msgstr "Редактировать альбом" msgstr "Редактировать альбом"
#: mod/photos.php:1031 #: mod/photos.php:1026
msgid "Drop Album" msgid "Drop Album"
msgstr "Удалить альбом" msgstr "Удалить альбом"
#: mod/photos.php:1035 #: mod/photos.php:1030
msgid "Show Newest First" msgid "Show Newest First"
msgstr "Показать новые первыми" msgstr "Показать новые первыми"
#: mod/photos.php:1037 #: mod/photos.php:1032
msgid "Show Oldest First" msgid "Show Oldest First"
msgstr "Показать старые первыми" msgstr "Показать старые первыми"
#: mod/photos.php:1058 mod/photos.php:1569 #: mod/photos.php:1053 mod/photos.php:1564
msgid "View Photo" msgid "View Photo"
msgstr "Просмотр фото" msgstr "Просмотр фото"
#: mod/photos.php:1091 #: mod/photos.php:1086
msgid "Permission denied. Access to this item may be restricted." msgid "Permission denied. Access to this item may be restricted."
msgstr "Нет разрешения. Доступ к этому элементу ограничен." msgstr "Нет разрешения. Доступ к этому элементу ограничен."
#: mod/photos.php:1093 #: mod/photos.php:1088
msgid "Photo not available" msgid "Photo not available"
msgstr "Фото недоступно" msgstr "Фото недоступно"
#: mod/photos.php:1103 #: mod/photos.php:1098
msgid "Do you really want to delete this photo?" msgid "Do you really want to delete this photo?"
msgstr "Вы действительно хотите удалить эту фотографию?" msgstr "Вы действительно хотите удалить эту фотографию?"
#: mod/photos.php:1104 mod/photos.php:1296 #: mod/photos.php:1099 mod/photos.php:1291
msgid "Delete Photo" msgid "Delete Photo"
msgstr "Удалить фото" msgstr "Удалить фото"
#: mod/photos.php:1196 #: mod/photos.php:1191
msgid "View photo" msgid "View photo"
msgstr "Просмотр фото" msgstr "Просмотр фото"
#: mod/photos.php:1198 #: mod/photos.php:1193
msgid "Edit photo" msgid "Edit photo"
msgstr "Редактировать фото" msgstr "Редактировать фото"
#: mod/photos.php:1199 #: mod/photos.php:1194
msgid "Delete photo" msgid "Delete photo"
msgstr "Удалить фото" msgstr "Удалить фото"
#: mod/photos.php:1200 #: mod/photos.php:1195
msgid "Use as profile photo" msgid "Use as profile photo"
msgstr "Использовать как фото профиля" msgstr "Использовать как фото профиля"
#: mod/photos.php:1207 #: mod/photos.php:1202
msgid "Private Photo" msgid "Private Photo"
msgstr "Закрытое фото" msgstr "Закрытое фото"
#: mod/photos.php:1213 #: mod/photos.php:1208
msgid "View Full Size" msgid "View Full Size"
msgstr "Просмотреть полный размер" msgstr "Просмотреть полный размер"
#: mod/photos.php:1264 #: mod/photos.php:1259
msgid "Tags: " msgid "Tags: "
msgstr "Ключевые слова: " msgstr "Ключевые слова: "
#: mod/photos.php:1267 #: mod/photos.php:1262
msgid "[Select tags to remove]" msgid "[Select tags to remove]"
msgstr "[выберите тэги для удаления]" msgstr "[выберите тэги для удаления]"
#: mod/photos.php:1282 #: mod/photos.php:1277
msgid "New album name" msgid "New album name"
msgstr "Название нового альбома" msgstr "Название нового альбома"
#: mod/photos.php:1283 #: mod/photos.php:1278
msgid "Caption" msgid "Caption"
msgstr "Подпись" msgstr "Подпись"
#: mod/photos.php:1284 #: mod/photos.php:1279
msgid "Add a Tag" msgid "Add a Tag"
msgstr "Добавить тег" msgstr "Добавить тег"
#: mod/photos.php:1284 #: mod/photos.php:1279
msgid "" msgid ""
"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "Пример: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Пример: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
#: mod/photos.php:1285 #: mod/photos.php:1280
msgid "Do not rotate" msgid "Do not rotate"
msgstr "Не поворачивать" msgstr "Не поворачивать"
#: mod/photos.php:1286 #: mod/photos.php:1281
msgid "Rotate CW (right)" msgid "Rotate CW (right)"
msgstr "Поворот по часовой стрелке (направо)" msgstr "Поворот по часовой стрелке (направо)"
#: mod/photos.php:1287 #: mod/photos.php:1282
msgid "Rotate CCW (left)" msgid "Rotate CCW (left)"
msgstr "Поворот против часовой стрелки (налево)" msgstr "Поворот против часовой стрелки (налево)"
#: mod/photos.php:1333 mod/photos.php:1389 mod/photos.php:1463 #: mod/photos.php:1328 mod/photos.php:1384 mod/photos.php:1458
#: src/Module/Contact.php:544 src/Module/Item/Compose.php:160 #: src/Module/Contact.php:547 src/Module/Item/Compose.php:188
#: src/Object/Post.php:985 #: src/Object/Post.php:989
msgid "This is you" msgid "This is you"
msgstr "Это вы" msgstr "Это вы"
#: mod/photos.php:1335 mod/photos.php:1391 mod/photos.php:1465 #: mod/photos.php:1330 mod/photos.php:1386 mod/photos.php:1460
#: src/Object/Post.php:522 src/Object/Post.php:987 #: src/Object/Post.php:532 src/Object/Post.php:991
msgid "Comment" msgid "Comment"
msgstr "Комментировать" msgstr "Комментировать"
#: mod/photos.php:1424 src/Content/Conversation.php:628 #: mod/photos.php:1419 src/Content/Conversation.php:634
#: src/Object/Post.php:247 #: src/Object/Post.php:256
msgid "Select" msgid "Select"
msgstr "Выберите" msgstr "Выберите"
#: mod/photos.php:1425 mod/settings.php:350 src/Content/Conversation.php:629 #: mod/photos.php:1420 mod/settings.php:350 src/Content/Conversation.php:635
#: src/Module/Admin/Users/Active.php:139 #: src/Module/Admin/Users/Active.php:139
#: src/Module/Admin/Users/Blocked.php:140 src/Module/Admin/Users/Index.php:153 #: src/Module/Admin/Users/Blocked.php:141 src/Module/Admin/Users/Index.php:154
msgid "Delete" msgid "Delete"
msgstr "Удалить" msgstr "Удалить"
#: mod/photos.php:1486 src/Object/Post.php:369 #: mod/photos.php:1481 src/Object/Post.php:379
msgid "Like" msgid "Like"
msgstr "Нравится" msgstr "Нравится"
#: mod/photos.php:1487 src/Object/Post.php:369 #: mod/photos.php:1482 src/Object/Post.php:379
msgid "I like this (toggle)" msgid "I like this (toggle)"
msgstr "Нравится" msgstr "Нравится"
#: mod/photos.php:1488 src/Object/Post.php:370 #: mod/photos.php:1483 src/Object/Post.php:380
msgid "Dislike" msgid "Dislike"
msgstr "Не нравится" msgstr "Не нравится"
#: mod/photos.php:1490 src/Object/Post.php:370 #: mod/photos.php:1485 src/Object/Post.php:380
msgid "I don't like this (toggle)" msgid "I don't like this (toggle)"
msgstr "Не нравится" msgstr "Не нравится"
#: mod/photos.php:1512 #: mod/photos.php:1507
msgid "Map" msgid "Map"
msgstr "Карта" msgstr "Карта"
#: mod/photos.php:1575 #: mod/photos.php:1570
msgid "View Album" msgid "View Album"
msgstr "Просмотреть альбом" msgstr "Просмотреть альбом"
#: mod/redir.php:51 mod/redir.php:104 #: mod/redir.php:50 mod/redir.php:103
msgid "Bad Request." msgid "Bad Request."
msgstr "Ошибочный запрос." msgstr "Ошибочный запрос."
#: mod/redir.php:57 mod/redir.php:131 src/Module/Contact/Advanced.php:70 #: mod/redir.php:56 mod/redir.php:130 src/Module/Contact/Advanced.php:70
#: src/Module/Contact/Advanced.php:109 src/Module/Contact/Contacts.php:55 #: src/Module/Contact/Advanced.php:109 src/Module/Contact/Contacts.php:53
#: src/Module/Contact/Conversations.php:78 #: src/Module/Contact/Conversations.php:79
#: src/Module/Contact/Conversations.php:83 #: src/Module/Contact/Conversations.php:84
#: src/Module/Contact/Conversations.php:88 src/Module/Contact/Media.php:43 #: src/Module/Contact/Conversations.php:89 src/Module/Contact/Media.php:43
#: src/Module/Contact/Posts.php:72 src/Module/Contact/Posts.php:77 #: src/Module/Contact/Posts.php:73 src/Module/Contact/Posts.php:78
#: src/Module/Contact/Posts.php:82 src/Module/Contact/Profile.php:141 #: src/Module/Contact/Posts.php:83 src/Module/Contact/Profile.php:143
#: src/Module/Contact/Profile.php:146 src/Module/Contact/Profile.php:151 #: src/Module/Contact/Profile.php:148 src/Module/Contact/Profile.php:153
#: src/Module/FriendSuggest.php:70 src/Module/FriendSuggest.php:108 #: src/Module/FriendSuggest.php:71 src/Module/FriendSuggest.php:109
#: src/Module/Group.php:99 src/Module/Group.php:108 #: src/Module/Group.php:97 src/Module/Group.php:106
msgid "Contact not found." msgid "Contact not found."
msgstr "Контакт не найден." msgstr "Контакт не найден."
#: mod/removeme.php:65 src/Navigation/Notifications/Repository/Notify.php:482 #: mod/removeme.php:65 src/Navigation/Notifications/Repository/Notify.php:467
msgid "[Friendica System Notify]" msgid "[Friendica System Notify]"
msgstr "[Системное уведомление Friendica]" msgstr "[Системное уведомление Friendica]"
@ -1181,8 +1184,8 @@ msgstr "Пожалуйста, введите свой пароль для про
msgid "Resubscribing to OStatus contacts" msgid "Resubscribing to OStatus contacts"
msgstr "Переподписаться на OStatus-контакты." msgstr "Переподписаться на OStatus-контакты."
#: mod/repair_ostatus.php:46 src/Module/Debug/ActivityPubConversion.php:134 #: mod/repair_ostatus.php:46 src/Module/Debug/ActivityPubConversion.php:129
#: src/Module/Debug/Babel.php:293 src/Module/Security/TwoFactor/Verify.php:97 #: src/Module/Debug/Babel.php:293 src/Module/Security/TwoFactor/Verify.php:99
msgid "Error" msgid "Error"
msgid_plural "Errors" msgid_plural "Errors"
msgstr[0] "Ошибка" msgstr[0] "Ошибка"
@ -1200,14 +1203,14 @@ msgstr "Подключенные приложения"
#: mod/settings.php:176 src/Module/Admin/Blocklist/Contact.php:106 #: mod/settings.php:176 src/Module/Admin/Blocklist/Contact.php:106
#: src/Module/Admin/Users/Active.php:129 #: src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:130 src/Module/Admin/Users/Create.php:71 #: src/Module/Admin/Users/Blocked.php:131 src/Module/Admin/Users/Create.php:71
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143
#: src/Module/Admin/Users/Index.php:162 src/Module/Admin/Users/Pending.php:104 #: src/Module/Admin/Users/Index.php:163 src/Module/Admin/Users/Pending.php:104
#: src/Module/Contact/Advanced.php:134 #: src/Module/Contact/Advanced.php:134
msgid "Name" msgid "Name"
msgstr "Имя" msgstr "Имя"
#: mod/settings.php:177 src/Content/Nav.php:212 #: mod/settings.php:177 src/Content/Nav.php:215
msgid "Home Page" msgid "Home Page"
msgstr "Главная страница" msgstr "Главная страница"
@ -1222,9 +1225,9 @@ msgstr "Удалить авторизацию"
#: mod/settings.php:205 mod/settings.php:237 mod/settings.php:268 #: mod/settings.php:205 mod/settings.php:237 mod/settings.php:268
#: mod/settings.php:352 src/Module/Admin/Addons/Index.php:69 #: mod/settings.php:352 src/Module/Admin/Addons/Index.php:69
#: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81 #: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81
#: src/Module/Admin/Site.php:434 src/Module/Admin/Themes/Index.php:113 #: src/Module/Admin/Site.php:432 src/Module/Admin/Themes/Index.php:113
#: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:559 #: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:563
#: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:193 #: src/Module/Settings/Delegation.php:169 src/Module/Settings/Display.php:200
msgid "Save Settings" msgid "Save Settings"
msgstr "Сохранить настройки" msgstr "Сохранить настройки"
@ -1406,7 +1409,7 @@ msgstr "Отправлять открытые сообщения на все к
msgid "Action after import:" msgid "Action after import:"
msgstr "Действие после импорта:" msgstr "Действие после импорта:"
#: mod/settings.php:350 src/Content/Nav.php:280 #: mod/settings.php:350 src/Content/Nav.php:283
msgid "Mark as seen" msgid "Mark as seen"
msgstr "Отметить, как прочитанное" msgstr "Отметить, как прочитанное"
@ -1424,19 +1427,19 @@ msgid ""
"hours." "hours."
msgstr "Нет предложений. Если это новый сайт, пожалуйста, попробуйте снова через 24 часа." msgstr "Нет предложений. Если это новый сайт, пожалуйста, попробуйте снова через 24 часа."
#: mod/suggest.php:55 src/Content/Widget.php:81 view/theme/vier/theme.php:175 #: mod/suggest.php:55 src/Content/Widget.php:84 view/theme/vier/theme.php:202
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "Предложения друзей" msgstr "Предложения друзей"
#: mod/tagger.php:78 src/Content/Item.php:342 src/Model/Item.php:2699 #: mod/tagger.php:77 src/Content/Item.php:301 src/Model/Item.php:2860
msgid "photo" msgid "photo"
msgstr "фото" msgstr "фото"
#: mod/tagger.php:78 src/Content/Item.php:337 src/Content/Item.php:346 #: mod/tagger.php:77 src/Content/Item.php:295 src/Content/Item.php:305
msgid "status" msgid "status"
msgstr "статус" msgstr "статус"
#: mod/tagger.php:111 src/Content/Item.php:356 #: mod/tagger.php:110 src/Content/Item.php:315
#, php-format #, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s" msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s tagged %2$s's %3$s в %4$s" msgstr "%1$s tagged %2$s's %3$s в %4$s"
@ -1449,8 +1452,8 @@ msgstr "Удалить ключевое слово"
msgid "Select a tag to remove: " msgid "Select a tag to remove: "
msgstr "Выберите ключевое слово для удаления: " msgstr "Выберите ключевое слово для удаления: "
#: mod/tagrm.php:126 src/Module/Settings/Delegation.php:179 #: mod/tagrm.php:126 src/Module/Settings/Delegation.php:178
#: src/Module/Settings/TwoFactor/Trusted.php:140 #: src/Module/Settings/TwoFactor/Trusted.php:143
msgid "Remove" msgid "Remove"
msgstr "Удалить" msgstr "Удалить"
@ -1519,30 +1522,30 @@ msgstr "Подписка успешно удалена"
msgid "Unable to unfollow this contact, please contact your administrator" msgid "Unable to unfollow this contact, please contact your administrator"
msgstr "Не получается отписаться от этого контакта, пожалуйста, свяжитесь с вашим администратором" msgstr "Не получается отписаться от этого контакта, пожалуйста, свяжитесь с вашим администратором"
#: mod/wall_attach.php:40 mod/wall_attach.php:46 mod/wall_attach.php:75 #: mod/wall_attach.php:39 mod/wall_attach.php:45 mod/wall_attach.php:74
#: mod/wall_upload.php:54 mod/wall_upload.php:63 mod/wall_upload.php:97 #: mod/wall_upload.php:53 mod/wall_upload.php:62 mod/wall_upload.php:96
#: mod/wall_upload.php:148 mod/wall_upload.php:150 #: mod/wall_upload.php:147 mod/wall_upload.php:149
msgid "Invalid request." msgid "Invalid request."
msgstr "Неверный запрос." msgstr "Неверный запрос."
#: mod/wall_attach.php:93 #: mod/wall_attach.php:92
msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" msgid "Sorry, maybe your upload is bigger than the PHP configuration allows"
msgstr "Извините, похоже что загружаемый файл превышает лимиты, разрешенные конфигурацией PHP" msgstr "Извините, похоже что загружаемый файл превышает лимиты, разрешенные конфигурацией PHP"
#: mod/wall_attach.php:93 #: mod/wall_attach.php:92
msgid "Or - did you try to upload an empty file?" msgid "Or - did you try to upload an empty file?"
msgstr "Или вы пытались загрузить пустой файл?" msgstr "Или вы пытались загрузить пустой файл?"
#: mod/wall_attach.php:104 #: mod/wall_attach.php:103
#, php-format #, php-format
msgid "File exceeds size limit of %s" msgid "File exceeds size limit of %s"
msgstr "Файл превышает лимит размера в %s" msgstr "Файл превышает лимит размера в %s"
#: mod/wall_attach.php:119 #: mod/wall_attach.php:118
msgid "File upload failed." msgid "File upload failed."
msgstr "Загрузка файла не удалась." msgstr "Загрузка файла не удалась."
#: mod/wall_upload.php:218 src/Model/Photo.php:1061 #: mod/wall_upload.php:217 src/Model/Photo.php:1086
msgid "Wall Photos" msgid "Wall Photos"
msgstr "Фото стены" msgstr "Фото стены"
@ -1566,80 +1569,80 @@ msgid ""
"your site allow private mail from unknown senders." "your site allow private mail from unknown senders."
msgstr "Если Вы хотите ответить %s, пожалуйста, проверьте, позволяют ли настройки конфиденциальности на Вашем сайте принимать личные сообщения от неизвестных отправителей." msgstr "Если Вы хотите ответить %s, пожалуйста, проверьте, позволяют ли настройки конфиденциальности на Вашем сайте принимать личные сообщения от неизвестных отправителей."
#: src/App.php:463 #: src/App.php:491
msgid "No system theme config value set." msgid "No system theme config value set."
msgstr "Настройки системной темы не установлены." msgstr "Настройки системной темы не установлены."
#: src/App.php:584 #: src/App.php:612
msgid "Apologies but the website is unavailable at the moment." msgid "Apologies but the website is unavailable at the moment."
msgstr "Приносим извинения, но этот сервис сейчас недоступен." msgstr "Приносим извинения, но этот сервис сейчас недоступен."
#: src/App/Page.php:276 #: src/App/Page.php:282
msgid "Delete this item?" msgid "Delete this item?"
msgstr "Удалить этот элемент?" msgstr "Удалить этот элемент?"
#: src/App/Page.php:277 #: src/App/Page.php:283
msgid "" msgid ""
"Block this author? They won't be able to follow you nor see your public " "Block this author? They won't be able to follow you nor see your public "
"posts, and you won't be able to see their posts and their notifications." "posts, and you won't be able to see their posts and their notifications."
msgstr "Заблокировать этого автора? Они не смогут подписаться на вас или видеть ваши записи, вы не будете видеть их записи и получать от них уведомления." msgstr "Заблокировать этого автора? Они не смогут подписаться на вас или видеть ваши записи, вы не будете видеть их записи и получать от них уведомления."
#: src/App/Page.php:347 #: src/App/Page.php:353
msgid "toggle mobile" msgid "toggle mobile"
msgstr "мобильная версия" msgstr "мобильная версия"
#: src/App/Router.php:275 #: src/App/Router.php:283
#, php-format #, php-format
msgid "Method not allowed for this module. Allowed method(s): %s" msgid "Method not allowed for this module. Allowed method(s): %s"
msgstr "Метод не разрешён для этого модуля. Разрешенный метод(ы): %s" msgstr "Метод не разрешён для этого модуля. Разрешенный метод(ы): %s"
#: src/App/Router.php:277 src/Module/HTTPException/PageNotFound.php:34 #: src/App/Router.php:285 src/Module/HTTPException/PageNotFound.php:49
msgid "Page not found." msgid "Page not found."
msgstr "Страница не найдена." msgstr "Страница не найдена."
#: src/App/Router.php:305 #: src/App/Router.php:313
msgid "You must be logged in to use addons. " msgid "You must be logged in to use addons. "
msgstr "Вы должны войти в систему, чтобы использовать аддоны." msgstr "Вы должны войти в систему, чтобы использовать аддоны."
#: src/BaseModule.php:377 #: src/BaseModule.php:392
msgid "" msgid ""
"The form security token was not correct. This probably happened because the " "The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it." "form has been opened for too long (>3 hours) before submitting it."
msgstr "Ключ формы безопасности неправильный. Вероятно, это произошло потому, что форма была открыта слишком долго (более 3 часов) до её отправки." msgstr "Ключ формы безопасности неправильный. Вероятно, это произошло потому, что форма была открыта слишком долго (более 3 часов) до её отправки."
#: src/BaseModule.php:404 #: src/BaseModule.php:419
msgid "All contacts" msgid "All contacts"
msgstr "Все контакты" msgstr "Все контакты"
#: src/BaseModule.php:409 src/Content/Widget.php:233 src/Core/ACL.php:194 #: src/BaseModule.php:424 src/Content/Widget.php:236 src/Core/ACL.php:194
#: src/Module/Contact.php:367 src/Module/PermissionTooltip.php:122 #: src/Module/Contact.php:370 src/Module/PermissionTooltip.php:122
#: src/Module/PermissionTooltip.php:144 #: src/Module/PermissionTooltip.php:144
msgid "Followers" msgid "Followers"
msgstr "Подписаны на вас" msgstr "Подписаны на вас"
#: src/BaseModule.php:414 src/Content/Widget.php:234 #: src/BaseModule.php:429 src/Content/Widget.php:237
#: src/Module/Contact.php:368 #: src/Module/Contact.php:371
msgid "Following" msgid "Following"
msgstr "Ваши подписки" msgstr "Ваши подписки"
#: src/BaseModule.php:419 src/Content/Widget.php:235 #: src/BaseModule.php:434 src/Content/Widget.php:238
#: src/Module/Contact.php:369 #: src/Module/Contact.php:372
msgid "Mutual friends" msgid "Mutual friends"
msgstr "Взаимные друзья" msgstr "Взаимные друзья"
#: src/BaseModule.php:427 #: src/BaseModule.php:442
msgid "Common" msgid "Common"
msgstr "Общее" msgstr "Общее"
#: src/Console/Addon.php:177 src/Console/Addon.php:202 #: src/Console/Addon.php:175 src/Console/Addon.php:199
msgid "Addon not found" msgid "Addon not found"
msgstr "Дополнение не найдено" msgstr "Дополнение не найдено"
#: src/Console/Addon.php:181 #: src/Console/Addon.php:179
msgid "Addon already enabled" msgid "Addon already enabled"
msgstr "Дополнение уже включено" msgstr "Дополнение уже включено"
#: src/Console/Addon.php:206 #: src/Console/Addon.php:203
msgid "Addon already disabled" msgid "Addon already disabled"
msgstr "Дополнение уже отключено" msgstr "Дополнение уже отключено"
@ -1663,63 +1666,63 @@ msgstr "Не удалось найти контактных данных по э
msgid "The contact has been blocked from the node" msgid "The contact has been blocked from the node"
msgstr "Контакт был заблокирован на узле." msgstr "Контакт был заблокирован на узле."
#: src/Console/MergeContacts.php:74 #: src/Console/MergeContacts.php:75
#, php-format #, php-format
msgid "%d %s, %d duplicates." msgid "%d %s, %d duplicates."
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:77 #: src/Console/MergeContacts.php:78
#, php-format #, php-format
msgid "uri-id is empty for contact %s." msgid "uri-id is empty for contact %s."
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:90 #: src/Console/MergeContacts.php:91
#, php-format #, php-format
msgid "No valid first countact found for uri-id %d." msgid "No valid first contact found for uri-id %d."
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:101 #: src/Console/MergeContacts.php:102
#, php-format #, php-format
msgid "Wrong duplicate found for uri-id %d in %d (url: %s != %s)." msgid "Wrong duplicate found for uri-id %d in %d (url: %s != %s)."
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:105 #: src/Console/MergeContacts.php:106
#, php-format #, php-format
msgid "Wrong duplicate found for uri-id %d in %d (nurl: %s != %s)." msgid "Wrong duplicate found for uri-id %d in %d (nurl: %s != %s)."
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:141 #: src/Console/MergeContacts.php:142
#, php-format #, php-format
msgid "Deletion of id %d failed" msgid "Deletion of id %d failed"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:143 #: src/Console/MergeContacts.php:144
#, php-format #, php-format
msgid "Deletion of id %d was successful" msgid "Deletion of id %d was successful"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:149 #: src/Console/MergeContacts.php:150
#, php-format #, php-format
msgid "Updating \"%s\" in \"%s\" from %d to %d" msgid "Updating \"%s\" in \"%s\" from %d to %d"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:151 #: src/Console/MergeContacts.php:152
msgid " - found" msgid " - found"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:158 #: src/Console/MergeContacts.php:159
msgid " - failed" msgid " - failed"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:160 #: src/Console/MergeContacts.php:161
msgid " - success" msgid " - success"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:164 #: src/Console/MergeContacts.php:165
msgid " - deleted" msgid " - deleted"
msgstr "" msgstr ""
#: src/Console/MergeContacts.php:167 #: src/Console/MergeContacts.php:168
msgid " - done" msgid " - done"
msgstr "" msgstr ""
@ -1781,11 +1784,13 @@ msgstr "Введите ник пользователя:"
msgid "Enter new password: " msgid "Enter new password: "
msgstr "Введите новый пароль:" msgstr "Введите новый пароль:"
#: src/Console/User.php:210 src/Module/Settings/Account.php:74 #: src/Console/User.php:210 src/Module/Security/PasswordTooLong.php:66
#: src/Module/Settings/Account.php:75
msgid "Password update failed. Please try again." msgid "Password update failed. Please try again."
msgstr "Обновление пароля не удалось. Пожалуйста, попробуйте еще раз." msgstr "Обновление пароля не удалось. Пожалуйста, попробуйте еще раз."
#: src/Console/User.php:213 src/Module/Settings/Account.php:77 #: src/Console/User.php:213 src/Module/Security/PasswordTooLong.php:69
#: src/Module/Settings/Account.php:78
msgid "Password changed." msgid "Password changed."
msgstr "Пароль изменен." msgstr "Пароль изменен."
@ -1862,317 +1867,337 @@ msgstr "Раз в неделю"
msgid "Monthly" msgid "Monthly"
msgstr "Раз в месяц" msgstr "Раз в месяц"
#: src/Content/ContactSelector.php:123 #: src/Content/ContactSelector.php:126
msgid "DFRN" msgid "DFRN"
msgstr "DFRN" msgstr "DFRN"
#: src/Content/ContactSelector.php:124 #: src/Content/ContactSelector.php:127
msgid "OStatus" msgid "OStatus"
msgstr "OStatus" msgstr "OStatus"
#: src/Content/ContactSelector.php:125 #: src/Content/ContactSelector.php:128
msgid "RSS/Atom" msgid "RSS/Atom"
msgstr "RSS/Atom" msgstr "RSS/Atom"
#: src/Content/ContactSelector.php:126 src/Module/Admin/Users/Active.php:129 #: src/Content/ContactSelector.php:129 src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:130 src/Module/Admin/Users/Create.php:73 #: src/Module/Admin/Users/Blocked.php:131 src/Module/Admin/Users/Create.php:73
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143
#: src/Module/Admin/Users/Index.php:162 src/Module/Admin/Users/Pending.php:104 #: src/Module/Admin/Users/Index.php:163 src/Module/Admin/Users/Pending.php:104
msgid "Email" msgid "Email"
msgstr "Эл. почта" msgstr "Эл. почта"
#: src/Content/ContactSelector.php:127 src/Module/Debug/Babel.php:307 #: src/Content/ContactSelector.php:130 src/Module/Debug/Babel.php:307
msgid "Diaspora" msgid "Diaspora"
msgstr "Diaspora" msgstr "Diaspora"
#: src/Content/ContactSelector.php:128 #: src/Content/ContactSelector.php:131
msgid "Zot!" msgid "Zot!"
msgstr "Zot!" msgstr "Zot!"
#: src/Content/ContactSelector.php:129 #: src/Content/ContactSelector.php:132
msgid "LinkedIn" msgid "LinkedIn"
msgstr "LinkedIn" msgstr "LinkedIn"
#: src/Content/ContactSelector.php:130 #: src/Content/ContactSelector.php:133
msgid "XMPP/IM" msgid "XMPP/IM"
msgstr "XMPP/IM" msgstr "XMPP/IM"
#: src/Content/ContactSelector.php:131 #: src/Content/ContactSelector.php:134
msgid "MySpace" msgid "MySpace"
msgstr "MySpace" msgstr "MySpace"
#: src/Content/ContactSelector.php:132 #: src/Content/ContactSelector.php:135
msgid "Google+" msgid "Google+"
msgstr "Google+" msgstr "Google+"
#: src/Content/ContactSelector.php:133 #: src/Content/ContactSelector.php:136
msgid "pump.io" msgid "pump.io"
msgstr "pump.io" msgstr "pump.io"
#: src/Content/ContactSelector.php:134 #: src/Content/ContactSelector.php:137
msgid "Twitter" msgid "Twitter"
msgstr "Twitter" msgstr "Twitter"
#: src/Content/ContactSelector.php:135 #: src/Content/ContactSelector.php:138
msgid "Discourse" msgid "Discourse"
msgstr "Discourse" msgstr "Discourse"
#: src/Content/ContactSelector.php:136 #: src/Content/ContactSelector.php:139
msgid "Diaspora Connector" msgid "Diaspora Connector"
msgstr "Diaspora Connector" msgstr "Diaspora Connector"
#: src/Content/ContactSelector.php:137 #: src/Content/ContactSelector.php:140
msgid "GNU Social Connector" msgid "GNU Social Connector"
msgstr "GNU Social Connector" msgstr "GNU Social Connector"
#: src/Content/ContactSelector.php:138 #: src/Content/ContactSelector.php:141
msgid "ActivityPub" msgid "ActivityPub"
msgstr "ActivityPub" msgstr "ActivityPub"
#: src/Content/ContactSelector.php:139 #: src/Content/ContactSelector.php:142
msgid "pnut" msgid "pnut"
msgstr "pnut" msgstr "pnut"
#: src/Content/ContactSelector.php:175 #: src/Content/ContactSelector.php:178
#, php-format #, php-format
msgid "%s (via %s)" msgid "%s (via %s)"
msgstr "%s (через %s)" msgstr "%s (через %s)"
#: src/Content/Conversation.php:207 #: src/Content/Conversation.php:211
#, php-format #, php-format
msgid "%s likes this." msgid "%s likes this."
msgstr "%s нравится это." msgstr "%s нравится это."
#: src/Content/Conversation.php:210 #: src/Content/Conversation.php:214
#, php-format #, php-format
msgid "%s doesn't like this." msgid "%s doesn't like this."
msgstr "%s не нравится это." msgstr "%s не нравится это."
#: src/Content/Conversation.php:213 #: src/Content/Conversation.php:217
#, php-format #, php-format
msgid "%s attends." msgid "%s attends."
msgstr "%s посещает." msgstr "%s посещает."
#: src/Content/Conversation.php:216 #: src/Content/Conversation.php:220
#, php-format #, php-format
msgid "%s doesn't attend." msgid "%s doesn't attend."
msgstr "%s не посетит." msgstr "%s не посетит."
#: src/Content/Conversation.php:219 #: src/Content/Conversation.php:223
#, php-format #, php-format
msgid "%s attends maybe." msgid "%s attends maybe."
msgstr "%s может быть посетит." msgstr "%s может быть посетит."
#: src/Content/Conversation.php:222 src/Content/Conversation.php:260 #: src/Content/Conversation.php:226 src/Content/Conversation.php:264
#: src/Content/Conversation.php:872 #: src/Content/Conversation.php:878
#, php-format #, php-format
msgid "%s reshared this." msgid "%s reshared this."
msgstr "%s поделился этим." msgstr "%s поделился этим."
#: src/Content/Conversation.php:228 #: src/Content/Conversation.php:232
msgid "and" msgid "and"
msgstr "и" msgstr "и"
#: src/Content/Conversation.php:231 #: src/Content/Conversation.php:235
#, php-format #, php-format
msgid "and %d other people" msgid "and %d other people"
msgstr "и еще %d человек" msgstr "и еще %d человек"
#: src/Content/Conversation.php:239 #: src/Content/Conversation.php:243
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> like this" msgid "<span %1$s>%2$d people</span> like this"
msgstr "<span %1$s>%2$d людям</span> нравится это" msgstr "<span %1$s>%2$d людям</span> нравится это"
#: src/Content/Conversation.php:240 #: src/Content/Conversation.php:244
#, php-format #, php-format
msgid "%s like this." msgid "%s like this."
msgstr "%s нравится это." msgstr "%s нравится это."
#: src/Content/Conversation.php:243 #: src/Content/Conversation.php:247
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't like this" msgid "<span %1$s>%2$d people</span> don't like this"
msgstr "<span %1$s>%2$d людям</span> не нравится это" msgstr "<span %1$s>%2$d людям</span> не нравится это"
#: src/Content/Conversation.php:244 #: src/Content/Conversation.php:248
#, php-format #, php-format
msgid "%s don't like this." msgid "%s don't like this."
msgstr "%s не нравится это" msgstr "%s не нравится это"
#: src/Content/Conversation.php:247 #: src/Content/Conversation.php:251
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend" msgid "<span %1$s>%2$d people</span> attend"
msgstr "<span %1$s>%2$d человека</span> посетят" msgstr "<span %1$s>%2$d человека</span> посетят"
#: src/Content/Conversation.php:248 #: src/Content/Conversation.php:252
#, php-format #, php-format
msgid "%s attend." msgid "%s attend."
msgstr "%s посетит." msgstr "%s посетит."
#: src/Content/Conversation.php:251 #: src/Content/Conversation.php:255
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't attend" msgid "<span %1$s>%2$d people</span> don't attend"
msgstr "<span %1$s>%2$d человек</span> не посетит" msgstr "<span %1$s>%2$d человек</span> не посетит"
#: src/Content/Conversation.php:252 #: src/Content/Conversation.php:256
#, php-format #, php-format
msgid "%s don't attend." msgid "%s don't attend."
msgstr "%s не посетит" msgstr "%s не посетит"
#: src/Content/Conversation.php:255 #: src/Content/Conversation.php:259
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend maybe" msgid "<span %1$s>%2$d people</span> attend maybe"
msgstr "<span %1$s>%2$d человек</span> может быть посетят" msgstr "<span %1$s>%2$d человек</span> может быть посетят"
#: src/Content/Conversation.php:256 #: src/Content/Conversation.php:260
#, php-format #, php-format
msgid "%s attend maybe." msgid "%s attend maybe."
msgstr "%s может быть посетит." msgstr "%s может быть посетит."
#: src/Content/Conversation.php:259 #: src/Content/Conversation.php:263
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> reshared this" msgid "<span %1$s>%2$d people</span> reshared this"
msgstr "<span %1$s>%2$d людей</span> поделились этим" msgstr "<span %1$s>%2$d людей</span> поделились этим"
#: src/Content/Conversation.php:307 #: src/Content/Conversation.php:311
msgid "Visible to <strong>everybody</strong>" msgid "Visible to <strong>everybody</strong>"
msgstr "Видимое <strong>всем</strong>" msgstr "Видимое <strong>всем</strong>"
#: src/Content/Conversation.php:308 src/Module/Item/Compose.php:171 #: src/Content/Conversation.php:312 src/Module/Item/Compose.php:198
#: src/Object/Post.php:998 #: src/Object/Post.php:1002
msgid "Please enter a image/video/audio/webpage URL:" msgid "Please enter a image/video/audio/webpage URL:"
msgstr "Пожалуйста, введите адрес картинки/видео/аудио/странички:" msgstr "Пожалуйста, введите адрес картинки/видео/аудио/странички:"
#: src/Content/Conversation.php:309 #: src/Content/Conversation.php:313
msgid "Tag term:" msgid "Tag term:"
msgstr "Тег:" msgstr "Тег:"
#: src/Content/Conversation.php:310 src/Module/Filer/SaveTag.php:72 #: src/Content/Conversation.php:314 src/Module/Filer/SaveTag.php:73
msgid "Save to Folder:" msgid "Save to Folder:"
msgstr "Сохранить в папку:" msgstr "Сохранить в папку:"
#: src/Content/Conversation.php:311 #: src/Content/Conversation.php:315
msgid "Where are you right now?" msgid "Where are you right now?"
msgstr "И где вы сейчас?" msgstr "И где вы сейчас?"
#: src/Content/Conversation.php:312 #: src/Content/Conversation.php:316
msgid "Delete item(s)?" msgid "Delete item(s)?"
msgstr "Удалить елемент(ты)?" msgstr "Удалить елемент(ты)?"
#: src/Content/Conversation.php:324 src/Module/Item/Compose.php:143 #: src/Content/Conversation.php:328 src/Module/Item/Compose.php:175
msgid "Created at" msgid "Created at"
msgstr "Создано" msgstr "Создано"
#: src/Content/Conversation.php:334 #: src/Content/Conversation.php:338
msgid "New Post" msgid "New Post"
msgstr "Новая запись" msgstr "Новая запись"
#: src/Content/Conversation.php:337 #: src/Content/Conversation.php:341
msgid "Share" msgid "Share"
msgstr "Поделиться" msgstr "Поделиться"
#: src/Content/Conversation.php:348 src/Module/Item/Compose.php:168 #: src/Content/Conversation.php:352 src/Module/Item/Compose.php:195
#: src/Object/Post.php:995 #: src/Object/Post.php:999
msgid "Image" msgid "Image"
msgstr "Изображение / Фото" msgstr "Изображение / Фото"
#: src/Content/Conversation.php:351 #: src/Content/Conversation.php:355
msgid "Video" msgid "Video"
msgstr "Видео" msgstr "Видео"
#: src/Content/Conversation.php:364 src/Module/Item/Compose.php:184 #: src/Content/Conversation.php:368 src/Module/Item/Compose.php:222
msgid "Scheduled at" msgid "Scheduled at"
msgstr "Запланировано на" msgstr "Запланировано на"
#: src/Content/Conversation.php:656 src/Object/Post.php:235 #: src/Content/Conversation.php:662 src/Object/Post.php:244
msgid "Pinned item" msgid "Pinned item"
msgstr "Закреплённая запись" msgstr "Закреплённая запись"
#: src/Content/Conversation.php:672 src/Object/Post.php:476 #: src/Content/Conversation.php:678 src/Object/Post.php:486
#: src/Object/Post.php:477 #: src/Object/Post.php:487
#, php-format #, php-format
msgid "View %s's profile @ %s" msgid "View %s's profile @ %s"
msgstr "Просмотреть профиль %s [@ %s]" msgstr "Просмотреть профиль %s [@ %s]"
#: src/Content/Conversation.php:685 src/Object/Post.php:464 #: src/Content/Conversation.php:691 src/Object/Post.php:474
msgid "Categories:" msgid "Categories:"
msgstr "Категории:" msgstr "Категории:"
#: src/Content/Conversation.php:686 src/Object/Post.php:465 #: src/Content/Conversation.php:692 src/Object/Post.php:475
msgid "Filed under:" msgid "Filed under:"
msgstr "В рубрике:" msgstr "В рубрике:"
#: src/Content/Conversation.php:694 src/Object/Post.php:490 #: src/Content/Conversation.php:700 src/Object/Post.php:500
#, php-format #, php-format
msgid "%s from %s" msgid "%s from %s"
msgstr "%s из %s" msgstr "%s из %s"
#: src/Content/Conversation.php:710 #: src/Content/Conversation.php:716
msgid "View in context" msgid "View in context"
msgstr "Смотреть в контексте" msgstr "Смотреть в контексте"
#: src/Content/Conversation.php:775 #: src/Content/Conversation.php:781
msgid "remove" msgid "remove"
msgstr "удалить" msgstr "удалить"
#: src/Content/Conversation.php:779 #: src/Content/Conversation.php:785
msgid "Delete Selected Items" msgid "Delete Selected Items"
msgstr "Удалить выбранные позиции" msgstr "Удалить выбранные позиции"
#: src/Content/Conversation.php:844 src/Content/Conversation.php:847
#: src/Content/Conversation.php:850 src/Content/Conversation.php:853 #: src/Content/Conversation.php:850 src/Content/Conversation.php:853
#: src/Content/Conversation.php:856 src/Content/Conversation.php:859
#, php-format #, php-format
msgid "You had been addressed (%s)." msgid "You had been addressed (%s)."
msgstr "К вам обратились (%s)." msgstr "К вам обратились (%s)."
#: src/Content/Conversation.php:856 #: src/Content/Conversation.php:862
#, php-format #, php-format
msgid "You are following %s." msgid "You are following %s."
msgstr "Вы подписаны на %s." msgstr "Вы подписаны на %s."
#: src/Content/Conversation.php:859 #: src/Content/Conversation.php:865
msgid "Tagged" msgid "You subscribed to one or more tags in this post."
msgstr "Отмечено" msgstr "Вы подписаны на один или несколько тегов в этой записи."
#: src/Content/Conversation.php:874 #: src/Content/Conversation.php:880
msgid "Reshared" msgid "Reshared"
msgstr "Репост" msgstr "Репост"
#: src/Content/Conversation.php:874 #: src/Content/Conversation.php:880
#, php-format #, php-format
msgid "Reshared by %s <%s>" msgid "Reshared by %s <%s>"
msgstr "Репост от %s <%s>" msgstr "Репост от %s <%s>"
#: src/Content/Conversation.php:877 #: src/Content/Conversation.php:883
#, php-format #, php-format
msgid "%s is participating in this thread." msgid "%s is participating in this thread."
msgstr "%s участвует в этом обсуждении" msgstr "%s участвует в этом обсуждении"
#: src/Content/Conversation.php:880
msgid "Stored"
msgstr "Сохранено"
#: src/Content/Conversation.php:883
msgid "Global"
msgstr "Глобально"
#: src/Content/Conversation.php:886 #: src/Content/Conversation.php:886
msgid "Relayed" msgid "Stored for general reasons"
msgstr "Ретранслировано" msgstr "Загружено по необходимости"
#: src/Content/Conversation.php:886
#, php-format
msgid "Relayed by %s <%s>"
msgstr "Ретранслировано %s <%s>"
#: src/Content/Conversation.php:889 #: src/Content/Conversation.php:889
msgid "Global post"
msgstr "Глобальная запись"
#: src/Content/Conversation.php:892
msgid "Sent via an relay server"
msgstr "Прислано через релей"
#: src/Content/Conversation.php:892
#, php-format
msgid "Sent via the relay server %s <%s>"
msgstr "Прислано через релей %s <%s>"
#: src/Content/Conversation.php:895
msgid "Fetched" msgid "Fetched"
msgstr "Загружено" msgstr "Загружено"
#: src/Content/Conversation.php:889 #: src/Content/Conversation.php:895
#, php-format #, php-format
msgid "Fetched because of %s <%s>" msgid "Fetched because of %s <%s>"
msgstr "Загружено из-за %s <%s>" msgstr "Загружено из-за %s <%s>"
#: src/Content/Conversation.php:898
msgid "Stored because of a child post to complete this thread."
msgstr "Загружено из-за комментария в этой ветке."
#: src/Content/Conversation.php:901
msgid "Local delivery"
msgstr ""
#: src/Content/Conversation.php:904
msgid "Stored because of your activity (like, comment, star, ...)"
msgstr "Загружено из-за ваших действий (лайк, комментарий, ...)"
#: src/Content/Conversation.php:907
msgid "Distributed"
msgstr "Распространено"
#: src/Content/Conversation.php:910
msgid "Pushed to us"
msgstr "Прислано нам"
#: src/Content/Feature.php:96 #: src/Content/Feature.php:96
msgid "General Features" msgid "General Features"
msgstr "Основные возможности" msgstr "Основные возможности"
@ -2271,351 +2296,342 @@ msgstr "Показывать дату регистрации"
msgid "Display membership date in profile" msgid "Display membership date in profile"
msgstr "Дата вашей регистрации будет отображаться в вашем профиле" msgstr "Дата вашей регистрации будет отображаться в вашем профиле"
#: src/Content/ForumManager.php:151 src/Content/Nav.php:239 #: src/Content/ForumManager.php:152 src/Content/Nav.php:242
#: src/Content/Text/HTML.php:896 src/Content/Widget.php:522 #: src/Content/Text/HTML.php:903 src/Content/Widget.php:525
msgid "Forums" msgid "Forums"
msgstr "Форумы" msgstr "Форумы"
#: src/Content/ForumManager.php:153 #: src/Content/ForumManager.php:154
msgid "External link to forum" msgid "External link to forum"
msgstr "Внешняя ссылка на форум" msgstr "Внешняя ссылка на форум"
#: src/Content/ForumManager.php:156 src/Content/Widget.php:501 #: src/Content/ForumManager.php:157 src/Content/Widget.php:504
msgid "show less" msgid "show less"
msgstr "показать меньше" msgstr "показать меньше"
#: src/Content/ForumManager.php:157 src/Content/Widget.php:403 #: src/Content/ForumManager.php:158 src/Content/Widget.php:406
#: src/Content/Widget.php:502 #: src/Content/Widget.php:505
msgid "show more" msgid "show more"
msgstr "показать больше" msgstr "показать больше"
#: src/Content/Item.php:301 #: src/Content/Item.php:292 src/Model/Item.php:2858
#, php-format
msgid "%1$s poked %2$s"
msgstr "%1$s ткнул %2$s"
#: src/Content/Item.php:334 src/Model/Item.php:2697
msgid "event" msgid "event"
msgstr "мероприятие" msgstr "мероприятие"
#: src/Content/Item.php:422 view/theme/frio/theme.php:254 #: src/Content/Item.php:384 view/theme/frio/theme.php:268
msgid "Follow Thread" msgid "Follow Thread"
msgstr "Подписаться на обсуждение" msgstr "Подписаться на обсуждение"
#: src/Content/Item.php:423 src/Model/Contact.php:1107 #: src/Content/Item.php:385 src/Model/Contact.php:1199
msgid "View Status" msgid "View Status"
msgstr "Просмотреть статус" msgstr "Просмотреть статус"
#: src/Content/Item.php:424 src/Content/Item.php:446 #: src/Content/Item.php:386 src/Content/Item.php:404
#: src/Model/Contact.php:1041 src/Model/Contact.php:1099 #: src/Model/Contact.php:1137 src/Model/Contact.php:1191
#: src/Model/Contact.php:1108 src/Module/Directory.php:158 #: src/Model/Contact.php:1200 src/Module/Directory.php:157
#: src/Module/Settings/Profile/Index.php:225 #: src/Module/Settings/Profile/Index.php:225
msgid "View Profile" msgid "View Profile"
msgstr "Просмотреть профиль" msgstr "Просмотреть профиль"
#: src/Content/Item.php:425 src/Model/Contact.php:1109 #: src/Content/Item.php:387 src/Model/Contact.php:1201
msgid "View Photos" msgid "View Photos"
msgstr "Просмотреть фото" msgstr "Просмотреть фото"
#: src/Content/Item.php:426 src/Model/Contact.php:1100 #: src/Content/Item.php:388 src/Model/Contact.php:1192
#: src/Model/Contact.php:1110 #: src/Model/Contact.php:1202
msgid "Network Posts" msgid "Network Posts"
msgstr "Записи сети" msgstr "Записи сети"
#: src/Content/Item.php:427 src/Model/Contact.php:1101 #: src/Content/Item.php:389 src/Model/Contact.php:1193
#: src/Model/Contact.php:1111 #: src/Model/Contact.php:1203
msgid "View Contact" msgid "View Contact"
msgstr "Просмотреть контакт" msgstr "Просмотреть контакт"
#: src/Content/Item.php:428 src/Model/Contact.php:1112 #: src/Content/Item.php:390 src/Model/Contact.php:1204
msgid "Send PM" msgid "Send PM"
msgstr "Отправить ЛС" msgstr "Отправить ЛС"
#: src/Content/Item.php:429 src/Module/Admin/Blocklist/Contact.php:100 #: src/Content/Item.php:391 src/Module/Admin/Blocklist/Contact.php:100
#: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154 #: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:155
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:348 #: src/Module/Contact.php:401 src/Module/Contact/Profile.php:350
#: src/Module/Contact/Profile.php:449 #: src/Module/Contact/Profile.php:451
msgid "Block" msgid "Block"
msgstr "Заблокировать" msgstr "Заблокировать"
#: src/Content/Item.php:430 src/Module/Contact.php:399 #: src/Content/Item.php:392 src/Module/Contact.php:402
#: src/Module/Contact/Profile.php:349 src/Module/Contact/Profile.php:457 #: src/Module/Contact/Profile.php:351 src/Module/Contact/Profile.php:459
#: src/Module/Notifications/Introductions.php:132 #: src/Module/Notifications/Introductions.php:133
#: src/Module/Notifications/Introductions.php:204 #: src/Module/Notifications/Introductions.php:205
#: src/Module/Notifications/Notification.php:88 #: src/Module/Notifications/Notification.php:89
msgid "Ignore" msgid "Ignore"
msgstr "Игнорировать" msgstr "Игнорировать"
#: src/Content/Item.php:434 src/Object/Post.php:445 #: src/Content/Item.php:396 src/Object/Post.php:455
msgid "Languages" msgid "Languages"
msgstr "Языки" msgstr "Языки"
#: src/Content/Item.php:438 src/Model/Contact.php:1113 #: src/Content/Nav.php:91
msgid "Poke"
msgstr "потыкать"
#: src/Content/Nav.php:90
msgid "Nothing new here" msgid "Nothing new here"
msgstr "Ничего нового здесь" msgstr "Ничего нового здесь"
#: src/Content/Nav.php:94 src/Module/Special/HTTPException.php:50 #: src/Content/Nav.php:95 src/Module/Special/HTTPException.php:50
msgid "Go back" msgid "Go back"
msgstr "Назад" msgstr "Назад"
#: src/Content/Nav.php:95 #: src/Content/Nav.php:96
msgid "Clear notifications" msgid "Clear notifications"
msgstr "Стереть уведомления" msgstr "Стереть уведомления"
#: src/Content/Nav.php:96 src/Content/Text/HTML.php:883 #: src/Content/Nav.php:97 src/Content/Text/HTML.php:890
msgid "@name, !forum, #tags, content" msgid "@name, !forum, #tags, content"
msgstr "@имя, !форум, #тег, контент" msgstr "@имя, !форум, #тег, контент"
#: src/Content/Nav.php:183 src/Module/Security/Login.php:144 #: src/Content/Nav.php:186 src/Module/Security/Login.php:158
msgid "Logout" msgid "Logout"
msgstr "Выход" msgstr "Выход"
#: src/Content/Nav.php:183 #: src/Content/Nav.php:186
msgid "End this session" msgid "End this session"
msgstr "Завершить эту сессию" msgstr "Завершить эту сессию"
#: src/Content/Nav.php:185 src/Module/Bookmarklet.php:44 #: src/Content/Nav.php:188 src/Module/Bookmarklet.php:44
#: src/Module/Security/Login.php:145 #: src/Module/Security/Login.php:159
msgid "Login" msgid "Login"
msgstr "Вход" msgstr "Вход"
#: src/Content/Nav.php:185 #: src/Content/Nav.php:188
msgid "Sign in" msgid "Sign in"
msgstr "Вход" msgstr "Вход"
#: src/Content/Nav.php:190 src/Module/BaseProfile.php:56 #: src/Content/Nav.php:193 src/Module/BaseProfile.php:56
#: src/Module/Contact.php:433 src/Module/Contact/Profile.php:380 #: src/Module/Contact.php:436 src/Module/Contact/Profile.php:382
#: src/Module/Settings/TwoFactor/Index.php:112 view/theme/frio/theme.php:225 #: src/Module/Settings/TwoFactor/Index.php:119 view/theme/frio/theme.php:238
msgid "Status" msgid "Status"
msgstr "Записи" msgstr "Записи"
#: src/Content/Nav.php:190 src/Content/Nav.php:273 #: src/Content/Nav.php:193 src/Content/Nav.php:276
#: view/theme/frio/theme.php:225 #: view/theme/frio/theme.php:238
msgid "Your posts and conversations" msgid "Your posts and conversations"
msgstr "Ваши записи и диалоги" msgstr "Ваши записи и диалоги"
#: src/Content/Nav.php:191 src/Module/BaseProfile.php:48 #: src/Content/Nav.php:194 src/Module/BaseProfile.php:48
#: src/Module/BaseSettings.php:55 src/Module/Contact.php:457 #: src/Module/BaseSettings.php:55 src/Module/Contact.php:460
#: src/Module/Contact/Profile.php:382 src/Module/Profile/Profile.php:241 #: src/Module/Contact/Profile.php:384 src/Module/Profile/Profile.php:240
#: src/Module/Welcome.php:57 view/theme/frio/theme.php:226 #: src/Module/Welcome.php:57 view/theme/frio/theme.php:239
msgid "Profile" msgid "Profile"
msgstr "Информация" msgstr "Информация"
#: src/Content/Nav.php:191 view/theme/frio/theme.php:226 #: src/Content/Nav.php:194 view/theme/frio/theme.php:239
msgid "Your profile page" msgid "Your profile page"
msgstr "Информация о вас" msgstr "Информация о вас"
#: src/Content/Nav.php:192 view/theme/frio/theme.php:227 #: src/Content/Nav.php:195 view/theme/frio/theme.php:240
msgid "Your photos" msgid "Your photos"
msgstr "Ваши фотографии" msgstr "Ваши фотографии"
#: src/Content/Nav.php:193 src/Module/BaseProfile.php:72 #: src/Content/Nav.php:196 src/Module/BaseProfile.php:72
#: src/Module/BaseProfile.php:75 src/Module/Contact.php:449 #: src/Module/BaseProfile.php:75 src/Module/Contact.php:452
#: view/theme/frio/theme.php:228 #: view/theme/frio/theme.php:241
msgid "Media" msgid "Media"
msgstr "Медиа" msgstr "Медиа"
#: src/Content/Nav.php:193 view/theme/frio/theme.php:228 #: src/Content/Nav.php:196 view/theme/frio/theme.php:241
msgid "Your postings with media" msgid "Your postings with media"
msgstr "Ваши записи с фото и видео" msgstr "Ваши записи с фото и видео"
#: src/Content/Nav.php:194 view/theme/frio/theme.php:229 #: src/Content/Nav.php:197 view/theme/frio/theme.php:242
msgid "Your events" msgid "Your events"
msgstr "Ваши события" msgstr "Ваши события"
#: src/Content/Nav.php:195 #: src/Content/Nav.php:198
msgid "Personal notes" msgid "Personal notes"
msgstr "Личные заметки" msgstr "Личные заметки"
#: src/Content/Nav.php:195 #: src/Content/Nav.php:198
msgid "Your personal notes" msgid "Your personal notes"
msgstr "Ваши личные заметки" msgstr "Ваши личные заметки"
#: src/Content/Nav.php:212 src/Content/Nav.php:273 #: src/Content/Nav.php:215 src/Content/Nav.php:276
msgid "Home" msgid "Home"
msgstr "Мой профиль" msgstr "Мой профиль"
#: src/Content/Nav.php:216 src/Module/Register.php:168 #: src/Content/Nav.php:219 src/Module/Register.php:168
#: src/Module/Security/Login.php:105 #: src/Module/Security/Login.php:124
msgid "Register" msgid "Register"
msgstr "Регистрация" msgstr "Регистрация"
#: src/Content/Nav.php:216 #: src/Content/Nav.php:219
msgid "Create an account" msgid "Create an account"
msgstr "Создать аккаунт" msgstr "Создать аккаунт"
#: src/Content/Nav.php:222 src/Module/Help.php:67 #: src/Content/Nav.php:225 src/Module/Help.php:67
#: src/Module/Settings/TwoFactor/AppSpecific.php:127 #: src/Module/Settings/TwoFactor/AppSpecific.php:128
#: src/Module/Settings/TwoFactor/Index.php:111 #: src/Module/Settings/TwoFactor/Index.php:118
#: src/Module/Settings/TwoFactor/Recovery.php:105 #: src/Module/Settings/TwoFactor/Recovery.php:106
#: src/Module/Settings/TwoFactor/Verify.php:145 view/theme/vier/theme.php:217 #: src/Module/Settings/TwoFactor/Verify.php:145 view/theme/vier/theme.php:244
msgid "Help" msgid "Help"
msgstr "Помощь" msgstr "Помощь"
#: src/Content/Nav.php:222 #: src/Content/Nav.php:225
msgid "Help and documentation" msgid "Help and documentation"
msgstr "Помощь и документация" msgstr "Помощь и документация"
#: src/Content/Nav.php:226 #: src/Content/Nav.php:229
msgid "Apps" msgid "Apps"
msgstr "Приложения" msgstr "Приложения"
#: src/Content/Nav.php:226 #: src/Content/Nav.php:229
msgid "Addon applications, utilities, games" msgid "Addon applications, utilities, games"
msgstr "Дополнительные приложения, утилиты, игры" msgstr "Дополнительные приложения, утилиты, игры"
#: src/Content/Nav.php:230 src/Content/Text/HTML.php:881 #: src/Content/Nav.php:233 src/Content/Text/HTML.php:888
#: src/Module/Admin/Logs/View.php:87 src/Module/Search/Index.php:97 #: src/Module/Admin/Logs/View.php:87 src/Module/Search/Index.php:111
msgid "Search" msgid "Search"
msgstr "Поиск" msgstr "Поиск"
#: src/Content/Nav.php:230 #: src/Content/Nav.php:233
msgid "Search site content" msgid "Search site content"
msgstr "Поиск по сайту" msgstr "Поиск по сайту"
#: src/Content/Nav.php:233 src/Content/Text/HTML.php:890 #: src/Content/Nav.php:236 src/Content/Text/HTML.php:897
msgid "Full Text" msgid "Full Text"
msgstr "Контент" msgstr "Контент"
#: src/Content/Nav.php:234 src/Content/Text/HTML.php:891 #: src/Content/Nav.php:237 src/Content/Text/HTML.php:898
#: src/Content/Widget/TagCloud.php:68 #: src/Content/Widget/TagCloud.php:68
msgid "Tags" msgid "Tags"
msgstr "Тэги" msgstr "Тэги"
#: src/Content/Nav.php:235 src/Content/Nav.php:294 #: src/Content/Nav.php:238 src/Content/Nav.php:297
#: src/Content/Text/HTML.php:892 src/Module/BaseProfile.php:125 #: src/Content/Text/HTML.php:899 src/Module/BaseProfile.php:125
#: src/Module/BaseProfile.php:128 src/Module/Contact.php:370 #: src/Module/BaseProfile.php:128 src/Module/Contact.php:373
#: src/Module/Contact.php:464 view/theme/frio/theme.php:236 #: src/Module/Contact.php:467 view/theme/frio/theme.php:249
msgid "Contacts" msgid "Contacts"
msgstr "Контакты" msgstr "Контакты"
#: src/Content/Nav.php:254 #: src/Content/Nav.php:257
msgid "Community" msgid "Community"
msgstr "Сообщество" msgstr "Сообщество"
#: src/Content/Nav.php:254 #: src/Content/Nav.php:257
msgid "Conversations on this and other servers" msgid "Conversations on this and other servers"
msgstr "Диалоги на этом и других серверах" msgstr "Диалоги на этом и других серверах"
#: src/Content/Nav.php:258 src/Module/BaseProfile.php:87 #: src/Content/Nav.php:261 src/Module/BaseProfile.php:87
#: src/Module/BaseProfile.php:98 view/theme/frio/theme.php:233 #: src/Module/BaseProfile.php:98 view/theme/frio/theme.php:246
msgid "Events and Calendar" msgid "Events and Calendar"
msgstr "Календарь и события" msgstr "Календарь и события"
#: src/Content/Nav.php:261 #: src/Content/Nav.php:264
msgid "Directory" msgid "Directory"
msgstr "Каталог" msgstr "Каталог"
#: src/Content/Nav.php:261 #: src/Content/Nav.php:264
msgid "People directory" msgid "People directory"
msgstr "Каталог участников" msgstr "Каталог участников"
#: src/Content/Nav.php:263 src/Module/BaseAdmin.php:85 #: src/Content/Nav.php:266 src/Module/BaseAdmin.php:85
msgid "Information" msgid "Information"
msgstr "Информация" msgstr "Информация"
#: src/Content/Nav.php:263 #: src/Content/Nav.php:266
msgid "Information about this friendica instance" msgid "Information about this friendica instance"
msgstr "Информация об этом экземпляре Friendica" msgstr "Информация об этом экземпляре Friendica"
#: src/Content/Nav.php:266 src/Module/Admin/Tos.php:76 #: src/Content/Nav.php:269 src/Module/Admin/Tos.php:76
#: src/Module/BaseAdmin.php:96 src/Module/Register.php:176 #: src/Module/BaseAdmin.php:96 src/Module/Register.php:176
#: src/Module/Tos.php:87 #: src/Module/Tos.php:87
msgid "Terms of Service" msgid "Terms of Service"
msgstr "Условия оказания услуг" msgstr "Условия оказания услуг"
#: src/Content/Nav.php:266 #: src/Content/Nav.php:269
msgid "Terms of Service of this Friendica instance" msgid "Terms of Service of this Friendica instance"
msgstr "Условия оказания услуг для этого узла Friendica" msgstr "Условия оказания услуг для этого узла Friendica"
#: src/Content/Nav.php:271 view/theme/frio/theme.php:232 #: src/Content/Nav.php:274 view/theme/frio/theme.php:245
msgid "Network" msgid "Network"
msgstr "Новости" msgstr "Новости"
#: src/Content/Nav.php:271 view/theme/frio/theme.php:232 #: src/Content/Nav.php:274 view/theme/frio/theme.php:245
msgid "Conversations from your friends" msgid "Conversations from your friends"
msgstr "Сообщения ваших друзей" msgstr "Сообщения ваших друзей"
#: src/Content/Nav.php:277 #: src/Content/Nav.php:280
msgid "Introductions" msgid "Introductions"
msgstr "Запросы" msgstr "Запросы"
#: src/Content/Nav.php:277 #: src/Content/Nav.php:280
msgid "Friend Requests" msgid "Friend Requests"
msgstr "Запросы на добавление в список друзей" msgstr "Запросы на добавление в список друзей"
#: src/Content/Nav.php:278 src/Module/BaseNotifications.php:148 #: src/Content/Nav.php:281 src/Module/BaseNotifications.php:149
#: src/Module/Notifications/Introductions.php:73 #: src/Module/Notifications/Introductions.php:74
msgid "Notifications" msgid "Notifications"
msgstr "Уведомления" msgstr "Уведомления"
#: src/Content/Nav.php:279 #: src/Content/Nav.php:282
msgid "See all notifications" msgid "See all notifications"
msgstr "Посмотреть все уведомления" msgstr "Посмотреть все уведомления"
#: src/Content/Nav.php:280 #: src/Content/Nav.php:283
msgid "Mark all system notifications as seen" msgid "Mark all system notifications as seen"
msgstr "Пометить все уведомления прочитанными" msgstr "Пометить все уведомления прочитанными"
#: src/Content/Nav.php:283 view/theme/frio/theme.php:234 #: src/Content/Nav.php:286 view/theme/frio/theme.php:247
msgid "Private mail" msgid "Private mail"
msgstr "Личная почта" msgstr "Личная почта"
#: src/Content/Nav.php:284 #: src/Content/Nav.php:287
msgid "Inbox" msgid "Inbox"
msgstr "Входящие" msgstr "Входящие"
#: src/Content/Nav.php:285 #: src/Content/Nav.php:288
msgid "Outbox" msgid "Outbox"
msgstr "Исходящие" msgstr "Исходящие"
#: src/Content/Nav.php:289 #: src/Content/Nav.php:292
msgid "Accounts" msgid "Accounts"
msgstr "Учётные записи" msgstr "Учётные записи"
#: src/Content/Nav.php:289 #: src/Content/Nav.php:292
msgid "Manage other pages" msgid "Manage other pages"
msgstr "Управление другими страницами" msgstr "Управление другими страницами"
#: src/Content/Nav.php:292 src/Module/Admin/Addons/Details.php:114 #: src/Content/Nav.php:295 src/Module/Admin/Addons/Details.php:114
#: src/Module/Admin/Themes/Details.php:93 src/Module/BaseSettings.php:122 #: src/Module/Admin/Themes/Details.php:93 src/Module/BaseSettings.php:122
#: src/Module/Welcome.php:52 view/theme/frio/theme.php:235 #: src/Module/Welcome.php:52 view/theme/frio/theme.php:248
msgid "Settings" msgid "Settings"
msgstr "Настройки" msgstr "Настройки"
#: src/Content/Nav.php:292 view/theme/frio/theme.php:235 #: src/Content/Nav.php:295 view/theme/frio/theme.php:248
msgid "Account settings" msgid "Account settings"
msgstr "Настройки аккаунта" msgstr "Настройки аккаунта"
#: src/Content/Nav.php:294 view/theme/frio/theme.php:236 #: src/Content/Nav.php:297 view/theme/frio/theme.php:249
msgid "Manage/edit friends and contacts" msgid "Manage/edit friends and contacts"
msgstr "Управление / редактирование друзей и контактов" msgstr "Управление / редактирование друзей и контактов"
#: src/Content/Nav.php:299 src/Module/BaseAdmin.php:126 #: src/Content/Nav.php:302 src/Module/BaseAdmin.php:126
msgid "Admin" msgid "Admin"
msgstr "Администратор" msgstr "Администратор"
#: src/Content/Nav.php:299 #: src/Content/Nav.php:302
msgid "Site setup and configuration" msgid "Site setup and configuration"
msgstr "Конфигурация сайта" msgstr "Конфигурация сайта"
#: src/Content/Nav.php:302 #: src/Content/Nav.php:305
msgid "Navigation" msgid "Navigation"
msgstr "Навигация" msgstr "Навигация"
#: src/Content/Nav.php:302 #: src/Content/Nav.php:305
msgid "Site map" msgid "Site map"
msgstr "Карта сайта" msgstr "Карта сайта"
#: src/Content/OEmbed.php:299 #: src/Content/OEmbed.php:317
msgid "Embedding disabled" msgid "Embedding disabled"
msgstr "Встраивание отключено" msgstr "Встраивание отключено"
#: src/Content/OEmbed.php:417 #: src/Content/OEmbed.php:441
msgid "Embedded content" msgid "Embedded content"
msgstr "Встроенное содержание" msgstr "Встроенное содержание"
@ -2635,71 +2651,71 @@ msgstr "след."
msgid "last" msgid "last"
msgstr "последний" msgstr "последний"
#: src/Content/Text/BBCode.php:990 src/Content/Text/BBCode.php:1784 #: src/Content/Text/BBCode.php:1002 src/Content/Text/BBCode.php:1883
#: src/Content/Text/BBCode.php:1785 #: src/Content/Text/BBCode.php:1884
msgid "Image/photo" msgid "Image/photo"
msgstr "Изображение / Фото" msgstr "Изображение / Фото"
#: src/Content/Text/BBCode.php:1163 #: src/Content/Text/BBCode.php:1238
#, php-format #, php-format
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" msgstr "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
#: src/Content/Text/BBCode.php:1188 src/Model/Item.php:3271 #: src/Content/Text/BBCode.php:1263 src/Model/Item.php:3461
#: src/Model/Item.php:3277 src/Model/Item.php:3278 #: src/Model/Item.php:3467 src/Model/Item.php:3468
msgid "Link to source" msgid "Link to source"
msgstr "Ссылка на источник" msgstr "Ссылка на источник"
#: src/Content/Text/BBCode.php:1702 src/Content/Text/HTML.php:933 #: src/Content/Text/BBCode.php:1801 src/Content/Text/HTML.php:940
msgid "Click to open/close" msgid "Click to open/close"
msgstr "Нажмите, чтобы открыть / закрыть" msgstr "Нажмите, чтобы открыть / закрыть"
#: src/Content/Text/BBCode.php:1733 #: src/Content/Text/BBCode.php:1832
msgid "$1 wrote:" msgid "$1 wrote:"
msgstr "$1 написал:" msgstr "$1 написал:"
#: src/Content/Text/BBCode.php:1789 src/Content/Text/BBCode.php:1790 #: src/Content/Text/BBCode.php:1888 src/Content/Text/BBCode.php:1889
msgid "Encrypted content" msgid "Encrypted content"
msgstr "Зашифрованный контент" msgstr "Зашифрованный контент"
#: src/Content/Text/BBCode.php:2008 #: src/Content/Text/BBCode.php:2109
msgid "Invalid source protocol" msgid "Invalid source protocol"
msgstr "Неправильный протокол источника" msgstr "Неправильный протокол источника"
#: src/Content/Text/BBCode.php:2023 #: src/Content/Text/BBCode.php:2124
msgid "Invalid link protocol" msgid "Invalid link protocol"
msgstr "Неправильная протокольная ссылка" msgstr "Неправильная протокольная ссылка"
#: src/Content/Text/HTML.php:797 #: src/Content/Text/HTML.php:805
msgid "Loading more entries..." msgid "Loading more entries..."
msgstr "Загружаю больше сообщений..." msgstr "Загружаю больше сообщений..."
#: src/Content/Text/HTML.php:798 #: src/Content/Text/HTML.php:806
msgid "The end" msgid "The end"
msgstr "Конец" msgstr "Конец"
#: src/Content/Text/HTML.php:875 src/Content/Widget/VCard.php:109 #: src/Content/Text/HTML.php:882 src/Content/Widget/VCard.php:110
#: src/Model/Profile.php:456 #: src/Model/Profile.php:459
msgid "Follow" msgid "Follow"
msgstr "Подписаться" msgstr "Подписаться"
#: src/Content/Widget.php:51 #: src/Content/Widget.php:52
msgid "Add New Contact" msgid "Add New Contact"
msgstr "Добавить контакт" msgstr "Добавить контакт"
#: src/Content/Widget.php:52 #: src/Content/Widget.php:53
msgid "Enter address or web location" msgid "Enter address or web location"
msgstr "Введите адрес или веб-местонахождение" msgstr "Введите адрес или веб-местонахождение"
#: src/Content/Widget.php:53 #: src/Content/Widget.php:54
msgid "Example: bob@example.com, http://example.com/barbara" msgid "Example: bob@example.com, http://example.com/barbara"
msgstr "Пример: bob@example.com, http://example.com/barbara" msgstr "Пример: bob@example.com, http://example.com/barbara"
#: src/Content/Widget.php:55 #: src/Content/Widget.php:56
msgid "Connect" msgid "Connect"
msgstr "Подключить" msgstr "Подключить"
#: src/Content/Widget.php:70 #: src/Content/Widget.php:73
#, php-format #, php-format
msgid "%d invitation available" msgid "%d invitation available"
msgid_plural "%d invitations available" msgid_plural "%d invitations available"
@ -2708,83 +2724,83 @@ msgstr[1] "%d приглашений доступно"
msgstr[2] "%d приглашений доступно" msgstr[2] "%d приглашений доступно"
msgstr[3] "%d приглашений доступно" msgstr[3] "%d приглашений доступно"
#: src/Content/Widget.php:76 view/theme/vier/theme.php:170 #: src/Content/Widget.php:79 view/theme/vier/theme.php:197
msgid "Find People" msgid "Find People"
msgstr "Поиск людей" msgstr "Поиск людей"
#: src/Content/Widget.php:77 view/theme/vier/theme.php:171 #: src/Content/Widget.php:80 view/theme/vier/theme.php:198
msgid "Enter name or interest" msgid "Enter name or interest"
msgstr "Введите имя или интерес" msgstr "Введите имя или интерес"
#: src/Content/Widget.php:79 view/theme/vier/theme.php:173 #: src/Content/Widget.php:82 view/theme/vier/theme.php:200
msgid "Examples: Robert Morgenstein, Fishing" msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Примеры: Роберт Morgenstein, Рыбалка" msgstr "Примеры: Роберт Morgenstein, Рыбалка"
#: src/Content/Widget.php:80 src/Module/Contact.php:391 #: src/Content/Widget.php:83 src/Module/Contact.php:394
#: src/Module/Directory.php:97 view/theme/vier/theme.php:174 #: src/Module/Directory.php:96 view/theme/vier/theme.php:201
msgid "Find" msgid "Find"
msgstr "Найти" msgstr "Найти"
#: src/Content/Widget.php:82 view/theme/vier/theme.php:176 #: src/Content/Widget.php:85 view/theme/vier/theme.php:203
msgid "Similar Interests" msgid "Similar Interests"
msgstr "Похожие интересы" msgstr "Похожие интересы"
#: src/Content/Widget.php:83 view/theme/vier/theme.php:177 #: src/Content/Widget.php:86 view/theme/vier/theme.php:204
msgid "Random Profile" msgid "Random Profile"
msgstr "Случайный профиль" msgstr "Случайный профиль"
#: src/Content/Widget.php:84 view/theme/vier/theme.php:178 #: src/Content/Widget.php:87 view/theme/vier/theme.php:205
msgid "Invite Friends" msgid "Invite Friends"
msgstr "Пригласить друзей" msgstr "Пригласить друзей"
#: src/Content/Widget.php:85 src/Module/Directory.php:89 #: src/Content/Widget.php:88 src/Module/Directory.php:88
#: view/theme/vier/theme.php:179 #: view/theme/vier/theme.php:206
msgid "Global Directory" msgid "Global Directory"
msgstr "Глобальный каталог" msgstr "Глобальный каталог"
#: src/Content/Widget.php:87 view/theme/vier/theme.php:181 #: src/Content/Widget.php:90 view/theme/vier/theme.php:208
msgid "Local Directory" msgid "Local Directory"
msgstr "Локальный каталог" msgstr "Локальный каталог"
#: src/Content/Widget.php:209 src/Model/Group.php:570 #: src/Content/Widget.php:212 src/Model/Group.php:587
#: src/Module/Contact.php:354 src/Module/Welcome.php:76 #: src/Module/Contact.php:357 src/Module/Welcome.php:76
msgid "Groups" msgid "Groups"
msgstr "Группы" msgstr "Группы"
#: src/Content/Widget.php:211 #: src/Content/Widget.php:214
msgid "Everyone" msgid "Everyone"
msgstr "Все" msgstr "Все"
#: src/Content/Widget.php:240 #: src/Content/Widget.php:243
msgid "Relationships" msgid "Relationships"
msgstr "Отношения" msgstr "Отношения"
#: src/Content/Widget.php:242 src/Module/Contact.php:306 #: src/Content/Widget.php:245 src/Module/Contact.php:309
#: src/Module/Group.php:293 #: src/Module/Group.php:291
msgid "All Contacts" msgid "All Contacts"
msgstr "Все контакты" msgstr "Все контакты"
#: src/Content/Widget.php:281 #: src/Content/Widget.php:284
msgid "Protocols" msgid "Protocols"
msgstr "Протоколы" msgstr "Протоколы"
#: src/Content/Widget.php:283 #: src/Content/Widget.php:286
msgid "All Protocols" msgid "All Protocols"
msgstr "Все протоколы" msgstr "Все протоколы"
#: src/Content/Widget.php:311 #: src/Content/Widget.php:314
msgid "Saved Folders" msgid "Saved Folders"
msgstr "Сохранённые папки" msgstr "Сохранённые папки"
#: src/Content/Widget.php:313 src/Content/Widget.php:344 #: src/Content/Widget.php:316 src/Content/Widget.php:347
msgid "Everything" msgid "Everything"
msgstr "Всё" msgstr "Всё"
#: src/Content/Widget.php:342 #: src/Content/Widget.php:345
msgid "Categories" msgid "Categories"
msgstr "Категории" msgstr "Категории"
#: src/Content/Widget.php:399 #: src/Content/Widget.php:402
#, php-format #, php-format
msgid "%d contact in common" msgid "%d contact in common"
msgid_plural "%d contacts in common" msgid_plural "%d contacts in common"
@ -2793,27 +2809,27 @@ msgstr[1] "%d Контактов"
msgstr[2] "%d Контактов" msgstr[2] "%d Контактов"
msgstr[3] "%d Контактов" msgstr[3] "%d Контактов"
#: src/Content/Widget.php:495 #: src/Content/Widget.php:498
msgid "Archives" msgid "Archives"
msgstr "Архивы" msgstr "Архивы"
#: src/Content/Widget.php:519 #: src/Content/Widget.php:522
msgid "Persons" msgid "Persons"
msgstr "Люди" msgstr "Люди"
#: src/Content/Widget.php:520 #: src/Content/Widget.php:523
msgid "Organisations" msgid "Organisations"
msgstr "Организации" msgstr "Организации"
#: src/Content/Widget.php:521 src/Model/Contact.php:1537 #: src/Content/Widget.php:524 src/Model/Contact.php:1630
msgid "News" msgid "News"
msgstr "Новости" msgstr "Новости"
#: src/Content/Widget.php:525 src/Module/Settings/Account.php:455 #: src/Content/Widget.php:528 src/Module/Settings/Account.php:456
msgid "Account Types" msgid "Account Types"
msgstr "Тип учетной записи" msgstr "Тип учетной записи"
#: src/Content/Widget.php:526 src/Module/Admin/BaseUsers.php:51 #: src/Content/Widget.php:529 src/Module/Admin/BaseUsers.php:51
msgid "All" msgid "All"
msgstr "Все" msgstr "Все"
@ -2846,11 +2862,11 @@ msgstr[3] "%d контактов"
msgid "View Contacts" msgid "View Contacts"
msgstr "Просмотр контактов" msgstr "Просмотр контактов"
#: src/Content/Widget/SavedSearches.php:47 #: src/Content/Widget/SavedSearches.php:48
msgid "Remove term" msgid "Remove term"
msgstr "Удалить элемент" msgstr "Удалить элемент"
#: src/Content/Widget/SavedSearches.php:60 #: src/Content/Widget/SavedSearches.php:61
msgid "Saved Searches" msgid "Saved Searches"
msgstr "Сохранённые поиски" msgstr "Сохранённые поиски"
@ -2867,26 +2883,26 @@ msgstr[3] "Популярные тэги (за %d часов)"
msgid "More Trending Tags" msgid "More Trending Tags"
msgstr "Больше популярных тэгов" msgstr "Больше популярных тэгов"
#: src/Content/Widget/VCard.php:102 src/Model/Profile.php:375 #: src/Content/Widget/VCard.php:103 src/Model/Profile.php:378
#: src/Module/Contact/Profile.php:371 src/Module/Profile/Profile.php:176 #: src/Module/Contact/Profile.php:373 src/Module/Profile/Profile.php:175
msgid "XMPP:" msgid "XMPP:"
msgstr "XMPP:" msgstr "XMPP:"
#: src/Content/Widget/VCard.php:103 src/Model/Profile.php:376 #: src/Content/Widget/VCard.php:104 src/Model/Profile.php:379
#: src/Module/Contact/Profile.php:373 src/Module/Profile/Profile.php:180 #: src/Module/Contact/Profile.php:375 src/Module/Profile/Profile.php:179
msgid "Matrix:" msgid "Matrix:"
msgstr "Matrix:" msgstr "Matrix:"
#: src/Content/Widget/VCard.php:107 src/Model/Profile.php:468 #: src/Content/Widget/VCard.php:108 src/Model/Profile.php:471
#: src/Module/Notifications/Introductions.php:199 #: src/Module/Notifications/Introductions.php:200
msgid "Network:" msgid "Network:"
msgstr "Сеть:" msgstr "Сеть:"
#: src/Content/Widget/VCard.php:111 src/Model/Profile.php:458 #: src/Content/Widget/VCard.php:112 src/Model/Profile.php:461
msgid "Unfollow" msgid "Unfollow"
msgstr "Отписаться" msgstr "Отписаться"
#: src/Core/ACL.php:165 src/Module/Profile/Profile.php:242 #: src/Core/ACL.php:165 src/Module/Profile/Profile.php:241
msgid "Yourself" msgid "Yourself"
msgstr "Вы" msgstr "Вы"
@ -2940,22 +2956,22 @@ msgid ""
" web server root." " web server root."
msgstr "Не получается записать файл конфигурации базы данных \"config/local.config.php\". Пожалуйста, создайте этот файл в корневом каталоге веб-сервера вручную, вставив в него приведённые здесь данные." msgstr "Не получается записать файл конфигурации базы данных \"config/local.config.php\". Пожалуйста, создайте этот файл в корневом каталоге веб-сервера вручную, вставив в него приведённые здесь данные."
#: src/Core/Installer.php:202 #: src/Core/Installer.php:200
msgid "" msgid ""
"You may need to import the file \"database.sql\" manually using phpmyadmin " "You may need to import the file \"database.sql\" manually using phpmyadmin "
"or mysql." "or mysql."
msgstr "Вам может понадобиться импортировать файл \"database.sql\" вручную с помощью PhpMyAdmin или MySQL." msgstr "Вам может понадобиться импортировать файл \"database.sql\" вручную с помощью PhpMyAdmin или MySQL."
#: src/Core/Installer.php:203 src/Module/Install.php:213 #: src/Core/Installer.php:201 src/Module/Install.php:213
#: src/Module/Install.php:372 #: src/Module/Install.php:372
msgid "Please see the file \"doc/INSTALL.md\"." msgid "Please see the file \"doc/INSTALL.md\"."
msgstr "Пожалуйста посмотрите файл \"doc/INSTALL.md\"." msgstr "Пожалуйста посмотрите файл \"doc/INSTALL.md\"."
#: src/Core/Installer.php:264 #: src/Core/Installer.php:262
msgid "Could not find a command line version of PHP in the web server PATH." msgid "Could not find a command line version of PHP in the web server PATH."
msgstr "Не удалось найти PATH веб-сервера в установках PHP." msgstr "Не удалось найти PATH веб-сервера в установках PHP."
#: src/Core/Installer.php:265 #: src/Core/Installer.php:263
msgid "" msgid ""
"If you don't have a command line version of PHP installed on your server, " "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 " "you will not be able to run the background processing. See <a "
@ -2963,498 +2979,463 @@ msgid ""
"up-the-worker'>'Setup the worker'</a>" "up-the-worker'>'Setup the worker'</a>"
msgstr "Если у вас нет доступа к командной строке PHP на вашем сервере, вы не сможете использовать фоновые задания. Посмотрите <a href='https://github.com/friendica/friendica/blob/stable/doc/Install.md#set-up-the-worker'>'Настройка фоновых заданий'</a>" msgstr "Если у вас нет доступа к командной строке PHP на вашем сервере, вы не сможете использовать фоновые задания. Посмотрите <a href='https://github.com/friendica/friendica/blob/stable/doc/Install.md#set-up-the-worker'>'Настройка фоновых заданий'</a>"
#: src/Core/Installer.php:270 #: src/Core/Installer.php:268
msgid "PHP executable path" msgid "PHP executable path"
msgstr "PHP executable path" msgstr "PHP executable path"
#: src/Core/Installer.php:270 #: src/Core/Installer.php:268
msgid "" msgid ""
"Enter full path to php executable. You can leave this blank to continue the " "Enter full path to php executable. You can leave this blank to continue the "
"installation." "installation."
msgstr "Введите полный путь к исполняемому файлу PHP. Вы можете оставить это поле пустым, чтобы продолжить установку." msgstr "Введите полный путь к исполняемому файлу PHP. Вы можете оставить это поле пустым, чтобы продолжить установку."
#: src/Core/Installer.php:275 #: src/Core/Installer.php:273
msgid "Command line PHP" msgid "Command line PHP"
msgstr "Command line PHP" msgstr "Command line PHP"
#: src/Core/Installer.php:284 #: src/Core/Installer.php:282
msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" msgid "PHP executable is not the php cli binary (could be cgi-fgci version)"
msgstr "Бинарник PHP не является CLI версией (может быть это cgi-fcgi версия)" msgstr "Бинарник PHP не является CLI версией (может быть это cgi-fcgi версия)"
#: src/Core/Installer.php:285 #: src/Core/Installer.php:283
msgid "Found PHP version: " msgid "Found PHP version: "
msgstr "Найденная PHP версия: " msgstr "Найденная PHP версия: "
#: src/Core/Installer.php:287 #: src/Core/Installer.php:285
msgid "PHP cli binary" msgid "PHP cli binary"
msgstr "PHP cli binary" msgstr "PHP cli binary"
#: src/Core/Installer.php:300 #: src/Core/Installer.php:298
msgid "" msgid ""
"The command line version of PHP on your system does not have " "The command line version of PHP on your system does not have "
"\"register_argc_argv\" enabled." "\"register_argc_argv\" enabled."
msgstr "Не включено \"register_argc_argv\" в установках PHP." msgstr "Не включено \"register_argc_argv\" в установках PHP."
#: src/Core/Installer.php:301 #: src/Core/Installer.php:299
msgid "This is required for message delivery to work." msgid "This is required for message delivery to work."
msgstr "Это необходимо для работы доставки сообщений." msgstr "Это необходимо для работы доставки сообщений."
#: src/Core/Installer.php:306 #: src/Core/Installer.php:304
msgid "PHP register_argc_argv" msgid "PHP register_argc_argv"
msgstr "PHP register_argc_argv" msgstr "PHP register_argc_argv"
#: src/Core/Installer.php:338 #: src/Core/Installer.php:336
msgid "" msgid ""
"Error: the \"openssl_pkey_new\" function on this system is not able to " "Error: the \"openssl_pkey_new\" function on this system is not able to "
"generate encryption keys" "generate encryption keys"
msgstr "Ошибка: функция \"openssl_pkey_new\" в этой системе не в состоянии генерировать ключи шифрования" msgstr "Ошибка: функция \"openssl_pkey_new\" в этой системе не в состоянии генерировать ключи шифрования"
#: src/Core/Installer.php:339 #: src/Core/Installer.php:337
msgid "" msgid ""
"If running under Windows, please see " "If running under Windows, please see "
"\"http://www.php.net/manual/en/openssl.installation.php\"." "\"http://www.php.net/manual/en/openssl.installation.php\"."
msgstr "Если вы работаете под Windows, см. \"http://www.php.net/manual/en/openssl.installation.php\"." msgstr "Если вы работаете под Windows, см. \"http://www.php.net/manual/en/openssl.installation.php\"."
#: src/Core/Installer.php:342 #: src/Core/Installer.php:340
msgid "Generate encryption keys" msgid "Generate encryption keys"
msgstr "Генерация шифрованых ключей" msgstr "Генерация шифрованых ключей"
#: src/Core/Installer.php:394 #: src/Core/Installer.php:392
msgid "" msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed." "Error: Apache webserver mod-rewrite module is required but not installed."
msgstr "Ошибка: необходим модуль веб-сервера Apache mod-rewrite, но он не установлен." msgstr "Ошибка: необходим модуль веб-сервера Apache mod-rewrite, но он не установлен."
#: src/Core/Installer.php:399 #: src/Core/Installer.php:397
msgid "Apache mod_rewrite module" msgid "Apache mod_rewrite module"
msgstr "Apache mod_rewrite module" msgstr "Apache mod_rewrite module"
#: src/Core/Installer.php:405 #: src/Core/Installer.php:403
msgid "Error: PDO or MySQLi PHP module required but not installed." msgid "Error: PDO or MySQLi PHP module required but not installed."
msgstr "Ошибка: PDO или MySQLi модули PHP требуются, но не установлены." msgstr "Ошибка: PDO или MySQLi модули PHP требуются, но не установлены."
#: src/Core/Installer.php:410 #: src/Core/Installer.php:408
msgid "Error: The MySQL driver for PDO is not installed." msgid "Error: The MySQL driver for PDO is not installed."
msgstr "Ошибка: Драйвер MySQL для PDO не установлен." msgstr "Ошибка: Драйвер MySQL для PDO не установлен."
#: src/Core/Installer.php:414 #: src/Core/Installer.php:412
msgid "PDO or MySQLi PHP module" msgid "PDO or MySQLi PHP module"
msgstr "PDO или MySQLi PHP модуль" msgstr "PDO или MySQLi PHP модуль"
#: src/Core/Installer.php:422 #: src/Core/Installer.php:420
msgid "Error, XML PHP module required but not installed." msgid "Error, XML PHP module required but not installed."
msgstr "Ошибка, необходим PHP модуль XML, но он не установлен" msgstr "Ошибка, необходим PHP модуль XML, но он не установлен"
#: src/Core/Installer.php:426 #: src/Core/Installer.php:424
msgid "XML PHP module" msgid "XML PHP module"
msgstr "XML PHP модуль" msgstr "XML PHP модуль"
#: src/Core/Installer.php:429 #: src/Core/Installer.php:427
msgid "libCurl PHP module" msgid "libCurl PHP module"
msgstr "libCurl PHP модуль" msgstr "libCurl PHP модуль"
#: src/Core/Installer.php:430 #: src/Core/Installer.php:428
msgid "Error: libCURL PHP module required but not installed." msgid "Error: libCURL PHP module required but not installed."
msgstr "Ошибка: необходим libCURL PHP модуль, но он не установлен." msgstr "Ошибка: необходим libCURL PHP модуль, но он не установлен."
#: src/Core/Installer.php:436 #: src/Core/Installer.php:434
msgid "GD graphics PHP module" msgid "GD graphics PHP module"
msgstr "GD graphics PHP модуль" msgstr "GD graphics PHP модуль"
#: src/Core/Installer.php:437 #: src/Core/Installer.php:435
msgid "" msgid ""
"Error: GD graphics PHP module with JPEG support required but not installed." "Error: GD graphics PHP module with JPEG support required but not installed."
msgstr "Ошибка: необходим PHP модуль GD графики с поддержкой JPEG, но он не установлен." msgstr "Ошибка: необходим PHP модуль GD графики с поддержкой JPEG, но он не установлен."
#: src/Core/Installer.php:443 #: src/Core/Installer.php:441
msgid "OpenSSL PHP module" msgid "OpenSSL PHP module"
msgstr "OpenSSL PHP модуль" msgstr "OpenSSL PHP модуль"
#: src/Core/Installer.php:444 #: src/Core/Installer.php:442
msgid "Error: openssl PHP module required but not installed." msgid "Error: openssl PHP module required but not installed."
msgstr "Ошибка: необходим PHP модуль OpenSSL, но он не установлен." msgstr "Ошибка: необходим PHP модуль OpenSSL, но он не установлен."
#: src/Core/Installer.php:450 #: src/Core/Installer.php:448
msgid "mb_string PHP module" msgid "mb_string PHP module"
msgstr "mb_string PHP модуль" msgstr "mb_string PHP модуль"
#: src/Core/Installer.php:451 #: src/Core/Installer.php:449
msgid "Error: mb_string PHP module required but not installed." msgid "Error: mb_string PHP module required but not installed."
msgstr "Ошибка: необходим PHP модуль mb_string, но он не установлен." msgstr "Ошибка: необходим PHP модуль mb_string, но он не установлен."
#: src/Core/Installer.php:457 #: src/Core/Installer.php:455
msgid "iconv PHP module" msgid "iconv PHP module"
msgstr "iconv PHP модуль" msgstr "iconv PHP модуль"
#: src/Core/Installer.php:458 #: src/Core/Installer.php:456
msgid "Error: iconv PHP module required but not installed." msgid "Error: iconv PHP module required but not installed."
msgstr "Ошибка: необходим PHP модуль iconv, но он не установлен." msgstr "Ошибка: необходим PHP модуль iconv, но он не установлен."
#: src/Core/Installer.php:464 #: src/Core/Installer.php:462
msgid "POSIX PHP module" msgid "POSIX PHP module"
msgstr "POSIX PHP модуль" msgstr "POSIX PHP модуль"
#: src/Core/Installer.php:465 #: src/Core/Installer.php:463
msgid "Error: POSIX PHP module required but not installed." msgid "Error: POSIX PHP module required but not installed."
msgstr "Ошибка: POSIX PHP модуль требуется, но не установлен." msgstr "Ошибка: POSIX PHP модуль требуется, но не установлен."
#: src/Core/Installer.php:471 #: src/Core/Installer.php:469
msgid "Program execution functions" msgid "Program execution functions"
msgstr "Функции исполнения программ" msgstr "Функции исполнения программ"
#: src/Core/Installer.php:472 #: src/Core/Installer.php:470
msgid "" msgid ""
"Error: Program execution functions (proc_open) required but not enabled." "Error: Program execution functions (proc_open) required but not enabled."
msgstr "Ошибка: Требуется наличие функций исполнения программ (proc_open), но они не включены." msgstr "Ошибка: Требуется наличие функций исполнения программ (proc_open), но они не включены."
#: src/Core/Installer.php:478 #: src/Core/Installer.php:476
msgid "JSON PHP module" msgid "JSON PHP module"
msgstr "JSON PHP модуль" msgstr "JSON PHP модуль"
#: src/Core/Installer.php:479 #: src/Core/Installer.php:477
msgid "Error: JSON PHP module required but not installed." msgid "Error: JSON PHP module required but not installed."
msgstr "Ошибка: JSON PHP модуль требуется, но не установлен." msgstr "Ошибка: JSON PHP модуль требуется, но не установлен."
#: src/Core/Installer.php:485 #: src/Core/Installer.php:483
msgid "File Information PHP module" msgid "File Information PHP module"
msgstr "File Information PHP модуль" msgstr "File Information PHP модуль"
#: src/Core/Installer.php:486 #: src/Core/Installer.php:484
msgid "Error: File Information PHP module required but not installed." msgid "Error: File Information PHP module required but not installed."
msgstr "Ошибка File Information PHP модуль требуется, но не установлен." msgstr "Ошибка File Information PHP модуль требуется, но не установлен."
#: src/Core/Installer.php:509 #: src/Core/Installer.php:490
msgid "GNU Multiple Precision PHP module"
msgstr ""
#: src/Core/Installer.php:491
msgid "Error: GNU Multiple Precision PHP module required but not installed."
msgstr ""
#: src/Core/Installer.php:514
msgid "" msgid ""
"The web installer needs to be able to create a file called " "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 " "\"local.config.php\" in the \"config\" folder of your web server and it is "
"unable to do so." "unable to do so."
msgstr "Установщику требуется создать файл \"local.config.php\" в каталоге \"config\" на вашем веб-сервере, но у него не получается это сделать." msgstr "Установщику требуется создать файл \"local.config.php\" в каталоге \"config\" на вашем веб-сервере, но у него не получается это сделать."
#: src/Core/Installer.php:510 #: src/Core/Installer.php:515
msgid "" msgid ""
"This is most often a permission setting, as the web server may not be able " "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." "to write files in your folder - even if you can."
msgstr "Это наиболее частые параметры разрешений, когда веб-сервер не может записать файлы в папке - даже если вы можете." msgstr "Это наиболее частые параметры разрешений, когда веб-сервер не может записать файлы в папке - даже если вы можете."
#: src/Core/Installer.php:511 #: src/Core/Installer.php:516
msgid "" msgid ""
"At the end of this procedure, we will give you a text to save in a file " "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." "named local.config.php in your Friendica \"config\" folder."
msgstr "В конце этой операции мы предоставим вам текст конфигурации, которую вам нужно будет сохранить в виде файла local.config.php в каталоге \"config\" вашей установки Френдики." msgstr "В конце этой операции мы предоставим вам текст конфигурации, которую вам нужно будет сохранить в виде файла local.config.php в каталоге \"config\" вашей установки Френдики."
#: src/Core/Installer.php:512 #: src/Core/Installer.php:517
msgid "" msgid ""
"You can alternatively skip this procedure and perform a manual installation." "You can alternatively skip this procedure and perform a manual installation."
" Please see the file \"doc/INSTALL.md\" for instructions." " Please see the file \"doc/INSTALL.md\" for instructions."
msgstr "В качестве альтернативы вы можете пропустить эту процедуру и выполнить установку вручную. Пожалуйста, обратитесь к файлу \"INSTALL.md\" для получения инструкций." msgstr "В качестве альтернативы вы можете пропустить эту процедуру и выполнить установку вручную. Пожалуйста, обратитесь к файлу \"INSTALL.md\" для получения инструкций."
#: src/Core/Installer.php:515 #: src/Core/Installer.php:520
msgid "config/local.config.php is writable" msgid "config/local.config.php is writable"
msgstr "config/local.config.php доступен для записи" msgstr "config/local.config.php доступен для записи"
#: src/Core/Installer.php:535 #: src/Core/Installer.php:540
msgid "" msgid ""
"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "Friendica uses the Smarty3 template engine to render its web views. Smarty3 "
"compiles templates to PHP to speed up rendering." "compiles templates to PHP to speed up rendering."
msgstr "Friendica использует механизм шаблонов Smarty3 для генерации веб-страниц. Smarty3 компилирует шаблоны в PHP для увеличения скорости загрузки." msgstr "Friendica использует механизм шаблонов Smarty3 для генерации веб-страниц. Smarty3 компилирует шаблоны в PHP для увеличения скорости загрузки."
#: src/Core/Installer.php:536 #: src/Core/Installer.php:541
msgid "" msgid ""
"In order to store these compiled templates, the web server needs to have " "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 " "write access to the directory view/smarty3/ under the Friendica top level "
"folder." "folder."
msgstr "Для того чтобы хранить эти скомпилированные шаблоны, веб-сервер должен иметь доступ на запись для папки view/smarty3 в директории, где установлена Friendica." msgstr "Для того чтобы хранить эти скомпилированные шаблоны, веб-сервер должен иметь доступ на запись для папки view/smarty3 в директории, где установлена Friendica."
#: src/Core/Installer.php:537 #: src/Core/Installer.php:542
msgid "" msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has" "Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder." " write access to this folder."
msgstr "Пожалуйста, убедитесь, что пользователь, под которым работает ваш веб-сервер (например www-data), имеет доступ на запись в этой папке." msgstr "Пожалуйста, убедитесь, что пользователь, под которым работает ваш веб-сервер (например www-data), имеет доступ на запись в этой папке."
#: src/Core/Installer.php:538 #: src/Core/Installer.php:543
msgid "" msgid ""
"Note: as a security measure, you should give the web server write access to " "Note: as a security measure, you should give the web server write access to "
"view/smarty3/ only--not the template files (.tpl) that it contains." "view/smarty3/ only--not the template files (.tpl) that it contains."
msgstr "Примечание: в качестве меры безопасности, вы должны дать вебсерверу доступ на запись только в view/smarty3 - но не на сами файлы шаблонов (.tpl)., Которые содержатся в этой папке." msgstr "Примечание: в качестве меры безопасности, вы должны дать вебсерверу доступ на запись только в view/smarty3 - но не на сами файлы шаблонов (.tpl)., Которые содержатся в этой папке."
#: src/Core/Installer.php:541 #: src/Core/Installer.php:546
msgid "view/smarty3 is writable" msgid "view/smarty3 is writable"
msgstr "view/smarty3 доступен для записи" msgstr "view/smarty3 доступен для записи"
#: src/Core/Installer.php:569 #: src/Core/Installer.php:574
msgid "" msgid ""
"Url rewrite in .htaccess seems not working. Make sure you copied .htaccess-" "Url rewrite in .htaccess seems not working. Make sure you copied .htaccess-"
"dist to .htaccess." "dist to .htaccess."
msgstr "Похоже, что Url rewrite в .htaccess не работает. Убедитесь, что вы скопировали .htaccess-dist в .htaccess." msgstr "Похоже, что Url rewrite в .htaccess не работает. Убедитесь, что вы скопировали .htaccess-dist в .htaccess."
#: src/Core/Installer.php:570 #: src/Core/Installer.php:575
msgid "" msgid ""
"In some circumstances (like running inside containers), you can skip this " "In some circumstances (like running inside containers), you can skip this "
"error." "error."
msgstr "В некоторых случаях (например, при запуске в контейнерах) вы можете пропустить эту ошибку." msgstr "В некоторых случаях (например, при запуске в контейнерах) вы можете пропустить эту ошибку."
#: src/Core/Installer.php:572 #: src/Core/Installer.php:577
msgid "Error message from Curl when fetching" msgid "Error message from Curl when fetching"
msgstr "Ошибка Curl при закачке" msgstr "Ошибка Curl при закачке"
#: src/Core/Installer.php:578 #: src/Core/Installer.php:583
msgid "Url rewrite is working" msgid "Url rewrite is working"
msgstr "Url rewrite работает" msgstr "Url rewrite работает"
#: src/Core/Installer.php:607 #: src/Core/Installer.php:612
msgid "" msgid ""
"The detection of TLS to secure the communication between the browser and the" "The detection of TLS to secure the communication between the browser and the"
" new Friendica server failed." " new Friendica server failed."
msgstr "Не удалось обнаружить TLS-соединение между браузером и новым сервером Friendica." msgstr "Не удалось обнаружить TLS-соединение между браузером и новым сервером Friendica."
#: src/Core/Installer.php:608 #: src/Core/Installer.php:613
msgid "" msgid ""
"It is highly encouraged to use Friendica only over a secure connection as " "It is highly encouraged to use Friendica only over a secure connection as "
"sensitive information like passwords will be transmitted." "sensitive information like passwords will be transmitted."
msgstr "Настоятельно рекомендуется использовать Friendica только с безопасным соединением, так как передаётся чувствительная информация, например - пароли." msgstr "Настоятельно рекомендуется использовать Friendica только с безопасным соединением, так как передаётся чувствительная информация, например - пароли."
#: src/Core/Installer.php:609 #: src/Core/Installer.php:614
msgid "Please ensure that the connection to the server is secure." msgid "Please ensure that the connection to the server is secure."
msgstr "Пожалуйста, убедитесь, что соединение с сервером безопасно." msgstr "Пожалуйста, убедитесь, что соединение с сервером безопасно."
#: src/Core/Installer.php:610 #: src/Core/Installer.php:615
msgid "No TLS detected" msgid "No TLS detected"
msgstr "TLS не обнаружено." msgstr "TLS не обнаружено."
#: src/Core/Installer.php:612 #: src/Core/Installer.php:617
msgid "TLS detected" msgid "TLS detected"
msgstr "TLS обнаружено." msgstr "TLS обнаружено."
#: src/Core/Installer.php:639 #: src/Core/Installer.php:644
msgid "ImageMagick PHP extension is not installed" msgid "ImageMagick PHP extension is not installed"
msgstr "Модуль PHP ImageMagick не установлен" msgstr "Модуль PHP ImageMagick не установлен"
#: src/Core/Installer.php:641 #: src/Core/Installer.php:646
msgid "ImageMagick PHP extension is installed" msgid "ImageMagick PHP extension is installed"
msgstr "Модуль PHP ImageMagick установлен" msgstr "Модуль PHP ImageMagick установлен"
#: src/Core/Installer.php:643 #: src/Core/Installer.php:648
msgid "ImageMagick supports GIF" msgid "ImageMagick supports GIF"
msgstr "ImageMagick поддерживает GIF" msgstr "ImageMagick поддерживает GIF"
#: src/Core/Installer.php:665 #: src/Core/Installer.php:670
msgid "Database already in use." msgid "Database already in use."
msgstr "База данных уже используется." msgstr "База данных уже используется."
#: src/Core/Installer.php:670 #: src/Core/Installer.php:675
msgid "Could not connect to database." msgid "Could not connect to database."
msgstr "Не удалось подключиться к базе данных." msgstr "Не удалось подключиться к базе данных."
#: src/Core/L10n.php:400 src/Model/Event.php:425 #: src/Core/L10n.php:403 src/Model/Event.php:428
#: src/Module/Settings/Display.php:182 #: src/Module/Settings/Display.php:183
msgid "Monday" msgid "Monday"
msgstr "Понедельник" msgstr "Понедельник"
#: src/Core/L10n.php:400 src/Model/Event.php:426 #: src/Core/L10n.php:403 src/Model/Event.php:429
#: src/Module/Settings/Display.php:184
msgid "Tuesday" msgid "Tuesday"
msgstr "Вторник" msgstr "Вторник"
#: src/Core/L10n.php:400 src/Model/Event.php:427 #: src/Core/L10n.php:403 src/Model/Event.php:430
#: src/Module/Settings/Display.php:185
msgid "Wednesday" msgid "Wednesday"
msgstr "Среда" msgstr "Среда"
#: src/Core/L10n.php:400 src/Model/Event.php:428 #: src/Core/L10n.php:403 src/Model/Event.php:431
#: src/Module/Settings/Display.php:186
msgid "Thursday" msgid "Thursday"
msgstr "Четверг" msgstr "Четверг"
#: src/Core/L10n.php:400 src/Model/Event.php:429 #: src/Core/L10n.php:403 src/Model/Event.php:432
#: src/Module/Settings/Display.php:187
msgid "Friday" msgid "Friday"
msgstr "Пятница" msgstr "Пятница"
#: src/Core/L10n.php:400 src/Model/Event.php:430 #: src/Core/L10n.php:403 src/Model/Event.php:433
#: src/Module/Settings/Display.php:188
msgid "Saturday" msgid "Saturday"
msgstr "Суббота" msgstr "Суббота"
#: src/Core/L10n.php:400 src/Model/Event.php:424 #: src/Core/L10n.php:403 src/Model/Event.php:427
#: src/Module/Settings/Display.php:182 #: src/Module/Settings/Display.php:182
msgid "Sunday" msgid "Sunday"
msgstr "Воскресенье" msgstr "Воскресенье"
#: src/Core/L10n.php:404 src/Model/Event.php:445 #: src/Core/L10n.php:407 src/Model/Event.php:448
msgid "January" msgid "January"
msgstr "Январь" msgstr "Январь"
#: src/Core/L10n.php:404 src/Model/Event.php:446 #: src/Core/L10n.php:407 src/Model/Event.php:449
msgid "February" msgid "February"
msgstr "Февраль" msgstr "Февраль"
#: src/Core/L10n.php:404 src/Model/Event.php:447 #: src/Core/L10n.php:407 src/Model/Event.php:450
msgid "March" msgid "March"
msgstr "Март" msgstr "Март"
#: src/Core/L10n.php:404 src/Model/Event.php:448 #: src/Core/L10n.php:407 src/Model/Event.php:451
msgid "April" msgid "April"
msgstr "Апрель" msgstr "Апрель"
#: src/Core/L10n.php:404 src/Core/L10n.php:424 src/Model/Event.php:436 #: src/Core/L10n.php:407 src/Core/L10n.php:426 src/Model/Event.php:439
msgid "May" msgid "May"
msgstr "Май" msgstr "Май"
#: src/Core/L10n.php:404 src/Model/Event.php:449 #: src/Core/L10n.php:407 src/Model/Event.php:452
msgid "June" msgid "June"
msgstr "Июнь" msgstr "Июнь"
#: src/Core/L10n.php:404 src/Model/Event.php:450 #: src/Core/L10n.php:407 src/Model/Event.php:453
msgid "July" msgid "July"
msgstr "Июль" msgstr "Июль"
#: src/Core/L10n.php:404 src/Model/Event.php:451 #: src/Core/L10n.php:407 src/Model/Event.php:454
msgid "August" msgid "August"
msgstr "Август" msgstr "Август"
#: src/Core/L10n.php:404 src/Model/Event.php:452 #: src/Core/L10n.php:407 src/Model/Event.php:455
msgid "September" msgid "September"
msgstr "Сентябрь" msgstr "Сентябрь"
#: src/Core/L10n.php:404 src/Model/Event.php:453 #: src/Core/L10n.php:407 src/Model/Event.php:456
msgid "October" msgid "October"
msgstr "Октябрь" msgstr "Октябрь"
#: src/Core/L10n.php:404 src/Model/Event.php:454 #: src/Core/L10n.php:407 src/Model/Event.php:457
msgid "November" msgid "November"
msgstr "Ноябрь" msgstr "Ноябрь"
#: src/Core/L10n.php:404 src/Model/Event.php:455 #: src/Core/L10n.php:407 src/Model/Event.php:458
msgid "December" msgid "December"
msgstr "Декабрь" msgstr "Декабрь"
#: src/Core/L10n.php:420 src/Model/Event.php:417 #: src/Core/L10n.php:422 src/Model/Event.php:420
msgid "Mon" msgid "Mon"
msgstr "Пн" msgstr "Пн"
#: src/Core/L10n.php:420 src/Model/Event.php:418 #: src/Core/L10n.php:422 src/Model/Event.php:421
msgid "Tue" msgid "Tue"
msgstr "Вт" msgstr "Вт"
#: src/Core/L10n.php:420 src/Model/Event.php:419 #: src/Core/L10n.php:422 src/Model/Event.php:422
msgid "Wed" msgid "Wed"
msgstr "Ср" msgstr "Ср"
#: src/Core/L10n.php:420 src/Model/Event.php:420 #: src/Core/L10n.php:422 src/Model/Event.php:423
msgid "Thu" msgid "Thu"
msgstr "Чт" msgstr "Чт"
#: src/Core/L10n.php:420 src/Model/Event.php:421 #: src/Core/L10n.php:422 src/Model/Event.php:424
msgid "Fri" msgid "Fri"
msgstr "Пт" msgstr "Пт"
#: src/Core/L10n.php:420 src/Model/Event.php:422 #: src/Core/L10n.php:422 src/Model/Event.php:425
msgid "Sat" msgid "Sat"
msgstr "Сб" msgstr "Сб"
#: src/Core/L10n.php:420 src/Model/Event.php:416 #: src/Core/L10n.php:422 src/Model/Event.php:419
msgid "Sun" msgid "Sun"
msgstr "Вс" msgstr "Вс"
#: src/Core/L10n.php:424 src/Model/Event.php:432 #: src/Core/L10n.php:426 src/Model/Event.php:435
msgid "Jan" msgid "Jan"
msgstr "Янв" msgstr "Янв"
#: src/Core/L10n.php:424 src/Model/Event.php:433 #: src/Core/L10n.php:426 src/Model/Event.php:436
msgid "Feb" msgid "Feb"
msgstr "Фев" msgstr "Фев"
#: src/Core/L10n.php:424 src/Model/Event.php:434 #: src/Core/L10n.php:426 src/Model/Event.php:437
msgid "Mar" msgid "Mar"
msgstr "Мрт" msgstr "Мрт"
#: src/Core/L10n.php:424 src/Model/Event.php:435 #: src/Core/L10n.php:426 src/Model/Event.php:438
msgid "Apr" msgid "Apr"
msgstr "Апр" msgstr "Апр"
#: src/Core/L10n.php:424 src/Model/Event.php:437 #: src/Core/L10n.php:426 src/Model/Event.php:440
msgid "Jun" msgid "Jun"
msgstr "Июн" msgstr "Июн"
#: src/Core/L10n.php:424 src/Model/Event.php:438 #: src/Core/L10n.php:426 src/Model/Event.php:441
msgid "Jul" msgid "Jul"
msgstr "Июл" msgstr "Июл"
#: src/Core/L10n.php:424 src/Model/Event.php:439 #: src/Core/L10n.php:426 src/Model/Event.php:442
msgid "Aug" msgid "Aug"
msgstr "Авг" msgstr "Авг"
#: src/Core/L10n.php:424 #: src/Core/L10n.php:426
msgid "Sep" msgid "Sep"
msgstr "Сен" msgstr "Сен"
#: src/Core/L10n.php:424 src/Model/Event.php:441 #: src/Core/L10n.php:426 src/Model/Event.php:444
msgid "Oct" msgid "Oct"
msgstr "Окт" msgstr "Окт"
#: src/Core/L10n.php:424 src/Model/Event.php:442 #: src/Core/L10n.php:426 src/Model/Event.php:445
msgid "Nov" msgid "Nov"
msgstr "Нбр" msgstr "Нбр"
#: src/Core/L10n.php:424 src/Model/Event.php:443 #: src/Core/L10n.php:426 src/Model/Event.php:446
msgid "Dec" msgid "Dec"
msgstr "Дек" msgstr "Дек"
#: src/Core/L10n.php:443
msgid "poke"
msgstr "poke"
#: src/Core/L10n.php:443
msgid "poked"
msgstr "ткнут"
#: src/Core/L10n.php:444
msgid "ping"
msgstr "пинг"
#: src/Core/L10n.php:444
msgid "pinged"
msgstr "пингуется"
#: src/Core/L10n.php:445
msgid "prod"
msgstr "толкать"
#: src/Core/L10n.php:445
msgid "prodded"
msgstr "толкнут"
#: src/Core/L10n.php:446
msgid "slap"
msgstr "шлепнуть"
#: src/Core/L10n.php:446
msgid "slapped"
msgstr "шлепнут"
#: src/Core/L10n.php:447
msgid "finger"
msgstr "указатель"
#: src/Core/L10n.php:447
msgid "fingered"
msgstr "пощупали"
#: src/Core/L10n.php:448
msgid "rebuff"
msgstr "ребаф"
#: src/Core/L10n.php:448
msgid "rebuffed"
msgstr "ребафнут"
#: src/Core/Renderer.php:89 src/Core/Renderer.php:118 #: src/Core/Renderer.php:89 src/Core/Renderer.php:118
#: src/Core/Renderer.php:145 src/Core/Renderer.php:179 #: src/Core/Renderer.php:147 src/Core/Renderer.php:181
#: src/Render/FriendicaSmartyEngine.php:56 #: src/Render/FriendicaSmartyEngine.php:60
msgid "" msgid ""
"Friendica can't display this page at the moment, please contact the " "Friendica can't display this page at the moment, please contact the "
"administrator." "administrator."
msgstr "Friendica не может отобразить эту страницу в данный момент, пожалуйста, свяжитесь с администратором." msgstr "Friendica не может отобразить эту страницу в данный момент, пожалуйста, свяжитесь с администратором."
#: src/Core/Renderer.php:141 #: src/Core/Renderer.php:143
msgid "template engine cannot be registered without a name." msgid "template engine cannot be registered without a name."
msgstr "" msgstr ""
#: src/Core/Renderer.php:175 #: src/Core/Renderer.php:177
msgid "template engine is not registered!" msgid "template engine is not registered!"
msgstr "" msgstr ""
@ -3472,36 +3453,36 @@ msgstr "Каталог, куда сохраняются загруженные
msgid "Enter a valid existing folder" msgid "Enter a valid existing folder"
msgstr "Введите путь к существующему каталогу" msgstr "Введите путь к существующему каталогу"
#: src/Core/Update.php:67 #: src/Core/Update.php:69
#, php-format #, php-format
msgid "" msgid ""
"Updates from version %s are not supported. Please update at least to version" "Updates from version %s are not supported. Please update at least to version"
" 2021.01 and wait until the postupdate finished version 1383." " 2021.01 and wait until the postupdate finished version 1383."
msgstr "" msgstr ""
#: src/Core/Update.php:78 #: src/Core/Update.php:80
#, php-format #, php-format
msgid "" msgid ""
"Updates from postupdate version %s are not supported. Please update at least" "Updates from postupdate version %s are not supported. Please update at least"
" to version 2021.01 and wait until the postupdate finished version 1383." " to version 2021.01 and wait until the postupdate finished version 1383."
msgstr "" msgstr ""
#: src/Core/Update.php:152 #: src/Core/Update.php:155
#, php-format #, php-format
msgid "%s: executing pre update %d" msgid "%s: executing pre update %d"
msgstr "%s: выполняется предварительное обновление %d" msgstr "%s: выполняется предварительное обновление %d"
#: src/Core/Update.php:190 #: src/Core/Update.php:193
#, php-format #, php-format
msgid "%s: executing post update %d" msgid "%s: executing post update %d"
msgstr "%s: выполняется завершение обновления %d" msgstr "%s: выполняется завершение обновления %d"
#: src/Core/Update.php:261 #: src/Core/Update.php:263
#, php-format #, php-format
msgid "Update %s failed. See error logs." msgid "Update %s failed. See error logs."
msgstr "Обновление %s не удалось. Смотрите журнал ошибок." msgstr "Обновление %s не удалось. Смотрите журнал ошибок."
#: src/Core/Update.php:314 #: src/Core/Update.php:317
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -3511,40 +3492,40 @@ msgid ""
"\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." "\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."
msgstr "\n\t\t\t\tРазработчики Френдики недавно выпустили обновление %s,\n\t\t\t\tно при установке что-то пошло не так.\n\t\t\t\tЭто нужно исправить в ближайшее время и у меня не получается сделать это самостоятельно. Пожалуйста, свяжитесь с разработчиками Френдики, если вы не можете мне помочь сами. База данных может быть повреждена." msgstr "\n\t\t\t\tРазработчики Френдики недавно выпустили обновление %s,\n\t\t\t\tно при установке что-то пошло не так.\n\t\t\t\tЭто нужно исправить в ближайшее время и у меня не получается сделать это самостоятельно. Пожалуйста, свяжитесь с разработчиками Френдики, если вы не можете мне помочь сами. База данных может быть повреждена."
#: src/Core/Update.php:320 #: src/Core/Update.php:323
#, php-format #, php-format
msgid "The error message is\\n[pre]%s[/pre]" msgid "The error message is\\n[pre]%s[/pre]"
msgstr "Сообщение об ошибке\\n[pre]%s[/pre]" msgstr "Сообщение об ошибке\\n[pre]%s[/pre]"
#: src/Core/Update.php:324 src/Core/Update.php:366 #: src/Core/Update.php:327 src/Core/Update.php:369
msgid "[Friendica Notify] Database update" msgid "[Friendica Notify] Database update"
msgstr "[Friendica Notify] Обновление базы данных" msgstr "[Friendica Notify] Обновление базы данных"
#: src/Core/Update.php:360 #: src/Core/Update.php:363
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
"\t\t\t\t\tThe friendica database was successfully updated from %s to %s." "\t\t\t\t\tThe friendica database was successfully updated from %s to %s."
msgstr "\n\t\t\t\t\tБаза данных Френдики была успешно обновлена с версии %s на %s." msgstr "\n\t\t\t\t\tБаза данных Френдики была успешно обновлена с версии %s на %s."
#: src/Core/UserImport.php:125 #: src/Core/UserImport.php:126
msgid "Error decoding account file" msgid "Error decoding account file"
msgstr "Ошибка расшифровки файла аккаунта" msgstr "Ошибка расшифровки файла аккаунта"
#: src/Core/UserImport.php:131 #: src/Core/UserImport.php:132
msgid "Error! No version data in file! This is not a Friendica account file?" msgid "Error! No version data in file! This is not a Friendica account file?"
msgstr "Ошибка! Неправильная версия данных в файле! Это не файл аккаунта Friendica?" msgstr "Ошибка! Неправильная версия данных в файле! Это не файл аккаунта Friendica?"
#: src/Core/UserImport.php:139 #: src/Core/UserImport.php:140
#, php-format #, php-format
msgid "User '%s' already exists on this server!" msgid "User '%s' already exists on this server!"
msgstr "Пользователь '%s' уже существует на этом сервере!" msgstr "Пользователь '%s' уже существует на этом сервере!"
#: src/Core/UserImport.php:175 #: src/Core/UserImport.php:176
msgid "User creation error" msgid "User creation error"
msgstr "Ошибка создания пользователя" msgstr "Ошибка создания пользователя"
#: src/Core/UserImport.php:220 #: src/Core/UserImport.php:221
#, php-format #, php-format
msgid "%d contact not imported" msgid "%d contact not imported"
msgid_plural "%d contacts not imported" msgid_plural "%d contacts not imported"
@ -3553,41 +3534,41 @@ msgstr[1] "%d контакты не импортированы"
msgstr[2] "%d контакты не импортированы" msgstr[2] "%d контакты не импортированы"
msgstr[3] "%d контакты не импортированы" msgstr[3] "%d контакты не импортированы"
#: src/Core/UserImport.php:273 #: src/Core/UserImport.php:274
msgid "User profile creation error" msgid "User profile creation error"
msgstr "Ошибка создания профиля пользователя" msgstr "Ошибка создания профиля пользователя"
#: src/Core/UserImport.php:326 #: src/Core/UserImport.php:327
msgid "Done. You can now login with your username and password" msgid "Done. You can now login with your username and password"
msgstr "Завершено. Теперь вы можете войти с вашим логином и паролем" msgstr "Завершено. Теперь вы можете войти с вашим логином и паролем"
#: src/Database/DBStructure.php:65 #: src/Database/DBStructure.php:57
#, php-format #, php-format
msgid "The database version had been set to %s." msgid "The database version had been set to %s."
msgstr "Версия базы данных была установлена на %s." msgstr "Версия базы данных была установлена на %s."
#: src/Database/DBStructure.php:78 #: src/Database/DBStructure.php:70
#, php-format #, php-format
msgid "" msgid ""
"The post update is at version %d, it has to be at %d to safely drop the " "The post update is at version %d, it has to be at %d to safely drop the "
"tables." "tables."
msgstr "" msgstr ""
#: src/Database/DBStructure.php:91 #: src/Database/DBStructure.php:83
msgid "No unused tables found." msgid "No unused tables found."
msgstr "Неиспользуемые таблицы не найдены." msgstr "Неиспользуемые таблицы не найдены."
#: src/Database/DBStructure.php:96 #: src/Database/DBStructure.php:88
msgid "" msgid ""
"These tables are not used for friendica and will be deleted when you execute" "These tables are not used for friendica and will be deleted when you execute"
" \"dbstructure drop -e\":" " \"dbstructure drop -e\":"
msgstr "Эти таблицы не используются Friendica и будут удалены, когда вы выполните команду \"dbstructure drop -e\":" msgstr "Эти таблицы не используются Friendica и будут удалены, когда вы выполните команду \"dbstructure drop -e\":"
#: src/Database/DBStructure.php:134 #: src/Database/DBStructure.php:126
msgid "There are no tables on MyISAM or InnoDB with the Antelope file format." msgid "There are no tables on MyISAM or InnoDB with the Antelope file format."
msgstr "В MyISAM или InnoDB нет таблиц в формате Antelope." msgstr "В MyISAM или InnoDB нет таблиц в формате Antelope."
#: src/Database/DBStructure.php:158 #: src/Database/DBStructure.php:150
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -3595,20 +3576,20 @@ msgid ""
"%s\n" "%s\n"
msgstr "\nОшибка %d возникла при обновлении базы данных:\n%s\n" msgstr "\nОшибка %d возникла при обновлении базы данных:\n%s\n"
#: src/Database/DBStructure.php:161 #: src/Database/DBStructure.php:153
msgid "Errors encountered performing database changes: " msgid "Errors encountered performing database changes: "
msgstr "Ошибки, возникшие при применении изменений базы данных: " msgstr "Ошибки, возникшие при применении изменений базы данных: "
#: src/Database/DBStructure.php:549 #: src/Database/DBStructure.php:219
msgid "Another database update is currently running." msgid "Another database update is currently running."
msgstr "Другая операция обновления базы данных уже запущена." msgstr "Другая операция обновления базы данных уже запущена."
#: src/Database/DBStructure.php:553 #: src/Database/DBStructure.php:223
#, php-format #, php-format
msgid "%s: Database update" msgid "%s: Database update"
msgstr "%s: Обновление базы данных" msgstr "%s: Обновление базы данных"
#: src/Database/DBStructure.php:803 #: src/Database/DBStructure.php:479
#, php-format #, php-format
msgid "%s: updating %s table." msgid "%s: updating %s table."
msgstr "%s: обновляется %s таблица." msgstr "%s: обновляется %s таблица."
@ -3639,81 +3620,81 @@ msgstr "Внутренняя ошибка сервера"
msgid "Legacy module file not found: %s" msgid "Legacy module file not found: %s"
msgstr "Legacy-модуль не найден: %s" msgstr "Legacy-модуль не найден: %s"
#: src/Model/Contact.php:1103 src/Model/Contact.php:1115 #: src/Model/Contact.php:1195 src/Model/Contact.php:1206
msgid "UnFollow" msgid "UnFollow"
msgstr "Отписаться" msgstr "Отписаться"
#: src/Model/Contact.php:1121 src/Module/Admin/Users/Pending.php:107 #: src/Model/Contact.php:1212 src/Module/Admin/Users/Pending.php:107
#: src/Module/Notifications/Introductions.php:130 #: src/Module/Notifications/Introductions.php:131
#: src/Module/Notifications/Introductions.php:202 #: src/Module/Notifications/Introductions.php:203
msgid "Approve" msgid "Approve"
msgstr "Одобрить" msgstr "Одобрить"
#: src/Model/Contact.php:1533 #: src/Model/Contact.php:1626
msgid "Organisation" msgid "Organisation"
msgstr "Организация" msgstr "Организация"
#: src/Model/Contact.php:1541 #: src/Model/Contact.php:1634
msgid "Forum" msgid "Forum"
msgstr "Форум" msgstr "Форум"
#: src/Model/Contact.php:2517 #: src/Model/Contact.php:2820
msgid "Disallowed profile URL." msgid "Disallowed profile URL."
msgstr "Запрещенный URL профиля." msgstr "Запрещенный URL профиля."
#: src/Model/Contact.php:2522 src/Module/Friendica.php:81 #: src/Model/Contact.php:2825 src/Module/Friendica.php:82
msgid "Blocked domain" msgid "Blocked domain"
msgstr "Заблокированный домен" msgstr "Заблокированный домен"
#: src/Model/Contact.php:2527 #: src/Model/Contact.php:2830
msgid "Connect URL missing." msgid "Connect URL missing."
msgstr "Connect-URL отсутствует." msgstr "Connect-URL отсутствует."
#: src/Model/Contact.php:2536 #: src/Model/Contact.php:2839
msgid "" msgid ""
"The contact could not be added. Please check the relevant network " "The contact could not be added. Please check the relevant network "
"credentials in your Settings -> Social Networks page." "credentials in your Settings -> Social Networks page."
msgstr "Контакт не может быть добавлен. Пожалуйста проверьте учётные данные на странице Настройки -> Социальные сети." msgstr "Контакт не может быть добавлен. Пожалуйста проверьте учётные данные на странице Настройки -> Социальные сети."
#: src/Model/Contact.php:2578 #: src/Model/Contact.php:2881
msgid "The profile address specified does not provide adequate information." msgid "The profile address specified does not provide adequate information."
msgstr "Указанный адрес профиля не дает адекватной информации." msgstr "Указанный адрес профиля не дает адекватной информации."
#: src/Model/Contact.php:2580 #: src/Model/Contact.php:2883
msgid "No compatible communication protocols or feeds were discovered." msgid "No compatible communication protocols or feeds were discovered."
msgstr "Обнаружены несовместимые протоколы связи или каналы." msgstr "Обнаружены несовместимые протоколы связи или каналы."
#: src/Model/Contact.php:2583 #: src/Model/Contact.php:2886
msgid "An author or name was not found." msgid "An author or name was not found."
msgstr "Автор или имя не найдены." msgstr "Автор или имя не найдены."
#: src/Model/Contact.php:2586 #: src/Model/Contact.php:2889
msgid "No browser URL could be matched to this address." msgid "No browser URL could be matched to this address."
msgstr "Нет URL браузера, который соответствует этому адресу." msgstr "Нет URL браузера, который соответствует этому адресу."
#: src/Model/Contact.php:2589 #: src/Model/Contact.php:2892
msgid "" msgid ""
"Unable to match @-style Identity Address with a known protocol or email " "Unable to match @-style Identity Address with a known protocol or email "
"contact." "contact."
msgstr "Не получается совместить этот адрес с известным протоколом или контактом электронной почты." msgstr "Не получается совместить этот адрес с известным протоколом или контактом электронной почты."
#: src/Model/Contact.php:2590 #: src/Model/Contact.php:2893
msgid "Use mailto: in front of address to force email check." msgid "Use mailto: in front of address to force email check."
msgstr "Bcgjkmpeqnt mailto: перед адресом для быстрого доступа к email." msgstr "Bcgjkmpeqnt mailto: перед адресом для быстрого доступа к email."
#: src/Model/Contact.php:2596 #: src/Model/Contact.php:2899
msgid "" msgid ""
"The profile address specified belongs to a network which has been disabled " "The profile address specified belongs to a network which has been disabled "
"on this site." "on this site."
msgstr "Указанный адрес профиля принадлежит сети, недоступной на этом сайта." msgstr "Указанный адрес профиля принадлежит сети, недоступной на этом сайта."
#: src/Model/Contact.php:2601 #: src/Model/Contact.php:2904
msgid "" msgid ""
"Limited profile. This person will be unable to receive direct/personal " "Limited profile. This person will be unable to receive direct/personal "
"notifications from you." "notifications from you."
msgstr "Ограниченный профиль. Этот человек не сможет получить прямые / личные уведомления от вас." msgstr "Ограниченный профиль. Этот человек не сможет получить прямые / личные уведомления от вас."
#: src/Model/Contact.php:2660 #: src/Model/Contact.php:2963
msgid "Unable to retrieve contact information." msgid "Unable to retrieve contact information."
msgstr "Невозможно получить контактную информацию." msgstr "Невозможно получить контактную информацию."
@ -3721,170 +3702,186 @@ msgstr "Невозможно получить контактную информ
msgid "l F d, Y \\@ g:i A \\G\\M\\TP (e)" msgid "l F d, Y \\@ g:i A \\G\\M\\TP (e)"
msgstr "" msgstr ""
#: src/Model/Event.php:73 src/Model/Event.php:90 src/Model/Event.php:464 #: src/Model/Event.php:73 src/Model/Event.php:90 src/Model/Event.php:467
#: src/Model/Event.php:897 #: src/Model/Event.php:901
msgid "Starts:" msgid "Starts:"
msgstr "Начало:" msgstr "Начало:"
#: src/Model/Event.php:76 src/Model/Event.php:96 src/Model/Event.php:465 #: src/Model/Event.php:76 src/Model/Event.php:96 src/Model/Event.php:468
#: src/Model/Event.php:901 #: src/Model/Event.php:905
msgid "Finishes:" msgid "Finishes:"
msgstr "Окончание:" msgstr "Окончание:"
#: src/Model/Event.php:414 #: src/Model/Event.php:417
msgid "all-day" msgid "all-day"
msgstr "Весь день" msgstr "Весь день"
#: src/Model/Event.php:440 #: src/Model/Event.php:443
msgid "Sept" msgid "Sept"
msgstr "Сен" msgstr "Сен"
#: src/Model/Event.php:462 #: src/Model/Event.php:465
msgid "No events to display" msgid "No events to display"
msgstr "Нет событий для показа" msgstr "Нет событий для показа"
#: src/Model/Event.php:578 #: src/Model/Event.php:581
msgid "l, F j" msgid "l, F j"
msgstr "l, j F" msgstr "l, j F"
#: src/Model/Event.php:609 #: src/Model/Event.php:612
msgid "Edit event" msgid "Edit event"
msgstr "Редактировать мероприятие" msgstr "Редактировать мероприятие"
#: src/Model/Event.php:610 #: src/Model/Event.php:613
msgid "Duplicate event" msgid "Duplicate event"
msgstr "Дубликат события" msgstr "Дубликат события"
#: src/Model/Event.php:611 #: src/Model/Event.php:614
msgid "Delete event" msgid "Delete event"
msgstr "Удалить событие" msgstr "Удалить событие"
#: src/Model/Event.php:853 src/Module/Debug/Localtime.php:38 #: src/Model/Event.php:857 src/Module/Debug/Localtime.php:38
msgid "l F d, Y \\@ g:i A" msgid "l F d, Y \\@ g:i A"
msgstr "l F d, Y \\@ g:i A" msgstr "l F d, Y \\@ g:i A"
#: src/Model/Event.php:854 #: src/Model/Event.php:858
msgid "D g:i A" msgid "D g:i A"
msgstr "D g:i A" msgstr "D g:i A"
#: src/Model/Event.php:855 #: src/Model/Event.php:859
msgid "g:i A" msgid "g:i A"
msgstr "g:i A" msgstr "g:i A"
#: src/Model/Event.php:916 src/Model/Event.php:918 #: src/Model/Event.php:920 src/Model/Event.php:922
msgid "Show map" msgid "Show map"
msgstr "Показать карту" msgstr "Показать карту"
#: src/Model/Event.php:917 #: src/Model/Event.php:921
msgid "Hide map" msgid "Hide map"
msgstr "Скрыть карту" msgstr "Скрыть карту"
#: src/Model/Event.php:1009 #: src/Model/Event.php:1014
#, php-format #, php-format
msgid "%s's birthday" msgid "%s's birthday"
msgstr "день рождения %s" msgstr "день рождения %s"
#: src/Model/Event.php:1010 #: src/Model/Event.php:1015
#, php-format #, php-format
msgid "Happy Birthday %s" msgid "Happy Birthday %s"
msgstr "С днём рождения %s" msgstr "С днём рождения %s"
#: src/Model/Group.php:95 #: src/Model/Group.php:105
msgid "" msgid ""
"A deleted group with this name was revived. Existing item permissions " "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 " "<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." "not what you intended, please create another group with a different name."
msgstr "Удаленная группа с таким названием была восстановлена. Существующие права доступа <strong>могут</strong> применяться к этой группе и любым будущим участникам. Если это не то, что вы хотели, пожалуйста, создайте еще ​​одну группу с другим названием." msgstr "Удаленная группа с таким названием была восстановлена. Существующие права доступа <strong>могут</strong> применяться к этой группе и любым будущим участникам. Если это не то, что вы хотели, пожалуйста, создайте еще ​​одну группу с другим названием."
#: src/Model/Group.php:486 #: src/Model/Group.php:503
msgid "Default privacy group for new contacts" msgid "Default privacy group for new contacts"
msgstr "Группа доступа по умолчанию для новых контактов" msgstr "Группа доступа по умолчанию для новых контактов"
#: src/Model/Group.php:518 #: src/Model/Group.php:535
msgid "Everybody" msgid "Everybody"
msgstr "Все" msgstr "Все"
#: src/Model/Group.php:537 #: src/Model/Group.php:554
msgid "edit" msgid "edit"
msgstr "редактировать" msgstr "редактировать"
#: src/Model/Group.php:569 #: src/Model/Group.php:586
msgid "add" msgid "add"
msgstr "добавить" msgstr "добавить"
#: src/Model/Group.php:574 #: src/Model/Group.php:591
msgid "Edit group" msgid "Edit group"
msgstr "Редактировать группу" msgstr "Редактировать группу"
#: src/Model/Group.php:575 src/Module/Group.php:194 #: src/Model/Group.php:592 src/Module/Group.php:192
msgid "Contacts not in any group" msgid "Contacts not in any group"
msgstr "Контакты не состоят в группе" msgstr "Контакты не состоят в группе"
#: src/Model/Group.php:577 #: src/Model/Group.php:594
msgid "Create a new group" msgid "Create a new group"
msgstr "Создать новую группу" msgstr "Создать новую группу"
#: src/Model/Group.php:578 src/Module/Group.php:179 src/Module/Group.php:202 #: src/Model/Group.php:595 src/Module/Group.php:177 src/Module/Group.php:200
#: src/Module/Group.php:277 #: src/Module/Group.php:275
msgid "Group Name: " msgid "Group Name: "
msgstr "Название группы: " msgstr "Название группы: "
#: src/Model/Group.php:579 #: src/Model/Group.php:596
msgid "Edit groups" msgid "Edit groups"
msgstr "Редактировать группы" msgstr "Редактировать группы"
#: src/Model/Item.php:1795 #: src/Model/Item.php:1970
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "Обнаруженные в этой записи языки:\\n%s" msgstr "Обнаруженные в этой записи языки:\\n%s"
#: src/Model/Item.php:2701 #: src/Model/Item.php:2862
msgid "activity" msgid "activity"
msgstr "активность" msgstr "активность"
#: src/Model/Item.php:2703 #: src/Model/Item.php:2864
msgid "comment" msgid "comment"
msgstr "комментарий" msgstr "комментарий"
#: src/Model/Item.php:2706 #: src/Model/Item.php:2867
msgid "post" msgid "post"
msgstr "пост" msgstr "пост"
#: src/Model/Item.php:2821 #: src/Model/Item.php:3010
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "Предупреждение о контенте: %s" msgstr "Предупреждение о контенте: %s"
#: src/Model/Item.php:3180 #: src/Model/Item.php:3373
msgid "bytes" msgid "bytes"
msgstr "байт" msgstr "байт"
#: src/Model/Item.php:3214 #: src/Model/Item.php:3404
#, php-format #, php-format
msgid "%s (%d%s, %d votes)" msgid "%2$s (%3$d%%, %1$d vote)"
msgstr "%s (%d%s, %d голосов)" msgid_plural "%2$s (%3$d%%, %1$d votes)"
msgstr[0] "%2$s (%3$d%%, %1$d голос)"
msgstr[1] "%2$s (%3$d%%, %1$d голоса)"
msgstr[2] "%2$s (%3$d%%, %1$d голосов)"
msgstr[3] "%2$s (%3$d%%, %1$d голосов)"
#: src/Model/Item.php:3216 #: src/Model/Item.php:3406
#, php-format #, php-format
msgid "%s (%d votes)" msgid "%2$s (%1$d vote)"
msgstr "%s (%d голосов)" msgid_plural "%2$s (%1$d votes)"
msgstr[0] "%2$s (%1$d голос)"
msgstr[1] "%2$s (%1$d голоса)"
msgstr[2] "%2$s (%1$d голосов)"
msgstr[3] "%2$s (%1$d голосов)"
#: src/Model/Item.php:3221 #: src/Model/Item.php:3411
#, php-format #, php-format
msgid "%d voters. Poll end: %s" msgid "%d voter. Poll end: %s"
msgstr "%d голосов. Конец опроса: %s" msgid_plural "%d voters. Poll end: %s"
msgstr[0] "%d голос. Конец опроса: %s"
msgstr[1] "%d голоса. Конец опроса: %s"
msgstr[2] "%d голосов. Конец опроса: %s"
msgstr[3] "%d голосов. Конец опроса: %s"
#: src/Model/Item.php:3223 #: src/Model/Item.php:3413
#, php-format #, php-format
msgid "%d voters." msgid "%d voter."
msgstr "%d голосов." msgid_plural "%d voters."
msgstr[0] "%d голос."
msgstr[1] "%d голоса."
msgstr[2] "%d голосов."
msgstr[3] "%d голосов."
#: src/Model/Item.php:3225 #: src/Model/Item.php:3415
#, php-format #, php-format
msgid "Poll end: %s" msgid "Poll end: %s"
msgstr "Конец опроса: %s" msgstr "Конец опроса: %s"
#: src/Model/Item.php:3259 src/Model/Item.php:3260 #: src/Model/Item.php:3449 src/Model/Item.php:3450
msgid "View on separate page" msgid "View on separate page"
msgstr "Посмотреть в отдельной вкладке" msgstr "Посмотреть в отдельной вкладке"
@ -3892,215 +3889,219 @@ msgstr "Посмотреть в отдельной вкладке"
msgid "[no subject]" msgid "[no subject]"
msgstr "[без темы]" msgstr "[без темы]"
#: src/Model/Profile.php:358 src/Module/Profile/Profile.php:256 #: src/Model/Profile.php:361 src/Module/Profile/Profile.php:255
#: src/Module/Profile/Profile.php:258 #: src/Module/Profile/Profile.php:257
msgid "Edit profile" msgid "Edit profile"
msgstr "Редактировать профиль" msgstr "Редактировать профиль"
#: src/Model/Profile.php:360 #: src/Model/Profile.php:363
msgid "Change profile photo" msgid "Change profile photo"
msgstr "Изменить фото профиля" msgstr "Изменить фото профиля"
#: src/Model/Profile.php:373 src/Module/Directory.php:153 #: src/Model/Profile.php:376 src/Module/Directory.php:152
#: src/Module/Profile/Profile.php:184 #: src/Module/Profile/Profile.php:183
msgid "Homepage:" msgid "Homepage:"
msgstr "Домашняя страничка:" msgstr "Домашняя страничка:"
#: src/Model/Profile.php:374 src/Module/Contact/Profile.php:375 #: src/Model/Profile.php:377 src/Module/Contact/Profile.php:377
#: src/Module/Notifications/Introductions.php:187 #: src/Module/Notifications/Introductions.php:188
msgid "About:" msgid "About:"
msgstr "О себе:" msgstr "О себе:"
#: src/Model/Profile.php:460 #: src/Model/Profile.php:463
msgid "Atom feed" msgid "Atom feed"
msgstr "Фид Atom" msgstr "Фид Atom"
#: src/Model/Profile.php:504 #: src/Model/Profile.php:506
msgid "F d" msgid "F d"
msgstr "F d" msgstr "F d"
#: src/Model/Profile.php:568 src/Model/Profile.php:652 #: src/Model/Profile.php:570 src/Model/Profile.php:659
msgid "[today]" msgid "[today]"
msgstr "[сегодня]" msgstr "[сегодня]"
#: src/Model/Profile.php:577 #: src/Model/Profile.php:579
msgid "Birthday Reminders" msgid "Birthday Reminders"
msgstr "Напоминания о днях рождения" msgstr "Напоминания о днях рождения"
#: src/Model/Profile.php:578 #: src/Model/Profile.php:580
msgid "Birthdays this week:" msgid "Birthdays this week:"
msgstr "Дни рождения на этой неделе:" msgstr "Дни рождения на этой неделе:"
#: src/Model/Profile.php:601 #: src/Model/Profile.php:608
msgid "g A l F d" msgid "g A l F d"
msgstr "g A l F d" msgstr "g A l F d"
#: src/Model/Profile.php:639 #: src/Model/Profile.php:646
msgid "[No description]" msgid "[No description]"
msgstr "[без описания]" msgstr "[без описания]"
#: src/Model/Profile.php:665 #: src/Model/Profile.php:672
msgid "Event Reminders" msgid "Event Reminders"
msgstr "Напоминания о мероприятиях" msgstr "Напоминания о мероприятиях"
#: src/Model/Profile.php:666 #: src/Model/Profile.php:673
msgid "Upcoming events the next 7 days:" msgid "Upcoming events the next 7 days:"
msgstr "События на ближайшие 7 дней:" msgstr "События на ближайшие 7 дней:"
#: src/Model/Profile.php:854 #: src/Model/Profile.php:867
#, php-format #, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s" msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "OpenWebAuth: %1$s приветствует %2$s" msgstr "OpenWebAuth: %1$s приветствует %2$s"
#: src/Model/Profile.php:980 #: src/Model/Profile.php:1007
msgid "Hometown:" msgid "Hometown:"
msgstr "Родной город:" msgstr "Родной город:"
#: src/Model/Profile.php:981 #: src/Model/Profile.php:1008
msgid "Marital Status:" msgid "Marital Status:"
msgstr "Семейное положение:" msgstr "Семейное положение:"
#: src/Model/Profile.php:982 #: src/Model/Profile.php:1009
msgid "With:" msgid "With:"
msgstr "Вместе:" msgstr "Вместе:"
#: src/Model/Profile.php:983 #: src/Model/Profile.php:1010
msgid "Since:" msgid "Since:"
msgstr "С:" msgstr "С:"
#: src/Model/Profile.php:984 #: src/Model/Profile.php:1011
msgid "Sexual Preference:" msgid "Sexual Preference:"
msgstr "Сексуальные предпочтения:" msgstr "Сексуальные предпочтения:"
#: src/Model/Profile.php:985 #: src/Model/Profile.php:1012
msgid "Political Views:" msgid "Political Views:"
msgstr "Политические взгляды:" msgstr "Политические взгляды:"
#: src/Model/Profile.php:986 #: src/Model/Profile.php:1013
msgid "Religious Views:" msgid "Religious Views:"
msgstr "Религиозные взгляды:" msgstr "Религиозные взгляды:"
#: src/Model/Profile.php:987 #: src/Model/Profile.php:1014
msgid "Likes:" msgid "Likes:"
msgstr "Нравится:" msgstr "Нравится:"
#: src/Model/Profile.php:988 #: src/Model/Profile.php:1015
msgid "Dislikes:" msgid "Dislikes:"
msgstr "Не нравится:" msgstr "Не нравится:"
#: src/Model/Profile.php:989 #: src/Model/Profile.php:1016
msgid "Title/Description:" msgid "Title/Description:"
msgstr "Заголовок / Описание:" msgstr "Заголовок / Описание:"
#: src/Model/Profile.php:990 src/Module/Admin/Summary.php:234 #: src/Model/Profile.php:1017 src/Module/Admin/Summary.php:235
msgid "Summary" msgid "Summary"
msgstr "Резюме" msgstr "Резюме"
#: src/Model/Profile.php:991 #: src/Model/Profile.php:1018
msgid "Musical interests" msgid "Musical interests"
msgstr "Музыкальные интересы" msgstr "Музыкальные интересы"
#: src/Model/Profile.php:992 #: src/Model/Profile.php:1019
msgid "Books, literature" msgid "Books, literature"
msgstr "Книги, литература" msgstr "Книги, литература"
#: src/Model/Profile.php:993 #: src/Model/Profile.php:1020
msgid "Television" msgid "Television"
msgstr "Телевидение" msgstr "Телевидение"
#: src/Model/Profile.php:994 #: src/Model/Profile.php:1021
msgid "Film/dance/culture/entertainment" msgid "Film/dance/culture/entertainment"
msgstr "Кино / танцы / культура / развлечения" msgstr "Кино / танцы / культура / развлечения"
#: src/Model/Profile.php:995 #: src/Model/Profile.php:1022
msgid "Hobbies/Interests" msgid "Hobbies/Interests"
msgstr "Хобби / Интересы" msgstr "Хобби / Интересы"
#: src/Model/Profile.php:996 #: src/Model/Profile.php:1023
msgid "Love/romance" msgid "Love/romance"
msgstr "Любовь / романтика" msgstr "Любовь / романтика"
#: src/Model/Profile.php:997 #: src/Model/Profile.php:1024
msgid "Work/employment" msgid "Work/employment"
msgstr "Работа / занятость" msgstr "Работа / занятость"
#: src/Model/Profile.php:998 #: src/Model/Profile.php:1025
msgid "School/education" msgid "School/education"
msgstr "Школа / образование" msgstr "Школа / образование"
#: src/Model/Profile.php:999 #: src/Model/Profile.php:1026
msgid "Contact information and Social Networks" msgid "Contact information and Social Networks"
msgstr "Контактная информация и социальные сети" msgstr "Контактная информация и социальные сети"
#: src/Model/User.php:210 src/Model/User.php:1058 #: src/Model/User.php:212 src/Model/User.php:1085
msgid "SERIOUS ERROR: Generation of security keys failed." msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr "СЕРЬЕЗНАЯ ОШИБКА: генерация ключей безопасности не удалась." msgstr "СЕРЬЕЗНАЯ ОШИБКА: генерация ключей безопасности не удалась."
#: src/Model/User.php:570 src/Model/User.php:603 #: src/Model/User.php:572 src/Model/User.php:605
msgid "Login failed" msgid "Login failed"
msgstr "Вход не удался" msgstr "Вход не удался"
#: src/Model/User.php:635 #: src/Model/User.php:637
msgid "Not enough information to authenticate" msgid "Not enough information to authenticate"
msgstr "Недостаточно информации для входа" msgstr "Недостаточно информации для входа"
#: src/Model/User.php:730 #: src/Model/User.php:732
msgid "Password can't be empty" msgid "Password can't be empty"
msgstr "Пароль не может быть пустым" msgstr "Пароль не может быть пустым"
#: src/Model/User.php:749 #: src/Model/User.php:774
msgid "Empty passwords are not allowed." msgid "Empty passwords are not allowed."
msgstr "Пароль не должен быть пустым." msgstr "Пароль не должен быть пустым."
#: src/Model/User.php:753 #: src/Model/User.php:778
msgid "" msgid ""
"The new password has been exposed in a public data dump, please choose " "The new password has been exposed in a public data dump, please choose "
"another." "another."
msgstr "Новый пароль содержится в опубликованных списках украденных паролей, пожалуйста, используйте другой." msgstr "Новый пароль содержится в опубликованных списках украденных паролей, пожалуйста, используйте другой."
#: src/Model/User.php:759 #: src/Model/User.php:782
msgid "The password length is limited to 72 characters."
msgstr "Длина пароля ограничена 72 символами."
#: src/Model/User.php:786
msgid "" msgid ""
"The password can't contain accentuated letters, white spaces or colons (:)" "The password can't contain accentuated letters, white spaces or colons (:)"
msgstr "Пароль не может содержать символы с акцентами, пробелы или двоеточия (:)" msgstr "Пароль не может содержать символы с акцентами, пробелы или двоеточия (:)"
#: src/Model/User.php:938 #: src/Model/User.php:965
msgid "Passwords do not match. Password unchanged." msgid "Passwords do not match. Password unchanged."
msgstr "Пароли не совпадают. Пароль не изменен." msgstr "Пароли не совпадают. Пароль не изменен."
#: src/Model/User.php:945 #: src/Model/User.php:972
msgid "An invitation is required." msgid "An invitation is required."
msgstr "Требуется приглашение." msgstr "Требуется приглашение."
#: src/Model/User.php:949 #: src/Model/User.php:976
msgid "Invitation could not be verified." msgid "Invitation could not be verified."
msgstr "Приглашение не может быть проверено." msgstr "Приглашение не может быть проверено."
#: src/Model/User.php:957 #: src/Model/User.php:984
msgid "Invalid OpenID url" msgid "Invalid OpenID url"
msgstr "Неверный URL OpenID" msgstr "Неверный URL OpenID"
#: src/Model/User.php:970 src/Security/Authentication.php:235 #: src/Model/User.php:997 src/Security/Authentication.php:240
msgid "" msgid ""
"We encountered a problem while logging in with the OpenID you provided. " "We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID." "Please check the correct spelling of the ID."
msgstr "Мы столкнулись с проблемой при входе с OpenID, который вы указали. Пожалуйста, проверьте правильность написания ID." msgstr "Мы столкнулись с проблемой при входе с OpenID, который вы указали. Пожалуйста, проверьте правильность написания ID."
#: src/Model/User.php:970 src/Security/Authentication.php:235 #: src/Model/User.php:997 src/Security/Authentication.php:240
msgid "The error message was:" msgid "The error message was:"
msgstr "Сообщение об ошибке было:" msgstr "Сообщение об ошибке было:"
#: src/Model/User.php:976 #: src/Model/User.php:1003
msgid "Please enter the required information." msgid "Please enter the required information."
msgstr "Пожалуйста, введите необходимую информацию." msgstr "Пожалуйста, введите необходимую информацию."
#: src/Model/User.php:990 #: src/Model/User.php:1017
#, php-format #, php-format
msgid "" msgid ""
"system.username_min_length (%s) and system.username_max_length (%s) are " "system.username_min_length (%s) and system.username_max_length (%s) are "
"excluding each other, swapping values." "excluding each other, swapping values."
msgstr "system.username_min_length (%s) и system.username_max_length (%s) противоречат друг другу, меняем их местами." msgstr "system.username_min_length (%s) и system.username_max_length (%s) противоречат друг другу, меняем их местами."
#: src/Model/User.php:997 #: src/Model/User.php:1024
#, php-format #, php-format
msgid "Username should be at least %s character." msgid "Username should be at least %s character."
msgid_plural "Username should be at least %s characters." msgid_plural "Username should be at least %s characters."
@ -4109,7 +4110,7 @@ msgstr[1] "Имя пользователя должно быть хотя бы %
msgstr[2] "Имя пользователя должно быть хотя бы %s символов." msgstr[2] "Имя пользователя должно быть хотя бы %s символов."
msgstr[3] "Имя пользователя должно быть хотя бы %s символов." msgstr[3] "Имя пользователя должно быть хотя бы %s символов."
#: src/Model/User.php:1001 #: src/Model/User.php:1028
#, php-format #, php-format
msgid "Username should be at most %s character." msgid "Username should be at most %s character."
msgid_plural "Username should be at most %s characters." msgid_plural "Username should be at most %s characters."
@ -4118,60 +4119,60 @@ msgstr[1] "Имя пользователя должно быть не больш
msgstr[2] "Имя пользователя должно быть не больше %s символов." msgstr[2] "Имя пользователя должно быть не больше %s символов."
msgstr[3] "Имя пользователя должно быть не больше %s символов." msgstr[3] "Имя пользователя должно быть не больше %s символов."
#: src/Model/User.php:1009 #: src/Model/User.php:1036
msgid "That doesn't appear to be your full (First Last) name." msgid "That doesn't appear to be your full (First Last) name."
msgstr "Кажется, что это ваше неполное (Имя Фамилия) имя." msgstr "Кажется, что это ваше неполное (Имя Фамилия) имя."
#: src/Model/User.php:1014 #: src/Model/User.php:1041
msgid "Your email domain is not among those allowed on this site." msgid "Your email domain is not among those allowed on this site."
msgstr "Домен вашего адреса электронной почты не относится к числу разрешенных на этом сайте." msgstr "Домен вашего адреса электронной почты не относится к числу разрешенных на этом сайте."
#: src/Model/User.php:1018 #: src/Model/User.php:1045
msgid "Not a valid email address." msgid "Not a valid email address."
msgstr "Неверный адрес электронной почты." msgstr "Неверный адрес электронной почты."
#: src/Model/User.php:1021 #: src/Model/User.php:1048
msgid "The nickname was blocked from registration by the nodes admin." msgid "The nickname was blocked from registration by the nodes admin."
msgstr "Этот ник был заблокирован для регистрации администратором узла." msgstr "Этот ник был заблокирован для регистрации администратором узла."
#: src/Model/User.php:1025 src/Model/User.php:1033 #: src/Model/User.php:1052 src/Model/User.php:1060
msgid "Cannot use that email." msgid "Cannot use that email."
msgstr "Нельзя использовать этот Email." msgstr "Нельзя использовать этот Email."
#: src/Model/User.php:1040 #: src/Model/User.php:1067
msgid "Your nickname can only contain a-z, 0-9 and _." msgid "Your nickname can only contain a-z, 0-9 and _."
msgstr "Ваш ник может содержать только символы a-z, 0-9 и _." msgstr "Ваш ник может содержать только символы a-z, 0-9 и _."
#: src/Model/User.php:1048 src/Model/User.php:1105 #: src/Model/User.php:1075 src/Model/User.php:1132
msgid "Nickname is already registered. Please choose another." msgid "Nickname is already registered. Please choose another."
msgstr "Такой ник уже зарегистрирован. Пожалуйста, выберите другой." msgstr "Такой ник уже зарегистрирован. Пожалуйста, выберите другой."
#: src/Model/User.php:1092 src/Model/User.php:1096 #: src/Model/User.php:1119 src/Model/User.php:1123
msgid "An error occurred during registration. Please try again." msgid "An error occurred during registration. Please try again."
msgstr "Ошибка при регистрации. Пожалуйста, попробуйте еще раз." msgstr "Ошибка при регистрации. Пожалуйста, попробуйте еще раз."
#: src/Model/User.php:1119 #: src/Model/User.php:1146
msgid "An error occurred creating your default profile. Please try again." msgid "An error occurred creating your default profile. Please try again."
msgstr "Ошибка создания вашего профиля. Пожалуйста, попробуйте еще раз." msgstr "Ошибка создания вашего профиля. Пожалуйста, попробуйте еще раз."
#: src/Model/User.php:1126 #: src/Model/User.php:1153
msgid "An error occurred creating your self contact. Please try again." msgid "An error occurred creating your self contact. Please try again."
msgstr "При создании вашего контакта возникла проблема. Пожалуйста, попробуйте ещё раз." msgstr "При создании вашего контакта возникла проблема. Пожалуйста, попробуйте ещё раз."
#: src/Model/User.php:1131 #: src/Model/User.php:1158
msgid "Friends" msgid "Friends"
msgstr "Друзья" msgstr "Друзья"
#: src/Model/User.php:1135 #: src/Model/User.php:1162
msgid "" msgid ""
"An error occurred creating your default contact group. Please try again." "An error occurred creating your default contact group. Please try again."
msgstr "При создании группы контактов по-умолчанию возникла ошибка. Пожалуйста, попробуйте ещё раз." msgstr "При создании группы контактов по-умолчанию возникла ошибка. Пожалуйста, попробуйте ещё раз."
#: src/Model/User.php:1174 #: src/Model/User.php:1201
msgid "Profile Photos" msgid "Profile Photos"
msgstr "Фотографии профиля" msgstr "Фотографии профиля"
#: src/Model/User.php:1368 #: src/Model/User.php:1394
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -4179,7 +4180,7 @@ msgid ""
"\t\t\tthe administrator of %2$s has set up an account for you." "\t\t\tthe administrator of %2$s has set up an account for you."
msgstr "\n\t\tУважаемый(ая) %1$s,\n\t\t\tадминистратор %2$s создал для вас учётную запись." msgstr "\n\t\tУважаемый(ая) %1$s,\n\t\t\tадминистратор %2$s создал для вас учётную запись."
#: src/Model/User.php:1371 #: src/Model/User.php:1397
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -4211,12 +4212,12 @@ msgid ""
"\t\tThank you and welcome to %4$s." "\t\tThank you and welcome to %4$s."
msgstr "\n\t\tДанные для входа в систему:\n\n\t\tМестоположение сайта:\t%1$s\n\t\tЛогин:\t\t%2$s\n\t\tПароль:\t\t%3$s\n\n\t\tВы можете изменить пароль на странице \"Настройки\" после авторизации.\n\n\t\tПожалуйста, уделите время ознакомлению с другими другие настройками аккаунта на этой странице.\n\n\n\t\tВы также можете захотеть добавить немного базовой информации к вашему стандартному профилю\n\t\t(на странице \"Информация\") чтобы другим людям было проще вас найти.\n\n\t\tМы рекомендуем указать ваше полное имя, добавить фотографию,\n\t\tнемного \"ключевых слов\" (очень полезно, чтобы завести новых друзей)\n\t\tи возможно страну вашего проживания; если вы не хотите быть более конкретным.\n\n\t\tМы полностью уважаем ваше право на приватность, поэтому ничего из этого не является обязательным.\n\t\tЕсли же вы новичок и никого не знаете, это может помочь\n\t\tвам завести новых интересных друзей.\n\n\t\tЕсли вы когда-нибудь захотите удалить свой аккаунт, вы можете сделать это перейдя по ссылке %1$s/removeme\n\n\t\tСпасибо и добро пожаловать в %4$s." msgstr "\n\t\tДанные для входа в систему:\n\n\t\tМестоположение сайта:\t%1$s\n\t\tЛогин:\t\t%2$s\n\t\tПароль:\t\t%3$s\n\n\t\tВы можете изменить пароль на странице \"Настройки\" после авторизации.\n\n\t\tПожалуйста, уделите время ознакомлению с другими другие настройками аккаунта на этой странице.\n\n\n\t\tВы также можете захотеть добавить немного базовой информации к вашему стандартному профилю\n\t\t(на странице \"Информация\") чтобы другим людям было проще вас найти.\n\n\t\tМы рекомендуем указать ваше полное имя, добавить фотографию,\n\t\tнемного \"ключевых слов\" (очень полезно, чтобы завести новых друзей)\n\t\tи возможно страну вашего проживания; если вы не хотите быть более конкретным.\n\n\t\tМы полностью уважаем ваше право на приватность, поэтому ничего из этого не является обязательным.\n\t\tЕсли же вы новичок и никого не знаете, это может помочь\n\t\tвам завести новых интересных друзей.\n\n\t\tЕсли вы когда-нибудь захотите удалить свой аккаунт, вы можете сделать это перейдя по ссылке %1$s/removeme\n\n\t\tСпасибо и добро пожаловать в %4$s."
#: src/Model/User.php:1404 src/Model/User.php:1511 #: src/Model/User.php:1430 src/Model/User.php:1537
#, php-format #, php-format
msgid "Registration details for %s" msgid "Registration details for %s"
msgstr "Подробности регистрации для %s" msgstr "Подробности регистрации для %s"
#: src/Model/User.php:1424 #: src/Model/User.php:1450
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -4231,12 +4232,12 @@ msgid ""
"\t\t" "\t\t"
msgstr "\n\t\t\tУважаемый %1$s,\n\t\t\t\tБлагодарим Вас за регистрацию на %2$s. Ваш аккаунт ожидает подтверждения администратором.\n\n\t\t\tВаши данные для входа в систему:\n\n\t\t\tМестоположение сайта:\t%3$s\n\t\t\tЛогин:\t\t%4$s\n\t\t\tПароль:\t\t%5$s\n\t\t" msgstr "\n\t\t\tУважаемый %1$s,\n\t\t\t\tБлагодарим Вас за регистрацию на %2$s. Ваш аккаунт ожидает подтверждения администратором.\n\n\t\t\tВаши данные для входа в систему:\n\n\t\t\tМестоположение сайта:\t%3$s\n\t\t\tЛогин:\t\t%4$s\n\t\t\tПароль:\t\t%5$s\n\t\t"
#: src/Model/User.php:1443 #: src/Model/User.php:1469
#, php-format #, php-format
msgid "Registration at %s" msgid "Registration at %s"
msgstr "Регистрация на %s" msgstr "Регистрация на %s"
#: src/Model/User.php:1467 #: src/Model/User.php:1493
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -4245,7 +4246,7 @@ msgid ""
"\t\t\t" "\t\t\t"
msgstr "\n\t\t\t\tУважаемый(ая) %1$s,\n\t\t\t\tСпасибо за регистрацию на %2$s. Ваша учётная запись создана.\n\t\t\t" msgstr "\n\t\t\t\tУважаемый(ая) %1$s,\n\t\t\t\tСпасибо за регистрацию на %2$s. Ваша учётная запись создана.\n\t\t\t"
#: src/Model/User.php:1475 #: src/Model/User.php:1501
#, php-format #, php-format
msgid "" msgid ""
"\n" "\n"
@ -4277,6 +4278,21 @@ msgid ""
"\t\t\tThank you and welcome to %2$s." "\t\t\tThank you and welcome to %2$s."
msgstr "\n\t\t\tДанные для входа:\n\n\t\t\tАдрес сайта:\t%3$s\n\t\t\tИмя:\t\t%1$s\n\t\t\tПароль:\t\t%5$s\n\n\t\t\tВы можете сменить пароль в настройках учётной записи после входа.\n\t\t\t\n\n\t\t\tТакже обратите внимание на другие настройки на этой странице.\n\n\t\t\tВы можете захотеть добавить основную информацию о себе\n\t\t\tна странице \"Профиль\", чтобы другие люди легко вас нашли.\n\n\t\t\tМы рекомендуем указать полное имя и установить фото профиля,\n\t\t\tдобавить ключевые слова для поиска друзей по интересам,\n\t\t\tи, вероятно, страну вашего проживания.\n\n\t\t\tМы уважаем вашу приватность и ничто из вышеуказанного не обязательно.\n\t\t\tЕсли вы новичок и пока никого здесь не знаете, то это поможет\n\t\t\tвам найти новых интересных друзей.\n\n\t\t\tЕсли вы захотите удалить свою учётную запись, то сможете сделать это на %3$s/removeme\n\n\t\t\tСпасибо и добро пожаловать на %2$s." msgstr "\n\t\t\tДанные для входа:\n\n\t\t\tАдрес сайта:\t%3$s\n\t\t\tИмя:\t\t%1$s\n\t\t\tПароль:\t\t%5$s\n\n\t\t\tВы можете сменить пароль в настройках учётной записи после входа.\n\t\t\t\n\n\t\t\tТакже обратите внимание на другие настройки на этой странице.\n\n\t\t\tВы можете захотеть добавить основную информацию о себе\n\t\t\tна странице \"Профиль\", чтобы другие люди легко вас нашли.\n\n\t\t\tМы рекомендуем указать полное имя и установить фото профиля,\n\t\t\tдобавить ключевые слова для поиска друзей по интересам,\n\t\t\tи, вероятно, страну вашего проживания.\n\n\t\t\tМы уважаем вашу приватность и ничто из вышеуказанного не обязательно.\n\t\t\tЕсли вы новичок и пока никого здесь не знаете, то это поможет\n\t\t\tвам найти новых интересных друзей.\n\n\t\t\tЕсли вы захотите удалить свою учётную запись, то сможете сделать это на %3$s/removeme\n\n\t\t\tСпасибо и добро пожаловать на %2$s."
#: src/Moderation/DomainPatternBlocklist.php:228
#, php-format
msgid "[%s] Notice of remote server domain pattern block list update"
msgstr "[%s] Обновление списка блокировки серверов"
#: src/Moderation/DomainPatternBlocklist.php:230
#, php-format
msgid ""
"Dear %s,\n"
"\n"
"You are receiving this email because the Friendica node at %s where you are registered as a user updated their remote server domain pattern block list.\n"
"\n"
"Please review the updated list at %s at your earliest convenience."
msgstr "Уважаемый(ая) %s,\n\nВы получили это письмо, так как на узле Friendica %s, где вы зарегистрированы, обновился список блокировки серверов.\n\nПожалуйста, ознакомьтесь с новым списком по адресу %s."
#: src/Module/Admin/Addons/Details.php:65 #: src/Module/Admin/Addons/Details.php:65
msgid "Addon not found." msgid "Addon not found."
msgstr "Дополнение не найдено." msgstr "Дополнение не найдено."
@ -4304,17 +4320,18 @@ msgstr "Включить"
#: src/Module/Admin/Addons/Details.php:111 #: src/Module/Admin/Addons/Details.php:111
#: src/Module/Admin/Addons/Index.php:67 #: src/Module/Admin/Addons/Index.php:67
#: src/Module/Admin/Blocklist/Contact.php:94 #: src/Module/Admin/Blocklist/Contact.php:94
#: src/Module/Admin/Blocklist/Server/Add.php:89 #: src/Module/Admin/Blocklist/Server/Add.php:121
#: src/Module/Admin/Blocklist/Server/Index.php:78 #: src/Module/Admin/Blocklist/Server/Import.php:117
#: src/Module/Admin/Federation.php:196 src/Module/Admin/Item/Delete.php:64 #: src/Module/Admin/Blocklist/Server/Index.php:93
#: src/Module/Admin/Federation.php:202 src/Module/Admin/Item/Delete.php:64
#: src/Module/Admin/Logs/Settings.php:79 src/Module/Admin/Logs/View.php:84 #: src/Module/Admin/Logs/Settings.php:79 src/Module/Admin/Logs/View.php:84
#: src/Module/Admin/Queue.php:72 src/Module/Admin/Site.php:431 #: src/Module/Admin/Queue.php:72 src/Module/Admin/Site.php:429
#: src/Module/Admin/Storage.php:138 src/Module/Admin/Summary.php:233 #: src/Module/Admin/Storage.php:138 src/Module/Admin/Summary.php:234
#: src/Module/Admin/Themes/Details.php:90 #: src/Module/Admin/Themes/Details.php:90
#: src/Module/Admin/Themes/Index.php:111 src/Module/Admin/Tos.php:75 #: src/Module/Admin/Themes/Index.php:111 src/Module/Admin/Tos.php:75
#: src/Module/Admin/Users/Active.php:136 #: src/Module/Admin/Users/Active.php:136
#: src/Module/Admin/Users/Blocked.php:137 src/Module/Admin/Users/Create.php:61 #: src/Module/Admin/Users/Blocked.php:138 src/Module/Admin/Users/Create.php:61
#: src/Module/Admin/Users/Deleted.php:85 src/Module/Admin/Users/Index.php:149 #: src/Module/Admin/Users/Deleted.php:85 src/Module/Admin/Users/Index.php:150
#: src/Module/Admin/Users/Pending.php:101 #: src/Module/Admin/Users/Pending.php:101
msgid "Administration" msgid "Administration"
msgstr "Администрация" msgstr "Администрация"
@ -4373,8 +4390,8 @@ msgstr "Активные"
msgid "List of active accounts" msgid "List of active accounts"
msgstr "Список активных пользователей" msgstr "Список активных пользователей"
#: src/Module/Admin/BaseUsers.php:67 src/Module/Contact.php:314 #: src/Module/Admin/BaseUsers.php:67 src/Module/Contact.php:317
#: src/Module/Contact.php:374 #: src/Module/Contact.php:377
msgid "Pending" msgid "Pending"
msgstr "В ожидании" msgstr "В ожидании"
@ -4382,8 +4399,8 @@ msgstr "В ожидании"
msgid "List of pending registrations" msgid "List of pending registrations"
msgstr "Список ожидающих регистрацию" msgstr "Список ожидающих регистрацию"
#: src/Module/Admin/BaseUsers.php:75 src/Module/Contact.php:322 #: src/Module/Admin/BaseUsers.php:75 src/Module/Contact.php:325
#: src/Module/Contact.php:375 #: src/Module/Contact.php:378
msgid "Blocked" msgid "Blocked"
msgstr "Заблокированы" msgstr "Заблокированы"
@ -4399,19 +4416,19 @@ msgstr "Удалённые"
msgid "List of pending user deletions" msgid "List of pending user deletions"
msgstr "Список ожидающих удаления" msgstr "Список ожидающих удаления"
#: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:493 #: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:494
msgid "Normal Account Page" msgid "Normal Account Page"
msgstr "Стандартная страница аккаунта" msgstr "Стандартная страница аккаунта"
#: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:500 #: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:501
msgid "Soapbox Page" msgid "Soapbox Page"
msgstr "Публичная страница" msgstr "Публичная страница"
#: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:507 #: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:508
msgid "Public Forum" msgid "Public Forum"
msgstr "Публичный форум" msgstr "Публичный форум"
#: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:514 #: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:515
msgid "Automatic Friend Page" msgid "Automatic Friend Page"
msgstr "\"Автоматический друг\" страница" msgstr "\"Автоматический друг\" страница"
@ -4419,19 +4436,19 @@ msgstr "\"Автоматический друг\" страница"
msgid "Private Forum" msgid "Private Forum"
msgstr "Закрытый форум" msgstr "Закрытый форум"
#: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:465 #: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:466
msgid "Personal Page" msgid "Personal Page"
msgstr "Личная страница" msgstr "Личная страница"
#: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:472 #: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:473
msgid "Organisation Page" msgid "Organisation Page"
msgstr "Организационная страница" msgstr "Организационная страница"
#: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:479 #: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:480
msgid "News Page" msgid "News Page"
msgstr "Новостная страница" msgstr "Новостная страница"
#: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:486 #: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:487
msgid "Community Forum" msgid "Community Forum"
msgstr "Форум сообщества" msgstr "Форум сообщества"
@ -4468,7 +4485,7 @@ msgstr "Заблокировать удалённый контакт"
#: src/Module/Admin/Blocklist/Contact.php:98 #: src/Module/Admin/Blocklist/Contact.php:98
#: src/Module/Admin/Users/Active.php:138 #: src/Module/Admin/Users/Active.php:138
#: src/Module/Admin/Users/Blocked.php:139 src/Module/Admin/Users/Index.php:151 #: src/Module/Admin/Users/Blocked.php:140 src/Module/Admin/Users/Index.php:152
#: src/Module/Admin/Users/Pending.php:103 #: src/Module/Admin/Users/Pending.php:103
msgid "select all" msgid "select all"
msgstr "выбрать все" msgstr "выбрать все"
@ -4478,9 +4495,9 @@ msgid "select none"
msgstr "сбросить выбор" msgstr "сбросить выбор"
#: src/Module/Admin/Blocklist/Contact.php:101 #: src/Module/Admin/Blocklist/Contact.php:101
#: src/Module/Admin/Users/Blocked.php:142 src/Module/Admin/Users/Index.php:156 #: src/Module/Admin/Users/Blocked.php:143 src/Module/Admin/Users/Index.php:157
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:348 #: src/Module/Contact.php:401 src/Module/Contact/Profile.php:350
#: src/Module/Contact/Profile.php:449 #: src/Module/Contact/Profile.php:451
msgid "Unblock" msgid "Unblock"
msgstr "Разблокировать" msgstr "Разблокировать"
@ -4528,14 +4545,15 @@ msgid ""
msgstr "Удалить всё содержимое, относящееся к данному контакту на этом узле. Запись контакта будет сохранена. Это действие нельзя отменить." msgstr "Удалить всё содержимое, относящееся к данному контакту на этом узле. Запись контакта будет сохранена. Это действие нельзя отменить."
#: src/Module/Admin/Blocklist/Contact.php:118 #: src/Module/Admin/Blocklist/Contact.php:118
#: src/Module/Admin/Blocklist/Server/Import.php:123
msgid "Block Reason" msgid "Block Reason"
msgstr "Причина блокировки" msgstr "Причина блокировки"
#: src/Module/Admin/Blocklist/Server/Add.php:55 #: src/Module/Admin/Blocklist/Server/Add.php:80
msgid "Server domain pattern added to the blocklist." msgid "Server domain pattern added to the blocklist."
msgstr "Маска адреса сервера добавлена в чёрный список." msgstr "Маска адреса сервера добавлена в чёрный список."
#: src/Module/Admin/Blocklist/Server/Add.php:63 #: src/Module/Admin/Blocklist/Server/Add.php:88
#, php-format #, php-format
msgid "%s server scheduled to be purged." msgid "%s server scheduled to be purged."
msgid_plural "%s servers scheduled to be purged." msgid_plural "%s servers scheduled to be purged."
@ -4544,16 +4562,17 @@ msgstr[1] "%s сервера ожидают очистки."
msgstr[2] "%s серверов ожидают очистки." msgstr[2] "%s серверов ожидают очистки."
msgstr[3] "%s серверов ожидают очистки." msgstr[3] "%s серверов ожидают очистки."
#: src/Module/Admin/Blocklist/Server/Add.php:88 #: src/Module/Admin/Blocklist/Server/Add.php:120
#: src/Module/Admin/Blocklist/Server/Import.php:116
msgid "← Return to the list" msgid "← Return to the list"
msgstr "← Вернуться к списку" msgstr "← Вернуться к списку"
#: src/Module/Admin/Blocklist/Server/Add.php:90 #: src/Module/Admin/Blocklist/Server/Add.php:122
msgid "Block A New Server Domain Pattern" msgid "Block A New Server Domain Pattern"
msgstr "Заблокировать новый сервер по маске" msgstr "Заблокировать новый сервер по маске"
#: src/Module/Admin/Blocklist/Server/Add.php:91 #: src/Module/Admin/Blocklist/Server/Add.php:123
#: src/Module/Admin/Blocklist/Server/Index.php:82 #: src/Module/Admin/Blocklist/Server/Index.php:97
msgid "" msgid ""
"<p>The server domain pattern syntax is case-insensitive shell wildcard, comprising the following special characters:</p>\n" "<p>The server domain pattern syntax is case-insensitive shell wildcard, comprising the following special characters:</p>\n"
"<ul>\n" "<ul>\n"
@ -4562,28 +4581,28 @@ msgid ""
"</ul>" "</ul>"
msgstr "<p>Маска домена сервера нечувствительна к регистру и представляет собой выражение shell со следующими спецсимволами:</p>\n<ul>\n\t<li><code>*</code>: Любое число символов</li>\n\t<li><code>?</code>: Один любой символ</li>\n</ul>" msgstr "<p>Маска домена сервера нечувствительна к регистру и представляет собой выражение shell со следующими спецсимволами:</p>\n<ul>\n\t<li><code>*</code>: Любое число символов</li>\n\t<li><code>?</code>: Один любой символ</li>\n</ul>"
#: src/Module/Admin/Blocklist/Server/Add.php:96 #: src/Module/Admin/Blocklist/Server/Add.php:128
#: src/Module/Admin/Blocklist/Server/Index.php:88 #: src/Module/Admin/Blocklist/Server/Index.php:105
msgid "Check pattern" msgid "Check pattern"
msgstr "Проверить маску" msgstr "Проверить маску"
#: src/Module/Admin/Blocklist/Server/Add.php:97 #: src/Module/Admin/Blocklist/Server/Add.php:129
msgid "Matching known servers" msgid "Matching known servers"
msgstr "Совпадающие известные серверы" msgstr "Совпадающие известные серверы"
#: src/Module/Admin/Blocklist/Server/Add.php:98 #: src/Module/Admin/Blocklist/Server/Add.php:130
msgid "Server Name" msgid "Server Name"
msgstr "Имя сервера" msgstr "Имя сервера"
#: src/Module/Admin/Blocklist/Server/Add.php:99 #: src/Module/Admin/Blocklist/Server/Add.php:131
msgid "Server Domain" msgid "Server Domain"
msgstr "Домен сервера" msgstr "Домен сервера"
#: src/Module/Admin/Blocklist/Server/Add.php:100 #: src/Module/Admin/Blocklist/Server/Add.php:132
msgid "Known Contacts" msgid "Known Contacts"
msgstr "Известные контакты" msgstr "Известные контакты"
#: src/Module/Admin/Blocklist/Server/Add.php:101 #: src/Module/Admin/Blocklist/Server/Add.php:133
#, php-format #, php-format
msgid "%d known server" msgid "%d known server"
msgid_plural "%d known servers" msgid_plural "%d known servers"
@ -4592,27 +4611,27 @@ msgstr[1] "%d известных сервера"
msgstr[2] "%d известных серверов" msgstr[2] "%d известных серверов"
msgstr[3] "%d известных серверов" msgstr[3] "%d известных серверов"
#: src/Module/Admin/Blocklist/Server/Add.php:102 #: src/Module/Admin/Blocklist/Server/Add.php:134
msgid "Add pattern to the blocklist" msgid "Add pattern to the blocklist"
msgstr "Добавить маску в чёрный список" msgstr "Добавить маску в чёрный список"
#: src/Module/Admin/Blocklist/Server/Add.php:104 #: src/Module/Admin/Blocklist/Server/Add.php:136
#: src/Module/Admin/Blocklist/Server/Index.php:96 #: src/Module/Admin/Blocklist/Server/Index.php:114
msgid "Server Domain Pattern" msgid "Server Domain Pattern"
msgstr "Маска домена узла" msgstr "Маска домена узла"
#: src/Module/Admin/Blocklist/Server/Add.php:104 #: src/Module/Admin/Blocklist/Server/Add.php:136
#: src/Module/Admin/Blocklist/Server/Index.php:96 #: src/Module/Admin/Blocklist/Server/Index.php:114
msgid "" msgid ""
"The domain pattern of the new server to add to the blocklist. Do not include" "The domain pattern of the new server to add to the blocklist. Do not include"
" the protocol." " the protocol."
msgstr "Маска домена сервера, который вы хотите добавить в чёрный список. Не включайте префикс протокола." msgstr "Маска домена сервера, который вы хотите добавить в чёрный список. Не включайте префикс протокола."
#: src/Module/Admin/Blocklist/Server/Add.php:105 #: src/Module/Admin/Blocklist/Server/Add.php:137
msgid "Purge server" msgid "Purge server"
msgstr "Очистить сервер" msgstr "Очистить сервер"
#: src/Module/Admin/Blocklist/Server/Add.php:105 #: src/Module/Admin/Blocklist/Server/Add.php:137
msgid "" msgid ""
"Also purges all the locally stored content authored by the known contacts " "Also purges all the locally stored content authored by the known contacts "
"registered on that server. Keeps the contacts and the server records. This " "registered on that server. Keeps the contacts and the server records. This "
@ -4626,71 +4645,160 @@ msgstr[1] "Так же удаляет все локальные данные, с
msgstr[2] "Так же удаляет все локальные данные, созданные контактами, зарегистрированными на этих серверах. Сохраняет записи о самих контактах и серверах. Это действие нельзя отменить." msgstr[2] "Так же удаляет все локальные данные, созданные контактами, зарегистрированными на этих серверах. Сохраняет записи о самих контактах и серверах. Это действие нельзя отменить."
msgstr[3] "Так же удаляет все локальные данные, созданные контактами, зарегистрированными на этих серверах. Сохраняет записи о самих контактах и серверах. Это действие нельзя отменить." msgstr[3] "Так же удаляет все локальные данные, созданные контактами, зарегистрированными на этих серверах. Сохраняет записи о самих контактах и серверах. Это действие нельзя отменить."
#: src/Module/Admin/Blocklist/Server/Add.php:106 #: src/Module/Admin/Blocklist/Server/Add.php:138
msgid "Block reason" msgid "Block reason"
msgstr "Причина блокировки" msgstr "Причина блокировки"
#: src/Module/Admin/Blocklist/Server/Add.php:106 #: src/Module/Admin/Blocklist/Server/Add.php:138
msgid "" msgid ""
"The reason why you blocked this server domain pattern. This reason will be " "The reason why you blocked this server domain pattern. This reason will be "
"shown publicly in the server information page." "shown publicly in the server information page."
msgstr "Причина, по которой вы заблокировали этот домен. Это будет показано публично на странице с информацией о сервере." msgstr "Причина, по которой вы заблокировали этот домен. Это будет показано публично на странице с информацией о сервере."
#: src/Module/Admin/Blocklist/Server/Index.php:68 #: src/Module/Admin/Blocklist/Server/Import.php:75
#: src/Module/Admin/Blocklist/Server/Index.php:91 #: src/Module/Admin/Blocklist/Server/Import.php:84
msgid "Error importing pattern file"
msgstr "Ошибка импорта файла списка"
#: src/Module/Admin/Blocklist/Server/Import.php:90
msgid "Local blocklist replaced with the provided file."
msgstr "Список блокировки заменён на список из файла."
#: src/Module/Admin/Blocklist/Server/Import.php:94
#, php-format
msgid "%d pattern was added to the local blocklist."
msgid_plural "%d patterns were added to the local blocklist."
msgstr[0] "%d маска была добавлена в список блокировки."
msgstr[1] "%d маски были добавлены в список блокировки."
msgstr[2] "%d масок было добавлено в список блокировки."
msgstr[3] "%d масок было добавлено в список блокировки."
#: src/Module/Admin/Blocklist/Server/Import.php:96
msgid "No pattern was added to the local blocklist."
msgstr "Новых масок не было добавлено."
#: src/Module/Admin/Blocklist/Server/Import.php:118
msgid "Import a Server Domain Pattern Blocklist"
msgstr "Импорт списка блокировки серверов"
#: src/Module/Admin/Blocklist/Server/Import.php:119
msgid ""
"<p>This file can be downloaded from the <code>/friendica</code> path of any "
"Friendica server.</p>"
msgstr "<p>Этот файл может быть загружен по ссылке <code>/friendica</code> с любого сервера Friendica.</p>"
#: src/Module/Admin/Blocklist/Server/Import.php:120
#: src/Module/Admin/Blocklist/Server/Index.php:104
msgid "Upload file"
msgstr "Загрузить файл"
#: src/Module/Admin/Blocklist/Server/Import.php:121
msgid "Patterns to import"
msgstr "Маски для импорта"
#: src/Module/Admin/Blocklist/Server/Import.php:122
msgid "Domain Pattern"
msgstr "Маска домена"
#: src/Module/Admin/Blocklist/Server/Import.php:124
msgid "Import Mode"
msgstr "Режим импорта"
#: src/Module/Admin/Blocklist/Server/Import.php:125
msgid "Import Patterns"
msgstr "Импорт значений"
#: src/Module/Admin/Blocklist/Server/Import.php:126
#, php-format
msgid "%d total pattern"
msgid_plural "%d total patterns"
msgstr[0] "%d маска"
msgstr[1] "%d маски всего"
msgstr[2] "%d масок всего"
msgstr[3] "%d масок всего"
#: src/Module/Admin/Blocklist/Server/Import.php:128
#: src/Module/Admin/Blocklist/Server/Index.php:113
msgid "Server domain pattern blocklist CSV file"
msgstr "Список блокировки серверов в виде файла CSV"
#: src/Module/Admin/Blocklist/Server/Import.php:129
msgid "Append"
msgstr "Добавить"
#: src/Module/Admin/Blocklist/Server/Import.php:129
msgid ""
"Imports patterns from the file that weren't already existing in the current "
"blocklist."
msgstr "Добавляет маски из файла, которые ещё не существуют в текущем списке блокировки."
#: src/Module/Admin/Blocklist/Server/Import.php:130
msgid "Replace"
msgstr "Заменить"
#: src/Module/Admin/Blocklist/Server/Import.php:130
msgid "Replaces the current blocklist by the imported patterns."
msgstr "Заменяет текущий список загруженными значениями."
#: src/Module/Admin/Blocklist/Server/Index.php:84
#: src/Module/Admin/Blocklist/Server/Index.php:108
msgid "Blocked server domain pattern" msgid "Blocked server domain pattern"
msgstr "Маска домена блокируемого сервера" msgstr "Маска домена блокируемого сервера"
#: src/Module/Admin/Blocklist/Server/Index.php:69 #: src/Module/Admin/Blocklist/Server/Index.php:85
#: src/Module/Admin/Blocklist/Server/Index.php:92 src/Module/Friendica.php:82 #: src/Module/Admin/Blocklist/Server/Index.php:109 src/Module/Friendica.php:83
msgid "Reason for the block" msgid "Reason for the block"
msgstr "Причина блокировки" msgstr "Причина блокировки"
#: src/Module/Admin/Blocklist/Server/Index.php:70 #: src/Module/Admin/Blocklist/Server/Index.php:86
msgid "Delete server domain pattern" msgid "Delete server domain pattern"
msgstr "Удалить маску домена" msgstr "Удалить маску домена"
#: src/Module/Admin/Blocklist/Server/Index.php:70 #: src/Module/Admin/Blocklist/Server/Index.php:86
msgid "Check to delete this entry from the blocklist" msgid "Check to delete this entry from the blocklist"
msgstr "Отметьте, чтобы удалить эту запись из черного списка" msgstr "Отметьте, чтобы удалить эту запись из списка блокировки"
#: src/Module/Admin/Blocklist/Server/Index.php:79 #: src/Module/Admin/Blocklist/Server/Index.php:94
msgid "Server Domain Pattern Blocklist" msgid "Server Domain Pattern Blocklist"
msgstr "Чёрный список доменов" msgstr "Список блокировки доменов"
#: src/Module/Admin/Blocklist/Server/Index.php:80 #: src/Module/Admin/Blocklist/Server/Index.php:95
msgid "" msgid ""
"This page can be used to define a blocklist of server domain patterns from " "This page can be used to define a blocklist of server domain patterns from "
"the federated network that are not allowed to interact with your node. For " "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." "each domain pattern you should also provide the reason why you block it."
msgstr "На этой странице можно настроить чёрный список доменов узлов федеративной сети, которые не должны взаимодействовать с вашим узлом. Для каждой записи вы должны предоставить причину блокировки." msgstr "На этой странице можно настроить список блокировки доменов узлов федеративной сети, которые не должны взаимодействовать с вашим узлом. Для каждой записи вы должны предоставить причину блокировки."
#: src/Module/Admin/Blocklist/Server/Index.php:81 #: src/Module/Admin/Blocklist/Server/Index.php:96
msgid "" msgid ""
"The list of blocked server domain patterns will be made publically available" "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 " " on the <a href=\"/friendica\">/friendica</a> page so that your users and "
"people investigating communication problems can find the reason easily." "people investigating communication problems can find the reason easily."
msgstr "Список блокируемых доменов будет отображаться публично на странице <a href=\"/friendica\">/friendica</a>, чтобы ваши пользователи и другие люди могли легко понять причину проблем с доставкой записей." msgstr "Список блокируемых доменов будет отображаться публично на странице <a href=\"/friendica\">/friendica</a>, чтобы ваши пользователи и другие люди могли легко понять причину проблем с доставкой записей."
#: src/Module/Admin/Blocklist/Server/Index.php:87 #: src/Module/Admin/Blocklist/Server/Index.php:102
msgid "Import server domain pattern blocklist"
msgstr "Импорт списка блокировки"
#: src/Module/Admin/Blocklist/Server/Index.php:103
msgid "Add new entry to the blocklist" msgid "Add new entry to the blocklist"
msgstr "Добавить новую запись в чёрный список" msgstr "Добавить новую запись в список блокировки"
#: src/Module/Admin/Blocklist/Server/Index.php:89 #: src/Module/Admin/Blocklist/Server/Index.php:106
msgid "Save changes to the blocklist" msgid "Save changes to the blocklist"
msgstr "Сохранить изменения чёрного списка" msgstr "Сохранить изменения списка блокировки"
#: src/Module/Admin/Blocklist/Server/Index.php:90 #: src/Module/Admin/Blocklist/Server/Index.php:107
msgid "Current Entries in the Blocklist" msgid "Current Entries in the Blocklist"
msgstr "Текущие значения чёрного списка" msgstr "Текущие значения списка блокировки"
#: src/Module/Admin/Blocklist/Server/Index.php:93 #: src/Module/Admin/Blocklist/Server/Index.php:110
msgid "Delete entry from the blocklist" msgid "Delete entry from the blocklist"
msgstr "Удалить запись из чёрного списка" msgstr "Удалить запись из списка"
#: src/Module/Admin/Blocklist/Server/Index.php:94 #: src/Module/Admin/Blocklist/Server/Index.php:111
msgid "Delete entry from the blocklist?" msgid "Delete entry from the blocklist?"
msgstr "Удалить запись из чёрного списка?" msgstr "Удалить запись из списка блокировки?"
#: src/Module/Admin/DBSync.php:51 #: src/Module/Admin/DBSync.php:51
msgid "Update has been marked successful" msgid "Update has been marked successful"
@ -4760,67 +4868,102 @@ msgstr "Заблокировать %s"
msgid "Manage Additional Features" msgid "Manage Additional Features"
msgstr "Управление дополнительными возможностями" msgstr "Управление дополнительными возможностями"
#: src/Module/Admin/Federation.php:65 #: src/Module/Admin/Federation.php:70
msgid "Other" msgid "Other"
msgstr "Другой" msgstr "Другой"
#: src/Module/Admin/Federation.php:136 src/Module/Admin/Federation.php:385 #: src/Module/Admin/Federation.php:142 src/Module/Admin/Federation.php:391
msgid "unknown" msgid "unknown"
msgstr "неизвестно" msgstr "неизвестно"
#: src/Module/Admin/Federation.php:169 #: src/Module/Admin/Federation.php:175
#, php-format #, php-format
msgid "%s total systems" msgid "%2$s total system"
msgstr "%s систем всего" msgid_plural "%2$s total systems"
msgstr[0] ""
#: src/Module/Admin/Federation.php:170 msgstr[1] ""
#, php-format msgstr[2] ""
msgid "%s active users last month" msgstr[3] ""
msgstr "%s активных пользователей за месяц"
#: src/Module/Admin/Federation.php:171
#, php-format
msgid "%s active users last six months"
msgstr "%s активных пользователей за полгода"
#: src/Module/Admin/Federation.php:172
#, php-format
msgid "%s registered users"
msgstr "%s зарегистрированных пользователей"
#: src/Module/Admin/Federation.php:173
#, php-format
msgid "%s locally created posts and comments"
msgstr "%s местных записей и комментариев"
#: src/Module/Admin/Federation.php:176 #: src/Module/Admin/Federation.php:176
#, php-format #, php-format
msgid "%s posts per user" msgid "%2$s active user last month"
msgstr "%s записей на пользователя" msgid_plural "%2$s active users last month"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Federation.php:181 #: src/Module/Admin/Federation.php:177
#, php-format #, php-format
msgid "%s users per system" msgid "%2$s active user last six months"
msgstr "%s пользователей на систему" msgid_plural "%2$s active users last six months"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Federation.php:191 #: src/Module/Admin/Federation.php:178
#, php-format
msgid "%2$s registered user"
msgid_plural "%2$s registered users"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Federation.php:179
#, php-format
msgid "%2$s locally created post or comment"
msgid_plural "%2$s locally created posts and comments"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Federation.php:182
#, php-format
msgid "%2$s post per user"
msgid_plural "%2$s posts per user"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Federation.php:187
#, php-format
msgid "%2$s user per system"
msgid_plural "%2$s users per system"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Federation.php:197
msgid "" msgid ""
"This page offers you some numbers to the known part of the federated social " "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 " "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." "only reflect the part of the network your node is aware of."
msgstr "На этой странице вы можете увидеть немного статистики из известной вашему узлу федеративной сети. Эти данные неполные и только отражают ту часть сети, с которой ваш узел взаимодействовал." msgstr "На этой странице вы можете увидеть немного статистики из известной вашему узлу федеративной сети. Эти данные неполные и только отражают ту часть сети, с которой ваш узел взаимодействовал."
#: src/Module/Admin/Federation.php:197 src/Module/BaseAdmin.php:87 #: src/Module/Admin/Federation.php:203 src/Module/BaseAdmin.php:87
msgid "Federation Statistics" msgid "Federation Statistics"
msgstr "Статистика федерации" msgstr "Статистика федерации"
#: src/Module/Admin/Federation.php:201 #: src/Module/Admin/Federation.php:207
#, php-format #, php-format
msgid "" msgid ""
"Currently this node is aware of %s nodes (%s active users last month, %s " "Currently this node is aware of %2$s node (%3$s active users last month, "
"active users last six months, %s registered users in total) from the " "%4$s active users last six months, %5$s registered users in total) from the "
"following platforms:" "following platforms:"
msgstr "Сейчас этому узлу известно о %s узлах (%s активных пользователей за месяц, %s активных пользователей за полгода, %s всего зарегистрированных) со следующих платформ:" msgid_plural ""
"Currently this node is aware of %2$s nodes (%3$s active users last month, "
"%4$s active users last six months, %5$s registered users in total) from the "
"following platforms:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/Admin/Item/Delete.php:53 #: src/Module/Admin/Item/Delete.php:53
msgid "Item marked for deletion." msgid "Item marked for deletion."
@ -4855,56 +4998,51 @@ msgstr "GUID"
msgid "The GUID of the item you want to delete." msgid "The GUID of the item you want to delete."
msgstr "GUID записи, которую вы хотите удалить." msgstr "GUID записи, которую вы хотите удалить."
#: src/Module/Admin/Item/Source.php:57 src/Module/BaseAdmin.php:116 #: src/Module/Admin/Item/Source.php:53 src/Module/BaseAdmin.php:116
msgid "Item Source" msgid "Item Source"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:58 #: src/Module/Admin/Item/Source.php:54
msgid "Item Guid" msgid "Item Guid"
msgstr "GUID записи" msgstr "GUID записи"
#: src/Module/Admin/Item/Source.php:63 #: src/Module/Admin/Item/Source.php:58
msgid "Item Id" msgid "Item Id"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:64 #: src/Module/Admin/Item/Source.php:59
msgid "Item URI" msgid "Item URI"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:66 #: src/Module/Admin/Item/Source.php:61
msgid "Terms" msgid "Terms"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:67 #: src/Module/Admin/Item/Source.php:62
msgid "Tag" msgid "Tag"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:68 src/Module/Admin/Users/Active.php:129 #: src/Module/Admin/Item/Source.php:63 src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:130 src/Module/Admin/Users/Index.php:142 #: src/Module/Admin/Users/Blocked.php:131 src/Module/Admin/Users/Index.php:143
msgid "Type" msgid "Type"
msgstr "Тип" msgstr "Тип"
#: src/Module/Admin/Item/Source.php:69 #: src/Module/Admin/Item/Source.php:64
msgid "Term" msgid "Term"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:70 #: src/Module/Admin/Item/Source.php:65
msgid "URL" msgid "URL"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:71 #: src/Module/Admin/Item/Source.php:66
msgid "Mention" msgid "Mention"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:72 #: src/Module/Admin/Item/Source.php:67
msgid "Implicit Mention" msgid "Implicit Mention"
msgstr "" msgstr ""
#: src/Module/Admin/Item/Source.php:73 src/Module/Admin/Logs/View.php:99
#: src/Module/Debug/ActivityPubConversion.php:62
msgid "Source"
msgstr ""
#: src/Module/Admin/Logs/Settings.php:47 #: src/Module/Admin/Logs/Settings.php:47
#, php-format #, php-format
msgid "The logfile '%s' is not writable. No logging possible" msgid "The logfile '%s' is not writable. No logging possible"
@ -5013,6 +5151,11 @@ msgstr ""
msgid "Data" msgid "Data"
msgstr "" msgstr ""
#: src/Module/Admin/Logs/View.php:99
#: src/Module/Debug/ActivityPubConversion.php:57
msgid "Source"
msgstr ""
#: src/Module/Admin/Logs/View.php:100 #: src/Module/Admin/Logs/View.php:100
msgid "File" msgid "File"
msgstr "" msgstr ""
@ -5073,459 +5216,459 @@ msgstr "Параметры задания"
msgid "Priority" msgid "Priority"
msgstr "Приоритет" msgstr "Приоритет"
#: src/Module/Admin/Site.php:336 src/Module/Settings/Display.php:138 #: src/Module/Admin/Site.php:334 src/Module/Settings/Display.php:137
msgid "No special theme for mobile devices" msgid "No special theme for mobile devices"
msgstr "Нет специальной темы для мобильных устройств" msgstr "Нет специальной темы для мобильных устройств"
#: src/Module/Admin/Site.php:353 src/Module/Settings/Display.php:148 #: src/Module/Admin/Site.php:351 src/Module/Settings/Display.php:147
#, php-format #, php-format
msgid "%s - (Experimental)" msgid "%s - (Experimental)"
msgstr "%s - (экспериментально)" msgstr "%s - (экспериментально)"
#: src/Module/Admin/Site.php:365 #: src/Module/Admin/Site.php:363
msgid "No community page for local users"
msgstr "Нет общей ленты записей локальных пользователей"
#: src/Module/Admin/Site.php:366
msgid "No community page" msgid "No community page"
msgstr "Нет общей ленты записей" msgstr "Нет общей ленты записей"
#: src/Module/Admin/Site.php:367 #: src/Module/Admin/Site.php:364
msgid "No community page for visitors"
msgstr ""
#: src/Module/Admin/Site.php:365
msgid "Public postings from users of this site" msgid "Public postings from users of this site"
msgstr "Публичные записи от пользователей этого узла" msgstr "Публичные записи от пользователей этого узла"
#: src/Module/Admin/Site.php:368 #: src/Module/Admin/Site.php:366
msgid "Public postings from the federated network" msgid "Public postings from the federated network"
msgstr "Публичные записи федеративной сети" msgstr "Публичные записи федеративной сети"
#: src/Module/Admin/Site.php:369 #: src/Module/Admin/Site.php:367
msgid "Public postings from local users and the federated network" msgid "Public postings from local users and the federated network"
msgstr "Публичные записи от местных пользователей и федеративной сети." msgstr "Публичные записи от местных пользователей и федеративной сети."
#: src/Module/Admin/Site.php:375 #: src/Module/Admin/Site.php:373
msgid "Multi user instance" msgid "Multi user instance"
msgstr "Многопользовательский вид" msgstr "Многопользовательский вид"
#: src/Module/Admin/Site.php:402 #: src/Module/Admin/Site.php:400
msgid "Closed" msgid "Closed"
msgstr "Закрыто" msgstr "Закрыто"
#: src/Module/Admin/Site.php:403 #: src/Module/Admin/Site.php:401
msgid "Requires approval" msgid "Requires approval"
msgstr "Требуется подтверждение" msgstr "Требуется подтверждение"
#: src/Module/Admin/Site.php:404 #: src/Module/Admin/Site.php:402
msgid "Open" msgid "Open"
msgstr "Открыто" msgstr "Открыто"
#: src/Module/Admin/Site.php:408 src/Module/Install.php:222 #: src/Module/Admin/Site.php:406 src/Module/Install.php:222
msgid "No SSL policy, links will track page SSL state" msgid "No SSL policy, links will track page SSL state"
msgstr "Нет режима SSL, состояние SSL не будет отслеживаться" msgstr "Нет режима SSL, состояние SSL не будет отслеживаться"
#: src/Module/Admin/Site.php:409 src/Module/Install.php:223 #: src/Module/Admin/Site.php:407 src/Module/Install.php:223
msgid "Force all links to use SSL" msgid "Force all links to use SSL"
msgstr "Заставить все ссылки использовать SSL" msgstr "Заставить все ссылки использовать SSL"
#: src/Module/Admin/Site.php:410 src/Module/Install.php:224 #: src/Module/Admin/Site.php:408 src/Module/Install.php:224
msgid "Self-signed certificate, use SSL for local links only (discouraged)" msgid "Self-signed certificate, use SSL for local links only (discouraged)"
msgstr "Само-подписанный сертификат, использовать SSL только локально (не рекомендуется)" msgstr "Само-подписанный сертификат, использовать SSL только локально (не рекомендуется)"
#: src/Module/Admin/Site.php:414 #: src/Module/Admin/Site.php:412
msgid "Don't check" msgid "Don't check"
msgstr "Не проверять" msgstr "Не проверять"
#: src/Module/Admin/Site.php:415 #: src/Module/Admin/Site.php:413
msgid "check the stable version" msgid "check the stable version"
msgstr "проверить стабильную версию" msgstr "проверить стабильную версию"
#: src/Module/Admin/Site.php:416 #: src/Module/Admin/Site.php:414
msgid "check the development version" msgid "check the development version"
msgstr "проверить development-версию" msgstr "проверить development-версию"
#: src/Module/Admin/Site.php:420 #: src/Module/Admin/Site.php:418
msgid "none" msgid "none"
msgstr "нет" msgstr "нет"
#: src/Module/Admin/Site.php:421 #: src/Module/Admin/Site.php:419
msgid "Local contacts" msgid "Local contacts"
msgstr "Местные контакты" msgstr "Местные контакты"
#: src/Module/Admin/Site.php:422 #: src/Module/Admin/Site.php:420
msgid "Interactors" msgid "Interactors"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:432 src/Module/BaseAdmin.php:90 #: src/Module/Admin/Site.php:430 src/Module/BaseAdmin.php:90
msgid "Site" msgid "Site"
msgstr "Сайт" msgstr "Сайт"
#: src/Module/Admin/Site.php:433 #: src/Module/Admin/Site.php:431
msgid "General Information" msgid "General Information"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:435 #: src/Module/Admin/Site.php:433
msgid "Republish users to directory" msgid "Republish users to directory"
msgstr "Переопубликовать пользователей в каталог" msgstr "Переопубликовать пользователей в каталог"
#: src/Module/Admin/Site.php:436 src/Module/Register.php:152 #: src/Module/Admin/Site.php:434 src/Module/Register.php:152
msgid "Registration" msgid "Registration"
msgstr "Регистрация" msgstr "Регистрация"
#: src/Module/Admin/Site.php:437 #: src/Module/Admin/Site.php:435
msgid "File upload" msgid "File upload"
msgstr "Загрузка файлов" msgstr "Загрузка файлов"
#: src/Module/Admin/Site.php:438 #: src/Module/Admin/Site.php:436
msgid "Policies" msgid "Policies"
msgstr "Политики" msgstr "Политики"
#: src/Module/Admin/Site.php:440 #: src/Module/Admin/Site.php:438
msgid "Auto Discovered Contact Directory" msgid "Auto Discovered Contact Directory"
msgstr "Каталог автообнаружения контактов" msgstr "Каталог автообнаружения контактов"
#: src/Module/Admin/Site.php:441 #: src/Module/Admin/Site.php:439
msgid "Performance" msgid "Performance"
msgstr "Производительность" msgstr "Производительность"
#: src/Module/Admin/Site.php:442 #: src/Module/Admin/Site.php:440
msgid "Worker" msgid "Worker"
msgstr "Обработчик" msgstr "Обработчик"
#: src/Module/Admin/Site.php:443 #: src/Module/Admin/Site.php:441
msgid "Message Relay" msgid "Message Relay"
msgstr "Ретранслятор записей" msgstr "Ретранслятор записей"
#: src/Module/Admin/Site.php:444 #: src/Module/Admin/Site.php:442
msgid "" msgid ""
"Use the command \"console relay\" in the command line to add or remove " "Use the command \"console relay\" in the command line to add or remove "
"relays." "relays."
msgstr "Используйте команду \"console relay\" в командной строке для добавления и удаления ретрансляторов." msgstr "Используйте команду \"console relay\" в командной строке для добавления и удаления ретрансляторов."
#: src/Module/Admin/Site.php:445 #: src/Module/Admin/Site.php:443
msgid "The system is not subscribed to any relays at the moment." msgid "The system is not subscribed to any relays at the moment."
msgstr "Система сейчас не подписана на ретрансляторы." msgstr "Система сейчас не подписана на ретрансляторы."
#: src/Module/Admin/Site.php:446 #: src/Module/Admin/Site.php:444
msgid "The system is currently subscribed to the following relays:" msgid "The system is currently subscribed to the following relays:"
msgstr "Система сейчас подписана на следующие ретрансляторы:" msgstr "Система сейчас подписана на следующие ретрансляторы:"
#: src/Module/Admin/Site.php:448 #: src/Module/Admin/Site.php:446
msgid "Relocate Node" msgid "Relocate Node"
msgstr "Переместить узел" msgstr "Переместить узел"
#: src/Module/Admin/Site.php:449 #: src/Module/Admin/Site.php:447
msgid "" msgid ""
"Relocating your node enables you to change the DNS domain of this node and " "Relocating your node enables you to change the DNS domain of this node and "
"keep all the existing users and posts. This process takes a while and can " "keep all the existing users and posts. This process takes a while and can "
"only be started from the relocate console command like this:" "only be started from the relocate console command like this:"
msgstr "Перемещение узла позволяет вам изменить DNS-имя этого узла с сохранением всех пользователей и записей. Этот процесс может занять много времени и может быть запущен только с помощью команды консоли:" msgstr "Перемещение узла позволяет вам изменить DNS-имя этого узла с сохранением всех пользователей и записей. Этот процесс может занять много времени и может быть запущен только с помощью команды консоли:"
#: src/Module/Admin/Site.php:450 #: src/Module/Admin/Site.php:448
msgid "(Friendica directory)# bin/console relocate https://newdomain.com" msgid "(Friendica directory)# bin/console relocate https://newdomain.com"
msgstr "(каталог Friendica)# bin/console relocate https://newdomain.com" msgstr "(каталог Friendica)# bin/console relocate https://newdomain.com"
#: src/Module/Admin/Site.php:454 #: src/Module/Admin/Site.php:452
msgid "Site name" msgid "Site name"
msgstr "Название сайта" msgstr "Название сайта"
#: src/Module/Admin/Site.php:455 #: src/Module/Admin/Site.php:453
msgid "Sender Email" msgid "Sender Email"
msgstr "Системный Email" msgstr "Системный Email"
#: src/Module/Admin/Site.php:455 #: src/Module/Admin/Site.php:453
msgid "" msgid ""
"The email address your server shall use to send notification emails from." "The email address your server shall use to send notification emails from."
msgstr "Адрес с которого будут приходить письма пользователям." msgstr "Адрес с которого будут приходить письма пользователям."
#: src/Module/Admin/Site.php:456 #: src/Module/Admin/Site.php:454
msgid "Name of the system actor" msgid "Name of the system actor"
msgstr "Имя системного аккаунта" msgstr "Имя системного аккаунта"
#: src/Module/Admin/Site.php:456 #: src/Module/Admin/Site.php:454
msgid "" msgid ""
"Name of the internal system account that is used to perform ActivityPub " "Name of the internal system account that is used to perform ActivityPub "
"requests. This must be an unused username. If set, this can't be changed " "requests. This must be an unused username. If set, this can't be changed "
"again." "again."
msgstr "Имя внутреннего системного аккаунта, который используется для выполнения запросов ActivityPub. Это должно быть не занятое имя пользователя. После установки его нельзя изменить снова." msgstr "Имя внутреннего системного аккаунта, который используется для выполнения запросов ActivityPub. Это должно быть не занятое имя пользователя. После установки его нельзя изменить снова."
#: src/Module/Admin/Site.php:457 #: src/Module/Admin/Site.php:455
msgid "Banner/Logo" msgid "Banner/Logo"
msgstr "Баннер/Логотип" msgstr "Баннер/Логотип"
#: src/Module/Admin/Site.php:458 #: src/Module/Admin/Site.php:456
msgid "Email Banner/Logo" msgid "Email Banner/Logo"
msgstr "Лого для писем" msgstr "Лого для писем"
#: src/Module/Admin/Site.php:459 #: src/Module/Admin/Site.php:457
msgid "Shortcut icon" msgid "Shortcut icon"
msgstr "Иконка сайта" msgstr "Иконка сайта"
#: src/Module/Admin/Site.php:459 #: src/Module/Admin/Site.php:457
msgid "Link to an icon that will be used for browsers." msgid "Link to an icon that will be used for browsers."
msgstr "Ссылка на иконку, которая будет использоваться браузерами." msgstr "Ссылка на иконку, которая будет использоваться браузерами."
#: src/Module/Admin/Site.php:460 #: src/Module/Admin/Site.php:458
msgid "Touch icon" msgid "Touch icon"
msgstr "Иконка веб-приложения" msgstr "Иконка веб-приложения"
#: src/Module/Admin/Site.php:460 #: src/Module/Admin/Site.php:458
msgid "Link to an icon that will be used for tablets and mobiles." msgid "Link to an icon that will be used for tablets and mobiles."
msgstr "Ссылка на иконку, которая будет использоваться для создания ярлыка на смартфонах и планшетах." msgstr "Ссылка на иконку, которая будет использоваться для создания ярлыка на смартфонах и планшетах."
#: src/Module/Admin/Site.php:461 #: src/Module/Admin/Site.php:459
msgid "Additional Info" msgid "Additional Info"
msgstr "Дополнительная информация" msgstr "Дополнительная информация"
#: src/Module/Admin/Site.php:461 #: src/Module/Admin/Site.php:459
#, php-format #, php-format
msgid "" msgid ""
"For public servers: you can add additional information here that will be " "For public servers: you can add additional information here that will be "
"listed at %s/servers." "listed at %s/servers."
msgstr "Для публичных серверов: здесь вы можете разместить дополнительную информацию и она будет доступна по %s/servers." msgstr "Для публичных серверов: здесь вы можете разместить дополнительную информацию и она будет доступна по %s/servers."
#: src/Module/Admin/Site.php:462 #: src/Module/Admin/Site.php:460
msgid "System language" msgid "System language"
msgstr "Системный язык" msgstr "Системный язык"
#: src/Module/Admin/Site.php:463 #: src/Module/Admin/Site.php:461
msgid "System theme" msgid "System theme"
msgstr "Системная тема" msgstr "Системная тема"
#: src/Module/Admin/Site.php:463 #: src/Module/Admin/Site.php:461
#, php-format #, php-format
msgid "" msgid ""
"Default system theme - may be over-ridden by user profiles - <a href=\"%s\" " "Default system theme - may be over-ridden by user profiles - <a href=\"%s\" "
"id=\"cnftheme\">Change default theme settings</a>" "id=\"cnftheme\">Change default theme settings</a>"
msgstr "Тема по-умолчанию - пользователи могут менять её в настройках своего профиля - <a href=\"%s\" id=\"cnftheme\">Изменить тему по-умолчанию</a>" msgstr "Тема по-умолчанию - пользователи могут менять её в настройках своего профиля - <a href=\"%s\" id=\"cnftheme\">Изменить тему по-умолчанию</a>"
#: src/Module/Admin/Site.php:464 #: src/Module/Admin/Site.php:462
msgid "Mobile system theme" msgid "Mobile system theme"
msgstr "Мобильная тема системы" msgstr "Мобильная тема системы"
#: src/Module/Admin/Site.php:464 #: src/Module/Admin/Site.php:462
msgid "Theme for mobile devices" msgid "Theme for mobile devices"
msgstr "Тема для мобильных устройств" msgstr "Тема для мобильных устройств"
#: src/Module/Admin/Site.php:465 src/Module/Install.php:232 #: src/Module/Admin/Site.php:463 src/Module/Install.php:232
msgid "SSL link policy" msgid "SSL link policy"
msgstr "Политика SSL" msgstr "Политика SSL"
#: src/Module/Admin/Site.php:465 src/Module/Install.php:234 #: src/Module/Admin/Site.php:463 src/Module/Install.php:234
msgid "Determines whether generated links should be forced to use SSL" msgid "Determines whether generated links should be forced to use SSL"
msgstr "Ссылки должны быть вынуждены использовать SSL" msgstr "Ссылки должны быть вынуждены использовать SSL"
#: src/Module/Admin/Site.php:466 #: src/Module/Admin/Site.php:464
msgid "Force SSL" msgid "Force SSL"
msgstr "SSL принудительно" msgstr "SSL принудительно"
#: src/Module/Admin/Site.php:466 #: src/Module/Admin/Site.php:464
msgid "" msgid ""
"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" "Force all Non-SSL requests to SSL - Attention: on some systems it could lead"
" to endless loops." " to endless loops."
msgstr "Форсировать не-SSL запросы как SSL. Внимание: на некоторых системах это может привести к бесконечным циклам." msgstr "Форсировать не-SSL запросы как SSL. Внимание: на некоторых системах это может привести к бесконечным циклам."
#: src/Module/Admin/Site.php:467 #: src/Module/Admin/Site.php:465
msgid "Show help entry from navigation menu" msgid "Show help entry from navigation menu"
msgstr "Показать пункт \"помощь\" в меню навигации" msgstr "Показать пункт \"помощь\" в меню навигации"
#: src/Module/Admin/Site.php:467 #: src/Module/Admin/Site.php:465
msgid "" msgid ""
"Displays the menu entry for the Help pages from the navigation menu. It is " "Displays the menu entry for the Help pages from the navigation menu. It is "
"always accessible by calling /help directly." "always accessible by calling /help directly."
msgstr "Показывает пункт меню для страницы справки из меню навигации. Она так же всегда доступна по прямой ссылке /help." msgstr "Показывает пункт меню для страницы справки из меню навигации. Она так же всегда доступна по прямой ссылке /help."
#: src/Module/Admin/Site.php:468 #: src/Module/Admin/Site.php:466
msgid "Single user instance" msgid "Single user instance"
msgstr "Однопользовательский режим" msgstr "Однопользовательский режим"
#: src/Module/Admin/Site.php:468 #: src/Module/Admin/Site.php:466
msgid "Make this instance multi-user or single-user for the named user" msgid "Make this instance multi-user or single-user for the named user"
msgstr "Сделать этот экземпляр многопользовательским, или однопользовательским для названного пользователя" msgstr "Сделать этот экземпляр многопользовательским, или однопользовательским для названного пользователя"
#: src/Module/Admin/Site.php:470 #: src/Module/Admin/Site.php:468
msgid "Maximum image size" msgid "Maximum image size"
msgstr "Максимальный размер изображения" msgstr "Максимальный размер изображения"
#: src/Module/Admin/Site.php:470 #: src/Module/Admin/Site.php:468
msgid "" msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no " "Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits." "limits."
msgstr "Максимальный размер в байтах для загружаемых изображений. По умолчанию 0, что означает отсутствие ограничений." msgstr "Максимальный размер в байтах для загружаемых изображений. По умолчанию 0, что означает отсутствие ограничений."
#: src/Module/Admin/Site.php:471 #: src/Module/Admin/Site.php:469
msgid "Maximum image length" msgid "Maximum image length"
msgstr "Максимальная длина картинки" msgstr "Максимальная длина картинки"
#: src/Module/Admin/Site.php:471 #: src/Module/Admin/Site.php:469
msgid "" msgid ""
"Maximum length in pixels of the longest side of uploaded images. Default is " "Maximum length in pixels of the longest side of uploaded images. Default is "
"-1, which means no limits." "-1, which means no limits."
msgstr "Максимальная длина в пикселях для длинной стороны загруженных изображений. По умолчанию равно -1, что означает отсутствие ограничений." msgstr "Максимальная длина в пикселях для длинной стороны загруженных изображений. По умолчанию равно -1, что означает отсутствие ограничений."
#: src/Module/Admin/Site.php:472 #: src/Module/Admin/Site.php:470
msgid "JPEG image quality" msgid "JPEG image quality"
msgstr "Качество JPEG изображения" msgstr "Качество JPEG изображения"
#: src/Module/Admin/Site.php:472 #: src/Module/Admin/Site.php:470
msgid "" msgid ""
"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is "
"100, which is full quality." "100, which is full quality."
msgstr "Загруженные изображения JPEG будут сохранены в этом качестве [0-100]. По умолчанию 100, что означает полное качество." msgstr "Загруженные изображения JPEG будут сохранены в этом качестве [0-100]. По умолчанию 100, что означает полное качество."
#: src/Module/Admin/Site.php:474 #: src/Module/Admin/Site.php:472
msgid "Register policy" msgid "Register policy"
msgstr "Политика регистрация" msgstr "Политика регистрация"
#: src/Module/Admin/Site.php:475 #: src/Module/Admin/Site.php:473
msgid "Maximum Daily Registrations" msgid "Maximum Daily Registrations"
msgstr "Максимальное число регистраций в день" msgstr "Максимальное число регистраций в день"
#: src/Module/Admin/Site.php:475 #: src/Module/Admin/Site.php:473
msgid "" msgid ""
"If registration is permitted above, this sets the maximum number of new user" "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 " " registrations to accept per day. If register is set to closed, this "
"setting has no effect." "setting has no effect."
msgstr "Если регистрация разрешена, этот параметр устанавливает максимальное количество новых регистраций пользователей в день. Если регистрация закрыта, эта опция не имеет никакого эффекта." msgstr "Если регистрация разрешена, этот параметр устанавливает максимальное количество новых регистраций пользователей в день. Если регистрация закрыта, эта опция не имеет никакого эффекта."
#: src/Module/Admin/Site.php:476 #: src/Module/Admin/Site.php:474
msgid "Register text" msgid "Register text"
msgstr "Текст регистрации" msgstr "Текст регистрации"
#: src/Module/Admin/Site.php:476 #: src/Module/Admin/Site.php:474
msgid "" msgid ""
"Will be displayed prominently on the registration page. You can use BBCode " "Will be displayed prominently on the registration page. You can use BBCode "
"here." "here."
msgstr "Будет отображаться на видном месте на странице регистрации. Вы можете использовать BBCode для оформления." msgstr "Будет отображаться на видном месте на странице регистрации. Вы можете использовать BBCode для оформления."
#: src/Module/Admin/Site.php:477 #: src/Module/Admin/Site.php:475
msgid "Forbidden Nicknames" msgid "Forbidden Nicknames"
msgstr "Запрещённые ники" msgstr "Запрещённые ники"
#: src/Module/Admin/Site.php:477 #: src/Module/Admin/Site.php:475
msgid "" msgid ""
"Comma separated list of nicknames that are forbidden from registration. " "Comma separated list of nicknames that are forbidden from registration. "
"Preset is a list of role names according RFC 2142." "Preset is a list of role names according RFC 2142."
msgstr "Имена, перечисленные через запятую, которые запрещены для регистрации на этом узле. Предустановленный список соответствует RFC 2142." msgstr "Имена, перечисленные через запятую, которые запрещены для регистрации на этом узле. Предустановленный список соответствует RFC 2142."
#: src/Module/Admin/Site.php:478 #: src/Module/Admin/Site.php:476
msgid "Accounts abandoned after x days" msgid "Accounts abandoned after x days"
msgstr "Аккаунт считается после x дней не воспользованным" msgstr "Аккаунт считается после x дней не воспользованным"
#: src/Module/Admin/Site.php:478 #: src/Module/Admin/Site.php:476
msgid "" msgid ""
"Will not waste system resources polling external sites for abandonded " "Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit." "accounts. Enter 0 for no time limit."
msgstr "Не будет тратить ресурсы для опроса сайтов для бесхозных контактов. Введите 0 для отключения лимита времени." msgstr "Не будет тратить ресурсы для опроса сайтов для бесхозных контактов. Введите 0 для отключения лимита времени."
#: src/Module/Admin/Site.php:479 #: src/Module/Admin/Site.php:477
msgid "Allowed friend domains" msgid "Allowed friend domains"
msgstr "Разрешенные домены друзей" msgstr "Разрешенные домены друзей"
#: src/Module/Admin/Site.php:479 #: src/Module/Admin/Site.php:477
msgid "" msgid ""
"Comma separated list of domains which are allowed to establish friendships " "Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains" "with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Разделенный запятыми список доменов, которые разрешены для установления связей. Групповые символы принимаются. Оставьте пустым для разрешения связи со всеми доменами." msgstr "Разделенный запятыми список доменов, которые разрешены для установления связей. Групповые символы принимаются. Оставьте пустым для разрешения связи со всеми доменами."
#: src/Module/Admin/Site.php:480 #: src/Module/Admin/Site.php:478
msgid "Allowed email domains" msgid "Allowed email domains"
msgstr "Разрешенные почтовые домены" msgstr "Разрешенные почтовые домены"
#: src/Module/Admin/Site.php:480 #: src/Module/Admin/Site.php:478
msgid "" msgid ""
"Comma separated list of domains which are allowed in email addresses for " "Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any " "registrations to this site. Wildcards are accepted. Empty to allow any "
"domains" "domains"
msgstr "Разделенный запятыми список доменов, которые разрешены для установления связей. Групповые символы принимаются. Оставьте пустым для разрешения связи со всеми доменами." msgstr "Разделенный запятыми список доменов, которые разрешены для установления связей. Групповые символы принимаются. Оставьте пустым для разрешения связи со всеми доменами."
#: src/Module/Admin/Site.php:481 #: src/Module/Admin/Site.php:479
msgid "No OEmbed rich content" msgid "No OEmbed rich content"
msgstr "Не показывать контент OEmbed" msgstr "Не показывать контент OEmbed"
#: src/Module/Admin/Site.php:481 #: src/Module/Admin/Site.php:479
msgid "" msgid ""
"Don't show the rich content (e.g. embedded PDF), except from the domains " "Don't show the rich content (e.g. embedded PDF), except from the domains "
"listed below." "listed below."
msgstr "Не показывать внедрённое содержимое (например, PDF), если источником не являются домены из списка ниже." msgstr "Не показывать внедрённое содержимое (например, PDF), если источником не являются домены из списка ниже."
#: src/Module/Admin/Site.php:482 #: src/Module/Admin/Site.php:480
msgid "Trusted third-party domains" msgid "Trusted third-party domains"
msgstr "Доверенные внешние домены" msgstr "Доверенные внешние домены"
#: src/Module/Admin/Site.php:482 #: src/Module/Admin/Site.php:480
msgid "" msgid ""
"Comma separated list of domains from which content is allowed to be embedded" "Comma separated list of domains from which content is allowed to be embedded"
" in posts like with OEmbed. All sub-domains of the listed domains are " " in posts like with OEmbed. All sub-domains of the listed domains are "
"allowed as well." "allowed as well."
msgstr "Список доменов через запятую, данные с которых будет разрешено внедрять в записи через OEmbed. Все поддомены этих доменов будут так же разрешены." msgstr "Список доменов через запятую, данные с которых будет разрешено внедрять в записи через OEmbed. Все поддомены этих доменов будут так же разрешены."
#: src/Module/Admin/Site.php:483 #: src/Module/Admin/Site.php:481
msgid "Block public" msgid "Block public"
msgstr "Блокировать общественный доступ" msgstr "Блокировать общественный доступ"
#: src/Module/Admin/Site.php:483 #: src/Module/Admin/Site.php:481
msgid "" msgid ""
"Check to block public access to all otherwise public personal pages on this " "Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in." "site unless you are currently logged in."
msgstr "Отметьте, чтобы заблокировать публичный доступ ко всем иным публичным личным страницам на этом сайте, если вы не вошли на сайт." msgstr "Отметьте, чтобы заблокировать публичный доступ ко всем иным публичным личным страницам на этом сайте, если вы не вошли на сайт."
#: src/Module/Admin/Site.php:484 #: src/Module/Admin/Site.php:482
msgid "Force publish" msgid "Force publish"
msgstr "Принудительная публикация" msgstr "Принудительная публикация"
#: src/Module/Admin/Site.php:484 #: src/Module/Admin/Site.php:482
msgid "" msgid ""
"Check to force all profiles on this site to be listed in the site directory." "Check to force all profiles on this site to be listed in the site directory."
msgstr "Отметьте, чтобы принудительно заставить все профили на этом сайте, быть перечислеными в каталоге сайта." msgstr "Отметьте, чтобы принудительно заставить все профили на этом сайте, быть перечислеными в каталоге сайта."
#: src/Module/Admin/Site.php:484 #: src/Module/Admin/Site.php:482
msgid "Enabling this may violate privacy laws like the GDPR" msgid "Enabling this may violate privacy laws like the GDPR"
msgstr "Включение этого может нарушить законы о личных данных, например, GDPR." msgstr "Включение этого может нарушить законы о личных данных, например, GDPR."
#: src/Module/Admin/Site.php:485 #: src/Module/Admin/Site.php:483
msgid "Global directory URL" msgid "Global directory URL"
msgstr "URL глобального каталога" msgstr "URL глобального каталога"
#: src/Module/Admin/Site.php:485 #: src/Module/Admin/Site.php:483
msgid "" msgid ""
"URL to the global directory. If this is not set, the global directory is " "URL to the global directory. If this is not set, the global directory is "
"completely unavailable to the application." "completely unavailable to the application."
msgstr "Ссылка глобального каталога. Если не указано, то глобальный каталог будет полностью недоступен." msgstr "Ссылка глобального каталога. Если не указано, то глобальный каталог будет полностью недоступен."
#: src/Module/Admin/Site.php:486 #: src/Module/Admin/Site.php:484
msgid "Private posts by default for new users" msgid "Private posts by default for new users"
msgstr "Частные сообщения по умолчанию для новых пользователей" msgstr "Частные сообщения по умолчанию для новых пользователей"
#: src/Module/Admin/Site.php:486 #: src/Module/Admin/Site.php:484
msgid "" msgid ""
"Set default post permissions for all new members to the default privacy " "Set default post permissions for all new members to the default privacy "
"group rather than public." "group rather than public."
msgstr "Установить права на создание записей по умолчанию для всех участников в дефолтной приватной группе, а не для публичных участников." msgstr "Установить права на создание записей по умолчанию для всех участников в дефолтной приватной группе, а не для публичных участников."
#: src/Module/Admin/Site.php:487 #: src/Module/Admin/Site.php:485
msgid "Don't include post content in email notifications" msgid "Don't include post content in email notifications"
msgstr "Не включать текст сообщения в email-оповещение." msgstr "Не включать текст сообщения в email-оповещение."
#: src/Module/Admin/Site.php:487 #: src/Module/Admin/Site.php:485
msgid "" msgid ""
"Don't include the content of a post/comment/private message/etc. in the " "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." "email notifications that are sent out from this site, as a privacy measure."
msgstr "Не включать содержание сообщения/комментария/личного сообщения и т.д.. в уведомления электронной почты, отправленных с сайта, в качестве меры конфиденциальности." msgstr "Не включать содержание сообщения/комментария/личного сообщения и т.д.. в уведомления электронной почты, отправленных с сайта, в качестве меры конфиденциальности."
#: src/Module/Admin/Site.php:488 #: src/Module/Admin/Site.php:486
msgid "Disallow public access to addons listed in the apps menu." msgid "Disallow public access to addons listed in the apps menu."
msgstr "Запретить публичный доступ к аддонам, перечисленным в меню приложений." msgstr "Запретить публичный доступ к аддонам, перечисленным в меню приложений."
#: src/Module/Admin/Site.php:488 #: src/Module/Admin/Site.php:486
msgid "" msgid ""
"Checking this box will restrict addons listed in the apps menu to members " "Checking this box will restrict addons listed in the apps menu to members "
"only." "only."
msgstr "При установке этого флажка, будут ограничены аддоны, перечисленные в меню приложений, только для участников." msgstr "При установке этого флажка, будут ограничены аддоны, перечисленные в меню приложений, только для участников."
#: src/Module/Admin/Site.php:489 #: src/Module/Admin/Site.php:487
msgid "Don't embed private images in posts" msgid "Don't embed private images in posts"
msgstr "Не вставлять личные картинки в записи" msgstr "Не вставлять личные картинки в записи"
#: src/Module/Admin/Site.php:489 #: src/Module/Admin/Site.php:487
msgid "" msgid ""
"Don't replace locally-hosted private photos in posts with an embedded copy " "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 " "of the image. This means that contacts who receive posts containing private "
@ -5533,11 +5676,11 @@ msgid ""
"while." "while."
msgstr "Не заменяйте локально расположенные фотографии в записях на внедрённые копии изображений. Это означает, что контакты, которые получают сообщения, содержащие личные фотографии, будут вынуждены идентефицироваться и грузить каждое изображение, что может занять некоторое время." msgstr "Не заменяйте локально расположенные фотографии в записях на внедрённые копии изображений. Это означает, что контакты, которые получают сообщения, содержащие личные фотографии, будут вынуждены идентефицироваться и грузить каждое изображение, что может занять некоторое время."
#: src/Module/Admin/Site.php:490 #: src/Module/Admin/Site.php:488
msgid "Explicit Content" msgid "Explicit Content"
msgstr "Контент для взрослых" msgstr "Контент для взрослых"
#: src/Module/Admin/Site.php:490 #: src/Module/Admin/Site.php:488
msgid "" msgid ""
"Set this to announce that your node is used mostly for explicit content that" "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 " " might not be suited for minors. This information will be published in the "
@ -5546,257 +5689,257 @@ msgid ""
"will be shown at the user registration page." "will be shown at the user registration page."
msgstr "Включите, если ваш узел будет содержать преимущественно откровенный/чувствительный контент, который не должен быть показан несовершеннолетним. Эта информация появится в информации об узле и может быть использована, например, в глобальном каталоге для скрытия вашего узла при подборе узлов для регистрации. Так же пометка об этом появится на странице регистрации." msgstr "Включите, если ваш узел будет содержать преимущественно откровенный/чувствительный контент, который не должен быть показан несовершеннолетним. Эта информация появится в информации об узле и может быть использована, например, в глобальном каталоге для скрытия вашего узла при подборе узлов для регистрации. Так же пометка об этом появится на странице регистрации."
#: src/Module/Admin/Site.php:491 #: src/Module/Admin/Site.php:489
msgid "Proxify external content" msgid "Proxify external content"
msgstr "Проксировать внешние данные" msgstr "Проксировать внешние данные"
#: src/Module/Admin/Site.php:491 #: src/Module/Admin/Site.php:489
msgid "" msgid ""
"Route external content via the proxy functionality. This is used for example" "Route external content via the proxy functionality. This is used for example"
" for some OEmbed accesses and in some other rare cases." " for some OEmbed accesses and in some other rare cases."
msgstr "Отображать внешний контент через встроенное прокси. Это используется для некоторых случаев отображения OEmbed и некоторых других." msgstr "Отображать внешний контент через встроенное прокси. Это используется для некоторых случаев отображения OEmbed и некоторых других."
#: src/Module/Admin/Site.php:492 #: src/Module/Admin/Site.php:490
msgid "Cache contact avatars" msgid "Cache contact avatars"
msgstr "Кэшировать аватары" msgstr "Кэшировать аватары"
#: src/Module/Admin/Site.php:492 #: src/Module/Admin/Site.php:490
msgid "" msgid ""
"Locally store the avatar pictures of the contacts. This uses a lot of " "Locally store the avatar pictures of the contacts. This uses a lot of "
"storage space but it increases the performance." "storage space but it increases the performance."
msgstr "Локально сохранять аватары контактов. Это потребует существенного расхода места на диске, но увеличит производительность." msgstr "Локально сохранять аватары контактов. Это потребует существенного расхода места на диске, но увеличит производительность."
#: src/Module/Admin/Site.php:493 #: src/Module/Admin/Site.php:491
msgid "Allow Users to set remote_self" msgid "Allow Users to set remote_self"
msgstr "Разрешить пользователям установить remote_self" msgstr "Разрешить пользователям установить remote_self"
#: src/Module/Admin/Site.php:493 #: src/Module/Admin/Site.php:491
msgid "" msgid ""
"With checking this, every user is allowed to mark every contact as a " "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 " "remote_self in the repair contact dialog. Setting this flag on a contact "
"causes mirroring every posting of that contact in the users stream." "causes mirroring every posting of that contact in the users stream."
msgstr "Если включено, любой пользователь сможет пометить любой контакт как \"remote_self\" в расширенных настройках контакта. Установка такого параметра приводит к тому, что все записи помеченного контакта публикуются в ленте от имени пользователя." msgstr "Если включено, любой пользователь сможет пометить любой контакт как \"remote_self\" в расширенных настройках контакта. Установка такого параметра приводит к тому, что все записи помеченного контакта публикуются в ленте от имени пользователя."
#: src/Module/Admin/Site.php:494 #: src/Module/Admin/Site.php:492
msgid "Enable multiple registrations" msgid "Enable multiple registrations"
msgstr "Разрешить несколько регистраций" msgstr "Разрешить несколько регистраций"
#: src/Module/Admin/Site.php:494 #: src/Module/Admin/Site.php:492
msgid "Enable users to register additional accounts for use as pages." msgid "Enable users to register additional accounts for use as pages."
msgstr "Разрешить пользователям регистрировать дополнительные аккаунты для использования в качестве страниц." msgstr "Разрешить пользователям регистрировать дополнительные аккаунты для использования в качестве страниц."
#: src/Module/Admin/Site.php:495 #: src/Module/Admin/Site.php:493
msgid "Enable OpenID" msgid "Enable OpenID"
msgstr "Включить OpenID" msgstr "Включить OpenID"
#: src/Module/Admin/Site.php:495 #: src/Module/Admin/Site.php:493
msgid "Enable OpenID support for registration and logins." msgid "Enable OpenID support for registration and logins."
msgstr "Включить поддержку OpenID для регистрации и входа." msgstr "Включить поддержку OpenID для регистрации и входа."
#: src/Module/Admin/Site.php:496 #: src/Module/Admin/Site.php:494
msgid "Enable Fullname check" msgid "Enable Fullname check"
msgstr "Включить проверку полноты имени" msgstr "Включить проверку полноты имени"
#: src/Module/Admin/Site.php:496 #: src/Module/Admin/Site.php:494
msgid "" msgid ""
"Enable check to only allow users to register with a space between the first " "Enable check to only allow users to register with a space between the first "
"name and the last name in their full name." "name and the last name in their full name."
msgstr "Проверять при регистрации, чтобы пользователь имел пробел в указанном имени между именем и фамилией." msgstr "Проверять при регистрации, чтобы пользователь имел пробел в указанном имени между именем и фамилией."
#: src/Module/Admin/Site.php:497 #: src/Module/Admin/Site.php:495
msgid "Community pages for visitors" msgid "Community pages for visitors"
msgstr "Публичная лента для посетителей" msgstr "Публичная лента для посетителей"
#: src/Module/Admin/Site.php:497 #: src/Module/Admin/Site.php:495
msgid "" msgid ""
"Which community pages should be available for visitors. Local users always " "Which community pages should be available for visitors. Local users always "
"see both pages." "see both pages."
msgstr "Какие публичные ленты будут доступны для гостей. Местные пользователи всегда видят обе ленты." msgstr "Какие публичные ленты будут доступны для гостей. Местные пользователи всегда видят обе ленты."
#: src/Module/Admin/Site.php:498 #: src/Module/Admin/Site.php:496
msgid "Posts per user on community page" msgid "Posts per user on community page"
msgstr "Число записей на пользователя в публичной ленте" msgstr "Число записей на пользователя в публичной ленте"
#: src/Module/Admin/Site.php:498 #: src/Module/Admin/Site.php:496
msgid "" msgid ""
"The maximum number of posts per user on the community page. (Not valid for " "The maximum number of posts per user on the community page. (Not valid for "
"\"Global Community\")" "\"Global Community\")"
msgstr "Максимальное число записей от одного пользователя в публичной ленте узла. (Не применяется к федеративной публичной ленте)." msgstr "Максимальное число записей от одного пользователя в публичной ленте узла. (Не применяется к федеративной публичной ленте)."
#: src/Module/Admin/Site.php:500 #: src/Module/Admin/Site.php:498
msgid "Enable Mail support" msgid "Enable Mail support"
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:500 #: src/Module/Admin/Site.php:498
msgid "" msgid ""
"Enable built-in mail support to poll IMAP folders and to reply via mail." "Enable built-in mail support to poll IMAP folders and to reply via mail."
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:501 #: src/Module/Admin/Site.php:499
msgid "" msgid ""
"Mail support can't be enabled because the PHP IMAP module is not installed." "Mail support can't be enabled because the PHP IMAP module is not installed."
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:502 #: src/Module/Admin/Site.php:500
msgid "Enable OStatus support" msgid "Enable OStatus support"
msgstr "Включить поддержку OStatus" msgstr "Включить поддержку OStatus"
#: src/Module/Admin/Site.php:502 #: src/Module/Admin/Site.php:500
msgid "" msgid ""
"Enable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " "Enable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All "
"communications in OStatus are public." "communications in OStatus are public."
msgstr "Включить встроенную поддержку OStatus (StatusNet, GNU Social и т.п.). Всё общение в OStatus происходит публично." msgstr "Включить встроенную поддержку OStatus (StatusNet, GNU Social и т.п.). Всё общение в OStatus происходит публично."
#: src/Module/Admin/Site.php:504 #: src/Module/Admin/Site.php:502
msgid "" msgid ""
"Diaspora support can't be enabled because Friendica was installed into a sub" "Diaspora support can't be enabled because Friendica was installed into a sub"
" directory." " directory."
msgstr "Поддержка Diaspora не может быть включена, так как Френдика была установлена в подкаталог." msgstr "Поддержка Diaspora не может быть включена, так как Френдика была установлена в подкаталог."
#: src/Module/Admin/Site.php:505 #: src/Module/Admin/Site.php:503
msgid "Enable Diaspora support" msgid "Enable Diaspora support"
msgstr "Включить поддержку Diaspora" msgstr "Включить поддержку Diaspora"
#: src/Module/Admin/Site.php:505 #: src/Module/Admin/Site.php:503
msgid "" msgid ""
"Enable built-in Diaspora network compatibility for communicating with " "Enable built-in Diaspora network compatibility for communicating with "
"diaspora servers." "diaspora servers."
msgstr "Включить встроенную поддержку Diaspora для общения с серверами сети Diaspora." msgstr "Включить встроенную поддержку Diaspora для общения с серверами сети Diaspora."
#: src/Module/Admin/Site.php:506 #: src/Module/Admin/Site.php:504
msgid "Verify SSL" msgid "Verify SSL"
msgstr "Проверка SSL" msgstr "Проверка SSL"
#: src/Module/Admin/Site.php:506 #: src/Module/Admin/Site.php:504
msgid "" msgid ""
"If you wish, you can turn on strict certificate checking. This will mean you" "If you wish, you can turn on strict certificate checking. This will mean you"
" cannot connect (at all) to self-signed SSL sites." " cannot connect (at all) to self-signed SSL sites."
msgstr "Если хотите, вы можете включить строгую проверку сертификатов. Это будет означать, что вы не сможете соединиться (вообще) с сайтами, имеющими само-подписанный SSL сертификат." msgstr "Если хотите, вы можете включить строгую проверку сертификатов. Это будет означать, что вы не сможете соединиться (вообще) с сайтами, имеющими само-подписанный SSL сертификат."
#: src/Module/Admin/Site.php:507 #: src/Module/Admin/Site.php:505
msgid "Proxy user" msgid "Proxy user"
msgstr "Прокси пользователь" msgstr "Прокси пользователь"
#: src/Module/Admin/Site.php:507 #: src/Module/Admin/Site.php:505
msgid "User name for the proxy server." msgid "User name for the proxy server."
msgstr "Имя пользователя прокси" msgstr "Имя пользователя прокси"
#: src/Module/Admin/Site.php:508 #: src/Module/Admin/Site.php:506
msgid "Proxy URL" msgid "Proxy URL"
msgstr "Прокси URL" msgstr "Прокси URL"
#: src/Module/Admin/Site.php:508 #: src/Module/Admin/Site.php:506
msgid "" msgid ""
"If you want to use a proxy server that Friendica should use to connect to " "If you want to use a proxy server that Friendica should use to connect to "
"the network, put the URL of the proxy here." "the network, put the URL of the proxy here."
msgstr "Если вы хотите указать прокси, который Friendica будет использовать для выхода в сеть, укажите здесь его URL." msgstr "Если вы хотите указать прокси, который Friendica будет использовать для выхода в сеть, укажите здесь его URL."
#: src/Module/Admin/Site.php:509 #: src/Module/Admin/Site.php:507
msgid "Network timeout" msgid "Network timeout"
msgstr "Тайм-аут сети" msgstr "Тайм-аут сети"
#: src/Module/Admin/Site.php:509 #: src/Module/Admin/Site.php:507
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Значение указывается в секундах. Установите 0 для снятия ограничений (не рекомендуется)." msgstr "Значение указывается в секундах. Установите 0 для снятия ограничений (не рекомендуется)."
#: src/Module/Admin/Site.php:510 #: src/Module/Admin/Site.php:508
msgid "Maximum Load Average" msgid "Maximum Load Average"
msgstr "Средняя максимальная нагрузка" msgstr "Средняя максимальная нагрузка"
#: src/Module/Admin/Site.php:510 #: src/Module/Admin/Site.php:508
#, php-format #, php-format
msgid "" msgid ""
"Maximum system load before delivery and poll processes are deferred - " "Maximum system load before delivery and poll processes are deferred - "
"default %d." "default %d."
msgstr "Максимальная нагрузка на систему, прежде чем задания опроса и доставки начнут приостанавливаться - по-умолчанию %d." msgstr "Максимальная нагрузка на систему, прежде чем задания опроса и доставки начнут приостанавливаться - по-умолчанию %d."
#: src/Module/Admin/Site.php:511 #: src/Module/Admin/Site.php:509
msgid "Minimal Memory" msgid "Minimal Memory"
msgstr "Минимум памяти" msgstr "Минимум памяти"
#: src/Module/Admin/Site.php:511 #: src/Module/Admin/Site.php:509
msgid "" msgid ""
"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - "
"default 0 (deactivated)." "default 0 (deactivated)."
msgstr "Минимально допустимая свободная память ОЗУ для запуска заданий. Для работы нужен доступ в /proc/meminfo - по-умолчанию 0 (отключено)." msgstr "Минимально допустимая свободная память ОЗУ для запуска заданий. Для работы нужен доступ в /proc/meminfo - по-умолчанию 0 (отключено)."
#: src/Module/Admin/Site.php:512 #: src/Module/Admin/Site.php:510
msgid "Periodically optimize tables" msgid "Periodically optimize tables"
msgstr "Периодически оптимизировать таблицы" msgstr "Периодически оптимизировать таблицы"
#: src/Module/Admin/Site.php:512 #: src/Module/Admin/Site.php:510
msgid "Periodically optimize tables like the cache and the workerqueue" msgid "Periodically optimize tables like the cache and the workerqueue"
msgstr "Периодически оптимизировать таблицы, такие как cache и workerqueue" msgstr "Периодически оптимизировать таблицы, такие как cache и workerqueue"
#: src/Module/Admin/Site.php:514 #: src/Module/Admin/Site.php:512
msgid "Discover followers/followings from contacts" msgid "Discover followers/followings from contacts"
msgstr "Обнаруживать подписчиков и друзей для контактов" msgstr "Обнаруживать подписчиков и друзей для контактов"
#: src/Module/Admin/Site.php:514 #: src/Module/Admin/Site.php:512
msgid "" msgid ""
"If enabled, contacts are checked for their followers and following contacts." "If enabled, contacts are checked for their followers and following contacts."
msgstr "Если включено, контакты будут проверяться на наличие подписчиков и друзей." msgstr "Если включено, контакты будут проверяться на наличие подписчиков и друзей."
#: src/Module/Admin/Site.php:515 #: src/Module/Admin/Site.php:513
msgid "None - deactivated" msgid "None - deactivated"
msgstr "None - выключено." msgstr "None - выключено."
#: src/Module/Admin/Site.php:516 #: src/Module/Admin/Site.php:514
msgid "" msgid ""
"Local contacts - contacts of our local contacts are discovered for their " "Local contacts - contacts of our local contacts are discovered for their "
"followers/followings." "followers/followings."
msgstr "Local contacts - местные контакты будут проверяться на наличие подписчиков и друзей." msgstr "Local contacts - местные контакты будут проверяться на наличие подписчиков и друзей."
#: src/Module/Admin/Site.php:517 #: src/Module/Admin/Site.php:515
msgid "" msgid ""
"Interactors - contacts of our local contacts and contacts who interacted on " "Interactors - contacts of our local contacts and contacts who interacted on "
"locally visible postings are discovered for their followers/followings." "locally visible postings are discovered for their followers/followings."
msgstr "Interactors - местные контакты и те контакты, кто взаимодействовал с локально видимыми записями, будут проверяться на наличие подписчиков и друзей." msgstr "Interactors - местные контакты и те контакты, кто взаимодействовал с локально видимыми записями, будут проверяться на наличие подписчиков и друзей."
#: src/Module/Admin/Site.php:519 #: src/Module/Admin/Site.php:517
msgid "Synchronize the contacts with the directory server" msgid "Synchronize the contacts with the directory server"
msgstr "Синхронизировать контакты с сервером каталога" msgstr "Синхронизировать контакты с сервером каталога"
#: src/Module/Admin/Site.php:519 #: src/Module/Admin/Site.php:517
msgid "" msgid ""
"if enabled, the system will check periodically for new contacts on the " "if enabled, the system will check periodically for new contacts on the "
"defined directory server." "defined directory server."
msgstr "Если включено, то система будет периодически проверять новые контакты на указанном сервере каталога." msgstr "Если включено, то система будет периодически проверять новые контакты на указанном сервере каталога."
#: src/Module/Admin/Site.php:521 #: src/Module/Admin/Site.php:519
msgid "Days between requery" msgid "Days between requery"
msgstr "Интервал запросов" msgstr "Интервал запросов"
#: src/Module/Admin/Site.php:521 #: src/Module/Admin/Site.php:519
msgid "Number of days after which a server is requeried for his contacts." msgid "Number of days after which a server is requeried for his contacts."
msgstr "Интервал в днях, с которым контакты сервера будут перепроверяться." msgstr "Интервал в днях, с которым контакты сервера будут перепроверяться."
#: src/Module/Admin/Site.php:522 #: src/Module/Admin/Site.php:520
msgid "Discover contacts from other servers" msgid "Discover contacts from other servers"
msgstr "Обнаруживать контакты с других серверов" msgstr "Обнаруживать контакты с других серверов"
#: src/Module/Admin/Site.php:522 #: src/Module/Admin/Site.php:520
msgid "" msgid ""
"Periodically query other servers for contacts. The system queries Friendica," "Periodically query other servers for contacts. The system queries Friendica,"
" Mastodon and Hubzilla servers." " Mastodon and Hubzilla servers."
msgstr "Периодически опрашивать контакты с других серверов. В них входят Friendica, Mastodon и Hubzilla." msgstr "Периодически опрашивать контакты с других серверов. В них входят Friendica, Mastodon и Hubzilla."
#: src/Module/Admin/Site.php:523 #: src/Module/Admin/Site.php:521
msgid "Search the local directory" msgid "Search the local directory"
msgstr "Искать в местном каталоге" msgstr "Искать в местном каталоге"
#: src/Module/Admin/Site.php:523 #: src/Module/Admin/Site.php:521
msgid "" msgid ""
"Search the local directory instead of the global directory. When searching " "Search the local directory instead of the global directory. When searching "
"locally, every search will be executed on the global directory in the " "locally, every search will be executed on the global directory in the "
"background. This improves the search results when the search is repeated." "background. This improves the search results when the search is repeated."
msgstr "Искать в локальном каталоге вместо глобального. При локальном поиске каждый запрос будет выполняться в глобальном каталоге в фоновом режиме. Это улучшит результаты поиска при повторных запросах." msgstr "Искать в локальном каталоге вместо глобального. При локальном поиске каждый запрос будет выполняться в глобальном каталоге в фоновом режиме. Это улучшит результаты поиска при повторных запросах."
#: src/Module/Admin/Site.php:525 #: src/Module/Admin/Site.php:523
msgid "Publish server information" msgid "Publish server information"
msgstr "Опубликовать информацию о сервере" msgstr "Опубликовать информацию о сервере"
#: src/Module/Admin/Site.php:525 #: src/Module/Admin/Site.php:523
msgid "" msgid ""
"If enabled, general server and usage data will be published. The data " "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 " "contains the name and version of the server, number of users with public "
@ -5804,50 +5947,50 @@ msgid ""
" href=\"http://the-federation.info/\">the-federation.info</a> for details." " href=\"http://the-federation.info/\">the-federation.info</a> for details."
msgstr "Если включено, общая информация о сервере и статистика будут опубликованы. В данных содержатся имя сервера, версия ПО, число пользователей с открытыми профилями, число записей, подключенные протоколы и соединители. Подробности смотрите на <a href=\"http://the-federation.info/\">the-federation.info</a>." msgstr "Если включено, общая информация о сервере и статистика будут опубликованы. В данных содержатся имя сервера, версия ПО, число пользователей с открытыми профилями, число записей, подключенные протоколы и соединители. Подробности смотрите на <a href=\"http://the-federation.info/\">the-federation.info</a>."
#: src/Module/Admin/Site.php:527 #: src/Module/Admin/Site.php:525
msgid "Check upstream version" msgid "Check upstream version"
msgstr "Проверять версию в репозитории" msgstr "Проверять версию в репозитории"
#: src/Module/Admin/Site.php:527 #: src/Module/Admin/Site.php:525
msgid "" msgid ""
"Enables checking for new Friendica versions at github. If there is a new " "Enables checking for new Friendica versions at github. If there is a new "
"version, you will be informed in the admin panel overview." "version, you will be informed in the admin panel overview."
msgstr "Включает проверку новых версий Френдики на Github. Если появится новая версия, вы получите уведомление в панели администратора." msgstr "Включает проверку новых версий Френдики на Github. Если появится новая версия, вы получите уведомление в панели администратора."
#: src/Module/Admin/Site.php:528 #: src/Module/Admin/Site.php:526
msgid "Suppress Tags" msgid "Suppress Tags"
msgstr "Скрывать тэги" msgstr "Скрывать тэги"
#: src/Module/Admin/Site.php:528 #: src/Module/Admin/Site.php:526
msgid "Suppress showing a list of hashtags at the end of the posting." msgid "Suppress showing a list of hashtags at the end of the posting."
msgstr "Отключить показ списка тэгов в конце записей." msgstr "Отключить показ списка тэгов в конце записей."
#: src/Module/Admin/Site.php:529 #: src/Module/Admin/Site.php:527
msgid "Clean database" msgid "Clean database"
msgstr "Очистка базы данных" msgstr "Очистка базы данных"
#: src/Module/Admin/Site.php:529 #: src/Module/Admin/Site.php:527
msgid "" msgid ""
"Remove old remote items, orphaned database records and old content from some" "Remove old remote items, orphaned database records and old content from some"
" other helper tables." " other helper tables."
msgstr "Удалять старые записи, полученные с других серверов, ненужные записи в базе данных." msgstr "Удалять старые записи, полученные с других серверов, ненужные записи в базе данных."
#: src/Module/Admin/Site.php:530 #: src/Module/Admin/Site.php:528
msgid "Lifespan of remote items" msgid "Lifespan of remote items"
msgstr "Время жизни записей с других серверов" msgstr "Время жизни записей с других серверов"
#: src/Module/Admin/Site.php:530 #: src/Module/Admin/Site.php:528
msgid "" msgid ""
"When the database cleanup is enabled, this defines the days after which " "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 " "remote items will be deleted. Own items, and marked or filed items are "
"always kept. 0 disables this behaviour." "always kept. 0 disables this behaviour."
msgstr "Если очистка базы данных включена, эта настройка определяет число дней, после которого записи будут удаляться. Собственные записи, записи с закладками, записи в папках не удаляются. 0 отключает очистку." msgstr "Если очистка базы данных включена, эта настройка определяет число дней, после которого записи будут удаляться. Собственные записи, записи с закладками, записи в папках не удаляются. 0 отключает очистку."
#: src/Module/Admin/Site.php:531 #: src/Module/Admin/Site.php:529
msgid "Lifespan of unclaimed items" msgid "Lifespan of unclaimed items"
msgstr "Время жизни ничейных элементов" msgstr "Время жизни ничейных элементов"
#: src/Module/Admin/Site.php:531 #: src/Module/Admin/Site.php:529
msgid "" msgid ""
"When the database cleanup is enabled, this defines the days after which " "When the database cleanup is enabled, this defines the days after which "
"unclaimed remote items (mostly content from the relay) will be deleted. " "unclaimed remote items (mostly content from the relay) will be deleted. "
@ -5855,134 +5998,144 @@ msgid ""
"items if set to 0." "items if set to 0."
msgstr "Когда очистка базы данных включена, эта настройка определяет число дней, после которого ничейные элементы (в основном, данные с ретранслятора) будут удалены. Значение по умолчанию 90 дней. Приравнивается ко времени жизни элементов других серверов, если выставлено в 0." msgstr "Когда очистка базы данных включена, эта настройка определяет число дней, после которого ничейные элементы (в основном, данные с ретранслятора) будут удалены. Значение по умолчанию 90 дней. Приравнивается ко времени жизни элементов других серверов, если выставлено в 0."
#: src/Module/Admin/Site.php:532 #: src/Module/Admin/Site.php:530
msgid "Lifespan of raw conversation data" msgid "Lifespan of raw conversation data"
msgstr "Время жизни необработанных данных коммуникаций." msgstr "Время жизни необработанных данных коммуникаций."
#: src/Module/Admin/Site.php:532 #: src/Module/Admin/Site.php:530
msgid "" msgid ""
"The conversation data is used for ActivityPub and OStatus, as well as for " "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 " "debug purposes. It should be safe to remove it after 14 days, default is 90 "
"days." "days."
msgstr "Эти данные используются для ActivityPub и OStatus, а так же для диагностики. Обычно их можно спокойно удалять после 14 дней, значение по-умолчанию 90 дней." msgstr "Эти данные используются для ActivityPub и OStatus, а так же для диагностики. Обычно их можно спокойно удалять после 14 дней, значение по-умолчанию 90 дней."
#: src/Module/Admin/Site.php:533 #: src/Module/Admin/Site.php:531
msgid "Maximum numbers of comments per post" msgid "Maximum numbers of comments per post"
msgstr "Максимальное число комментариев для записи" msgstr "Максимальное число комментариев для записи"
#: src/Module/Admin/Site.php:533 #: src/Module/Admin/Site.php:531
msgid "How much comments should be shown for each post? Default value is 100." msgid "How much comments should be shown for each post? Default value is 100."
msgstr "Сколько комментариев должно быть показано для каждой записи? Значение по-умолчанию: 100." msgstr "Сколько комментариев должно быть показано для каждой записи? Значение по-умолчанию: 100."
#: src/Module/Admin/Site.php:534 #: src/Module/Admin/Site.php:532
msgid "Maximum numbers of comments per post on the display page" msgid "Maximum numbers of comments per post on the display page"
msgstr "Максимальное число комментариев на запись при его просмотре" msgstr "Максимальное число комментариев на запись при его просмотре"
#: src/Module/Admin/Site.php:534 #: src/Module/Admin/Site.php:532
msgid "" msgid ""
"How many comments should be shown on the single view for each post? Default " "How many comments should be shown on the single view for each post? Default "
"value is 1000." "value is 1000."
msgstr "Сколько комментариев показывать при просмотре записи на отдельной странице? Значение по-умолчанию: 1000." msgstr "Сколько комментариев показывать при просмотре записи на отдельной странице? Значение по-умолчанию: 1000."
#: src/Module/Admin/Site.php:535 #: src/Module/Admin/Site.php:533
msgid "Temp path" msgid "Temp path"
msgstr "Временная папка" msgstr "Временная папка"
#: src/Module/Admin/Site.php:535 #: src/Module/Admin/Site.php:533
msgid "" msgid ""
"If you have a restricted system where the webserver can't access the system " "If you have a restricted system where the webserver can't access the system "
"temp path, enter another path here." "temp path, enter another path here."
msgstr "Если на вашей системе веб-сервер не имеет доступа к системному пути tmp, введите здесь другой путь." msgstr "Если на вашей системе веб-сервер не имеет доступа к системному пути tmp, введите здесь другой путь."
#: src/Module/Admin/Site.php:536 #: src/Module/Admin/Site.php:534
msgid "Only search in tags" msgid "Only search in tags"
msgstr "Искать только в тегах" msgstr "Искать только в тегах"
#: src/Module/Admin/Site.php:536 #: src/Module/Admin/Site.php:534
msgid "On large systems the text search can slow down the system extremely." msgid "On large systems the text search can slow down the system extremely."
msgstr "На больших системах текстовый поиск может сильно замедлить систему." msgstr "На больших системах текстовый поиск может сильно замедлить систему."
#: src/Module/Admin/Site.php:538 #: src/Module/Admin/Site.php:535
msgid "Generate counts per contact group when calculating network count"
msgstr ""
#: src/Module/Admin/Site.php:535
msgid ""
"On systems with users that heavily use contact groups the query can be very "
"expensive."
msgstr ""
#: src/Module/Admin/Site.php:537
msgid "Maximum number of parallel workers" msgid "Maximum number of parallel workers"
msgstr "Максимальное число параллельно работающих worker'ов" msgstr "Максимальное число параллельно работающих worker'ов"
#: src/Module/Admin/Site.php:538 #: src/Module/Admin/Site.php:537
#, php-format #, php-format
msgid "" msgid ""
"On shared hosters set this to %d. On larger systems, values of %d are great." "On shared hosters set this to %d. On larger systems, values of %d are great."
" Default value is %d." " Default value is %d."
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:539 #: src/Module/Admin/Site.php:538
msgid "Enable fastlane" msgid "Enable fastlane"
msgstr "Включить fastlane" msgstr "Включить fastlane"
#: src/Module/Admin/Site.php:539 #: src/Module/Admin/Site.php:538
msgid "" msgid ""
"When enabed, the fastlane mechanism starts an additional worker if processes" "When enabed, the fastlane mechanism starts an additional worker if processes"
" with higher priority are blocked by processes of lower priority." " with higher priority are blocked by processes of lower priority."
msgstr "" msgstr ""
#: src/Module/Admin/Site.php:541 #: src/Module/Admin/Site.php:540
msgid "Direct relay transfer" msgid "Direct relay transfer"
msgstr "Прямая ретрансляция" msgstr "Прямая ретрансляция"
#: src/Module/Admin/Site.php:541 #: src/Module/Admin/Site.php:540
msgid "" msgid ""
"Enables the direct transfer to other servers without using the relay servers" "Enables the direct transfer to other servers without using the relay servers"
msgstr "Разрешает прямую отправку на другие серверы без использования ретрансляторов" msgstr "Разрешает прямую отправку на другие серверы без использования ретрансляторов"
#: src/Module/Admin/Site.php:542 #: src/Module/Admin/Site.php:541
msgid "Relay scope" msgid "Relay scope"
msgstr "Область ретрансляции" msgstr "Область ретрансляции"
#: src/Module/Admin/Site.php:542 #: src/Module/Admin/Site.php:541
msgid "" msgid ""
"Can be \"all\" or \"tags\". \"all\" means that every public post should be " "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. \"tags\" means that only posts with selected tags should be "
"received." "received."
msgstr "Допустимые значения \"all\" или \"tags\". \"all\" означает, что любые публичные записи будут получены. \"tags\" включает приём публичных записей с выбранными тэгами." msgstr "Допустимые значения \"all\" или \"tags\". \"all\" означает, что любые публичные записи будут получены. \"tags\" включает приём публичных записей с выбранными тэгами."
#: src/Module/Admin/Site.php:542 src/Module/Contact/Profile.php:273 #: src/Module/Admin/Site.php:541 src/Module/Contact/Profile.php:275
#: src/Module/Settings/TwoFactor/Index.php:118 #: src/Module/Settings/TwoFactor/Index.php:125
msgid "Disabled" msgid "Disabled"
msgstr "Отключено" msgstr "Отключено"
#: src/Module/Admin/Site.php:542 #: src/Module/Admin/Site.php:541
msgid "all" msgid "all"
msgstr "all" msgstr "all"
#: src/Module/Admin/Site.php:542 #: src/Module/Admin/Site.php:541
msgid "tags" msgid "tags"
msgstr "tags" msgstr "tags"
#: src/Module/Admin/Site.php:543 #: src/Module/Admin/Site.php:542
msgid "Server tags" msgid "Server tags"
msgstr "Тэги сервера" msgstr "Тэги сервера"
#: src/Module/Admin/Site.php:543 #: src/Module/Admin/Site.php:542
msgid "Comma separated list of tags for the \"tags\" subscription." msgid "Comma separated list of tags for the \"tags\" subscription."
msgstr "Список тэгов, разделённых запятыми, используемый для подписки в режиме \"tags\"" msgstr "Список тэгов, разделённых запятыми, используемый для подписки в режиме \"tags\""
#: src/Module/Admin/Site.php:544 #: src/Module/Admin/Site.php:543
msgid "Deny Server tags" msgid "Deny Server tags"
msgstr "Запретить тэги сервера" msgstr "Запретить тэги сервера"
#: src/Module/Admin/Site.php:544 #: src/Module/Admin/Site.php:543
msgid "Comma separated list of tags that are rejected." msgid "Comma separated list of tags that are rejected."
msgstr "Разделённый запятыми список тэгов, которые будут отбрасываться." msgstr "Разделённый запятыми список тэгов, которые будут отбрасываться."
#: src/Module/Admin/Site.php:545 #: src/Module/Admin/Site.php:544
msgid "Allow user tags" msgid "Allow user tags"
msgstr "Разрешить пользовательские тэги" msgstr "Разрешить пользовательские тэги"
#: src/Module/Admin/Site.php:545 #: src/Module/Admin/Site.php:544
msgid "" msgid ""
"If enabled, the tags from the saved searches will used for the \"tags\" " "If enabled, the tags from the saved searches will used for the \"tags\" "
"subscription in addition to the \"relay_server_tags\"." "subscription in addition to the \"relay_server_tags\"."
msgstr "Если включено, то теги. на которые подписались пользователи, будут добавлены в подписку в дополнение к тегам сервера." msgstr "Если включено, то теги. на которые подписались пользователи, будут добавлены в подписку в дополнение к тегам сервера."
#: src/Module/Admin/Site.php:548 #: src/Module/Admin/Site.php:547
msgid "Start Relocation" msgid "Start Relocation"
msgstr "Начать перемещение" msgstr "Начать перемещение"
@ -6032,12 +6185,12 @@ msgstr ""
msgid "Database (legacy)" msgid "Database (legacy)"
msgstr "База данных (устаревшее)" msgstr "База данных (устаревшее)"
#: src/Module/Admin/Summary.php:54 #: src/Module/Admin/Summary.php:55
#, php-format #, php-format
msgid "Template engine (%s) error: %s" msgid "Template engine (%s) error: %s"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:58 #: src/Module/Admin/Summary.php:59
#, php-format #, php-format
msgid "" msgid ""
"Your DB still runs with MyISAM tables. You should change the engine type to " "Your DB still runs with MyISAM tables. You should change the engine type to "
@ -6048,7 +6201,7 @@ msgid ""
" an automatic conversion.<br />" " an automatic conversion.<br />"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:63 #: src/Module/Admin/Summary.php:64
#, php-format #, php-format
msgid "" msgid ""
"Your DB still runs with InnoDB tables in the Antelope file format. You " "Your DB still runs with InnoDB tables in the Antelope file format. You "
@ -6059,7 +6212,7 @@ msgid ""
" installation for an automatic conversion.<br />" " installation for an automatic conversion.<br />"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:73 #: src/Module/Admin/Summary.php:74
#, php-format #, php-format
msgid "" msgid ""
"Your table_definition_cache is too low (%d). This can lead to the database " "Your table_definition_cache is too low (%d). This can lead to the database "
@ -6067,39 +6220,39 @@ msgid ""
" to %d. See <a href=\"%s\">here</a> for more information.<br />" " to %d. See <a href=\"%s\">here</a> for more information.<br />"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:83 #: src/Module/Admin/Summary.php:84
#, php-format #, php-format
msgid "" msgid ""
"There is a new version of Friendica available for download. Your current " "There is a new version of Friendica available for download. Your current "
"version is %1$s, upstream version is %2$s" "version is %1$s, upstream version is %2$s"
msgstr "" msgstr "Новая версия Friendica доступна для загрузки. Ваша текущая версия %1$s, последняя версия %2$s"
#: src/Module/Admin/Summary.php:92 #: src/Module/Admin/Summary.php:93
msgid "" msgid ""
"The database update failed. Please run \"php bin/console.php dbstructure " "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 " "update\" from the command line and have a look at the errors that might "
"appear." "appear."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:96 #: src/Module/Admin/Summary.php:97
msgid "" msgid ""
"The last update failed. Please run \"php bin/console.php dbstructure " "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 " "update\" from the command line and have a look at the errors that might "
"appear. (Some of the errors are possibly inside the logfile.)" "appear. (Some of the errors are possibly inside the logfile.)"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:101 #: src/Module/Admin/Summary.php:102
msgid "The worker was never executed. Please check your database structure!" msgid "The worker was never executed. Please check your database structure!"
msgstr "Фоновые задания ни разу не выполнялись. Пожалуйста, проверьте структуру базы данных!" msgstr "Фоновые задания ни разу не выполнялись. Пожалуйста, проверьте структуру базы данных!"
#: src/Module/Admin/Summary.php:103 #: src/Module/Admin/Summary.php:104
#, php-format #, php-format
msgid "" msgid ""
"The last worker execution was on %s UTC. This is older than one hour. Please" "The last worker execution was on %s UTC. This is older than one hour. Please"
" check your crontab settings." " check your crontab settings."
msgstr "Последний раз фоновое задание выполнялось %s UTC. Это более одного часа назад. Пожалуйста, проверьте настройки crontab." msgstr "Последний раз фоновое задание выполнялось %s UTC. Это более одного часа назад. Пожалуйста, проверьте настройки crontab."
#: src/Module/Admin/Summary.php:108 #: src/Module/Admin/Summary.php:109
#, php-format #, php-format
msgid "" msgid ""
"Friendica's configuration now is stored in config/local.config.php, please " "Friendica's configuration now is stored in config/local.config.php, please "
@ -6108,7 +6261,7 @@ msgid ""
"help with the transition." "help with the transition."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:112 #: src/Module/Admin/Summary.php:113
#, php-format #, php-format
msgid "" msgid ""
"Friendica's configuration now is stored in config/local.config.php, please " "Friendica's configuration now is stored in config/local.config.php, please "
@ -6117,7 +6270,7 @@ msgid ""
"page</a> for help with the transition." "page</a> for help with the transition."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:118 #: src/Module/Admin/Summary.php:119
#, php-format #, php-format
msgid "" msgid ""
"<a href=\"%s\">%s</a> is not reachable on your system. This is a severe " "<a href=\"%s\">%s</a> is not reachable on your system. This is a severe "
@ -6125,83 +6278,83 @@ msgid ""
"href=\"%s\">the installation page</a> for help." "href=\"%s\">the installation page</a> for help."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:136 #: src/Module/Admin/Summary.php:137
#, php-format #, php-format
msgid "The logfile '%s' is not usable. No logging possible (error: '%s')" msgid "The logfile '%s' is not usable. No logging possible (error: '%s')"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:150 #: src/Module/Admin/Summary.php:151
#, php-format #, php-format
msgid "" msgid ""
"The debug logfile '%s' is not usable. No logging possible (error: '%s')" "The debug logfile '%s' is not usable. No logging possible (error: '%s')"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:166 #: src/Module/Admin/Summary.php:167
#, php-format #, php-format
msgid "" msgid ""
"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the" "Friendica's system.basepath was updated from '%s' to '%s'. Please remove the"
" system.basepath from your db to avoid differences." " system.basepath from your db to avoid differences."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:174 #: src/Module/Admin/Summary.php:175
#, php-format #, php-format
msgid "" msgid ""
"Friendica's current system.basepath '%s' is wrong and the config file '%s' " "Friendica's current system.basepath '%s' is wrong and the config file '%s' "
"isn't used." "isn't used."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:182 #: src/Module/Admin/Summary.php:183
#, php-format #, php-format
msgid "" msgid ""
"Friendica's current system.basepath '%s' is not equal to the config file " "Friendica's current system.basepath '%s' is not equal to the config file "
"'%s'. Please fix your configuration." "'%s'. Please fix your configuration."
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:189 #: src/Module/Admin/Summary.php:190
msgid "Normal Account" msgid "Normal Account"
msgstr "Обычный аккаунт" msgstr "Обычный аккаунт"
#: src/Module/Admin/Summary.php:190 #: src/Module/Admin/Summary.php:191
msgid "Automatic Follower Account" msgid "Automatic Follower Account"
msgstr "\"Автоматический друг\" Аккаунт" msgstr "\"Автоматический друг\" Аккаунт"
#: src/Module/Admin/Summary.php:191 #: src/Module/Admin/Summary.php:192
msgid "Public Forum Account" msgid "Public Forum Account"
msgstr "Публичный форум" msgstr "Публичный форум"
#: src/Module/Admin/Summary.php:192 #: src/Module/Admin/Summary.php:193
msgid "Automatic Friend Account" msgid "Automatic Friend Account"
msgstr "\"Автоматический друг\" Аккаунт" msgstr "\"Автоматический друг\" Аккаунт"
#: src/Module/Admin/Summary.php:193 #: src/Module/Admin/Summary.php:194
msgid "Blog Account" msgid "Blog Account"
msgstr "Аккаунт блога" msgstr "Аккаунт блога"
#: src/Module/Admin/Summary.php:194 #: src/Module/Admin/Summary.php:195
msgid "Private Forum Account" msgid "Private Forum Account"
msgstr "Закрытый форум" msgstr "Закрытый форум"
#: src/Module/Admin/Summary.php:214 #: src/Module/Admin/Summary.php:215
msgid "Message queues" msgid "Message queues"
msgstr "Очереди сообщений" msgstr "Очереди сообщений"
#: src/Module/Admin/Summary.php:220 #: src/Module/Admin/Summary.php:221
msgid "Server Settings" msgid "Server Settings"
msgstr "Настройки сервера" msgstr "Настройки сервера"
#: src/Module/Admin/Summary.php:236 #: src/Module/Admin/Summary.php:237
msgid "Registered users" msgid "Registered users"
msgstr "Зарегистрированные пользователи" msgstr "Зарегистрированные пользователи"
#: src/Module/Admin/Summary.php:238 #: src/Module/Admin/Summary.php:239
msgid "Pending registrations" msgid "Pending registrations"
msgstr "Ожидающие регистрации" msgstr "Ожидающие регистрации"
#: src/Module/Admin/Summary.php:239 #: src/Module/Admin/Summary.php:240
msgid "Version" msgid "Version"
msgstr "Версия" msgstr "Версия"
#: src/Module/Admin/Summary.php:243 #: src/Module/Admin/Summary.php:244
msgid "Active addons" msgid "Active addons"
msgstr "Активные дополнения" msgstr "Активные дополнения"
@ -6290,7 +6443,7 @@ msgid ""
"of sections should be [h2] and below." "of sections should be [h2] and below."
msgstr "Введите здесь текст Условий оказания услуг для вашего узла. Можно использовать BBCode. Заголовки отдельных секций должны использовать [h2] и ниже." msgstr "Введите здесь текст Условий оказания услуг для вашего узла. Можно использовать BBCode. Заголовки отдельных секций должны использовать [h2] и ниже."
#: src/Module/Admin/Users/Active.php:45 src/Module/Admin/Users/Index.php:45 #: src/Module/Admin/Users/Active.php:45 src/Module/Admin/Users/Index.php:46
#, php-format #, php-format
msgid "%s user blocked" msgid "%s user blocked"
msgid_plural "%s users blocked" msgid_plural "%s users blocked"
@ -6300,13 +6453,13 @@ msgstr[2] "%s пользователей заблокировано"
msgstr[3] "%s пользователей заблокировано" msgstr[3] "%s пользователей заблокировано"
#: src/Module/Admin/Users/Active.php:53 src/Module/Admin/Users/Active.php:88 #: src/Module/Admin/Users/Active.php:53 src/Module/Admin/Users/Active.php:88
#: src/Module/Admin/Users/Blocked.php:54 src/Module/Admin/Users/Blocked.php:89 #: src/Module/Admin/Users/Blocked.php:55 src/Module/Admin/Users/Blocked.php:90
#: src/Module/Admin/Users/Index.php:60 src/Module/Admin/Users/Index.php:95 #: src/Module/Admin/Users/Index.php:61 src/Module/Admin/Users/Index.php:96
msgid "You can't remove yourself" msgid "You can't remove yourself"
msgstr "Вы не можете удалить самого себя" msgstr "Вы не можете удалить самого себя"
#: src/Module/Admin/Users/Active.php:57 src/Module/Admin/Users/Blocked.php:58 #: src/Module/Admin/Users/Active.php:57 src/Module/Admin/Users/Blocked.php:59
#: src/Module/Admin/Users/Index.php:64 #: src/Module/Admin/Users/Index.php:65
#, php-format #, php-format
msgid "%s user deleted" msgid "%s user deleted"
msgid_plural "%s users deleted" msgid_plural "%s users deleted"
@ -6315,35 +6468,35 @@ msgstr[1] "%s чел. удалено"
msgstr[2] "%s чел. удалено" msgstr[2] "%s чел. удалено"
msgstr[3] "%s чел. удалено" msgstr[3] "%s чел. удалено"
#: src/Module/Admin/Users/Active.php:86 src/Module/Admin/Users/Blocked.php:87 #: src/Module/Admin/Users/Active.php:86 src/Module/Admin/Users/Blocked.php:88
#: src/Module/Admin/Users/Index.php:93 #: src/Module/Admin/Users/Index.php:94
#, php-format #, php-format
msgid "User \"%s\" deleted" msgid "User \"%s\" deleted"
msgstr "Пользователь \"%s\" удалён" msgstr "Пользователь \"%s\" удалён"
#: src/Module/Admin/Users/Active.php:96 src/Module/Admin/Users/Index.php:103 #: src/Module/Admin/Users/Active.php:96 src/Module/Admin/Users/Index.php:104
#, php-format #, php-format
msgid "User \"%s\" blocked" msgid "User \"%s\" blocked"
msgstr "Пользователь \"%s\" заблокирован" msgstr "Пользователь \"%s\" заблокирован"
#: src/Module/Admin/Users/Active.php:129 #: src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:130 #: src/Module/Admin/Users/Blocked.php:131
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143
#: src/Module/Admin/Users/Index.php:162 #: src/Module/Admin/Users/Index.php:163
msgid "Register date" msgid "Register date"
msgstr "Дата регистрации" msgstr "Дата регистрации"
#: src/Module/Admin/Users/Active.php:129 #: src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:130 #: src/Module/Admin/Users/Blocked.php:131
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143
#: src/Module/Admin/Users/Index.php:162 #: src/Module/Admin/Users/Index.php:163
msgid "Last login" msgid "Last login"
msgstr "Последний вход" msgstr "Последний вход"
#: src/Module/Admin/Users/Active.php:129 #: src/Module/Admin/Users/Active.php:129
#: src/Module/Admin/Users/Blocked.php:130 #: src/Module/Admin/Users/Blocked.php:131
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:142 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:143
#: src/Module/Admin/Users/Index.php:162 #: src/Module/Admin/Users/Index.php:163
msgid "Last public item" msgid "Last public item"
msgstr "Последняя публичная запись" msgstr "Последняя публичная запись"
@ -6352,39 +6505,39 @@ msgid "Active Accounts"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:141 #: src/Module/Admin/Users/Active.php:141
#: src/Module/Admin/Users/Blocked.php:141 src/Module/Admin/Users/Index.php:155 #: src/Module/Admin/Users/Blocked.php:142 src/Module/Admin/Users/Index.php:156
msgid "User blocked" msgid "User blocked"
msgstr "Пользователь заблокирован" msgstr "Пользователь заблокирован"
#: src/Module/Admin/Users/Active.php:142 #: src/Module/Admin/Users/Active.php:142
#: src/Module/Admin/Users/Blocked.php:143 src/Module/Admin/Users/Index.php:157 #: src/Module/Admin/Users/Blocked.php:144 src/Module/Admin/Users/Index.php:158
msgid "Site admin" msgid "Site admin"
msgstr "Админ сайта" msgstr "Админ сайта"
#: src/Module/Admin/Users/Active.php:143 #: src/Module/Admin/Users/Active.php:143
#: src/Module/Admin/Users/Blocked.php:144 src/Module/Admin/Users/Index.php:158 #: src/Module/Admin/Users/Blocked.php:145 src/Module/Admin/Users/Index.php:159
msgid "Account expired" msgid "Account expired"
msgstr "Аккаунт просрочен" msgstr "Аккаунт просрочен"
#: src/Module/Admin/Users/Active.php:144 src/Module/Admin/Users/Index.php:161 #: src/Module/Admin/Users/Active.php:144 src/Module/Admin/Users/Index.php:162
msgid "Create a new user" msgid "Create a new user"
msgstr "" msgstr ""
#: src/Module/Admin/Users/Active.php:150 #: src/Module/Admin/Users/Active.php:150
#: src/Module/Admin/Users/Blocked.php:150 src/Module/Admin/Users/Index.php:167 #: src/Module/Admin/Users/Blocked.php:151 src/Module/Admin/Users/Index.php:168
msgid "" msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on " "Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?" "this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Выбранные пользователи будут удалены!\\n\\nВсе, что эти пользователи написали на этом сайте, будет удалено!\\n\\nВы уверены в вашем действии?" msgstr "Выбранные пользователи будут удалены!\\n\\nВсе, что эти пользователи написали на этом сайте, будет удалено!\\n\\nВы уверены в вашем действии?"
#: src/Module/Admin/Users/Active.php:151 #: src/Module/Admin/Users/Active.php:151
#: src/Module/Admin/Users/Blocked.php:151 src/Module/Admin/Users/Index.php:168 #: src/Module/Admin/Users/Blocked.php:152 src/Module/Admin/Users/Index.php:169
msgid "" msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this " "The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?" "site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Пользователь {0} будет удален!\\n\\nВсе, что этот пользователь написал на этом сайте, будет удалено!\\n\\nВы уверены в вашем действии?" msgstr "Пользователь {0} будет удален!\\n\\nВсе, что этот пользователь написал на этом сайте, будет удалено!\\n\\nВы уверены в вашем действии?"
#: src/Module/Admin/Users/Blocked.php:46 src/Module/Admin/Users/Index.php:52 #: src/Module/Admin/Users/Blocked.php:47 src/Module/Admin/Users/Index.php:53
#, php-format #, php-format
msgid "%s user unblocked" msgid "%s user unblocked"
msgid_plural "%s users unblocked" msgid_plural "%s users unblocked"
@ -6393,12 +6546,12 @@ msgstr[1] "%s пользователя разблокировано"
msgstr[2] "%s пользователей разблокировано" msgstr[2] "%s пользователей разблокировано"
msgstr[3] "%s пользователей разблокировано" msgstr[3] "%s пользователей разблокировано"
#: src/Module/Admin/Users/Blocked.php:96 src/Module/Admin/Users/Index.php:109 #: src/Module/Admin/Users/Blocked.php:97 src/Module/Admin/Users/Index.php:110
#, php-format #, php-format
msgid "User \"%s\" unblocked" msgid "User \"%s\" unblocked"
msgstr "Пользователь \"%s\" разблокирован" msgstr "Пользователь \"%s\" разблокирован"
#: src/Module/Admin/Users/Blocked.php:138 #: src/Module/Admin/Users/Blocked.php:139
msgid "Blocked Users" msgid "Blocked Users"
msgstr "Заблокированные" msgstr "Заблокированные"
@ -6430,16 +6583,16 @@ msgstr "Email адрес нового пользователя."
msgid "Users awaiting permanent deletion" msgid "Users awaiting permanent deletion"
msgstr "Пользователи, ожидающие окончательного удаления" msgstr "Пользователи, ожидающие окончательного удаления"
#: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:162 #: src/Module/Admin/Users/Deleted.php:88 src/Module/Admin/Users/Index.php:163
msgid "Permanent deletion" msgid "Permanent deletion"
msgstr "Постоянное удаление" msgstr "Постоянное удаление"
#: src/Module/Admin/Users/Index.php:150 src/Module/Admin/Users/Index.php:160 #: src/Module/Admin/Users/Index.php:151 src/Module/Admin/Users/Index.php:161
#: src/Module/BaseAdmin.php:92 #: src/Module/BaseAdmin.php:92
msgid "Users" msgid "Users"
msgstr "Пользователи" msgstr "Пользователи"
#: src/Module/Admin/Users/Index.php:152 #: src/Module/Admin/Users/Index.php:153
msgid "User waiting for permanent deletion" msgid "User waiting for permanent deletion"
msgstr "Пользователь ожидает окончательного удаления" msgstr "Пользователь ожидает окончательного удаления"
@ -6489,12 +6642,12 @@ msgstr "Сообщение от пользователя"
msgid "Deny" msgid "Deny"
msgstr "Отклонить" msgstr "Отклонить"
#: src/Module/Api/ApiResponse.php:272 #: src/Module/Api/ApiResponse.php:279
#, php-format #, php-format
msgid "API endpoint %s %s is not implemented" msgid "API endpoint %s %s is not implemented"
msgstr "" msgstr ""
#: src/Module/Api/ApiResponse.php:273 #: src/Module/Api/ApiResponse.php:280
msgid "" msgid ""
"The API endpoint is currently not implemented but might be in the future." "The API endpoint is currently not implemented but might be in the future."
msgstr "" msgstr ""
@ -6507,7 +6660,7 @@ msgstr ""
msgid "Only starting posts can be bookmarked" msgid "Only starting posts can be bookmarked"
msgstr "Только заглавные записи могут быть добавлены в закладки" msgstr "Только заглавные записи могут быть добавлены в закладки"
#: src/Module/Api/Mastodon/Statuses/Mute.php:50 #: src/Module/Api/Mastodon/Statuses/Mute.php:51
msgid "Only starting posts can be muted" msgid "Only starting posts can be muted"
msgstr "Только заглавные записи можно заглушить" msgstr "Только заглавные записи можно заглушить"
@ -6520,7 +6673,7 @@ msgstr ""
msgid "Only starting posts can be unbookmarked" msgid "Only starting posts can be unbookmarked"
msgstr "Только заглавные записи можно удалить из закладок" msgstr "Только заглавные записи можно удалить из закладок"
#: src/Module/Api/Mastodon/Statuses/Unmute.php:50 #: src/Module/Api/Mastodon/Statuses/Unmute.php:51
msgid "Only starting posts can be unmuted" msgid "Only starting posts can be unmuted"
msgstr "Только с заглавных записей можно снять заглушение" msgstr "Только с заглавных записей можно снять заглушение"
@ -6533,11 +6686,11 @@ msgstr ""
msgid "Contact not found" msgid "Contact not found"
msgstr "Контакт не найден" msgstr "Контакт не найден"
#: src/Module/Apps.php:54 #: src/Module/Apps.php:55
msgid "No installed applications." msgid "No installed applications."
msgstr "Нет установленных приложений." msgstr "Нет установленных приложений."
#: src/Module/Apps.php:59 #: src/Module/Apps.php:60
msgid "Applications" msgid "Applications"
msgstr "Приложения" msgstr "Приложения"
@ -6619,7 +6772,7 @@ msgstr ""
msgid "Babel" msgid "Babel"
msgstr "" msgstr ""
#: src/Module/BaseAdmin.php:118 src/Module/Debug/ActivityPubConversion.php:142 #: src/Module/BaseAdmin.php:118 src/Module/Debug/ActivityPubConversion.php:137
msgid "ActivityPub Conversion" msgid "ActivityPub Conversion"
msgstr "" msgstr ""
@ -6631,12 +6784,12 @@ msgstr ""
msgid "User registrations waiting for confirmation" msgid "User registrations waiting for confirmation"
msgstr "Регистрации пользователей, ожидающие подтверждения" msgstr "Регистрации пользователей, ожидающие подтверждения"
#: src/Module/BaseApi.php:241 src/Module/BaseApi.php:257 #: src/Module/BaseApi.php:242 src/Module/BaseApi.php:258
#: src/Module/BaseApi.php:273 #: src/Module/BaseApi.php:274
msgid "Too Many Requests" msgid "Too Many Requests"
msgstr "" msgstr ""
#: src/Module/BaseApi.php:242 #: src/Module/BaseApi.php:243
#, php-format #, php-format
msgid "Daily posting limit of %d post reached. The post was rejected." 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." msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
@ -6645,7 +6798,7 @@ msgstr[1] "Дневной лимит в %d записи достигнут. За
msgstr[2] "Дневной лимит в %d записей достигнут. Запись отклонена." msgstr[2] "Дневной лимит в %d записей достигнут. Запись отклонена."
msgstr[3] "Дневной лимит в %d записей достигнут. Запись отклонена." msgstr[3] "Дневной лимит в %d записей достигнут. Запись отклонена."
#: src/Module/BaseApi.php:258 #: src/Module/BaseApi.php:259
#, php-format #, php-format
msgid "Weekly posting limit of %d post reached. The post was rejected." msgid "Weekly posting limit of %d post reached. The post was rejected."
msgid_plural "" msgid_plural ""
@ -6655,12 +6808,17 @@ msgstr[1] "Недельный лимит в %d записи достигнут.
msgstr[2] "Недельный лимит в %d записей достигнут. Запись была отклонена." msgstr[2] "Недельный лимит в %d записей достигнут. Запись была отклонена."
msgstr[3] "Недельный лимит в %d записей достигнут. Запись была отклонена." msgstr[3] "Недельный лимит в %d записей достигнут. Запись была отклонена."
#: src/Module/BaseApi.php:274 #: src/Module/BaseApi.php:275
#, php-format #, php-format
msgid "Monthly posting limit of %d post reached. The post was rejected." msgid "Monthly posting limit of %d post reached. The post was rejected."
msgstr "Месячный лимит в %d записей достигнут. Запись была отклонена." msgid_plural ""
"Monthly posting limit of %d posts reached. The post was rejected."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: src/Module/BaseProfile.php:51 src/Module/Contact.php:460 #: src/Module/BaseProfile.php:51 src/Module/Contact.php:463
msgid "Profile Details" msgid "Profile Details"
msgstr "Информация о вас" msgstr "Информация о вас"
@ -6694,8 +6852,8 @@ msgstr "Поиск по форумам - %s"
msgid "Account" msgid "Account"
msgstr "Аккаунт" msgstr "Аккаунт"
#: src/Module/BaseSettings.php:48 src/Module/Security/TwoFactor/Verify.php:95 #: src/Module/BaseSettings.php:48 src/Module/Security/TwoFactor/Verify.php:97
#: src/Module/Settings/TwoFactor/Index.php:110 #: src/Module/Settings/TwoFactor/Index.php:117
msgid "Two-factor authentication" msgid "Two-factor authentication"
msgstr "Двухфакторная аутентификация" msgstr "Двухфакторная аутентификация"
@ -6703,7 +6861,7 @@ msgstr "Двухфакторная аутентификация"
msgid "Display" msgid "Display"
msgstr "Внешний вид" msgstr "Внешний вид"
#: src/Module/BaseSettings.php:92 src/Module/Settings/Delegation.php:171 #: src/Module/BaseSettings.php:92 src/Module/Settings/Delegation.php:170
msgid "Manage Accounts" msgid "Manage Accounts"
msgstr "Управление учётными записями" msgstr "Управление учётными записями"
@ -6736,110 +6894,110 @@ msgstr[1] "%d контакта изменено."
msgstr[2] "%d контактов изменены." msgstr[2] "%d контактов изменены."
msgstr[3] "%d контактов изменены." msgstr[3] "%d контактов изменены."
#: src/Module/Contact.php:309 #: src/Module/Contact.php:312
msgid "Show all contacts" msgid "Show all contacts"
msgstr "Показать все контакты" msgstr "Показать все контакты"
#: src/Module/Contact.php:317 #: src/Module/Contact.php:320
msgid "Only show pending contacts" msgid "Only show pending contacts"
msgstr "Показать только контакты \"в ожидании\"" msgstr "Показать только контакты \"в ожидании\""
#: src/Module/Contact.php:325 #: src/Module/Contact.php:328
msgid "Only show blocked contacts" msgid "Only show blocked contacts"
msgstr "Показать только блокированные контакты" msgstr "Показать только блокированные контакты"
#: src/Module/Contact.php:330 src/Module/Contact.php:377 #: src/Module/Contact.php:333 src/Module/Contact.php:380
#: src/Object/Post.php:329 #: src/Object/Post.php:339
msgid "Ignored" msgid "Ignored"
msgstr "Игнорируются" msgstr "Игнорируются"
#: src/Module/Contact.php:333 #: src/Module/Contact.php:336
msgid "Only show ignored contacts" msgid "Only show ignored contacts"
msgstr "Показать только игнорируемые контакты" msgstr "Показать только игнорируемые контакты"
#: src/Module/Contact.php:338 src/Module/Contact.php:378 #: src/Module/Contact.php:341 src/Module/Contact.php:381
msgid "Archived" msgid "Archived"
msgstr "Архивированные" msgstr "Архивированные"
#: src/Module/Contact.php:341 #: src/Module/Contact.php:344
msgid "Only show archived contacts" msgid "Only show archived contacts"
msgstr "Показывать только архивные контакты" msgstr "Показывать только архивные контакты"
#: src/Module/Contact.php:346 src/Module/Contact.php:376 #: src/Module/Contact.php:349 src/Module/Contact.php:379
msgid "Hidden" msgid "Hidden"
msgstr "Скрытые" msgstr "Скрытые"
#: src/Module/Contact.php:349 #: src/Module/Contact.php:352
msgid "Only show hidden contacts" msgid "Only show hidden contacts"
msgstr "Показывать только скрытые контакты" msgstr "Показывать только скрытые контакты"
#: src/Module/Contact.php:357 #: src/Module/Contact.php:360
msgid "Organize your contact groups" msgid "Organize your contact groups"
msgstr "Настроить группы контактов" msgstr "Настроить группы контактов"
#: src/Module/Contact.php:389 #: src/Module/Contact.php:392
msgid "Search your contacts" msgid "Search your contacts"
msgstr "Поиск ваших контактов" msgstr "Поиск ваших контактов"
#: src/Module/Contact.php:390 src/Module/Search/Index.php:192 #: src/Module/Contact.php:393 src/Module/Search/Index.php:206
#, php-format #, php-format
msgid "Results for: %s" msgid "Results for: %s"
msgstr "Результаты для: %s" msgstr "Результаты для: %s"
#: src/Module/Contact.php:397 #: src/Module/Contact.php:400
msgid "Update" msgid "Update"
msgstr "Обновление" msgstr "Обновление"
#: src/Module/Contact.php:399 src/Module/Contact/Profile.php:349 #: src/Module/Contact.php:402 src/Module/Contact/Profile.php:351
#: src/Module/Contact/Profile.php:457 #: src/Module/Contact/Profile.php:459
msgid "Unignore" msgid "Unignore"
msgstr "Не игнорировать" msgstr "Не игнорировать"
#: src/Module/Contact.php:401 #: src/Module/Contact.php:404
msgid "Batch Actions" msgid "Batch Actions"
msgstr "Пакетные действия" msgstr "Пакетные действия"
#: src/Module/Contact.php:436 #: src/Module/Contact.php:439
msgid "Conversations started by this contact" msgid "Conversations started by this contact"
msgstr "Диалоги этого контакта" msgstr "Диалоги этого контакта"
#: src/Module/Contact.php:441 #: src/Module/Contact.php:444
msgid "Posts and Comments" msgid "Posts and Comments"
msgstr "Записи и комментарии" msgstr "Записи и комментарии"
#: src/Module/Contact.php:452 #: src/Module/Contact.php:455
msgid "Posts containing media objects" msgid "Posts containing media objects"
msgstr "" msgstr ""
#: src/Module/Contact.php:467 #: src/Module/Contact.php:470
msgid "View all known contacts" msgid "View all known contacts"
msgstr "Показать все известные контакты" msgstr "Показать все известные контакты"
#: src/Module/Contact.php:477 #: src/Module/Contact.php:480
msgid "Advanced Contact Settings" msgid "Advanced Contact Settings"
msgstr "Дополнительные Настройки Контакта" msgstr "Дополнительные Настройки Контакта"
#: src/Module/Contact.php:511 #: src/Module/Contact.php:514
msgid "Mutual Friendship" msgid "Mutual Friendship"
msgstr "Взаимная дружба" msgstr "Взаимная дружба"
#: src/Module/Contact.php:515 #: src/Module/Contact.php:518
msgid "is a fan of yours" msgid "is a fan of yours"
msgstr "является вашим поклонником" msgstr "является вашим поклонником"
#: src/Module/Contact.php:519 #: src/Module/Contact.php:522
msgid "you are a fan of" msgid "you are a fan of"
msgstr "Вы - поклонник" msgstr "Вы - поклонник"
#: src/Module/Contact.php:537 #: src/Module/Contact.php:540
msgid "Pending outgoing contact request" msgid "Pending outgoing contact request"
msgstr "Исходящий запрос на подписку" msgstr "Исходящий запрос на подписку"
#: src/Module/Contact.php:539 #: src/Module/Contact.php:542
msgid "Pending incoming contact request" msgid "Pending incoming contact request"
msgstr "Входящий запрос на подписку" msgstr "Входящий запрос на подписку"
#: src/Module/Contact.php:552 src/Module/Contact/Profile.php:334 #: src/Module/Contact.php:555 src/Module/Contact/Profile.php:336
#, php-format #, php-format
msgid "Visit %s's profile [%s]" msgid "Visit %s's profile [%s]"
msgstr "Посетить профиль %s [%s]" msgstr "Посетить профиль %s [%s]"
@ -6868,20 +7026,20 @@ msgstr "URL опроса/ленты"
msgid "New photo from this URL" msgid "New photo from this URL"
msgstr "Новое фото из этой URL" msgstr "Новое фото из этой URL"
#: src/Module/Contact/Contacts.php:50 src/Module/Conversation/Network.php:187 #: src/Module/Contact/Contacts.php:48 src/Module/Conversation/Network.php:186
#: src/Module/Group.php:103 #: src/Module/Group.php:101
msgid "Invalid contact." msgid "Invalid contact."
msgstr "Недопустимый контакт." msgstr "Недопустимый контакт."
#: src/Module/Contact/Contacts.php:73 #: src/Module/Contact/Contacts.php:71
msgid "No known contacts." msgid "No known contacts."
msgstr "Нет известных контактов." msgstr "Нет известных контактов."
#: src/Module/Contact/Contacts.php:87 src/Module/Profile/Common.php:98 #: src/Module/Contact/Contacts.php:85 src/Module/Profile/Common.php:97
msgid "No common contacts." msgid "No common contacts."
msgstr "Общих контактов нет." msgstr "Общих контактов нет."
#: src/Module/Contact/Contacts.php:99 src/Module/Profile/Contacts.php:96 #: src/Module/Contact/Contacts.php:97 src/Module/Profile/Contacts.php:95
#, php-format #, php-format
msgid "Follower (%s)" msgid "Follower (%s)"
msgid_plural "Followers (%s)" msgid_plural "Followers (%s)"
@ -6890,7 +7048,7 @@ msgstr[1] "Подписчики (%s)"
msgstr[2] "Подписчики (%s)" msgstr[2] "Подписчики (%s)"
msgstr[3] "Подписчики (%s)" msgstr[3] "Подписчики (%s)"
#: src/Module/Contact/Contacts.php:103 src/Module/Profile/Contacts.php:99 #: src/Module/Contact/Contacts.php:101 src/Module/Profile/Contacts.php:98
#, php-format #, php-format
msgid "Following (%s)" msgid "Following (%s)"
msgid_plural "Following (%s)" msgid_plural "Following (%s)"
@ -6899,7 +7057,7 @@ msgstr[1] "Подписаны на (%s)"
msgstr[2] "Подписаны на (%s)" msgstr[2] "Подписаны на (%s)"
msgstr[3] "Подписаны на (%s)" msgstr[3] "Подписаны на (%s)"
#: src/Module/Contact/Contacts.php:107 src/Module/Profile/Contacts.php:102 #: src/Module/Contact/Contacts.php:105 src/Module/Profile/Contacts.php:101
#, php-format #, php-format
msgid "Mutual friend (%s)" msgid "Mutual friend (%s)"
msgid_plural "Mutual friends (%s)" msgid_plural "Mutual friends (%s)"
@ -6908,12 +7066,12 @@ msgstr[1] "Взаимные друзья (%s)"
msgstr[2] "Взаимные друзья (%s)" msgstr[2] "Взаимные друзья (%s)"
msgstr[3] "Взаимные друзья (%s)" msgstr[3] "Взаимные друзья (%s)"
#: src/Module/Contact/Contacts.php:109 src/Module/Profile/Contacts.php:104 #: src/Module/Contact/Contacts.php:107 src/Module/Profile/Contacts.php:103
#, php-format #, php-format
msgid "These contacts both follow and are followed by <strong>%s</strong>." msgid "These contacts both follow and are followed by <strong>%s</strong>."
msgstr "Эти контакты взаимно добавлены в друзья <strong>%s</strong>." msgstr "Эти контакты взаимно добавлены в друзья <strong>%s</strong>."
#: src/Module/Contact/Contacts.php:115 src/Module/Profile/Common.php:86 #: src/Module/Contact/Contacts.php:113 src/Module/Profile/Common.php:85
#, php-format #, php-format
msgid "Common contact (%s)" msgid "Common contact (%s)"
msgid_plural "Common contacts (%s)" msgid_plural "Common contacts (%s)"
@ -6922,14 +7080,14 @@ msgstr[1] "Общие контакты (%s)"
msgstr[2] "Общие контакты (%s)" msgstr[2] "Общие контакты (%s)"
msgstr[3] "Общие контакты (%s)" msgstr[3] "Общие контакты (%s)"
#: src/Module/Contact/Contacts.php:117 src/Module/Profile/Common.php:88 #: src/Module/Contact/Contacts.php:115 src/Module/Profile/Common.php:87
#, php-format #, php-format
msgid "" msgid ""
"Both <strong>%s</strong> and yourself have publicly interacted with these " "Both <strong>%s</strong> and yourself have publicly interacted with these "
"contacts (follow, comment or likes on public posts)." "contacts (follow, comment or likes on public posts)."
msgstr "<strong>%s</strong> и вы публично взаимодействовали с этими контактами (добавляли их, комментировали публичные посты или оставляли лайки к ним)." msgstr "<strong>%s</strong> и вы публично взаимодействовали с этими контактами (добавляли их, комментировали публичные посты или оставляли лайки к ним)."
#: src/Module/Contact/Contacts.php:123 src/Module/Profile/Contacts.php:110 #: src/Module/Contact/Contacts.php:121 src/Module/Profile/Contacts.php:109
#, php-format #, php-format
msgid "Contact (%s)" msgid "Contact (%s)"
msgid_plural "Contacts (%s)" msgid_plural "Contacts (%s)"
@ -6938,380 +7096,357 @@ msgstr[1] "Контакты (%s)"
msgstr[2] "Контакты (%s)" msgstr[2] "Контакты (%s)"
msgstr[3] "Контакты (%s)" msgstr[3] "Контакты (%s)"
#: src/Module/Contact/Poke.php:135 #: src/Module/Contact/Profile.php:129
msgid "Error while sending poke, please retry."
msgstr "Ошибка при отправке тычка, попробуйте ещё."
#: src/Module/Contact/Poke.php:148 src/Module/Search/Acl.php:55
msgid "You must be logged in to use this module."
msgstr "Вам нужно войти, чтобы использовать этот модуль."
#: src/Module/Contact/Poke.php:171
msgid "Poke/Prod"
msgstr "Потыкать/Потолкать"
#: src/Module/Contact/Poke.php:172
msgid "poke, prod or do other things to somebody"
msgstr "Потыкать, потолкать или сделать что-то еще с кем-то"
#: src/Module/Contact/Poke.php:174
msgid "Choose what you wish to do to recipient"
msgstr "Выберите действия для получателя"
#: src/Module/Contact/Poke.php:175
msgid "Make this post private"
msgstr "Сделать эту запись личной"
#: src/Module/Contact/Profile.php:127
msgid "Failed to update contact record." msgid "Failed to update contact record."
msgstr "Не удалось обновить запись контакта." msgstr "Не удалось обновить запись контакта."
#: src/Module/Contact/Profile.php:177 #: src/Module/Contact/Profile.php:179
msgid "Contact has been unblocked" msgid "Contact has been unblocked"
msgstr "Контакт разблокирован" msgstr "Контакт разблокирован"
#: src/Module/Contact/Profile.php:181 #: src/Module/Contact/Profile.php:183
msgid "Contact has been blocked" msgid "Contact has been blocked"
msgstr "Контакт заблокирован" msgstr "Контакт заблокирован"
#: src/Module/Contact/Profile.php:193 #: src/Module/Contact/Profile.php:195
msgid "Contact has been unignored" msgid "Contact has been unignored"
msgstr "У контакта отменено игнорирование" msgstr "У контакта отменено игнорирование"
#: src/Module/Contact/Profile.php:197 #: src/Module/Contact/Profile.php:199
msgid "Contact has been ignored" msgid "Contact has been ignored"
msgstr "Контакт проигнорирован" msgstr "Контакт проигнорирован"
#: src/Module/Contact/Profile.php:229 #: src/Module/Contact/Profile.php:231
#, php-format #, php-format
msgid "You are mutual friends with %s" msgid "You are mutual friends with %s"
msgstr "У Вас взаимная дружба с %s" msgstr "У Вас взаимная дружба с %s"
#: src/Module/Contact/Profile.php:230 #: src/Module/Contact/Profile.php:232
#, php-format #, php-format
msgid "You are sharing with %s" msgid "You are sharing with %s"
msgstr "Вы делитесь с %s" msgstr "Вы делитесь с %s"
#: src/Module/Contact/Profile.php:231 #: src/Module/Contact/Profile.php:233
#, php-format #, php-format
msgid "%s is sharing with you" msgid "%s is sharing with you"
msgstr "%s делится с Вами" msgstr "%s делится с Вами"
#: src/Module/Contact/Profile.php:247 #: src/Module/Contact/Profile.php:249
msgid "Private communications are not available for this contact." msgid "Private communications are not available for this contact."
msgstr "Приватные коммуникации недоступны для этого контакта." msgstr "Приватные коммуникации недоступны для этого контакта."
#: src/Module/Contact/Profile.php:249 #: src/Module/Contact/Profile.php:251
msgid "Never" msgid "Never"
msgstr "Никогда" msgstr "Никогда"
#: src/Module/Contact/Profile.php:252 #: src/Module/Contact/Profile.php:254
msgid "(Update was not successful)" msgid "(Update was not successful)"
msgstr "(Обновление не удалось)" msgstr "(Обновление не удалось)"
#: src/Module/Contact/Profile.php:252 #: src/Module/Contact/Profile.php:254
msgid "(Update was successful)" msgid "(Update was successful)"
msgstr "(Обновление было успешно)" msgstr "(Обновление было успешно)"
#: src/Module/Contact/Profile.php:254 src/Module/Contact/Profile.php:420 #: src/Module/Contact/Profile.php:256 src/Module/Contact/Profile.php:422
msgid "Suggest friends" msgid "Suggest friends"
msgstr "Предложить друзей" msgstr "Предложить друзей"
#: src/Module/Contact/Profile.php:258 #: src/Module/Contact/Profile.php:260
#, php-format #, php-format
msgid "Network type: %s" msgid "Network type: %s"
msgstr "Сеть: %s" msgstr "Сеть: %s"
#: src/Module/Contact/Profile.php:263 #: src/Module/Contact/Profile.php:265
msgid "Communications lost with this contact!" msgid "Communications lost with this contact!"
msgstr "Связь с контактом утеряна!" msgstr "Связь с контактом утеряна!"
#: src/Module/Contact/Profile.php:269 #: src/Module/Contact/Profile.php:271
msgid "Fetch further information for feeds" msgid "Fetch further information for feeds"
msgstr "Получить подробную информацию о фидах" msgstr "Получить подробную информацию о фидах"
#: src/Module/Contact/Profile.php:271 #: src/Module/Contact/Profile.php:273
msgid "" msgid ""
"Fetch information like preview pictures, title and teaser from the feed " "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 " "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." "are taken from the meta header in the feed item and are posted as hash tags."
msgstr "Извлекать картинки предпросмотра, заголовок и вступление из записи ленты. Вы можете включить эту опцию, если лента не содержит много текста. Ключевые слова берутся из метаданных записи и публикуются как теги." msgstr "Извлекать картинки предпросмотра, заголовок и вступление из записи ленты. Вы можете включить эту опцию, если лента не содержит много текста. Ключевые слова берутся из метаданных записи и публикуются как теги."
#: src/Module/Contact/Profile.php:274 #: src/Module/Contact/Profile.php:276
msgid "Fetch information" msgid "Fetch information"
msgstr "Получить информацию" msgstr "Получить информацию"
#: src/Module/Contact/Profile.php:275 #: src/Module/Contact/Profile.php:277
msgid "Fetch keywords" msgid "Fetch keywords"
msgstr "Получить ключевые слова" msgstr "Получить ключевые слова"
#: src/Module/Contact/Profile.php:276 #: src/Module/Contact/Profile.php:278
msgid "Fetch information and keywords" msgid "Fetch information and keywords"
msgstr "Получить информацию и ключевые слова" msgstr "Получить информацию и ключевые слова"
#: src/Module/Contact/Profile.php:286 src/Module/Contact/Profile.php:292 #: src/Module/Contact/Profile.php:288 src/Module/Contact/Profile.php:294
#: src/Module/Contact/Profile.php:297 src/Module/Contact/Profile.php:303 #: src/Module/Contact/Profile.php:299 src/Module/Contact/Profile.php:305
msgid "No mirroring" msgid "No mirroring"
msgstr "Не зеркалировать" msgstr "Не зеркалировать"
#: src/Module/Contact/Profile.php:287 #: src/Module/Contact/Profile.php:289
msgid "Mirror as forwarded posting" msgid "Mirror as forwarded posting"
msgstr "Зеркалировать как переадресованные сообщения" msgstr "Зеркалировать как переадресованные сообщения"
#: src/Module/Contact/Profile.php:288 src/Module/Contact/Profile.php:298 #: src/Module/Contact/Profile.php:290 src/Module/Contact/Profile.php:300
#: src/Module/Contact/Profile.php:304 #: src/Module/Contact/Profile.php:306
msgid "Mirror as my own posting" msgid "Mirror as my own posting"
msgstr "Зеркалировать как мои сообщения" msgstr "Зеркалировать как мои сообщения"
#: src/Module/Contact/Profile.php:293 src/Module/Contact/Profile.php:299 #: src/Module/Contact/Profile.php:295 src/Module/Contact/Profile.php:301
msgid "Native reshare" msgid "Native reshare"
msgstr "" msgstr ""
#: src/Module/Contact/Profile.php:316 #: src/Module/Contact/Profile.php:318
msgid "Contact Information / Notes" msgid "Contact Information / Notes"
msgstr "Информация о контакте / Заметки" msgstr "Информация о контакте / Заметки"
#: src/Module/Contact/Profile.php:317 #: src/Module/Contact/Profile.php:319
msgid "Contact Settings" msgid "Contact Settings"
msgstr "Настройки контакта" msgstr "Настройки контакта"
#: src/Module/Contact/Profile.php:325 #: src/Module/Contact/Profile.php:327
msgid "Contact" msgid "Contact"
msgstr "Контакт" msgstr "Контакт"
#: src/Module/Contact/Profile.php:329 #: src/Module/Contact/Profile.php:331
msgid "Their personal note" msgid "Their personal note"
msgstr "Персональная заметка" msgstr "Персональная заметка"
#: src/Module/Contact/Profile.php:331 #: src/Module/Contact/Profile.php:333
msgid "Edit contact notes" msgid "Edit contact notes"
msgstr "Редактировать заметки контакта" msgstr "Редактировать заметки контакта"
#: src/Module/Contact/Profile.php:335 #: src/Module/Contact/Profile.php:337
msgid "Block/Unblock contact" msgid "Block/Unblock contact"
msgstr "Блокировать / Разблокировать контакт" msgstr "Блокировать / Разблокировать контакт"
#: src/Module/Contact/Profile.php:336 #: src/Module/Contact/Profile.php:338
msgid "Ignore contact" msgid "Ignore contact"
msgstr "Игнорировать контакт" msgstr "Игнорировать контакт"
#: src/Module/Contact/Profile.php:337 #: src/Module/Contact/Profile.php:339
msgid "View conversations" msgid "View conversations"
msgstr "Просмотр бесед" msgstr "Просмотр бесед"
#: src/Module/Contact/Profile.php:342 #: src/Module/Contact/Profile.php:344
msgid "Last update:" msgid "Last update:"
msgstr "Последнее обновление: " msgstr "Последнее обновление: "
#: src/Module/Contact/Profile.php:344 #: src/Module/Contact/Profile.php:346
msgid "Update public posts" msgid "Update public posts"
msgstr "Обновить публичные сообщения" msgstr "Обновить публичные сообщения"
#: src/Module/Contact/Profile.php:346 src/Module/Contact/Profile.php:430 #: src/Module/Contact/Profile.php:348 src/Module/Contact/Profile.php:432
msgid "Update now" msgid "Update now"
msgstr "Обновить сейчас" msgstr "Обновить сейчас"
#: src/Module/Contact/Profile.php:353 #: src/Module/Contact/Profile.php:355
msgid "Currently blocked" msgid "Currently blocked"
msgstr "В настоящее время заблокирован" msgstr "В настоящее время заблокирован"
#: src/Module/Contact/Profile.php:354 #: src/Module/Contact/Profile.php:356
msgid "Currently ignored" msgid "Currently ignored"
msgstr "В настоящее время игнорируется" msgstr "В настоящее время игнорируется"
#: src/Module/Contact/Profile.php:355 #: src/Module/Contact/Profile.php:357
msgid "Currently archived" msgid "Currently archived"
msgstr "В данный момент архивирован" msgstr "В данный момент архивирован"
#: src/Module/Contact/Profile.php:356 #: src/Module/Contact/Profile.php:358
msgid "Awaiting connection acknowledge" msgid "Awaiting connection acknowledge"
msgstr "Ожидаем подтверждения соединения" msgstr "Ожидаем подтверждения соединения"
#: src/Module/Contact/Profile.php:357 #: src/Module/Contact/Profile.php:359
#: src/Module/Notifications/Introductions.php:190 #: src/Module/Notifications/Introductions.php:191
msgid "Hide this contact from others" msgid "Hide this contact from others"
msgstr "Скрыть этот контакт от других" msgstr "Скрыть этот контакт от других"
#: src/Module/Contact/Profile.php:357 #: src/Module/Contact/Profile.php:359
msgid "" msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible" "Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Ответы/лайки ваших публичных сообщений <strong>будут</strong> видимы." msgstr "Ответы/лайки ваших публичных сообщений <strong>будут</strong> видимы."
#: src/Module/Contact/Profile.php:358 #: src/Module/Contact/Profile.php:360
msgid "Notification for new posts" msgid "Notification for new posts"
msgstr "Уведомление о новых записях" msgstr "Уведомление о новых записях"
#: src/Module/Contact/Profile.php:358 #: src/Module/Contact/Profile.php:360
msgid "Send a notification of every new post of this contact" msgid "Send a notification of every new post of this contact"
msgstr "Отправлять уведомление о каждом новой записи контакта" msgstr "Отправлять уведомление о каждом новой записи контакта"
#: src/Module/Contact/Profile.php:360 #: src/Module/Contact/Profile.php:362
msgid "Keyword Deny List" msgid "Keyword Deny List"
msgstr "Запретный список слов" msgstr "Запретный список слов"
#: src/Module/Contact/Profile.php:360 #: src/Module/Contact/Profile.php:362
msgid "" msgid ""
"Comma separated list of keywords that should not be converted to hashtags, " "Comma separated list of keywords that should not be converted to hashtags, "
"when \"Fetch information and keywords\" is selected" "when \"Fetch information and keywords\" is selected"
msgstr "Список слов через запятую, которые не должны конвертироваться в хэштеги, когда включено \"Получать информацию и хэштеги\"" msgstr "Список слов через запятую, которые не должны конвертироваться в хэштеги, когда включено \"Получать информацию и хэштеги\""
#: src/Module/Contact/Profile.php:378 #: src/Module/Contact/Profile.php:380
#: src/Module/Settings/TwoFactor/Index.php:132 #: src/Module/Settings/TwoFactor/Index.php:139
msgid "Actions" msgid "Actions"
msgstr "Действия" msgstr "Действия"
#: src/Module/Contact/Profile.php:386 #: src/Module/Contact/Profile.php:388
msgid "Mirror postings from this contact" msgid "Mirror postings from this contact"
msgstr "Зекралировать сообщения от этого контакта" msgstr "Зекралировать сообщения от этого контакта"
#: src/Module/Contact/Profile.php:388 #: src/Module/Contact/Profile.php:390
msgid "" msgid ""
"Mark this contact as remote_self, this will cause friendica to repost new " "Mark this contact as remote_self, this will cause friendica to repost new "
"entries from this contact." "entries from this contact."
msgstr "Пометить этот контакт как remote_self, что заставит Friendica отправлять сообщения от этого контакта." msgstr "Пометить этот контакт как remote_self, что заставит Friendica отправлять сообщения от этого контакта."
#: src/Module/Contact/Profile.php:440 #: src/Module/Contact/Profile.php:442
msgid "Refetch contact data" msgid "Refetch contact data"
msgstr "Обновить данные контакта" msgstr "Обновить данные контакта"
#: src/Module/Contact/Profile.php:451 #: src/Module/Contact/Profile.php:453
msgid "Toggle Blocked status" msgid "Toggle Blocked status"
msgstr "Изменить статус блокированности (заблокировать/разблокировать)" msgstr "Изменить статус блокированности (заблокировать/разблокировать)"
#: src/Module/Contact/Profile.php:459 #: src/Module/Contact/Profile.php:461
msgid "Toggle Ignored status" msgid "Toggle Ignored status"
msgstr "Изменить статус игнорирования" msgstr "Изменить статус игнорирования"
#: src/Module/Contact/Profile.php:466 src/Module/Contact/Revoke.php:105 #: src/Module/Contact/Profile.php:468 src/Module/Contact/Revoke.php:106
msgid "Revoke Follow" msgid "Revoke Follow"
msgstr "Отозвать подписку" msgstr "Отозвать подписку"
#: src/Module/Contact/Profile.php:468 #: src/Module/Contact/Profile.php:470
msgid "Revoke the follow from this contact" msgid "Revoke the follow from this contact"
msgstr "Отменить подписку этого контакта на вас" msgstr "Отменить подписку этого контакта на вас"
#: src/Module/Contact/Revoke.php:62 #: src/Module/Contact/Revoke.php:63
msgid "Unknown contact." msgid "Unknown contact."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:72 src/Module/Group.php:112 #: src/Module/Contact/Revoke.php:73 src/Module/Group.php:110
msgid "Contact is deleted." msgid "Contact is deleted."
msgstr "Контакт удалён." msgstr "Контакт удалён."
#: src/Module/Contact/Revoke.php:76 #: src/Module/Contact/Revoke.php:77
msgid "Contact is being deleted." msgid "Contact is being deleted."
msgstr "" msgstr ""
#: src/Module/Contact/Revoke.php:90 #: src/Module/Contact/Revoke.php:91
msgid "Follow was successfully revoked." msgid "Follow was successfully revoked."
msgstr "Подписка была успешно отозвана." msgstr "Подписка была успешно отозвана."
#: src/Module/Contact/Revoke.php:106 #: src/Module/Contact/Revoke.php:107
msgid "" msgid ""
"Do you really want to revoke this contact's follow? This cannot be undone " "Do you really want to revoke this contact's follow? This cannot be undone "
"and they will have to manually follow you back again." "and they will have to manually follow you back again."
msgstr "Вы действительно хотите отозвать подписку этого контакта на вас? Это нельзя будет отменить позже, им потребуется снова подписаться на вас." msgstr "Вы действительно хотите отозвать подписку этого контакта на вас? Это нельзя будет отменить позже, им потребуется снова подписаться на вас."
#: src/Module/Contact/Revoke.php:107 #: src/Module/Contact/Revoke.php:108
#: src/Module/Notifications/Introductions.php:142 #: src/Module/Notifications/Introductions.php:143
#: src/Module/OAuth/Acknowledge.php:53 src/Module/Register.php:130 #: src/Module/OAuth/Acknowledge.php:53 src/Module/Register.php:130
#: src/Module/Settings/TwoFactor/Trusted.php:125
msgid "Yes" msgid "Yes"
msgstr "Да" msgstr "Да"
#: src/Module/Conversation/Community.php:68 #: src/Module/Conversation/Community.php:73
msgid "Local Community"
msgstr "Местное сообщество"
#: src/Module/Conversation/Community.php:71
msgid "Posts from local users on this server"
msgstr "Записи пользователей с этого сервера"
#: src/Module/Conversation/Community.php:79
msgid "Global Community"
msgstr "Глобальное сообщество"
#: src/Module/Conversation/Community.php:82
msgid "Posts from users of the whole federated network"
msgstr "Записи пользователей со всей федеративной сети"
#: src/Module/Conversation/Community.php:115
msgid "Own Contacts"
msgstr ""
#: src/Module/Conversation/Community.php:119
msgid "Include"
msgstr ""
#: src/Module/Conversation/Community.php:120
msgid "Hide"
msgstr ""
#: src/Module/Conversation/Community.php:137 src/Module/Search/Index.php:137
#: src/Module/Search/Index.php:179
msgid "No results."
msgstr "Нет результатов."
#: src/Module/Conversation/Community.php:162
msgid "" msgid ""
"This community stream shows all public posts received by this node. They may" "This community stream shows all public posts received by this node. They may"
" not reflect the opinions of this nodes users." " not reflect the opinions of this nodes users."
msgstr "Эта общая лента показывает все публичные записи, которые получил этот сервер. Они могут не отражать мнений пользователей этого сервера." msgstr "Эта общая лента показывает все публичные записи, которые получил этот сервер. Они могут не отражать мнений пользователей этого сервера."
#: src/Module/Conversation/Community.php:199 #: src/Module/Conversation/Community.php:86
msgid "Local Community"
msgstr "Местное сообщество"
#: src/Module/Conversation/Community.php:89
msgid "Posts from local users on this server"
msgstr "Записи пользователей с этого сервера"
#: src/Module/Conversation/Community.php:97
msgid "Global Community"
msgstr "Глобальное сообщество"
#: src/Module/Conversation/Community.php:100
msgid "Posts from users of the whole federated network"
msgstr "Записи пользователей со всей федеративной сети"
#: src/Module/Conversation/Community.php:133
msgid "Own Contacts"
msgstr ""
#: src/Module/Conversation/Community.php:137
msgid "Include"
msgstr ""
#: src/Module/Conversation/Community.php:138
msgid "Hide"
msgstr ""
#: src/Module/Conversation/Community.php:155 src/Module/Search/Index.php:151
#: src/Module/Search/Index.php:193
msgid "No results."
msgstr "Нет результатов."
#: src/Module/Conversation/Community.php:211
msgid "Community option not available." msgid "Community option not available."
msgstr "" msgstr ""
#: src/Module/Conversation/Community.php:215 #: src/Module/Conversation/Community.php:227
msgid "Not available." msgid "Not available."
msgstr "Недоступно." msgstr "Недоступно."
#: src/Module/Conversation/Network.php:173 #: src/Module/Conversation/Network.php:172
msgid "No such group" msgid "No such group"
msgstr "Нет такой группы" msgstr "Нет такой группы"
#: src/Module/Conversation/Network.php:177 #: src/Module/Conversation/Network.php:176
#, php-format #, php-format
msgid "Group: %s" msgid "Group: %s"
msgstr "Группа: %s" msgstr "Группа: %s"
#: src/Module/Conversation/Network.php:255 #: src/Module/Conversation/Network.php:254
msgid "Latest Activity" msgid "Latest Activity"
msgstr "Вся активность" msgstr "Вся активность"
#: src/Module/Conversation/Network.php:258 #: src/Module/Conversation/Network.php:257
msgid "Sort by latest activity" msgid "Sort by latest activity"
msgstr "Отсортировать по свежей активности" msgstr "Отсортировать по свежей активности"
#: src/Module/Conversation/Network.php:263 #: src/Module/Conversation/Network.php:262
msgid "Latest Posts" msgid "Latest Posts"
msgstr "Новые записи" msgstr "Новые записи"
#: src/Module/Conversation/Network.php:266 #: src/Module/Conversation/Network.php:265
msgid "Sort by post received date" msgid "Sort by post received date"
msgstr "Отсортировать по времени получения записей" msgstr "Отсортировать по времени получения записей"
#: src/Module/Conversation/Network.php:271 #: src/Module/Conversation/Network.php:270
msgid "Latest Creation" msgid "Latest Creation"
msgstr "По времени" msgstr "По времени"
#: src/Module/Conversation/Network.php:274 #: src/Module/Conversation/Network.php:273
msgid "Sort by post creation date" msgid "Sort by post creation date"
msgstr "Отсортировать по времени создания записей" msgstr "Отсортировать по времени создания записей"
#: src/Module/Conversation/Network.php:279 #: src/Module/Conversation/Network.php:278
#: src/Module/Settings/Profile/Index.php:227 #: src/Module/Settings/Profile/Index.php:227
msgid "Personal" msgid "Personal"
msgstr "Личные" msgstr "Личные"
#: src/Module/Conversation/Network.php:282 #: src/Module/Conversation/Network.php:281
msgid "Posts that mention or involve you" msgid "Posts that mention or involve you"
msgstr "Записи, которые упоминают вас или в которых вы участвуете" msgstr "Записи, которые упоминают вас или в которых вы участвуете"
#: src/Module/Conversation/Network.php:287 src/Object/Post.php:341 #: src/Module/Conversation/Network.php:286 src/Object/Post.php:351
msgid "Starred" msgid "Starred"
msgstr "Избранное" msgstr "Избранное"
#: src/Module/Conversation/Network.php:290 #: src/Module/Conversation/Network.php:289
msgid "Favourite Posts" msgid "Favourite Posts"
msgstr "Избранные записи" msgstr "Избранные записи"
@ -7326,23 +7461,23 @@ msgid ""
"code or the translation of Friendica. Thank you all!" "code or the translation of Friendica. Thank you all!"
msgstr "Friendica это проект сообщества, который был бы невозможен без помощи многих людей. Вот лист тех, кто писал код или помогал с переводом. Спасибо вам всем!" msgstr "Friendica это проект сообщества, который был бы невозможен без помощи многих людей. Вот лист тех, кто писал код или помогал с переводом. Спасибо вам всем!"
#: src/Module/Debug/ActivityPubConversion.php:58 #: src/Module/Debug/ActivityPubConversion.php:53
msgid "Formatted" msgid "Formatted"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:70 #: src/Module/Debug/ActivityPubConversion.php:65
msgid "Activity" msgid "Activity"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:122 #: src/Module/Debug/ActivityPubConversion.php:117
msgid "Object data" msgid "Object data"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:129 #: src/Module/Debug/ActivityPubConversion.php:124
msgid "Result Item" msgid "Result Item"
msgstr "" msgstr ""
#: src/Module/Debug/ActivityPubConversion.php:143 #: src/Module/Debug/ActivityPubConversion.php:138
msgid "Source activity" msgid "Source activity"
msgstr "" msgstr ""
@ -7522,12 +7657,12 @@ msgstr ""
msgid "Twitter Source / Tweet URL (requires API key)" msgid "Twitter Source / Tweet URL (requires API key)"
msgstr "" msgstr ""
#: src/Module/Debug/Feed.php:51 src/Module/Filer/SaveTag.php:46 #: src/Module/Debug/Feed.php:52 src/Module/Filer/SaveTag.php:47
#: src/Module/Settings/Profile/Index.php:141 #: src/Module/Settings/Profile/Index.php:141
msgid "You must be logged in to use this module" msgid "You must be logged in to use this module"
msgstr "Вы должны быть залогинены для использования этого модуля" msgstr "Вы должны быть залогинены для использования этого модуля"
#: src/Module/Debug/Feed.php:76 #: src/Module/Debug/Feed.php:77
msgid "Source URL" msgid "Source URL"
msgstr "Исходный URL" msgstr "Исходный URL"
@ -7584,197 +7719,201 @@ msgstr ""
msgid "Lookup address:" msgid "Lookup address:"
msgstr "" msgstr ""
#: src/Module/Delegation.php:111 #: src/Module/Delegation.php:110
#, php-format #, php-format
msgid "You are now logged in as %s" msgid "You are now logged in as %s"
msgstr "Вы вошли как %s" msgstr "Вы вошли как %s"
#: src/Module/Delegation.php:143 #: src/Module/Delegation.php:142
msgid "Switch between your accounts" msgid "Switch between your accounts"
msgstr "Переключить учётную запись" msgstr "Переключить учётную запись"
#: src/Module/Delegation.php:144 #: src/Module/Delegation.php:143
msgid "Manage your accounts" msgid "Manage your accounts"
msgstr "Управление учётными записями" msgstr "Управление учётными записями"
#: src/Module/Delegation.php:145 #: src/Module/Delegation.php:144
msgid "" msgid ""
"Toggle between different identities or community/group pages which share " "Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions" "your account details or which you have been granted \"manage\" permissions"
msgstr "Переключайтесь между разными профилями или страницами сообществ/групп, которые зарегистрированы на одинаковые контактные данные, либо вам предоставлено право управления ими." msgstr "Переключайтесь между разными профилями или страницами сообществ/групп, которые зарегистрированы на одинаковые контактные данные, либо вам предоставлено право управления ими."
#: src/Module/Delegation.php:146 #: src/Module/Delegation.php:145
msgid "Select an identity to manage: " msgid "Select an identity to manage: "
msgstr "Выберите учётную запись:" msgstr "Выберите учётную запись:"
#: src/Module/Directory.php:75 #: src/Module/Directory.php:74
msgid "No entries (some entries may be hidden)." msgid "No entries (some entries may be hidden)."
msgstr "Нет записей (некоторые записи могут быть скрыты)." msgstr "Нет записей (некоторые записи могут быть скрыты)."
#: src/Module/Directory.php:91 #: src/Module/Directory.php:90
msgid "Find on this site" msgid "Find on this site"
msgstr "Найти на этом сайте" msgstr "Найти на этом сайте"
#: src/Module/Directory.php:93 #: src/Module/Directory.php:92
msgid "Results for:" msgid "Results for:"
msgstr "Результаты для:" msgstr "Результаты для:"
#: src/Module/Directory.php:95 #: src/Module/Directory.php:94
msgid "Site Directory" msgid "Site Directory"
msgstr "Каталог сайта" msgstr "Каталог сайта"
#: src/Module/Filer/RemoveTag.php:68 #: src/Module/Filer/RemoveTag.php:102
msgid "Item was not removed"
msgstr "Запись не была удалена"
#: src/Module/Filer/RemoveTag.php:71
msgid "Item was not deleted" msgid "Item was not deleted"
msgstr "Запись не была удалена" msgstr "Запись не была удалена"
#: src/Module/Filer/SaveTag.php:72 #: src/Module/Filer/RemoveTag.php:112
msgid "Item was not removed"
msgstr "Запись не была удалена"
#: src/Module/Filer/SaveTag.php:73
msgid "- select -" msgid "- select -"
msgstr "- выбрать -" msgstr "- выбрать -"
#: src/Module/FriendSuggest.php:81 #: src/Module/FriendSuggest.php:82
msgid "Suggested contact not found." msgid "Suggested contact not found."
msgstr "Рекомендованный контакт не найден." msgstr "Рекомендованный контакт не найден."
#: src/Module/FriendSuggest.php:99 #: src/Module/FriendSuggest.php:100
msgid "Friend suggestion sent." msgid "Friend suggestion sent."
msgstr "Приглашение в друзья отправлено." msgstr "Приглашение в друзья отправлено."
#: src/Module/FriendSuggest.php:136 #: src/Module/FriendSuggest.php:137
msgid "Suggest Friends" msgid "Suggest Friends"
msgstr "Предложить друзей" msgstr "Предложить друзей"
#: src/Module/FriendSuggest.php:139 #: src/Module/FriendSuggest.php:140
#, php-format #, php-format
msgid "Suggest a friend for %s" msgid "Suggest a friend for %s"
msgstr "Предложить друга для %s." msgstr "Предложить друга для %s."
#: src/Module/Friendica.php:62 #: src/Module/Friendica.php:63
msgid "Installed addons/apps:" msgid "Installed addons/apps:"
msgstr "Установленные дополнения:" msgstr "Установленные дополнения:"
#: src/Module/Friendica.php:67 #: src/Module/Friendica.php:68
msgid "No installed addons/apps" msgid "No installed addons/apps"
msgstr "Нет установленных дополнений" msgstr "Нет установленных дополнений"
#: src/Module/Friendica.php:72 #: src/Module/Friendica.php:73
#, php-format #, php-format
msgid "Read about the <a href=\"%1$s/tos\">Terms of Service</a> of this node." msgid "Read about the <a href=\"%1$s/tos\">Terms of Service</a> of this node."
msgstr "Ознакомьтесь с <a href=\"%1$s/tos\">Условиями Предоставления Услуг</a> этого узла." msgstr "Ознакомьтесь с <a href=\"%1$s/tos\">Условиями Предоставления Услуг</a> этого узла."
#: src/Module/Friendica.php:79 #: src/Module/Friendica.php:80
msgid "On this server the following remote servers are blocked." msgid "On this server the following remote servers are blocked."
msgstr "На этом сервере заблокированы следующие удалённые серверы." msgstr "На этом сервере заблокированы следующие удалённые серверы."
#: src/Module/Friendica.php:97 #: src/Module/Friendica.php:85
msgid "Download this list in CSV format"
msgstr "Скачать этот список в формате CSV"
#: src/Module/Friendica.php:99
#, php-format #, php-format
msgid "" msgid ""
"This is Friendica, version %s that is running at the web location %s. The " "This is Friendica, version %s that is running at the web location %s. The "
"database version is %s, the post update version is %s." "database version is %s, the post update version is %s."
msgstr "Это сервер Friendica, версия %s, работающий по адресу %s. Версия базы данных %s, версия post update %s." msgstr "Это сервер Friendica, версия %s, работающий по адресу %s. Версия базы данных %s, версия post update %s."
#: src/Module/Friendica.php:102 #: src/Module/Friendica.php:104
msgid "" msgid ""
"Please visit <a href=\"https://friendi.ca\">Friendi.ca</a> to learn more " "Please visit <a href=\"https://friendi.ca\">Friendi.ca</a> to learn more "
"about the Friendica project." "about the Friendica project."
msgstr "Посетите <a href=\"https://friendi.ca\">Friendi.ca</a>, чтобы узнать больше о проекте Friendica." msgstr "Посетите <a href=\"https://friendi.ca\">Friendi.ca</a>, чтобы узнать больше о проекте Friendica."
#: src/Module/Friendica.php:103 #: src/Module/Friendica.php:105
msgid "Bug reports and issues: please visit" msgid "Bug reports and issues: please visit"
msgstr "Отчет об ошибках и проблемах: пожалуйста, посетите" msgstr "Отчет об ошибках и проблемах: пожалуйста, посетите"
#: src/Module/Friendica.php:103 #: src/Module/Friendica.php:105
msgid "the bugtracker at github" msgid "the bugtracker at github"
msgstr "багтрекер на github" msgstr "багтрекер на github"
#: src/Module/Friendica.php:104 #: src/Module/Friendica.php:106
msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"
msgstr "Предложения, отзывы, похвала - пишите нам на info[собака]friendi[точка]ca" msgstr "Предложения, отзывы, похвала - пишите нам на info[собака]friendi[точка]ca"
#: src/Module/Group.php:58 #: src/Module/Group.php:56
msgid "Could not create group." msgid "Could not create group."
msgstr "Не удалось создать группу." msgstr "Не удалось создать группу."
#: src/Module/Group.php:69 src/Module/Group.php:215 src/Module/Group.php:239 #: src/Module/Group.php:67 src/Module/Group.php:213 src/Module/Group.php:237
msgid "Group not found." msgid "Group not found."
msgstr "Группа не найдена." msgstr "Группа не найдена."
#: src/Module/Group.php:75 #: src/Module/Group.php:73
msgid "Group name was not changed." msgid "Group name was not changed."
msgstr "Название группы не изменено." msgstr "Название группы не изменено."
#: src/Module/Group.php:93 #: src/Module/Group.php:91
msgid "Unknown group." msgid "Unknown group."
msgstr "Неизвестная группа." msgstr "Неизвестная группа."
#: src/Module/Group.php:118 #: src/Module/Group.php:116
msgid "Unable to add the contact to the group." msgid "Unable to add the contact to the group."
msgstr "Не удалось добавить контакт в группу." msgstr "Не удалось добавить контакт в группу."
#: src/Module/Group.php:121 #: src/Module/Group.php:119
msgid "Contact successfully added to group." msgid "Contact successfully added to group."
msgstr "Контакт успешно добавлен в группу." msgstr "Контакт успешно добавлен в группу."
#: src/Module/Group.php:125 #: src/Module/Group.php:123
msgid "Unable to remove the contact from the group." msgid "Unable to remove the contact from the group."
msgstr "Не удалось удалить контакт из группы." msgstr "Не удалось удалить контакт из группы."
#: src/Module/Group.php:128 #: src/Module/Group.php:126
msgid "Contact successfully removed from group." msgid "Contact successfully removed from group."
msgstr "Контакт успешно удалён из группы." msgstr "Контакт успешно удалён из группы."
#: src/Module/Group.php:132 #: src/Module/Group.php:130
msgid "Bad request." msgid "Bad request."
msgstr "Ошибочный запрос." msgstr "Ошибочный запрос."
#: src/Module/Group.php:171 #: src/Module/Group.php:169
msgid "Save Group" msgid "Save Group"
msgstr "Сохранить группу" msgstr "Сохранить группу"
#: src/Module/Group.php:172 #: src/Module/Group.php:170
msgid "Filter" msgid "Filter"
msgstr "Фильтр" msgstr "Фильтр"
#: src/Module/Group.php:178 #: src/Module/Group.php:176
msgid "Create a group of contacts/friends." msgid "Create a group of contacts/friends."
msgstr "Создать группу контактов / друзей." msgstr "Создать группу контактов / друзей."
#: src/Module/Group.php:220 #: src/Module/Group.php:218
msgid "Unable to remove group." msgid "Unable to remove group."
msgstr "Не удается удалить группу." msgstr "Не удается удалить группу."
#: src/Module/Group.php:271 #: src/Module/Group.php:269
msgid "Delete Group" msgid "Delete Group"
msgstr "Удалить группу" msgstr "Удалить группу"
#: src/Module/Group.php:281 #: src/Module/Group.php:279
msgid "Edit Group Name" msgid "Edit Group Name"
msgstr "Изменить имя группы" msgstr "Изменить имя группы"
#: src/Module/Group.php:291 #: src/Module/Group.php:289
msgid "Members" msgid "Members"
msgstr "Участники" msgstr "Участники"
#: src/Module/Group.php:294 #: src/Module/Group.php:292
msgid "Group is empty" msgid "Group is empty"
msgstr "Группа пуста" msgstr "Группа пуста"
#: src/Module/Group.php:307 #: src/Module/Group.php:305
msgid "Remove contact from group" msgid "Remove contact from group"
msgstr "Удалить контакт из группы" msgstr "Удалить контакт из группы"
#: src/Module/Group.php:328 #: src/Module/Group.php:326
msgid "Click on a contact to add or remove." msgid "Click on a contact to add or remove."
msgstr "Нажмите на контакт, чтобы добавить или удалить." msgstr "Нажмите на контакт, чтобы добавить или удалить."
#: src/Module/Group.php:342 #: src/Module/Group.php:340
msgid "Add contact to group" msgid "Add contact to group"
msgstr "Добавить контакт в группу" msgstr "Добавить контакт в группу"
#: src/Module/HCard.php:46 #: src/Module/HCard.php:45
msgid "No profile" msgid "No profile"
msgstr "Нет профиля" msgstr "Нет профиля"
@ -8054,41 +8193,47 @@ msgid ""
"important, please visit http://friendi.ca" "important, please visit http://friendi.ca"
msgstr "Чтобы узнать больше о проекте Friendica и почему мы считаем это важным, посетите http://friendi.ca" msgstr "Чтобы узнать больше о проекте Friendica и почему мы считаем это важным, посетите http://friendi.ca"
#: src/Module/Item/Compose.php:50 #: src/Module/Item/Compose.php:85
msgid "Please enter a post body." msgid "Please enter a post body."
msgstr "Пожалуйста, введите текст записи." msgstr "Пожалуйста, введите текст записи."
#: src/Module/Item/Compose.php:63 #: src/Module/Item/Compose.php:98
msgid "This feature is only available with the frio theme." msgid "This feature is only available with the frio theme."
msgstr "Эта функция доступна только для темы frio." msgstr "Эта функция доступна только для темы frio."
#: src/Module/Item/Compose.php:90 #: src/Module/Item/Compose.php:122
msgid "Compose new personal note" msgid "Compose new personal note"
msgstr "Создать новую личную заметку" msgstr "Создать новую личную заметку"
#: src/Module/Item/Compose.php:99 #: src/Module/Item/Compose.php:131
msgid "Compose new post" msgid "Compose new post"
msgstr "Создать новую запись" msgstr "Создать новую запись"
#: src/Module/Item/Compose.php:153 #: src/Module/Item/Compose.php:187
msgid "Visibility" msgid "Visibility"
msgstr "Видимость" msgstr "Видимость"
#: src/Module/Item/Compose.php:174 #: src/Module/Item/Compose.php:201
msgid "Clear the location" msgid "Clear the location"
msgstr "Очистить локацию" msgstr "Очистить локацию"
#: src/Module/Item/Compose.php:175 #: src/Module/Item/Compose.php:202
msgid "Location services are unavailable on your device" msgid "Location services are unavailable on your device"
msgstr "Геолокация на вашем устройстве недоступна" msgstr "Геолокация на вашем устройстве недоступна"
#: src/Module/Item/Compose.php:176 #: src/Module/Item/Compose.php:203
msgid "" msgid ""
"Location services are disabled. Please check the website's permissions on " "Location services are disabled. Please check the website's permissions on "
"your device" "your device"
msgstr "Геолокация отключена. Пожалуйста, проверьте разрешения этого сайта на вашем устройстве" msgstr "Геолокация отключена. Пожалуйста, проверьте разрешения этого сайта на вашем устройстве"
#: src/Module/Item/Follow.php:52 #: src/Module/Item/Compose.php:209
msgid ""
"You can make this page always open when you use the New Post button in the "
"<a href=\"/settings/display\">Theme Customization settings</a>."
msgstr ""
#: src/Module/Item/Follow.php:51
msgid "Unable to follow this item." msgid "Unable to follow this item."
msgstr "Не получается подписаться на эту запись." msgstr "Не получается подписаться на эту запись."
@ -8107,69 +8252,70 @@ msgstr "Этот сервер Friendica в настоящее время зак
msgid "A Decentralized Social Network" msgid "A Decentralized Social Network"
msgstr "Децентрализованная социальная сеть" msgstr "Децентрализованная социальная сеть"
#: src/Module/Notifications/Introductions.php:97 #: src/Module/Notifications/Introductions.php:98
msgid "Show Ignored Requests" msgid "Show Ignored Requests"
msgstr "Показать проигнорированные запросы" msgstr "Показать проигнорированные запросы"
#: src/Module/Notifications/Introductions.php:97 #: src/Module/Notifications/Introductions.php:98
msgid "Hide Ignored Requests" msgid "Hide Ignored Requests"
msgstr "Скрыть проигнорированные запросы" msgstr "Скрыть проигнорированные запросы"
#: src/Module/Notifications/Introductions.php:113 #: src/Module/Notifications/Introductions.php:114
#: src/Module/Notifications/Introductions.php:176 #: src/Module/Notifications/Introductions.php:177
msgid "Notification type:" msgid "Notification type:"
msgstr "Тип уведомления:" msgstr "Тип уведомления:"
#: src/Module/Notifications/Introductions.php:116 #: src/Module/Notifications/Introductions.php:117
msgid "Suggested by:" msgid "Suggested by:"
msgstr "Рекомендовано:" msgstr "Рекомендовано:"
#: src/Module/Notifications/Introductions.php:141 #: src/Module/Notifications/Introductions.php:142
msgid "Claims to be known to you: " msgid "Claims to be known to you: "
msgstr "Утверждения, о которых должно быть вам известно: " msgstr "Утверждения, о которых должно быть вам известно: "
#: src/Module/Notifications/Introductions.php:142 #: src/Module/Notifications/Introductions.php:143
#: src/Module/OAuth/Acknowledge.php:54 src/Module/Register.php:131 #: src/Module/OAuth/Acknowledge.php:54 src/Module/Register.php:131
#: src/Module/Settings/TwoFactor/Trusted.php:125
msgid "No" msgid "No"
msgstr "Нет" msgstr "Нет"
#: src/Module/Notifications/Introductions.php:150 #: src/Module/Notifications/Introductions.php:151
msgid "Shall your connection be bidirectional or not?" msgid "Shall your connection be bidirectional or not?"
msgstr "Должно ли ваше соединение быть двухсторонним или нет?" msgstr "Должно ли ваше соединение быть двухсторонним или нет?"
#: src/Module/Notifications/Introductions.php:151 #: src/Module/Notifications/Introductions.php:152
#, php-format #, php-format
msgid "" msgid ""
"Accepting %s as a friend allows %s to subscribe to your posts, and you will " "Accepting %s as a friend allows %s to subscribe to your posts, and you will "
"also receive updates from them in your news feed." "also receive updates from them in your news feed."
msgstr "Принимая %s как друга вы позволяете %s читать ему свои записи, а также будете получать записи от него." msgstr "Принимая %s как друга вы позволяете %s читать ему свои записи, а также будете получать записи от него."
#: src/Module/Notifications/Introductions.php:152 #: src/Module/Notifications/Introductions.php:153
#, php-format #, php-format
msgid "" msgid ""
"Accepting %s as a subscriber allows them to subscribe to your posts, but you" "Accepting %s as a subscriber allows them to subscribe to your posts, but you"
" will not receive updates from them in your news feed." " will not receive updates from them in your news feed."
msgstr "Принимая %s как подписчика вы позволяете читать ему свои записи, но вы не будете получать записей от него." msgstr "Принимая %s как подписчика вы позволяете читать ему свои записи, но вы не будете получать записей от него."
#: src/Module/Notifications/Introductions.php:154 #: src/Module/Notifications/Introductions.php:155
msgid "Friend" msgid "Friend"
msgstr "Друг" msgstr "Друг"
#: src/Module/Notifications/Introductions.php:155 #: src/Module/Notifications/Introductions.php:156
msgid "Subscriber" msgid "Subscriber"
msgstr "Подписчик" msgstr "Подписчик"
#: src/Module/Notifications/Introductions.php:214 #: src/Module/Notifications/Introductions.php:215
msgid "No introductions." msgid "No introductions."
msgstr "Запросов нет." msgstr "Запросов нет."
#: src/Module/Notifications/Introductions.php:215 #: src/Module/Notifications/Introductions.php:216
#: src/Module/Notifications/Notifications.php:134 #: src/Module/Notifications/Notifications.php:134
#, php-format #, php-format
msgid "No more %s notifications." msgid "No more %s notifications."
msgstr "Больше нет уведомлений о %s." msgstr "Больше нет уведомлений о %s."
#: src/Module/Notifications/Notification.php:134 #: src/Module/Notifications/Notification.php:135
msgid "You must be logged in to show this page." msgid "You must be logged in to show this page."
msgstr "Вам нужно войти, чтобы увидеть эту страницу." msgstr "Вам нужно войти, чтобы увидеть эту страницу."
@ -8193,11 +8339,11 @@ msgstr "Уведомления"
msgid "Show unread" msgid "Show unread"
msgstr "Показать непрочитанные" msgstr "Показать непрочитанные"
#: src/Module/Notifications/Ping.php:221 #: src/Module/Notifications/Ping.php:224
msgid "{0} requested registration" msgid "{0} requested registration"
msgstr "{0} требуемая регистрация" msgstr "{0} требуемая регистрация"
#: src/Module/Notifications/Ping.php:232 #: src/Module/Notifications/Ping.php:235
#, php-format #, php-format
msgid "{0} and %d others requested registration" msgid "{0} and %d others requested registration"
msgstr "" msgstr ""
@ -8301,48 +8447,48 @@ msgstr ""
msgid "Invalid photo with id %s." msgid "Invalid photo with id %s."
msgstr "Неправильное фото с id %s." msgstr "Неправильное фото с id %s."
#: src/Module/Profile/Contacts.php:120 #: src/Module/Profile/Contacts.php:119
msgid "No contacts." msgid "No contacts."
msgstr "Нет контактов." msgstr "Нет контактов."
#: src/Module/Profile/Profile.php:82 #: src/Module/Profile/Profile.php:81
msgid "Profile not found." msgid "Profile not found."
msgstr "Профиль не найден." msgstr "Профиль не найден."
#: src/Module/Profile/Profile.php:135 #: src/Module/Profile/Profile.php:134
#, php-format #, php-format
msgid "" msgid ""
"You're currently viewing your profile as <b>%s</b> <a href=\"%s\" " "You're currently viewing your profile as <b>%s</b> <a href=\"%s\" "
"class=\"btn btn-sm pull-right\">Cancel</a>" "class=\"btn btn-sm pull-right\">Cancel</a>"
msgstr "Сейчас вы видите свой профиль как <b>%s</b> <a href=\"%s\" class=\"btn btn-sm pull-right\">Отмена</a>" msgstr "Сейчас вы видите свой профиль как <b>%s</b> <a href=\"%s\" class=\"btn btn-sm pull-right\">Отмена</a>"
#: src/Module/Profile/Profile.php:144 src/Module/Settings/Account.php:575 #: src/Module/Profile/Profile.php:143 src/Module/Settings/Account.php:579
msgid "Full Name:" msgid "Full Name:"
msgstr "Полное имя:" msgstr "Полное имя:"
#: src/Module/Profile/Profile.php:149 #: src/Module/Profile/Profile.php:148
msgid "Member since:" msgid "Member since:"
msgstr "Зарегистрирован с:" msgstr "Зарегистрирован с:"
#: src/Module/Profile/Profile.php:155 #: src/Module/Profile/Profile.php:154
msgid "j F, Y" msgid "j F, Y"
msgstr "j F, Y" msgstr "j F, Y"
#: src/Module/Profile/Profile.php:156 #: src/Module/Profile/Profile.php:155
msgid "j F" msgid "j F"
msgstr "j F" msgstr "j F"
#: src/Module/Profile/Profile.php:164 src/Util/Temporal.php:163 #: src/Module/Profile/Profile.php:163 src/Util/Temporal.php:167
msgid "Birthday:" msgid "Birthday:"
msgstr "День рождения:" msgstr "День рождения:"
#: src/Module/Profile/Profile.php:167 #: src/Module/Profile/Profile.php:166
#: src/Module/Settings/Profile/Index.php:245 src/Util/Temporal.php:165 #: src/Module/Settings/Profile/Index.php:245 src/Util/Temporal.php:169
msgid "Age: " msgid "Age: "
msgstr "Возраст: " msgstr "Возраст: "
#: src/Module/Profile/Profile.php:167 #: src/Module/Profile/Profile.php:166
#: src/Module/Settings/Profile/Index.php:245 src/Util/Temporal.php:165 #: src/Module/Settings/Profile/Index.php:245 src/Util/Temporal.php:169
#, php-format #, php-format
msgid "%d year old" msgid "%d year old"
msgid_plural "%d years old" msgid_plural "%d years old"
@ -8351,33 +8497,33 @@ msgstr[1] "%dгода"
msgstr[2] "%dлет" msgstr[2] "%dлет"
msgstr[3] "%dлет" msgstr[3] "%dлет"
#: src/Module/Profile/Profile.php:234 #: src/Module/Profile/Profile.php:233
msgid "Forums:" msgid "Forums:"
msgstr "Форумы:" msgstr "Форумы:"
#: src/Module/Profile/Profile.php:246 #: src/Module/Profile/Profile.php:245
msgid "View profile as:" msgid "View profile as:"
msgstr "Посмотреть профиль как:" msgstr "Посмотреть профиль как:"
#: src/Module/Profile/Profile.php:263 #: src/Module/Profile/Profile.php:262
msgid "View as" msgid "View as"
msgstr "Посмотреть как" msgstr "Посмотреть как"
#: src/Module/Profile/Profile.php:326 src/Module/Profile/Profile.php:329 #: src/Module/Profile/Profile.php:325 src/Module/Profile/Profile.php:328
#: src/Module/Profile/Status.php:66 src/Module/Profile/Status.php:69 #: src/Module/Profile/Status.php:65 src/Module/Profile/Status.php:68
#: src/Protocol/Feed.php:1017 src/Protocol/OStatus.php:1245 #: src/Protocol/Feed.php:1028 src/Protocol/OStatus.php:1047
#, php-format #, php-format
msgid "%s's timeline" msgid "%s's timeline"
msgstr "Лента %s" msgstr "Лента %s"
#: src/Module/Profile/Profile.php:327 src/Module/Profile/Status.php:67 #: src/Module/Profile/Profile.php:326 src/Module/Profile/Status.php:66
#: src/Protocol/Feed.php:1021 src/Protocol/OStatus.php:1249 #: src/Protocol/Feed.php:1032 src/Protocol/OStatus.php:1052
#, php-format #, php-format
msgid "%s's posts" msgid "%s's posts"
msgstr "Записи %s" msgstr "Записи %s"
#: src/Module/Profile/Profile.php:328 src/Module/Profile/Status.php:68 #: src/Module/Profile/Profile.php:327 src/Module/Profile/Status.php:67
#: src/Protocol/Feed.php:1024 src/Protocol/OStatus.php:1252 #: src/Protocol/Feed.php:1035 src/Protocol/OStatus.php:1056
#, php-format #, php-format
msgid "%s's comments" msgid "%s's comments"
msgstr "Комментарии %s" msgstr "Комментарии %s"
@ -8448,7 +8594,8 @@ msgstr "Ваш адрес электронной почты: (Информаци
msgid "Please repeat your e-mail address:" msgid "Please repeat your e-mail address:"
msgstr "Пожалуйста, введите адрес электронной почты ещё раз:" msgstr "Пожалуйста, введите адрес электронной почты ещё раз:"
#: src/Module/Register.php:162 src/Module/Settings/Account.php:566 #: src/Module/Register.php:162 src/Module/Security/PasswordTooLong.php:98
#: src/Module/Settings/Account.php:570
msgid "New Password:" msgid "New Password:"
msgstr "Новый пароль:" msgstr "Новый пароль:"
@ -8456,7 +8603,8 @@ msgstr "Новый пароль:"
msgid "Leave empty for an auto generated password." msgid "Leave empty for an auto generated password."
msgstr "Оставьте пустым для автоматической генерации пароля." msgstr "Оставьте пустым для автоматической генерации пароля."
#: src/Module/Register.php:163 src/Module/Settings/Account.php:567 #: src/Module/Register.php:163 src/Module/Security/PasswordTooLong.php:99
#: src/Module/Settings/Account.php:571
msgid "Confirm:" msgid "Confirm:"
msgstr "Подтвердите:" msgstr "Подтвердите:"
@ -8479,11 +8627,11 @@ msgstr "Импорт своего профиля в этот экземпляр
msgid "Note: This node explicitly contains adult content" msgid "Note: This node explicitly contains adult content"
msgstr "Внимание: на этом сервере размещаются материалы для взрослых." msgstr "Внимание: на этом сервере размещаются материалы для взрослых."
#: src/Module/Register.php:183 src/Module/Settings/Delegation.php:155 #: src/Module/Register.php:183 src/Module/Settings/Delegation.php:154
msgid "Parent Password:" msgid "Parent Password:"
msgstr "Родительский пароль:" msgstr "Родительский пароль:"
#: src/Module/Register.php:183 src/Module/Settings/Delegation.php:155 #: src/Module/Register.php:183 src/Module/Settings/Delegation.php:154
msgid "" msgid ""
"Please enter the password of the parent account to legitimize your request." "Please enter the password of the parent account to legitimize your request."
msgstr "Пожалуйста введите пароль от родительского аккаунта для подтверждения запроса." msgstr "Пожалуйста введите пароль от родительского аккаунта для подтверждения запроса."
@ -8536,29 +8684,29 @@ msgstr "Вам нужно написать обращение к админис
msgid "Your registration is pending approval by the site owner." msgid "Your registration is pending approval by the site owner."
msgstr "Ваша регистрация в ожидании одобрения владельцем сайта." msgstr "Ваша регистрация в ожидании одобрения владельцем сайта."
#: src/Module/RemoteFollow.php:71 #: src/Module/RemoteFollow.php:72
msgid "Profile unavailable." msgid "Profile unavailable."
msgstr "Профиль недоступен." msgstr "Профиль недоступен."
#: src/Module/RemoteFollow.php:77 #: src/Module/RemoteFollow.php:78
msgid "Invalid locator" msgid "Invalid locator"
msgstr "Недопустимый локатор" msgstr "Недопустимый локатор"
#: src/Module/RemoteFollow.php:84 #: src/Module/RemoteFollow.php:85
msgid "The provided profile link doesn't seem to be valid" msgid "The provided profile link doesn't seem to be valid"
msgstr "Указанная ссылка на профиль не выглядит правильной" msgstr "Указанная ссылка на профиль не выглядит правильной"
#: src/Module/RemoteFollow.php:89 #: src/Module/RemoteFollow.php:90
msgid "" msgid ""
"Remote subscription can't be done for your network. Please subscribe " "Remote subscription can't be done for your network. Please subscribe "
"directly on your system." "directly on your system."
msgstr "Удаленная подписка не может быть выполнена на вашей сети. Пожалуйста, подпишитесь на вашей системе." msgstr "Удаленная подписка не может быть выполнена на вашей сети. Пожалуйста, подпишитесь на вашей системе."
#: src/Module/RemoteFollow.php:121 #: src/Module/RemoteFollow.php:122
msgid "Friend/Connection Request" msgid "Friend/Connection Request"
msgstr "Запрос в друзья / на подключение" msgstr "Запрос в друзья / на подключение"
#: src/Module/RemoteFollow.php:122 #: src/Module/RemoteFollow.php:123
#, php-format #, php-format
msgid "" msgid ""
"Enter your Webfinger address (user@domain.tld) or profile URL here. If this " "Enter your Webfinger address (user@domain.tld) or profile URL here. If this "
@ -8566,89 +8714,97 @@ msgid ""
" or <strong>%s</strong> directly on your system." " or <strong>%s</strong> directly on your system."
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:123 #: src/Module/RemoteFollow.php:124
#, php-format #, php-format
msgid "" msgid ""
"If you are not yet a member of the free social web, <a href=\"%s\">follow " "If you are not yet a member of the free social web, <a href=\"%s\">follow "
"this link to find a public Friendica node and join us today</a>." "this link to find a public Friendica node and join us today</a>."
msgstr "Если вы ещё не член свободной социальной сети, <a href=\"%s\">пройдите по этой ссылке, чтобы найти публичный узел Friendica и присоединитесь к нам сегодня</a>." msgstr "Если вы ещё не член свободной социальной сети, <a href=\"%s\">пройдите по этой ссылке, чтобы найти публичный узел Friendica и присоединитесь к нам сегодня</a>."
#: src/Module/RemoteFollow.php:124 #: src/Module/RemoteFollow.php:125
msgid "Your Webfinger address or profile URL:" msgid "Your Webfinger address or profile URL:"
msgstr "Ваш адрес Webfinger или ссылка на профиль:" msgstr "Ваш адрес Webfinger или ссылка на профиль:"
#: src/Module/Search/Index.php:54 #: src/Module/Search/Acl.php:55
msgid "You must be logged in to use this module."
msgstr "Вам нужно войти, чтобы использовать этот модуль."
#: src/Module/Search/Index.php:68
msgid "Only logged in users are permitted to perform a search." msgid "Only logged in users are permitted to perform a search."
msgstr "Только зарегистрированные пользователи могут использовать поиск." msgstr "Только зарегистрированные пользователи могут использовать поиск."
#: src/Module/Search/Index.php:74 #: src/Module/Search/Index.php:88
msgid "Only one search per minute is permitted for not logged in users." msgid "Only one search per minute is permitted for not logged in users."
msgstr "Незарегистрированные пользователи могут выполнять поиск раз в минуту." msgstr "Незарегистрированные пользователи могут выполнять поиск раз в минуту."
#: src/Module/Search/Index.php:190 #: src/Module/Search/Index.php:204
#, php-format #, php-format
msgid "Items tagged with: %s" msgid "Items tagged with: %s"
msgstr "Элементы с тегами: %s" msgstr "Элементы с тегами: %s"
#: src/Module/Search/Saved.php:58 #: src/Module/Search/Saved.php:59
msgid "Search term was not saved." msgid "Search term was not saved."
msgstr "Поисковый запрос не сохранён." msgstr "Поисковый запрос не сохранён."
#: src/Module/Search/Saved.php:61 #: src/Module/Search/Saved.php:62
msgid "Search term already saved." msgid "Search term already saved."
msgstr "Такой запрос уже сохранён." msgstr "Такой запрос уже сохранён."
#: src/Module/Search/Saved.php:67 #: src/Module/Search/Saved.php:68
msgid "Search term was not removed." msgid "Search term was not removed."
msgstr "Поисковый запрос не был удалён." msgstr "Поисковый запрос не был удалён."
#: src/Module/Security/Login.php:104 #: src/Module/Security/Login.php:123
msgid "Create a New Account" msgid "Create a New Account"
msgstr "Создать новый аккаунт" msgstr "Создать новый аккаунт"
#: src/Module/Security/Login.php:129 #: src/Module/Security/Login.php:143
msgid "Your OpenID: " msgid "Your OpenID: "
msgstr "Ваш OpenID: " msgstr "Ваш OpenID: "
#: src/Module/Security/Login.php:132 #: src/Module/Security/Login.php:146
msgid "" msgid ""
"Please enter your username and password to add the OpenID to your existing " "Please enter your username and password to add the OpenID to your existing "
"account." "account."
msgstr "Пожалуйста, введите ваше имя пользователя и пароль для того, чтобы добавить OpenID к вашей учётной записи." msgstr "Пожалуйста, введите ваше имя пользователя и пароль для того, чтобы добавить OpenID к вашей учётной записи."
#: src/Module/Security/Login.php:134 #: src/Module/Security/Login.php:148
msgid "Or login using OpenID: " msgid "Or login using OpenID: "
msgstr "Или зайти с OpenID: " msgstr "Или зайти с OpenID: "
#: src/Module/Security/Login.php:148 #: src/Module/Security/Login.php:162
msgid "Password: " msgid "Password: "
msgstr "Пароль: " msgstr "Пароль: "
#: src/Module/Security/Login.php:149 #: src/Module/Security/Login.php:163
msgid "Remember me" msgid "Remember me"
msgstr "Запомнить" msgstr "Запомнить"
#: src/Module/Security/Login.php:158 #: src/Module/Security/Login.php:172
msgid "Forgot your password?" msgid "Forgot your password?"
msgstr "Забыли пароль?" msgstr "Забыли пароль?"
#: src/Module/Security/Login.php:161 #: src/Module/Security/Login.php:175
msgid "Website Terms of Service" msgid "Website Terms of Service"
msgstr "Правила сайта" msgstr "Правила сайта"
#: src/Module/Security/Login.php:162 #: src/Module/Security/Login.php:176
msgid "terms of service" msgid "terms of service"
msgstr "правила" msgstr "правила"
#: src/Module/Security/Login.php:164 #: src/Module/Security/Login.php:178
msgid "Website Privacy Policy" msgid "Website Privacy Policy"
msgstr "Политика конфиденциальности сервера" msgstr "Политика конфиденциальности сервера"
#: src/Module/Security/Login.php:165 #: src/Module/Security/Login.php:179
msgid "privacy policy" msgid "privacy policy"
msgstr "политика конфиденциальности" msgstr "политика конфиденциальности"
#: src/Module/Security/Logout.php:87 #: src/Module/Security/Logout.php:84
#: src/Module/Security/TwoFactor/SignOut.php:79
#: src/Module/Security/TwoFactor/SignOut.php:87
#: src/Module/Security/TwoFactor/SignOut.php:109
#: src/Module/Security/TwoFactor/SignOut.php:116
msgid "Logged out." msgid "Logged out."
msgstr "Выход из системы." msgstr "Выход из системы."
@ -8656,193 +8812,282 @@ msgstr "Выход из системы."
msgid "OpenID protocol error. No ID returned" msgid "OpenID protocol error. No ID returned"
msgstr "" msgstr ""
#: src/Module/Security/OpenID.php:92 #: src/Module/Security/OpenID.php:90
msgid "" msgid ""
"Account not found. Please login to your existing account to add the OpenID " "Account not found. Please login to your existing account to add the OpenID "
"to it." "to it."
msgstr "" msgstr ""
#: src/Module/Security/OpenID.php:94 #: src/Module/Security/OpenID.php:92
msgid "" msgid ""
"Account not found. Please register a new account or login to your existing " "Account not found. Please register a new account or login to your existing "
"account to add the OpenID to it." "account to add the OpenID to it."
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:73 #: src/Module/Security/PasswordTooLong.php:54
#: src/Module/Settings/Account.php:67
msgid "Passwords do not match."
msgstr "Пароли не совпадают"
#: src/Module/Security/PasswordTooLong.php:61
msgid "Password does not need changing."
msgstr ""
#: src/Module/Security/PasswordTooLong.php:74
#: src/Module/Settings/Account.php:81
msgid "Password unchanged."
msgstr "Пароль не поменялся"
#: src/Module/Security/PasswordTooLong.php:88
msgid "Password Too Long"
msgstr ""
#: src/Module/Security/PasswordTooLong.php:89
msgid ""
"Since version 2022.09, we've realized that any password longer than 72 "
"characters is truncated during hashing. To prevent any confusion about this "
"behavior, please update your password to be fewer or equal to 72 characters."
msgstr ""
#: src/Module/Security/PasswordTooLong.php:90
msgid "Update Password"
msgstr ""
#: src/Module/Security/PasswordTooLong.php:97
#: src/Module/Settings/Account.php:572
msgid "Current Password:"
msgstr "Текущий пароль:"
#: src/Module/Security/PasswordTooLong.php:97
#: src/Module/Settings/Account.php:572
msgid "Your current password to confirm the changes"
msgstr "Ваш текущий пароль, для подтверждения изменений"
#: src/Module/Security/PasswordTooLong.php:98
#: src/Module/Settings/Account.php:555
msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)."
msgstr "Разрешенные символы: a-z, A-Z, 0-9 специальные символы за исключением пробелов, букв с акцентами и двоеточия (:)."
#: src/Module/Security/PasswordTooLong.php:98
#: src/Module/Settings/Account.php:556
msgid "Password length is limited to 72 characters."
msgstr ""
#: src/Module/Security/TwoFactor/Recovery.php:74
#, php-format #, php-format
msgid "Remaining recovery codes: %d" msgid "Remaining recovery codes: %d"
msgstr "Осталось кодов для восстановления: %d" msgstr "Осталось кодов для восстановления: %d"
#: src/Module/Security/TwoFactor/Recovery.php:77 #: src/Module/Security/TwoFactor/Recovery.php:80
#: src/Module/Security/TwoFactor/Verify.php:76 #: src/Module/Security/TwoFactor/Verify.php:78
#: src/Module/Settings/TwoFactor/Verify.php:94 #: src/Module/Settings/TwoFactor/Verify.php:94
msgid "Invalid code, please retry." msgid "Invalid code, please retry."
msgstr "Неправильный код, попробуйте ещё." msgstr "Неправильный код, попробуйте ещё."
#: src/Module/Security/TwoFactor/Recovery.php:96 #: src/Module/Security/TwoFactor/Recovery.php:99
msgid "Two-factor recovery" msgid "Two-factor recovery"
msgstr "Двухфакторное восстановление доступа" msgstr "Двухфакторное восстановление доступа"
#: src/Module/Security/TwoFactor/Recovery.php:97 #: src/Module/Security/TwoFactor/Recovery.php:100
msgid "" msgid ""
"<p>You can enter one of your one-time recovery codes in case you lost access" "<p>You can enter one of your one-time recovery codes in case you lost access"
" to your mobile device.</p>" " to your mobile device.</p>"
msgstr "<p>Вы можете ввести один из ваших одноразовых кодов восстановления в случае, если у вас нет доступа к мобильному устройству.</p>" msgstr "<p>Вы можете ввести один из ваших одноразовых кодов восстановления в случае, если у вас нет доступа к мобильному устройству.</p>"
#: src/Module/Security/TwoFactor/Recovery.php:98 #: src/Module/Security/TwoFactor/Recovery.php:101
#: src/Module/Security/TwoFactor/Verify.php:99
#, php-format #, php-format
msgid "Dont have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>" msgid "Dont have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>"
msgstr "Нет телефона? <a href=\"%s\">Введите код восстановления</a>" msgstr "Нет телефона? <a href=\"%s\">Введите код восстановления</a>"
#: src/Module/Security/TwoFactor/Recovery.php:99 #: src/Module/Security/TwoFactor/Recovery.php:102
msgid "Please enter a recovery code" msgid "Please enter a recovery code"
msgstr "Пожалуйста, введите код восстановления" msgstr "Пожалуйста, введите код восстановления"
#: src/Module/Security/TwoFactor/Recovery.php:100 #: src/Module/Security/TwoFactor/Recovery.php:103
msgid "Submit recovery code and complete login" msgid "Submit recovery code and complete login"
msgstr "Отправить код восстановления и завершить вход" msgstr "Отправить код восстановления и завершить вход"
#: src/Module/Security/TwoFactor/Verify.php:96 #: src/Module/Security/TwoFactor/SignOut.php:123
msgid "Sign out of this browser?"
msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:124
msgid ""
"<p>If you trust this browser, you will not be asked for verification code "
"the next time you sign in.</p>"
msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:125
msgid "Sign out"
msgstr ""
#: src/Module/Security/TwoFactor/SignOut.php:127
msgid "Trust and sign out"
msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:96
msgid "Couldn't save browser to Cookie."
msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:141
msgid "Trust this browser?"
msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:142
msgid ""
"<p>If you choose to trust this browser, you will not be asked for a "
"verification code the next time you sign in.</p>"
msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:143
msgid "Not now"
msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:144
msgid "Don't trust"
msgstr ""
#: src/Module/Security/TwoFactor/Trust.php:145
msgid "Trust"
msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:98
msgid "" msgid ""
"<p>Open the two-factor authentication app on your device to get an " "<p>Open the two-factor authentication app on your device to get an "
"authentication code and verify your identity.</p>" "authentication code and verify your identity.</p>"
msgstr "<p>Откройте приложение для двухфакторной аутентификации на вашем устройстве, чтобы получить код аутентификации и подтвердить вашу личность.</p>" msgstr "<p>Откройте приложение для двухфакторной аутентификации на вашем устройстве, чтобы получить код аутентификации и подтвердить вашу личность.</p>"
#: src/Module/Security/TwoFactor/Verify.php:100 #: src/Module/Security/TwoFactor/Verify.php:101
#, php-format
msgid ""
"If you do not have access to your authentication code you can use a <a "
"href=\"%s\">two-factor recovery code</a>."
msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:102
#: src/Module/Settings/TwoFactor/Verify.php:154 #: src/Module/Settings/TwoFactor/Verify.php:154
msgid "Please enter a code from your authentication app" msgid "Please enter a code from your authentication app"
msgstr "Пожалуйста, введите код из вашего приложения для аутентификации" msgstr "Пожалуйста, введите код из вашего приложения для аутентификации"
#: src/Module/Security/TwoFactor/Verify.php:101 #: src/Module/Security/TwoFactor/Verify.php:103
msgid "This is my two-factor authenticator app device"
msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:102
msgid "Verify code and complete login" msgid "Verify code and complete login"
msgstr "Введите код для завершения входа" msgstr "Введите код для завершения входа"
#: src/Module/Settings/Account.php:66 #: src/Module/Settings/Account.php:96
msgid "Passwords do not match."
msgstr "Пароли не совпадают"
#: src/Module/Settings/Account.php:80
msgid "Password unchanged."
msgstr "Пароль не поменялся"
#: src/Module/Settings/Account.php:95
msgid "Please use a shorter name." msgid "Please use a shorter name."
msgstr "Пожалуйста, выберите имя короче." msgstr "Пожалуйста, выберите имя короче."
#: src/Module/Settings/Account.php:98 #: src/Module/Settings/Account.php:99
msgid "Name too short." msgid "Name too short."
msgstr "Имя слишком короткое" msgstr "Имя слишком короткое"
#: src/Module/Settings/Account.php:107 #: src/Module/Settings/Account.php:108
msgid "Wrong Password." msgid "Wrong Password."
msgstr "Неправильный пароль" msgstr "Неправильный пароль"
#: src/Module/Settings/Account.php:112 #: src/Module/Settings/Account.php:113
msgid "Invalid email." msgid "Invalid email."
msgstr "Неправильный адрес почты" msgstr "Неправильный адрес почты"
#: src/Module/Settings/Account.php:118 #: src/Module/Settings/Account.php:119
msgid "Cannot change to that email." msgid "Cannot change to that email."
msgstr "Нельзя установить этот адрес почты" msgstr "Нельзя установить этот адрес почты"
#: src/Module/Settings/Account.php:148 src/Module/Settings/Account.php:200 #: src/Module/Settings/Account.php:149 src/Module/Settings/Account.php:201
#: src/Module/Settings/Account.php:220 src/Module/Settings/Account.php:304 #: src/Module/Settings/Account.php:221 src/Module/Settings/Account.php:305
#: src/Module/Settings/Account.php:353 #: src/Module/Settings/Account.php:354
msgid "Settings were not updated." msgid "Settings were not updated."
msgstr "Настройки не были изменены." msgstr "Настройки не были изменены."
#: src/Module/Settings/Account.php:365 #: src/Module/Settings/Account.php:366
msgid "Contact CSV file upload error" msgid "Contact CSV file upload error"
msgstr "Ошибка загрузки CSV с контактами" msgstr "Ошибка загрузки CSV с контактами"
#: src/Module/Settings/Account.php:384 #: src/Module/Settings/Account.php:385
msgid "Importing Contacts done" msgid "Importing Contacts done"
msgstr "Импорт контактов завершён" msgstr "Импорт контактов завершён"
#: src/Module/Settings/Account.php:397 #: src/Module/Settings/Account.php:398
msgid "Relocate message has been send to your contacts" msgid "Relocate message has been send to your contacts"
msgstr "Перемещённое сообщение было отправлено списку контактов" msgstr "Перемещённое сообщение было отправлено списку контактов"
#: src/Module/Settings/Account.php:414 #: src/Module/Settings/Account.php:415
msgid "Unable to find your profile. Please contact your admin." msgid "Unable to find your profile. Please contact your admin."
msgstr "Не получается найти ваш профиль. Пожалуйста свяжитесь с администратором." msgstr "Не получается найти ваш профиль. Пожалуйста свяжитесь с администратором."
#: src/Module/Settings/Account.php:456 #: src/Module/Settings/Account.php:457
msgid "Personal Page Subtypes" msgid "Personal Page Subtypes"
msgstr "Подтипы личной страницы" msgstr "Подтипы личной страницы"
#: src/Module/Settings/Account.php:457 #: src/Module/Settings/Account.php:458
msgid "Community Forum Subtypes" msgid "Community Forum Subtypes"
msgstr "Подтипы форума сообщества" msgstr "Подтипы форума сообщества"
#: src/Module/Settings/Account.php:467 #: src/Module/Settings/Account.php:468
msgid "Account for a personal profile." msgid "Account for a personal profile."
msgstr "Личная учётная запись" msgstr "Личная учётная запись"
#: src/Module/Settings/Account.php:474 #: src/Module/Settings/Account.php:475
msgid "" msgid ""
"Account for an organisation that automatically approves contact requests as " "Account for an organisation that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "Учётная запись организации, которая автоматически одобряет новых подписчиков." msgstr "Учётная запись организации, которая автоматически одобряет новых подписчиков."
#: src/Module/Settings/Account.php:481 #: src/Module/Settings/Account.php:482
msgid "" msgid ""
"Account for a news reflector that automatically approves contact requests as" "Account for a news reflector that automatically approves contact requests as"
" \"Followers\"." " \"Followers\"."
msgstr "Учётная запись новостной ленты, которая автоматически одобряет новых подписчиков." msgstr "Учётная запись новостной ленты, которая автоматически одобряет новых подписчиков."
#: src/Module/Settings/Account.php:488 #: src/Module/Settings/Account.php:489
msgid "Account for community discussions." msgid "Account for community discussions."
msgstr "Учётная запись для совместных обсуждений." msgstr "Учётная запись для совместных обсуждений."
#: src/Module/Settings/Account.php:495 #: src/Module/Settings/Account.php:496
msgid "" msgid ""
"Account for a regular personal profile that requires manual approval of " "Account for a regular personal profile that requires manual approval of "
"\"Friends\" and \"Followers\"." "\"Friends\" and \"Followers\"."
msgstr "Личная учётная запись, которая требует ручного одобрения для новых подписчиков и друзей." msgstr "Личная учётная запись, которая требует ручного одобрения для новых подписчиков и друзей."
#: src/Module/Settings/Account.php:502 #: src/Module/Settings/Account.php:503
msgid "" msgid ""
"Account for a public profile that automatically approves contact requests as" "Account for a public profile that automatically approves contact requests as"
" \"Followers\"." " \"Followers\"."
msgstr "Учётная запись для публичного профиля, которая автоматически одобряет новых подписчиков." msgstr "Учётная запись для публичного профиля, которая автоматически одобряет новых подписчиков."
#: src/Module/Settings/Account.php:509 #: src/Module/Settings/Account.php:510
msgid "Automatically approves all contact requests." msgid "Automatically approves all contact requests."
msgstr "Автоматически одобряет все запросы на подписку." msgstr "Автоматически одобряет все запросы на подписку."
#: src/Module/Settings/Account.php:516 #: src/Module/Settings/Account.php:517
msgid "" msgid ""
"Account for a popular profile that automatically approves contact requests " "Account for a popular profile that automatically approves contact requests "
"as \"Friends\"." "as \"Friends\"."
msgstr "Учётная запись для публичной личности, которая автоматически добавляет все новые контакты в друзья." msgstr "Учётная запись для публичной личности, которая автоматически добавляет все новые контакты в друзья."
#: src/Module/Settings/Account.php:521 #: src/Module/Settings/Account.php:522
msgid "Private Forum [Experimental]" msgid "Private Forum [Experimental]"
msgstr "Личный форум [экспериментально]" msgstr "Личный форум [экспериментально]"
#: src/Module/Settings/Account.php:523 #: src/Module/Settings/Account.php:524
msgid "Requires manual approval of contact requests." msgid "Requires manual approval of contact requests."
msgstr "Требует ручного одобрения запросов на подписку." msgstr "Требует ручного одобрения запросов на подписку."
#: src/Module/Settings/Account.php:532 #: src/Module/Settings/Account.php:533
msgid "OpenID:" msgid "OpenID:"
msgstr "OpenID:" msgstr "OpenID:"
#: src/Module/Settings/Account.php:532 #: src/Module/Settings/Account.php:533
msgid "(Optional) Allow this OpenID to login to this account." msgid "(Optional) Allow this OpenID to login to this account."
msgstr "(Необязательно) Разрешить этому OpenID входить в этот аккаунт" msgstr "(Необязательно) Разрешить этому OpenID входить в этот аккаунт"
#: src/Module/Settings/Account.php:540 #: src/Module/Settings/Account.php:541
msgid "Publish your profile in your local site directory?" msgid "Publish your profile in your local site directory?"
msgstr "Опубликовать ваш профиль в каталоге вашего сервера?" msgstr "Опубликовать ваш профиль в каталоге вашего сервера?"
#: src/Module/Settings/Account.php:540 #: src/Module/Settings/Account.php:541
#, php-format #, php-format
msgid "" msgid ""
"Your profile will be published in this node's <a href=\"%s\">local " "Your profile will be published in this node's <a href=\"%s\">local "
@ -8850,103 +9095,89 @@ msgid ""
" system settings." " system settings."
msgstr "Ваш профиль будет опубликован в <a href=\"%s\">локальном каталоге</a> этого сервера. Данные вашего профиля могут быть доступны публично в зависимости от настроек." msgstr "Ваш профиль будет опубликован в <a href=\"%s\">локальном каталоге</a> этого сервера. Данные вашего профиля могут быть доступны публично в зависимости от настроек."
#: src/Module/Settings/Account.php:546 #: src/Module/Settings/Account.php:547
#, php-format #, php-format
msgid "" msgid ""
"Your profile will also be published in the global friendica directories " "Your profile will also be published in the global friendica directories "
"(e.g. <a href=\"%s\">%s</a>)." "(e.g. <a href=\"%s\">%s</a>)."
msgstr "Ваш профиль так же будет опубликован в глобальных каталогах Френдики (напр. <a href=\"%s\">%s</a>)." msgstr "Ваш профиль так же будет опубликован в глобальных каталогах Френдики (напр. <a href=\"%s\">%s</a>)."
#: src/Module/Settings/Account.php:556 #: src/Module/Settings/Account.php:560
msgid "Account Settings" msgid "Account Settings"
msgstr "Настройки аккаунта" msgstr "Настройки аккаунта"
#: src/Module/Settings/Account.php:557 #: src/Module/Settings/Account.php:561
#, php-format #, php-format
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'." msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
msgstr "Ваш адрес: <strong>'%s'</strong> или '%s'." msgstr "Ваш адрес: <strong>'%s'</strong> или '%s'."
#: src/Module/Settings/Account.php:565 #: src/Module/Settings/Account.php:569
msgid "Password Settings" msgid "Password Settings"
msgstr "Смена пароля" msgstr "Смена пароля"
#: src/Module/Settings/Account.php:566 #: src/Module/Settings/Account.php:571
msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)."
msgstr "Разрешенные символы: a-z, A-Z, 0-9 специальные символы за исключением пробелов, букв с акцентами и двоеточия (:)."
#: src/Module/Settings/Account.php:567
msgid "Leave password fields blank unless changing" msgid "Leave password fields blank unless changing"
msgstr "Оставьте поля пароля пустыми, если он не изменяется" msgstr "Оставьте поля пароля пустыми, если он не изменяется"
#: src/Module/Settings/Account.php:568 #: src/Module/Settings/Account.php:573
msgid "Current Password:"
msgstr "Текущий пароль:"
#: src/Module/Settings/Account.php:568
msgid "Your current password to confirm the changes"
msgstr "Ваш текущий пароль, для подтверждения изменений"
#: src/Module/Settings/Account.php:569
msgid "Password:" msgid "Password:"
msgstr "Пароль:" msgstr "Пароль:"
#: src/Module/Settings/Account.php:569 #: src/Module/Settings/Account.php:573
msgid "Your current password to confirm the changes of the email address" msgid "Your current password to confirm the changes of the email address"
msgstr "Ваш текущий пароль для подтверждения смены адреса почты" msgstr "Ваш текущий пароль для подтверждения смены адреса почты"
#: src/Module/Settings/Account.php:572 #: src/Module/Settings/Account.php:576
msgid "Delete OpenID URL" msgid "Delete OpenID URL"
msgstr "Удалить ссылку OpenID" msgstr "Удалить ссылку OpenID"
#: src/Module/Settings/Account.php:574 #: src/Module/Settings/Account.php:578
msgid "Basic Settings" msgid "Basic Settings"
msgstr "Основные параметры" msgstr "Основные параметры"
#: src/Module/Settings/Account.php:576 #: src/Module/Settings/Account.php:580
msgid "Email Address:" msgid "Email Address:"
msgstr "Адрес электронной почты:" msgstr "Адрес электронной почты:"
#: src/Module/Settings/Account.php:577 #: src/Module/Settings/Account.php:581
msgid "Your Timezone:" msgid "Your Timezone:"
msgstr "Ваш часовой пояс:" msgstr "Ваш часовой пояс:"
#: src/Module/Settings/Account.php:578 #: src/Module/Settings/Account.php:582
msgid "Your Language:" msgid "Your Language:"
msgstr "Ваш язык:" msgstr "Ваш язык:"
#: src/Module/Settings/Account.php:578 #: src/Module/Settings/Account.php:582
msgid "" msgid ""
"Set the language we use to show you friendica interface and to send you " "Set the language we use to show you friendica interface and to send you "
"emails" "emails"
msgstr "Выберите язык, на котором вы будете видеть интерфейс Friendica и на котором вы будете получать письма" msgstr "Выберите язык, на котором вы будете видеть интерфейс Friendica и на котором вы будете получать письма"
#: src/Module/Settings/Account.php:579 #: src/Module/Settings/Account.php:583
msgid "Default Post Location:" msgid "Default Post Location:"
msgstr "Местонахождение по умолчанию:" msgstr "Местонахождение по умолчанию:"
#: src/Module/Settings/Account.php:580 #: src/Module/Settings/Account.php:584
msgid "Use Browser Location:" msgid "Use Browser Location:"
msgstr "Использовать определение местоположения браузером:" msgstr "Использовать определение местоположения браузером:"
#: src/Module/Settings/Account.php:582 #: src/Module/Settings/Account.php:586
msgid "Security and Privacy Settings" msgid "Security and Privacy Settings"
msgstr "Параметры безопасности и конфиденциальности" msgstr "Параметры безопасности и конфиденциальности"
#: src/Module/Settings/Account.php:584 #: src/Module/Settings/Account.php:588
msgid "Maximum Friend Requests/Day:" msgid "Maximum Friend Requests/Day:"
msgstr "Максимум запросов в друзья в день:" msgstr "Максимум запросов в друзья в день:"
#: src/Module/Settings/Account.php:584 src/Module/Settings/Account.php:594 #: src/Module/Settings/Account.php:588 src/Module/Settings/Account.php:598
msgid "(to prevent spam abuse)" msgid "(to prevent spam abuse)"
msgstr "(для предотвращения спама)" msgstr "(для предотвращения спама)"
#: src/Module/Settings/Account.php:586 #: src/Module/Settings/Account.php:590
msgid "Allow your profile to be searchable globally?" msgid "Allow your profile to be searchable globally?"
msgstr "Сделать ваш профиль доступным для поиска глобально?" msgstr "Сделать ваш профиль доступным для поиска глобально?"
#: src/Module/Settings/Account.php:586 #: src/Module/Settings/Account.php:590
msgid "" msgid ""
"Activate this setting if you want others to easily find and follow you. Your" "Activate this setting if you want others to easily find and follow you. Your"
" profile will be searchable on remote systems. This setting also determines " " profile will be searchable on remote systems. This setting also determines "
@ -8954,43 +9185,43 @@ msgid ""
"indexed or not." "indexed or not."
msgstr "Включите эту настройку, если вы хотите, чтобы другие люди могли легко вас находить. Ваш профиль станет доступным для поиска на других узлах. Так же эта настройка разрешает поисковым системам индексировать ваш профиль." msgstr "Включите эту настройку, если вы хотите, чтобы другие люди могли легко вас находить. Ваш профиль станет доступным для поиска на других узлах. Так же эта настройка разрешает поисковым системам индексировать ваш профиль."
#: src/Module/Settings/Account.php:587 #: src/Module/Settings/Account.php:591
msgid "Hide your contact/friend list from viewers of your profile?" msgid "Hide your contact/friend list from viewers of your profile?"
msgstr "Скрыть список ваших контактов/друзей от просмотра в вашем профиле?" msgstr "Скрыть список ваших контактов/друзей от просмотра в вашем профиле?"
#: src/Module/Settings/Account.php:587 #: src/Module/Settings/Account.php:591
msgid "" msgid ""
"A list of your contacts is displayed on your profile page. Activate this " "A list of your contacts is displayed on your profile page. Activate this "
"option to disable the display of your contact list." "option to disable the display of your contact list."
msgstr "Список ваших контактов отображается на вашей странице профиля. Включите эту настройку, чтобы скрыть отображение вашего списка контактов." msgstr "Список ваших контактов отображается на вашей странице профиля. Включите эту настройку, чтобы скрыть отображение вашего списка контактов."
#: src/Module/Settings/Account.php:588 #: src/Module/Settings/Account.php:592
msgid "Hide your profile details from anonymous viewers?" msgid "Hide your profile details from anonymous viewers?"
msgstr "Скрыть данные профиля от анонимных посетителей?" msgstr "Скрыть данные профиля от анонимных посетителей?"
#: src/Module/Settings/Account.php:588 #: src/Module/Settings/Account.php:592
msgid "" msgid ""
"Anonymous visitors will only see your profile picture, your display name and" "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 " " the nickname you are using on your profile page. Your public posts and "
"replies will still be accessible by other means." "replies will still be accessible by other means."
msgstr "Анонимные посетители будут видеть только вашу картинку, ваше имя и и ник. Публичные записи и комментарии могут быть доступны другими способами." msgstr "Анонимные посетители будут видеть только вашу картинку, ваше имя и и ник. Публичные записи и комментарии могут быть доступны другими способами."
#: src/Module/Settings/Account.php:589 #: src/Module/Settings/Account.php:593
msgid "Make public posts unlisted" msgid "Make public posts unlisted"
msgstr "Скрыть публичные записи из общих лент" msgstr "Скрыть публичные записи из общих лент"
#: src/Module/Settings/Account.php:589 #: src/Module/Settings/Account.php:593
msgid "" msgid ""
"Your public posts will not appear on the community pages or in search " "Your public posts will not appear on the community pages or in search "
"results, nor be sent to relay servers. However they can still appear on " "results, nor be sent to relay servers. However they can still appear on "
"public feeds on remote servers." "public feeds on remote servers."
msgstr "Ваши публичные записи не будут отражаться в общей ленте сервера или в результатах поиска, так же они не будут отправляться на ретранслтяторы. Тем не менее, они всё равно могут быть доступны в публичных лентах других серверов." msgstr "Ваши публичные записи не будут отражаться в общей ленте сервера или в результатах поиска, так же они не будут отправляться на ретранслтяторы. Тем не менее, они всё равно могут быть доступны в публичных лентах других серверов."
#: src/Module/Settings/Account.php:590 #: src/Module/Settings/Account.php:594
msgid "Make all posted pictures accessible" msgid "Make all posted pictures accessible"
msgstr "Сделать все опубликованные изображения доступными" msgstr "Сделать все опубликованные изображения доступными"
#: src/Module/Settings/Account.php:590 #: src/Module/Settings/Account.php:594
msgid "" msgid ""
"This option makes every posted picture accessible via the direct link. This " "This option makes every posted picture accessible via the direct link. This "
"is a workaround for the problem that most other networks can't handle " "is a workaround for the problem that most other networks can't handle "
@ -8998,442 +9229,438 @@ msgid ""
"public on your photo albums though." "public on your photo albums though."
msgstr "Эта настройка делает все опубликованные изображения доступными по прямой ссылке. Это можно применить для решения проблем с другими социальными сетями, которые не умеют работать с разрешениями доступа для изображений. Непубличные изображения в любом случае не будут доступны для просмотра публично в ваших альбомах." msgstr "Эта настройка делает все опубликованные изображения доступными по прямой ссылке. Это можно применить для решения проблем с другими социальными сетями, которые не умеют работать с разрешениями доступа для изображений. Непубличные изображения в любом случае не будут доступны для просмотра публично в ваших альбомах."
#: src/Module/Settings/Account.php:591 #: src/Module/Settings/Account.php:595
msgid "Allow friends to post to your profile page?" msgid "Allow friends to post to your profile page?"
msgstr "Разрешить друзьям оставлять сообщения на страницу вашего профиля?" msgstr "Разрешить друзьям оставлять сообщения на страницу вашего профиля?"
#: src/Module/Settings/Account.php:591 #: src/Module/Settings/Account.php:595
msgid "" msgid ""
"Your contacts may write posts on your profile wall. These posts will be " "Your contacts may write posts on your profile wall. These posts will be "
"distributed to your contacts" "distributed to your contacts"
msgstr "Ваши контакты могут оставлять записи на стене вашего профиля. Эти записи будут распространены вашим подписчикам." msgstr "Ваши контакты могут оставлять записи на стене вашего профиля. Эти записи будут распространены вашим подписчикам."
#: src/Module/Settings/Account.php:592 #: src/Module/Settings/Account.php:596
msgid "Allow friends to tag your posts?" msgid "Allow friends to tag your posts?"
msgstr "Разрешить друзьям отмечать ваши сообщения?" msgstr "Разрешить друзьям отмечать ваши сообщения?"
#: src/Module/Settings/Account.php:592 #: src/Module/Settings/Account.php:596
msgid "Your contacts can add additional tags to your posts." msgid "Your contacts can add additional tags to your posts."
msgstr "Ваши контакты могут добавлять дополнительные теги к вашим записям." msgstr "Ваши контакты могут добавлять дополнительные теги к вашим записям."
#: src/Module/Settings/Account.php:593 #: src/Module/Settings/Account.php:597
msgid "Permit unknown people to send you private mail?" msgid "Permit unknown people to send you private mail?"
msgstr "Разрешить незнакомым людям отправлять вам личные сообщения?" msgstr "Разрешить незнакомым людям отправлять вам личные сообщения?"
#: src/Module/Settings/Account.php:593 #: src/Module/Settings/Account.php:597
msgid "" msgid ""
"Friendica network users may send you private messages even if they are not " "Friendica network users may send you private messages even if they are not "
"in your contact list." "in your contact list."
msgstr "Пользователи Френдики могут отправлять вам личные сообщения даже если их нет в вашем списке контактов." msgstr "Пользователи Френдики могут отправлять вам личные сообщения даже если их нет в вашем списке контактов."
#: src/Module/Settings/Account.php:594 #: src/Module/Settings/Account.php:598
msgid "Maximum private messages per day from unknown people:" msgid "Maximum private messages per day from unknown people:"
msgstr "Максимальное количество личных сообщений от незнакомых людей в день:" msgstr "Максимальное количество личных сообщений от незнакомых людей в день:"
#: src/Module/Settings/Account.php:596 #: src/Module/Settings/Account.php:600
msgid "Default Post Permissions" msgid "Default Post Permissions"
msgstr "Разрешение на сообщения по умолчанию" msgstr "Разрешение на сообщения по умолчанию"
#: src/Module/Settings/Account.php:600 #: src/Module/Settings/Account.php:604
msgid "Expiration settings" msgid "Expiration settings"
msgstr "Очистка старых записей" msgstr "Очистка старых записей"
#: src/Module/Settings/Account.php:601 #: src/Module/Settings/Account.php:605
msgid "Automatically expire posts after this many days:" msgid "Automatically expire posts after this many days:"
msgstr "Автоматическое истекание срока действия сообщения после стольких дней:" msgstr "Автоматическое истекание срока действия сообщения после стольких дней:"
#: src/Module/Settings/Account.php:601 #: src/Module/Settings/Account.php:605
msgid "If empty, posts will not expire. Expired posts will be deleted" msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr "Если пусто, срок действия сообщений не будет ограничен. Сообщения с истекшим сроком действия будут удалены" msgstr "Если пусто, срок действия сообщений не будет ограничен. Сообщения с истекшим сроком действия будут удалены"
#: src/Module/Settings/Account.php:602 #: src/Module/Settings/Account.php:606
msgid "Expire posts" msgid "Expire posts"
msgstr "Удалять старые записи" msgstr "Удалять старые записи"
#: src/Module/Settings/Account.php:602 #: src/Module/Settings/Account.php:606
msgid "When activated, posts and comments will be expired." msgid "When activated, posts and comments will be expired."
msgstr "Если включено, то старые записи и комментарии будут удаляться." msgstr "Если включено, то старые записи и комментарии будут удаляться."
#: src/Module/Settings/Account.php:603 #: src/Module/Settings/Account.php:607
msgid "Expire personal notes" msgid "Expire personal notes"
msgstr "Удалять персональные заметки" msgstr "Удалять персональные заметки"
#: src/Module/Settings/Account.php:603 #: src/Module/Settings/Account.php:607
msgid "" msgid ""
"When activated, the personal notes on your profile page will be expired." "When activated, the personal notes on your profile page will be expired."
msgstr "Если включено, старые личные заметки из вашего профиля будут удаляться." msgstr "Если включено, старые личные заметки из вашего профиля будут удаляться."
#: src/Module/Settings/Account.php:604 #: src/Module/Settings/Account.php:608
msgid "Expire starred posts" msgid "Expire starred posts"
msgstr "Удалять избранные записи" msgstr "Удалять избранные записи"
#: src/Module/Settings/Account.php:604 #: src/Module/Settings/Account.php:608
msgid "" msgid ""
"Starring posts keeps them from being expired. That behaviour is overwritten " "Starring posts keeps them from being expired. That behaviour is overwritten "
"by this setting." "by this setting."
msgstr "Добавление записи в избранные защищает её от удаления. Эта настройка выключает эту защиту." msgstr "Добавление записи в избранные защищает её от удаления. Эта настройка выключает эту защиту."
#: src/Module/Settings/Account.php:605 #: src/Module/Settings/Account.php:609
msgid "Only expire posts by others" msgid "Only expire posts by others"
msgstr "Удалять только записи других людей" msgstr "Удалять только записи других людей"
#: src/Module/Settings/Account.php:605 #: src/Module/Settings/Account.php:609
msgid "" msgid ""
"When activated, your own posts never expire. Then the settings above are " "When activated, your own posts never expire. Then the settings above are "
"only valid for posts you received." "only valid for posts you received."
msgstr "Если включено, ваши собственные записи никогда не удаляются. В этом случае все настройки выше применяются только к записям, которые вы получаете от других." msgstr "Если включено, ваши собственные записи никогда не удаляются. В этом случае все настройки выше применяются только к записям, которые вы получаете от других."
#: src/Module/Settings/Account.php:608 #: src/Module/Settings/Account.php:612
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Настройка уведомлений" msgstr "Настройка уведомлений"
#: src/Module/Settings/Account.php:609 #: src/Module/Settings/Account.php:613
msgid "Send a notification email when:" msgid "Send a notification email when:"
msgstr "Отправлять уведомление по электронной почте, когда:" msgstr "Отправлять уведомление по электронной почте, когда:"
#: src/Module/Settings/Account.php:610 #: src/Module/Settings/Account.php:614
msgid "You receive an introduction" msgid "You receive an introduction"
msgstr "Вы получили запрос" msgstr "Вы получили запрос"
#: src/Module/Settings/Account.php:611 #: src/Module/Settings/Account.php:615
msgid "Your introductions are confirmed" msgid "Your introductions are confirmed"
msgstr "Ваши запросы подтверждены" msgstr "Ваши запросы подтверждены"
#: src/Module/Settings/Account.php:612 #: src/Module/Settings/Account.php:616
msgid "Someone writes on your profile wall" msgid "Someone writes on your profile wall"
msgstr "Кто-то пишет на стене вашего профиля" msgstr "Кто-то пишет на стене вашего профиля"
#: src/Module/Settings/Account.php:613 #: src/Module/Settings/Account.php:617
msgid "Someone writes a followup comment" msgid "Someone writes a followup comment"
msgstr "Кто-то пишет последующий комментарий" msgstr "Кто-то пишет последующий комментарий"
#: src/Module/Settings/Account.php:614 #: src/Module/Settings/Account.php:618
msgid "You receive a private message" msgid "You receive a private message"
msgstr "Вы получаете личное сообщение" msgstr "Вы получаете личное сообщение"
#: src/Module/Settings/Account.php:615 #: src/Module/Settings/Account.php:619
msgid "You receive a friend suggestion" msgid "You receive a friend suggestion"
msgstr "Вы полулили предложение о добавлении в друзья" msgstr "Вы полулили предложение о добавлении в друзья"
#: src/Module/Settings/Account.php:616 #: src/Module/Settings/Account.php:620
msgid "You are tagged in a post" msgid "You are tagged in a post"
msgstr "Вы отмечены в записи" msgstr "Вы отмечены в записи"
#: src/Module/Settings/Account.php:617 #: src/Module/Settings/Account.php:622
msgid "You are poked/prodded/etc. in a post"
msgstr "Вас потыкали/подтолкнули/и т.д. в записи"
#: src/Module/Settings/Account.php:619
msgid "Create a desktop notification when:" msgid "Create a desktop notification when:"
msgstr "Показывать уведомление при:" msgstr "Показывать уведомление при:"
#: src/Module/Settings/Account.php:620 #: src/Module/Settings/Account.php:623
msgid "Someone tagged you" msgid "Someone tagged you"
msgstr "Вас отметили" msgstr "Вас отметили"
#: src/Module/Settings/Account.php:621 #: src/Module/Settings/Account.php:624
msgid "Someone directly commented on your post" msgid "Someone directly commented on your post"
msgstr "На вашу запись написали комментарий" msgstr "На вашу запись написали комментарий"
#: src/Module/Settings/Account.php:622 #: src/Module/Settings/Account.php:625
msgid "Someone liked your content" msgid "Someone liked your content"
msgstr "Ваша запись кому-то понравилась" msgstr "Ваша запись кому-то понравилась"
#: src/Module/Settings/Account.php:622 src/Module/Settings/Account.php:623 #: src/Module/Settings/Account.php:625 src/Module/Settings/Account.php:626
msgid "Can only be enabled, when the direct comment notification is enabled." msgid "Can only be enabled, when the direct comment notification is enabled."
msgstr "Может быть включено только при включении уведомлений о комментариях к вашим записям." msgstr "Может быть включено только при включении уведомлений о комментариях к вашим записям."
#: src/Module/Settings/Account.php:623 #: src/Module/Settings/Account.php:626
msgid "Someone shared your content" msgid "Someone shared your content"
msgstr "Вашей записью поделились" msgstr "Вашей записью поделились"
#: src/Module/Settings/Account.php:624 #: src/Module/Settings/Account.php:627
msgid "Someone commented in your thread" msgid "Someone commented in your thread"
msgstr "В обсуждении вашей записи написали комментарий" msgstr "В обсуждении вашей записи написали комментарий"
#: src/Module/Settings/Account.php:625 #: src/Module/Settings/Account.php:628
msgid "Someone commented in a thread where you commented" msgid "Someone commented in a thread where you commented"
msgstr "Написали в диалоге, где вы оставляли комментарии" msgstr "Написали в диалоге, где вы оставляли комментарии"
#: src/Module/Settings/Account.php:626 #: src/Module/Settings/Account.php:629
msgid "Someone commented in a thread where you interacted" msgid "Someone commented in a thread where you interacted"
msgstr "Написали в диалоге, где вы принимали любое участие" msgstr "Написали в диалоге, где вы принимали любое участие"
#: src/Module/Settings/Account.php:628 #: src/Module/Settings/Account.php:631
msgid "Activate desktop notifications" msgid "Activate desktop notifications"
msgstr "Активировать уведомления на рабочем столе" msgstr "Активировать уведомления на рабочем столе"
#: src/Module/Settings/Account.php:628 #: src/Module/Settings/Account.php:631
msgid "Show desktop popup on new notifications" msgid "Show desktop popup on new notifications"
msgstr "Показывать уведомления на рабочем столе" msgstr "Показывать уведомления на рабочем столе"
#: src/Module/Settings/Account.php:632 #: src/Module/Settings/Account.php:635
msgid "Text-only notification emails" msgid "Text-only notification emails"
msgstr "Только текстовые письма" msgstr "Только текстовые письма"
#: src/Module/Settings/Account.php:634 #: src/Module/Settings/Account.php:637
msgid "Send text only notification emails, without the html part" msgid "Send text only notification emails, without the html part"
msgstr "Отправлять только текстовые уведомления, без HTML" msgstr "Отправлять только текстовые уведомления, без HTML"
#: src/Module/Settings/Account.php:638 #: src/Module/Settings/Account.php:641
msgid "Show detailled notifications" msgid "Show detailled notifications"
msgstr "Показывать подробные уведомления" msgstr "Показывать подробные уведомления"
#: src/Module/Settings/Account.php:640 #: src/Module/Settings/Account.php:643
msgid "" msgid ""
"Per default, notifications are condensed to a single notification per item. " "Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed." "When enabled every notification is displayed."
msgstr "По-умолчанию уведомления группируются в одно для каждой записи. Эта настройка показывает все уведомления по отдельности." msgstr "По-умолчанию уведомления группируются в одно для каждой записи. Эта настройка показывает все уведомления по отдельности."
#: src/Module/Settings/Account.php:644 #: src/Module/Settings/Account.php:647
msgid "Show notifications of ignored contacts" msgid "Show notifications of ignored contacts"
msgstr "Показывать уведомления игнорируемых контактов" msgstr "Показывать уведомления игнорируемых контактов"
#: src/Module/Settings/Account.php:646 #: src/Module/Settings/Account.php:649
msgid "" msgid ""
"You don't see posts from ignored contacts. But you still see their comments." "You don't see posts from ignored contacts. But you still see their comments."
" This setting controls if you want to still receive regular notifications " " This setting controls if you want to still receive regular notifications "
"that are caused by ignored contacts or not." "that are caused by ignored contacts or not."
msgstr "Вы не видите записи от игнорируемых контактов, но вы видите их комментарии. Эта настройка определяет, хотите ли вы получать уведомления от действий игнорируемых контактов или нет." msgstr "Вы не видите записи от игнорируемых контактов, но вы видите их комментарии. Эта настройка определяет, хотите ли вы получать уведомления от действий игнорируемых контактов или нет."
#: src/Module/Settings/Account.php:649 #: src/Module/Settings/Account.php:652
msgid "Advanced Account/Page Type Settings" msgid "Advanced Account/Page Type Settings"
msgstr "Расширенные настройки учётной записи" msgstr "Расширенные настройки учётной записи"
#: src/Module/Settings/Account.php:650 #: src/Module/Settings/Account.php:653
msgid "Change the behaviour of this account for special situations" msgid "Change the behaviour of this account for special situations"
msgstr "Измените поведение этого аккаунта в специальных ситуациях" msgstr "Измените поведение этого аккаунта в специальных ситуациях"
#: src/Module/Settings/Account.php:653 #: src/Module/Settings/Account.php:656
msgid "Import Contacts" msgid "Import Contacts"
msgstr "Импорт контактов" msgstr "Импорт контактов"
#: src/Module/Settings/Account.php:654 #: src/Module/Settings/Account.php:657
msgid "" msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the " "Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account." "first column you exported from the old account."
msgstr "Загрузите файл CSV, который содержит адреса ваших контактов в первой колонке. Вы можете экспортировать его из вашей старой учётной записи." msgstr "Загрузите файл CSV, который содержит адреса ваших контактов в первой колонке. Вы можете экспортировать его из вашей старой учётной записи."
#: src/Module/Settings/Account.php:655 #: src/Module/Settings/Account.php:658
msgid "Upload File" msgid "Upload File"
msgstr "Загрузить файл" msgstr "Загрузить файл"
#: src/Module/Settings/Account.php:658 #: src/Module/Settings/Account.php:661
msgid "Relocate" msgid "Relocate"
msgstr "Перемещение" msgstr "Перемещение"
#: src/Module/Settings/Account.php:659 #: src/Module/Settings/Account.php:662
msgid "" msgid ""
"If you have moved this profile from another server, and some of your " "If you have moved this profile from another server, and some of your "
"contacts don't receive your updates, try pushing this button." "contacts don't receive your updates, try pushing this button."
msgstr "Если вы переместили эту анкету с другого сервера, и некоторые из ваших контактов не получили ваши обновления, попробуйте нажать эту кнопку." msgstr "Если вы переместили эту анкету с другого сервера, и некоторые из ваших контактов не получили ваши обновления, попробуйте нажать эту кнопку."
#: src/Module/Settings/Account.php:660 #: src/Module/Settings/Account.php:663
msgid "Resend relocate message to contacts" msgid "Resend relocate message to contacts"
msgstr "Отправить перемещённые сообщения контактам" msgstr "Отправить перемещённые сообщения контактам"
#: src/Module/Settings/Delegation.php:53 #: src/Module/Settings/Delegation.php:52
msgid "Delegation successfully granted." msgid "Delegation successfully granted."
msgstr "Делегирование успешно предоставлено." msgstr "Делегирование успешно предоставлено."
#: src/Module/Settings/Delegation.php:55 #: src/Module/Settings/Delegation.php:54
msgid "Parent user not found, unavailable or password doesn't match." msgid "Parent user not found, unavailable or password doesn't match."
msgstr "Родительский пользователь не найден, недоступен или пароль не совпадает." msgstr "Родительский пользователь не найден, недоступен или пароль не совпадает."
#: src/Module/Settings/Delegation.php:59 #: src/Module/Settings/Delegation.php:58
msgid "Delegation successfully revoked." msgid "Delegation successfully revoked."
msgstr "Делегирование успешно отменено." msgstr "Делегирование успешно отменено."
#: src/Module/Settings/Delegation.php:81 #: src/Module/Settings/Delegation.php:80
#: src/Module/Settings/Delegation.php:103 #: src/Module/Settings/Delegation.php:102
msgid "" msgid ""
"Delegated administrators can view but not change delegation permissions." "Delegated administrators can view but not change delegation permissions."
msgstr "Администраторы-делегаты могут видеть, но не менять разрешения делегирования." msgstr "Администраторы-делегаты могут видеть, но не менять разрешения делегирования."
#: src/Module/Settings/Delegation.php:95 #: src/Module/Settings/Delegation.php:94
msgid "Delegate user not found." msgid "Delegate user not found."
msgstr "Пользователь-делегат не найден." msgstr "Пользователь-делегат не найден."
#: src/Module/Settings/Delegation.php:143 #: src/Module/Settings/Delegation.php:142
msgid "No parent user" msgid "No parent user"
msgstr "Нет родительского пользователя" msgstr "Нет родительского пользователя"
#: src/Module/Settings/Delegation.php:154 #: src/Module/Settings/Delegation.php:153
#: src/Module/Settings/Delegation.php:165 #: src/Module/Settings/Delegation.php:164
msgid "Parent User" msgid "Parent User"
msgstr "Родительский пользователь" msgstr "Родительский пользователь"
#: src/Module/Settings/Delegation.php:162 #: src/Module/Settings/Delegation.php:161
msgid "Additional Accounts" msgid "Additional Accounts"
msgstr "Дополнительные учётные записи" msgstr "Дополнительные учётные записи"
#: src/Module/Settings/Delegation.php:163 #: src/Module/Settings/Delegation.php:162
msgid "" msgid ""
"Register additional accounts that are automatically connected to your " "Register additional accounts that are automatically connected to your "
"existing account so you can manage them from this account." "existing account so you can manage them from this account."
msgstr "Регистрируйте дополнительные учётные записи, которые будут автоматически соединены с вашей основной учётной записью и вы сможете ими из неё управлять." msgstr "Регистрируйте дополнительные учётные записи, которые будут автоматически соединены с вашей основной учётной записью и вы сможете ими из неё управлять."
#: src/Module/Settings/Delegation.php:164 #: src/Module/Settings/Delegation.php:163
msgid "Register an additional account" msgid "Register an additional account"
msgstr "Зарегистрируйте дополнительную учётную запись" msgstr "Зарегистрируйте дополнительную учётную запись"
#: src/Module/Settings/Delegation.php:168 #: src/Module/Settings/Delegation.php:167
msgid "" msgid ""
"Parent users have total control about this account, including the account " "Parent users have total control about this account, including the account "
"settings. Please double check whom you give this access." "settings. Please double check whom you give this access."
msgstr "" msgstr ""
#: src/Module/Settings/Delegation.php:172 #: src/Module/Settings/Delegation.php:171
msgid "Delegates" msgid "Delegates"
msgstr "Делегаты" msgstr "Делегаты"
#: src/Module/Settings/Delegation.php:174 #: src/Module/Settings/Delegation.php:173
msgid "" msgid ""
"Delegates are able to manage all aspects of this account/page except for " "Delegates are able to manage all aspects of this account/page except for "
"basic account settings. Please do not delegate your personal account to " "basic account settings. Please do not delegate your personal account to "
"anybody that you do not trust completely." "anybody that you do not trust completely."
msgstr "Доверенные лица могут управлять всеми аспектами этого аккаунта/страницы, за исключением основных настроек аккаунта. Пожалуйста, не предоставляйте доступ в личный кабинет тому, кому вы не полностью доверяете." msgstr "Доверенные лица могут управлять всеми аспектами этого аккаунта/страницы, за исключением основных настроек аккаунта. Пожалуйста, не предоставляйте доступ в личный кабинет тому, кому вы не полностью доверяете."
#: src/Module/Settings/Delegation.php:175 #: src/Module/Settings/Delegation.php:174
msgid "Existing Page Delegates" msgid "Existing Page Delegates"
msgstr "Существующие уполномоченные страницы" msgstr "Существующие уполномоченные страницы"
#: src/Module/Settings/Delegation.php:177 #: src/Module/Settings/Delegation.php:176
msgid "Potential Delegates" msgid "Potential Delegates"
msgstr "Возможные доверенные лица" msgstr "Возможные доверенные лица"
#: src/Module/Settings/Delegation.php:180 #: src/Module/Settings/Delegation.php:179
msgid "Add" msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#: src/Module/Settings/Delegation.php:181 #: src/Module/Settings/Delegation.php:180
msgid "No entries." msgid "No entries."
msgstr "Нет записей." msgstr "Нет записей."
#: src/Module/Settings/Display.php:107 #: src/Module/Settings/Display.php:106
msgid "The theme you chose isn't available." msgid "The theme you chose isn't available."
msgstr "Выбранная вами тема недоступна." msgstr "Выбранная вами тема недоступна."
#: src/Module/Settings/Display.php:146 #: src/Module/Settings/Display.php:145
#, php-format #, php-format
msgid "%s - (Unsupported)" msgid "%s - (Unsupported)"
msgstr "" msgstr ""
#: src/Module/Settings/Display.php:192 #: src/Module/Settings/Display.php:199
msgid "Display Settings" msgid "Display Settings"
msgstr "Внешний вид" msgstr "Внешний вид"
#: src/Module/Settings/Display.php:194 #: src/Module/Settings/Display.php:201
msgid "General Theme Settings" msgid "General Theme Settings"
msgstr "Общие настройки тем" msgstr "Общие настройки тем"
#: src/Module/Settings/Display.php:195 #: src/Module/Settings/Display.php:202
msgid "Custom Theme Settings" msgid "Custom Theme Settings"
msgstr "Личные настройки тем" msgstr "Личные настройки тем"
#: src/Module/Settings/Display.php:196 #: src/Module/Settings/Display.php:203
msgid "Content Settings" msgid "Content Settings"
msgstr "Настройки контента" msgstr "Настройки контента"
#: src/Module/Settings/Display.php:197 view/theme/duepuntozero/config.php:70 #: src/Module/Settings/Display.php:204 view/theme/duepuntozero/config.php:87
#: view/theme/frio/config.php:161 view/theme/quattro/config.php:72 #: view/theme/frio/config.php:173 view/theme/quattro/config.php:89
#: view/theme/vier/config.php:120 #: view/theme/vier/config.php:137
msgid "Theme settings" msgid "Theme settings"
msgstr "Настройки темы" msgstr "Настройки темы"
#: src/Module/Settings/Display.php:198 #: src/Module/Settings/Display.php:205
msgid "Calendar" msgid "Calendar"
msgstr "Календарь" msgstr "Календарь"
#: src/Module/Settings/Display.php:204 #: src/Module/Settings/Display.php:211
msgid "Display Theme:" msgid "Display Theme:"
msgstr "Показать тему:" msgstr "Показать тему:"
#: src/Module/Settings/Display.php:205 #: src/Module/Settings/Display.php:212
msgid "Mobile Theme:" msgid "Mobile Theme:"
msgstr "Мобильная тема:" msgstr "Мобильная тема:"
#: src/Module/Settings/Display.php:208 #: src/Module/Settings/Display.php:215
msgid "Number of items to display per page:" msgid "Number of items to display per page:"
msgstr "Количество элементов, отображаемых на одной странице:" msgstr "Количество элементов, отображаемых на одной странице:"
#: src/Module/Settings/Display.php:208 src/Module/Settings/Display.php:209 #: src/Module/Settings/Display.php:215 src/Module/Settings/Display.php:216
msgid "Maximum of 100 items" msgid "Maximum of 100 items"
msgstr "Максимум 100 элементов" msgstr "Максимум 100 элементов"
#: src/Module/Settings/Display.php:209 #: src/Module/Settings/Display.php:216
msgid "Number of items to display per page when viewed from mobile device:" msgid "Number of items to display per page when viewed from mobile device:"
msgstr "Количество элементов на странице, когда просмотр осуществляется с мобильных устройств:" msgstr "Количество элементов на странице, когда просмотр осуществляется с мобильных устройств:"
#: src/Module/Settings/Display.php:210 #: src/Module/Settings/Display.php:217
msgid "Update browser every xx seconds" msgid "Update browser every xx seconds"
msgstr "Обновление браузера каждые хх секунд" msgstr "Обновление браузера каждые хх секунд"
#: src/Module/Settings/Display.php:210 #: src/Module/Settings/Display.php:217
msgid "Minimum of 10 seconds. Enter -1 to disable it." msgid "Minimum of 10 seconds. Enter -1 to disable it."
msgstr "Минимум 10 секунд. Введите -1 для отключения." msgstr "Минимум 10 секунд. Введите -1 для отключения."
#: src/Module/Settings/Display.php:211 #: src/Module/Settings/Display.php:218
msgid "Automatic updates only at the top of the post stream pages" msgid "Automatic updates only at the top of the post stream pages"
msgstr "Автоматически обновлять только при нахождении вверху страницы ленты" msgstr "Автоматически обновлять только при нахождении вверху страницы ленты"
#: src/Module/Settings/Display.php:211 #: src/Module/Settings/Display.php:218
msgid "" msgid ""
"Auto update may add new posts at the top of the post stream pages, which can" "Auto update may add new posts at the top of the post stream pages, which can"
" affect the scroll position and perturb normal reading if it happens " " affect the scroll position and perturb normal reading if it happens "
"anywhere else the top of the page." "anywhere else the top of the page."
msgstr "Автообновление может загружать новые записи в начало ленты, что может изменить положение прокрутки и помешать чтению, если вы находитесь не в начале страницы." msgstr "Автообновление может загружать новые записи в начало ленты, что может изменить положение прокрутки и помешать чтению, если вы находитесь не в начале страницы."
#: src/Module/Settings/Display.php:212 #: src/Module/Settings/Display.php:219
msgid "Display emoticons" msgid "Display emoticons"
msgstr "Показывать смайлики" msgstr "Показывать смайлики"
#: src/Module/Settings/Display.php:212 #: src/Module/Settings/Display.php:219
msgid "When enabled, emoticons are replaced with matching symbols." msgid "When enabled, emoticons are replaced with matching symbols."
msgstr "Когда включено, соответствующие символы отображаются как смайлики." msgstr "Когда включено, соответствующие символы отображаются как смайлики."
#: src/Module/Settings/Display.php:213 #: src/Module/Settings/Display.php:220
msgid "Infinite scroll" msgid "Infinite scroll"
msgstr "Бесконечная прокрутка" msgstr "Бесконечная прокрутка"
#: src/Module/Settings/Display.php:213 #: src/Module/Settings/Display.php:220
msgid "Automatic fetch new items when reaching the page end." msgid "Automatic fetch new items when reaching the page end."
msgstr "Автоматически подгружать новые записи, когда вы оказываетесь в конце страницы." msgstr "Автоматически подгружать новые записи, когда вы оказываетесь в конце страницы."
#: src/Module/Settings/Display.php:214 #: src/Module/Settings/Display.php:221
msgid "Enable Smart Threading" msgid "Enable Smart Threading"
msgstr "Включить умное ветвление обсуждений" msgstr "Включить умное ветвление обсуждений"
#: src/Module/Settings/Display.php:214 #: src/Module/Settings/Display.php:221
msgid "Enable the automatic suppression of extraneous thread indentation." msgid "Enable the automatic suppression of extraneous thread indentation."
msgstr "Включить автоматическое удаление излишних отступов в ветках обсуждений." msgstr "Включить автоматическое удаление излишних отступов в ветках обсуждений."
#: src/Module/Settings/Display.php:215 #: src/Module/Settings/Display.php:222
msgid "Display the Dislike feature" msgid "Display the Dislike feature"
msgstr "Показывать \"Не нравится\"" msgstr "Показывать \"Не нравится\""
#: src/Module/Settings/Display.php:215 #: src/Module/Settings/Display.php:222
msgid "" msgid ""
"Display the Dislike button and dislike reactions on posts and comments." "Display the Dislike button and dislike reactions on posts and comments."
msgstr "Показывать кнопку \"Не нравится\" и соответствующие реакции на записях и комментариях." msgstr "Показывать кнопку \"Не нравится\" и соответствующие реакции на записях и комментариях."
#: src/Module/Settings/Display.php:216 #: src/Module/Settings/Display.php:223
msgid "Display the resharer" msgid "Display the resharer"
msgstr "Показывать поделившегося" msgstr "Показывать поделившегося"
#: src/Module/Settings/Display.php:216 #: src/Module/Settings/Display.php:223
msgid "Display the first resharer as icon and text on a reshared item." msgid "Display the first resharer as icon and text on a reshared item."
msgstr "Показывать первого из поделившихся записью в виде значка над этой записью." msgstr "Показывать первого из поделившихся записью в виде значка над этой записью."
#: src/Module/Settings/Display.php:217 #: src/Module/Settings/Display.php:224
msgid "Stay local" msgid "Stay local"
msgstr "Оставаться локально" msgstr "Оставаться локально"
#: src/Module/Settings/Display.php:217 #: src/Module/Settings/Display.php:224
msgid "Don't go to a remote system when following a contact link." msgid "Don't go to a remote system when following a contact link."
msgstr "Не переходить на другие серверы по ссылкам профилей." msgstr "Не переходить на другие серверы по ссылкам профилей."
#: src/Module/Settings/Display.php:219 #: src/Module/Settings/Display.php:226
msgid "Beginning of week:" msgid "Beginning of week:"
msgstr "Начало недели:" msgstr "Начало недели:"
@ -9489,8 +9716,8 @@ msgstr "Картинка профиля"
msgid "Location" msgid "Location"
msgstr "Местонахождение" msgstr "Местонахождение"
#: src/Module/Settings/Profile/Index.php:230 src/Util/Temporal.php:93 #: src/Module/Settings/Profile/Index.php:230 src/Util/Temporal.php:96
#: src/Util/Temporal.php:95 #: src/Util/Temporal.php:98
msgid "Miscellaneous" msgid "Miscellaneous"
msgstr "Разное" msgstr "Разное"
@ -9574,261 +9801,257 @@ msgid ""
"\t\t\t\t<p>Non-public fields can only be seen by the selected Friendica contacts or the Friendica contacts in the selected groups.</p>" "\t\t\t\t<p>Non-public fields can only be seen by the selected Friendica contacts or the Friendica contacts in the selected groups.</p>"
msgstr "<p>Произвольные поля видны <a href=\"%s\">на вашей странице профиля</a>.</p>\n\t\t\t\t<p>В значениях полей можно использовать BBCode.</p>\n\t\t\t\t<p>Меняйте порядок перетаскиванием.</p>\n\t\t\t\t<p>Сотрите название для удаления поля.</p>\n\t\t\t\t<p>Закрытые поля будут видны только выбранным контактам из Friendica, либо контактам из выбранных групп.</p>" msgstr "<p>Произвольные поля видны <a href=\"%s\">на вашей странице профиля</a>.</p>\n\t\t\t\t<p>В значениях полей можно использовать BBCode.</p>\n\t\t\t\t<p>Меняйте порядок перетаскиванием.</p>\n\t\t\t\t<p>Сотрите название для удаления поля.</p>\n\t\t\t\t<p>Закрытые поля будут видны только выбранным контактам из Friendica, либо контактам из выбранных групп.</p>"
#: src/Module/Settings/Profile/Photo/Crop.php:108 #: src/Module/Settings/Profile/Photo/Crop.php:107
#: src/Module/Settings/Profile/Photo/Crop.php:126 #: src/Module/Settings/Profile/Photo/Crop.php:125
#: src/Module/Settings/Profile/Photo/Crop.php:144 #: src/Module/Settings/Profile/Photo/Crop.php:143
#: src/Module/Settings/Profile/Photo/Index.php:102 #: src/Module/Settings/Profile/Photo/Index.php:101
#, php-format #, php-format
msgid "Image size reduction [%s] failed." msgid "Image size reduction [%s] failed."
msgstr "Уменьшение размера изображения [%s] не удалось." msgstr "Уменьшение размера изображения [%s] не удалось."
#: src/Module/Settings/Profile/Photo/Crop.php:151 #: src/Module/Settings/Profile/Photo/Crop.php:150
msgid "" msgid ""
"Shift-reload the page or clear browser cache if the new photo does not " "Shift-reload the page or clear browser cache if the new photo does not "
"display immediately." "display immediately."
msgstr "Перезагрузите страницу с зажатой клавишей \"Shift\" для того, чтобы увидеть свое новое фото немедленно." msgstr "Перезагрузите страницу с зажатой клавишей \"Shift\" для того, чтобы увидеть свое новое фото немедленно."
#: src/Module/Settings/Profile/Photo/Crop.php:156 #: src/Module/Settings/Profile/Photo/Crop.php:155
msgid "Unable to process image" msgid "Unable to process image"
msgstr "Не удается обработать изображение" msgstr "Не удается обработать изображение"
#: src/Module/Settings/Profile/Photo/Crop.php:175 #: src/Module/Settings/Profile/Photo/Crop.php:174
msgid "Photo not found." msgid "Photo not found."
msgstr "Фото не найдено." msgstr "Фото не найдено."
#: src/Module/Settings/Profile/Photo/Crop.php:197 #: src/Module/Settings/Profile/Photo/Crop.php:196
msgid "Profile picture successfully updated." msgid "Profile picture successfully updated."
msgstr "Картинка профиля успешно обновлена." msgstr "Картинка профиля успешно обновлена."
#: src/Module/Settings/Profile/Photo/Crop.php:223 #: src/Module/Settings/Profile/Photo/Crop.php:222
#: src/Module/Settings/Profile/Photo/Crop.php:227 #: src/Module/Settings/Profile/Photo/Crop.php:226
msgid "Crop Image" msgid "Crop Image"
msgstr "Обрезать изображение" msgstr "Обрезать изображение"
#: src/Module/Settings/Profile/Photo/Crop.php:224 #: src/Module/Settings/Profile/Photo/Crop.php:223
msgid "Please adjust the image cropping for optimum viewing." msgid "Please adjust the image cropping for optimum viewing."
msgstr "Пожалуйста, настройте обрезку изображения для оптимального просмотра." msgstr "Пожалуйста, настройте обрезку изображения для оптимального просмотра."
#: src/Module/Settings/Profile/Photo/Crop.php:226 #: src/Module/Settings/Profile/Photo/Crop.php:225
msgid "Use Image As Is" msgid "Use Image As Is"
msgstr "Использовать картинку как есть" msgstr "Использовать картинку как есть"
#: src/Module/Settings/Profile/Photo/Index.php:46 #: src/Module/Settings/Profile/Photo/Index.php:45
msgid "Missing uploaded image." msgid "Missing uploaded image."
msgstr "Отсутствует загруженное изображение" msgstr "Отсутствует загруженное изображение"
#: src/Module/Settings/Profile/Photo/Index.php:125 #: src/Module/Settings/Profile/Photo/Index.php:124
msgid "Profile Picture Settings" msgid "Profile Picture Settings"
msgstr "Настройки картинки профиля" msgstr "Настройки картинки профиля"
#: src/Module/Settings/Profile/Photo/Index.php:126 #: src/Module/Settings/Profile/Photo/Index.php:125
msgid "Current Profile Picture" msgid "Current Profile Picture"
msgstr "Текущая картинка профиля" msgstr "Текущая картинка профиля"
#: src/Module/Settings/Profile/Photo/Index.php:127 #: src/Module/Settings/Profile/Photo/Index.php:126
msgid "Upload Profile Picture" msgid "Upload Profile Picture"
msgstr "Загрузить картинку профиля" msgstr "Загрузить картинку профиля"
#: src/Module/Settings/Profile/Photo/Index.php:128 #: src/Module/Settings/Profile/Photo/Index.php:127
msgid "Upload Picture:" msgid "Upload Picture:"
msgstr "Загрузить картинку:" msgstr "Загрузить картинку:"
#: src/Module/Settings/Profile/Photo/Index.php:133 #: src/Module/Settings/Profile/Photo/Index.php:132
msgid "or" msgid "or"
msgstr "или" msgstr "или"
#: src/Module/Settings/Profile/Photo/Index.php:135 #: src/Module/Settings/Profile/Photo/Index.php:134
msgid "skip this step" msgid "skip this step"
msgstr "пропустить этот шаг" msgstr "пропустить этот шаг"
#: src/Module/Settings/Profile/Photo/Index.php:137 #: src/Module/Settings/Profile/Photo/Index.php:136
msgid "select a photo from your photo albums" msgid "select a photo from your photo albums"
msgstr "выберите фото из ваших фотоальбомов" msgstr "выберите фото из ваших фотоальбомов"
#: src/Module/Settings/TwoFactor/AppSpecific.php:64 #: src/Module/Settings/TwoFactor/AppSpecific.php:65
#: src/Module/Settings/TwoFactor/Recovery.php:62 #: src/Module/Settings/TwoFactor/Recovery.php:63
#: src/Module/Settings/TwoFactor/Trusted.php:65 #: src/Module/Settings/TwoFactor/Trusted.php:66
#: src/Module/Settings/TwoFactor/Verify.php:68 #: src/Module/Settings/TwoFactor/Verify.php:68
msgid "Please enter your password to access this page." msgid "Please enter your password to access this page."
msgstr "Пожалуйста, введите ваш пароль для доступа к этой странице." msgstr "Пожалуйста, введите ваш пароль для доступа к этой странице."
#: src/Module/Settings/TwoFactor/AppSpecific.php:82 #: src/Module/Settings/TwoFactor/AppSpecific.php:83
msgid "App-specific password generation failed: The description is empty." msgid "App-specific password generation failed: The description is empty."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:85 #: src/Module/Settings/TwoFactor/AppSpecific.php:86
msgid "" msgid ""
"App-specific password generation failed: This description already exists." "App-specific password generation failed: This description already exists."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:89 #: src/Module/Settings/TwoFactor/AppSpecific.php:90
msgid "New app-specific password generated." msgid "New app-specific password generated."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:95 #: src/Module/Settings/TwoFactor/AppSpecific.php:96
msgid "App-specific passwords successfully revoked." msgid "App-specific passwords successfully revoked."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:105 #: src/Module/Settings/TwoFactor/AppSpecific.php:106
msgid "App-specific password successfully revoked." msgid "App-specific password successfully revoked."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:126 #: src/Module/Settings/TwoFactor/AppSpecific.php:127
msgid "Two-factor app-specific passwords" msgid "Two-factor app-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:128 #: src/Module/Settings/TwoFactor/AppSpecific.php:129
msgid "" msgid ""
"<p>App-specific passwords are randomly generated passwords used instead your" "<p>App-specific passwords are randomly generated passwords used instead your"
" regular password to authenticate your account on third-party applications " " regular password to authenticate your account on third-party applications "
"that don't support two-factor authentication.</p>" "that don't support two-factor authentication.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:129 #: src/Module/Settings/TwoFactor/AppSpecific.php:130
msgid "" msgid ""
"Make sure to copy your new app-specific password now. You wont be able to " "Make sure to copy your new app-specific password now. You wont be able to "
"see it again!" "see it again!"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:132 #: src/Module/Settings/TwoFactor/AppSpecific.php:133
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:133 #: src/Module/Settings/TwoFactor/AppSpecific.php:134
msgid "Last Used" msgid "Last Used"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:134 #: src/Module/Settings/TwoFactor/AppSpecific.php:135
msgid "Revoke" msgid "Revoke"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:135 #: src/Module/Settings/TwoFactor/AppSpecific.php:136
msgid "Revoke All" msgid "Revoke All"
msgstr "Отозвать все" msgstr "Отозвать все"
#: src/Module/Settings/TwoFactor/AppSpecific.php:138 #: src/Module/Settings/TwoFactor/AppSpecific.php:139
msgid "" msgid ""
"When you generate a new app-specific password, you must use it right away, " "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." "it will be shown to you once after you generate it."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:139 #: src/Module/Settings/TwoFactor/AppSpecific.php:140
msgid "Generate new app-specific password" msgid "Generate new app-specific password"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:140 #: src/Module/Settings/TwoFactor/AppSpecific.php:141
msgid "Friendiqa on my Fairphone 2..." msgid "Friendiqa on my Fairphone 2..."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/AppSpecific.php:141 #: src/Module/Settings/TwoFactor/AppSpecific.php:142
msgid "Generate" msgid "Generate"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:67 #: src/Module/Settings/TwoFactor/Index.php:68
msgid "Two-factor authentication successfully disabled." msgid "Two-factor authentication successfully disabled."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:93 #: src/Module/Settings/TwoFactor/Index.php:120
msgid "Wrong Password"
msgstr "Неверный пароль."
#: src/Module/Settings/TwoFactor/Index.php:113
msgid "" msgid ""
"<p>Use an application on a mobile device to get two-factor authentication " "<p>Use an application on a mobile device to get two-factor authentication "
"codes when prompted on login.</p>" "codes when prompted on login.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:117 #: src/Module/Settings/TwoFactor/Index.php:124
msgid "Authenticator app" msgid "Authenticator app"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:118 #: src/Module/Settings/TwoFactor/Index.php:125
msgid "Configured" msgid "Configured"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:118 #: src/Module/Settings/TwoFactor/Index.php:125
msgid "Not Configured" msgid "Not Configured"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:119 #: src/Module/Settings/TwoFactor/Index.php:126
msgid "<p>You haven't finished configuring your authenticator app.</p>" msgid "<p>You haven't finished configuring your authenticator app.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:120 #: src/Module/Settings/TwoFactor/Index.php:127
msgid "<p>Your authenticator app is correctly configured.</p>" msgid "<p>Your authenticator app is correctly configured.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:122 #: src/Module/Settings/TwoFactor/Index.php:129
msgid "Recovery codes" msgid "Recovery codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:123 #: src/Module/Settings/TwoFactor/Index.php:130
msgid "Remaining valid codes" msgid "Remaining valid codes"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:125 #: src/Module/Settings/TwoFactor/Index.php:132
msgid "" msgid ""
"<p>These one-use codes can replace an authenticator app code in case you " "<p>These one-use codes can replace an authenticator app code in case you "
"have lost access to it.</p>" "have lost access to it.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:127 #: src/Module/Settings/TwoFactor/Index.php:134
msgid "App-specific passwords" msgid "App-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:128 #: src/Module/Settings/TwoFactor/Index.php:135
msgid "Generated app-specific passwords" msgid "Generated app-specific passwords"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:130 #: src/Module/Settings/TwoFactor/Index.php:137
msgid "" msgid ""
"<p>These randomly generated passwords allow you to authenticate on apps not " "<p>These randomly generated passwords allow you to authenticate on apps not "
"supporting two-factor authentication.</p>" "supporting two-factor authentication.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:133 #: src/Module/Settings/TwoFactor/Index.php:140
msgid "Current password:" msgid "Current password:"
msgstr "Текущий пароль:" msgstr "Текущий пароль:"
#: src/Module/Settings/TwoFactor/Index.php:133 #: src/Module/Settings/TwoFactor/Index.php:140
msgid "" msgid ""
"You need to provide your current password to change two-factor " "You need to provide your current password to change two-factor "
"authentication settings." "authentication settings."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:134 #: src/Module/Settings/TwoFactor/Index.php:141
msgid "Enable two-factor authentication" msgid "Enable two-factor authentication"
msgstr "Включить двухфакторную аутентификацию" msgstr "Включить двухфакторную аутентификацию"
#: src/Module/Settings/TwoFactor/Index.php:135 #: src/Module/Settings/TwoFactor/Index.php:142
msgid "Disable two-factor authentication" msgid "Disable two-factor authentication"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:136 #: src/Module/Settings/TwoFactor/Index.php:143
msgid "Show recovery codes" msgid "Show recovery codes"
msgstr "Показать коды восстановления" msgstr "Показать коды восстановления"
#: src/Module/Settings/TwoFactor/Index.php:137 #: src/Module/Settings/TwoFactor/Index.php:144
msgid "Manage app-specific passwords" msgid "Manage app-specific passwords"
msgstr "Управление паролями приложений" msgstr "Управление паролями приложений"
#: src/Module/Settings/TwoFactor/Index.php:138 #: src/Module/Settings/TwoFactor/Index.php:145
msgid "Manage trusted browsers" msgid "Manage trusted browsers"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Index.php:139 #: src/Module/Settings/TwoFactor/Index.php:146
msgid "Finish app configuration" msgid "Finish app configuration"
msgstr "Закончить настройку приложения" msgstr "Закончить настройку приложения"
#: src/Module/Settings/TwoFactor/Recovery.php:78 #: src/Module/Settings/TwoFactor/Recovery.php:79
msgid "New recovery codes successfully generated." msgid "New recovery codes successfully generated."
msgstr "Новые коды восстановления успешно сгенерированы." msgstr "Новые коды восстановления успешно сгенерированы."
#: src/Module/Settings/TwoFactor/Recovery.php:104 #: src/Module/Settings/TwoFactor/Recovery.php:105
msgid "Two-factor recovery codes" msgid "Two-factor recovery codes"
msgstr "Коды восстановления для ДФА" msgstr "Коды восстановления для ДФА"
#: src/Module/Settings/TwoFactor/Recovery.php:106 #: src/Module/Settings/TwoFactor/Recovery.php:107
msgid "" msgid ""
"<p>Recovery codes can be used to access your account in the event you lose " "<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 " "access to your device and cannot receive two-factor authentication "
@ -9837,56 +10060,60 @@ msgid ""
"account.</p>" "account.</p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:108 #: src/Module/Settings/TwoFactor/Recovery.php:109
msgid "" msgid ""
"When you generate new recovery codes, you must copy the new codes. Your old " "When you generate new recovery codes, you must copy the new codes. Your old "
"codes wont work anymore." "codes wont work anymore."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Recovery.php:109 #: src/Module/Settings/TwoFactor/Recovery.php:110
msgid "Generate new recovery codes" msgid "Generate new recovery codes"
msgstr "Сгенерировать новые коды восстановления." msgstr "Сгенерировать новые коды восстановления."
#: src/Module/Settings/TwoFactor/Recovery.php:111 #: src/Module/Settings/TwoFactor/Recovery.php:112
msgid "Next: Verification" msgid "Next: Verification"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:82 #: src/Module/Settings/TwoFactor/Trusted.php:83
msgid "Trusted browsers successfully removed." msgid "Trusted browsers successfully removed."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:92 #: src/Module/Settings/TwoFactor/Trusted.php:93
msgid "Trusted browser successfully removed." msgid "Trusted browser successfully removed."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:133 #: src/Module/Settings/TwoFactor/Trusted.php:135
msgid "Two-factor Trusted Browsers" msgid "Two-factor Trusted Browsers"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:134 #: src/Module/Settings/TwoFactor/Trusted.php:136
msgid "" msgid ""
"Trusted browsers are individual browsers you chose to skip two-factor " "Trusted browsers are individual browsers you chose to skip two-factor "
"authentication to access Friendica. Please use this feature sparingly, as it" "authentication to access Friendica. Please use this feature sparingly, as it"
" can negate the benefit of two-factor authentication." " can negate the benefit of two-factor authentication."
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:135 #: src/Module/Settings/TwoFactor/Trusted.php:137
msgid "Device" msgid "Device"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:136 #: src/Module/Settings/TwoFactor/Trusted.php:138
msgid "OS" msgid "OS"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:138 #: src/Module/Settings/TwoFactor/Trusted.php:140
msgid "Trusted" msgid "Trusted"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:139 #: src/Module/Settings/TwoFactor/Trusted.php:141
msgid "Created At"
msgstr ""
#: src/Module/Settings/TwoFactor/Trusted.php:142
msgid "Last Use" msgid "Last Use"
msgstr "Последнее использование" msgstr "Последнее использование"
#: src/Module/Settings/TwoFactor/Trusted.php:141 #: src/Module/Settings/TwoFactor/Trusted.php:144
msgid "Remove All" msgid "Remove All"
msgstr "Удалить все" msgstr "Удалить все"
@ -10175,64 +10402,64 @@ msgid ""
" features and resources." " features and resources."
msgstr "Наши страницы <strong>помощи</strong> могут проконсультировать о подробностях и возможностях программы и ресурса." msgstr "Наши страницы <strong>помощи</strong> могут проконсультировать о подробностях и возможностях программы и ресурса."
#: src/Navigation/Notifications/Factory/FormattedNavNotification.php:134 #: src/Navigation/Notifications/Factory/FormattedNavNotification.php:135
msgid "{0} wants to follow you" msgid "{0} wants to follow you"
msgstr "{0} хочет подписаться на вас" msgstr "{0} хочет подписаться на вас"
#: src/Navigation/Notifications/Factory/FormattedNavNotification.php:136 #: src/Navigation/Notifications/Factory/FormattedNavNotification.php:137
msgid "{0} has started following you" msgid "{0} has started following you"
msgstr "{0} подписался на вас" msgstr "{0} подписался на вас"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:91 #: src/Navigation/Notifications/Factory/FormattedNotify.php:93
#, php-format #, php-format
msgid "%s liked %s's post" msgid "%s liked %s's post"
msgstr "%s нравится %s сообшение" msgstr "%s нравится %s сообшение"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:103 #: src/Navigation/Notifications/Factory/FormattedNotify.php:105
#, php-format #, php-format
msgid "%s disliked %s's post" msgid "%s disliked %s's post"
msgstr "%s не нравится сообщение %s" msgstr "%s не нравится сообщение %s"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:115 #: src/Navigation/Notifications/Factory/FormattedNotify.php:117
#, php-format #, php-format
msgid "%s is attending %s's event" msgid "%s is attending %s's event"
msgstr "%s будет присутствовать на событии %s" msgstr "%s будет присутствовать на событии %s"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:127 #: src/Navigation/Notifications/Factory/FormattedNotify.php:129
#, php-format #, php-format
msgid "%s is not attending %s's event" msgid "%s is not attending %s's event"
msgstr "%s не будет присутствовать на событии %s" msgstr "%s не будет присутствовать на событии %s"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:139 #: src/Navigation/Notifications/Factory/FormattedNotify.php:141
#, php-format #, php-format
msgid "%s may attending %s's event" msgid "%s may attending %s's event"
msgstr "%s возможно будет присутствовать на событии %s" msgstr "%s возможно будет присутствовать на событии %s"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:169 #: src/Navigation/Notifications/Factory/FormattedNotify.php:171
#, php-format #, php-format
msgid "%s is now friends with %s" msgid "%s is now friends with %s"
msgstr "%s теперь друзья с %s" msgstr "%s теперь друзья с %s"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:336 #: src/Navigation/Notifications/Factory/FormattedNotify.php:338
#: src/Navigation/Notifications/Factory/FormattedNotify.php:374 #: src/Navigation/Notifications/Factory/FormattedNotify.php:376
#, php-format #, php-format
msgid "%s commented on %s's post" msgid "%s commented on %s's post"
msgstr "%s прокомментировал %s сообщение" msgstr "%s прокомментировал %s сообщение"
#: src/Navigation/Notifications/Factory/FormattedNotify.php:373 #: src/Navigation/Notifications/Factory/FormattedNotify.php:375
#, php-format #, php-format
msgid "%s created a new post" msgid "%s created a new post"
msgstr "%s написал новое сообщение" msgstr "%s написал новое сообщение"
#: src/Navigation/Notifications/Factory/Introduction.php:133 #: src/Navigation/Notifications/Factory/Introduction.php:134
msgid "Friend Suggestion" msgid "Friend Suggestion"
msgstr "Предложение в друзья" msgstr "Предложение в друзья"
#: src/Navigation/Notifications/Factory/Introduction.php:159 #: src/Navigation/Notifications/Factory/Introduction.php:160
msgid "Friend/Connect Request" msgid "Friend/Connect Request"
msgstr "Запрос в друзья / на подключение" msgstr "Запрос в друзья / на подключение"
#: src/Navigation/Notifications/Factory/Introduction.php:159 #: src/Navigation/Notifications/Factory/Introduction.php:160
msgid "New Follower" msgid "New Follower"
msgstr "Новый подписчик" msgstr "Новый подписчик"
@ -10246,320 +10473,304 @@ msgstr "%1$s хочет подписаться на вас."
msgid "%1$s has started following you" msgid "%1$s has started following you"
msgstr "%1$s подписался на вас" msgstr "%1$s подписался на вас"
#: src/Navigation/Notifications/Factory/Notification.php:200 #: src/Navigation/Notifications/Factory/Notification.php:208
#, php-format #, php-format
msgid "%1$s liked your comment on %2$s" msgid "%1$s liked your comment on %2$s"
msgstr "%1$s нравится ваш комментарий %2$s" msgstr "%1$s нравится ваш комментарий %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:203 #: src/Navigation/Notifications/Factory/Notification.php:211
#, php-format #, php-format
msgid "%1$s liked your post %2$s" msgid "%1$s liked your post %2$s"
msgstr "%1$s нравится ваша запись %2$s" msgstr "%1$s нравится ваша запись %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:210 #: src/Navigation/Notifications/Factory/Notification.php:218
#, php-format #, php-format
msgid "%1$s disliked your comment on %2$s" msgid "%1$s disliked your comment on %2$s"
msgstr "%1$s не нравится ваш комментарий %2$s" msgstr "%1$s не нравится ваш комментарий %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:213 #: src/Navigation/Notifications/Factory/Notification.php:221
#, php-format #, php-format
msgid "%1$s disliked your post %2$s" msgid "%1$s disliked your post %2$s"
msgstr "%1$s не нравится ваша запись %2$s" msgstr "%1$s не нравится ваша запись %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:220 #: src/Navigation/Notifications/Factory/Notification.php:228
#, php-format #, php-format
msgid "%1$s shared your comment %2$s" msgid "%1$s shared your comment %2$s"
msgstr "%1$s поделился вашим комментарием %2$s" msgstr "%1$s поделился вашим комментарием %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:223 #: src/Navigation/Notifications/Factory/Notification.php:231
#, php-format #, php-format
msgid "%1$s shared your post %2$s" msgid "%1$s shared your post %2$s"
msgstr "%1$s поделился вашей записью %2$s" msgstr "%1$s поделился вашей записью %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:227 #: src/Navigation/Notifications/Factory/Notification.php:235
#: src/Navigation/Notifications/Factory/Notification.php:297 #: src/Navigation/Notifications/Factory/Notification.php:305
#, php-format #, php-format
msgid "%1$s shared the post %2$s from %3$s" msgid "%1$s shared the post %2$s from %3$s"
msgstr "%1$s поделился записью %2$s от %3$s" msgstr "%1$s поделился записью %2$s от %3$s"
#: src/Navigation/Notifications/Factory/Notification.php:229 #: src/Navigation/Notifications/Factory/Notification.php:237
#: src/Navigation/Notifications/Factory/Notification.php:299 #: src/Navigation/Notifications/Factory/Notification.php:307
#, php-format #, php-format
msgid "%1$s shared a post from %3$s" msgid "%1$s shared a post from %3$s"
msgstr "%1$s поделился записью от %3$s" msgstr "%1$s поделился записью от %3$s"
#: src/Navigation/Notifications/Factory/Notification.php:231 #: src/Navigation/Notifications/Factory/Notification.php:239
#: src/Navigation/Notifications/Factory/Notification.php:301 #: src/Navigation/Notifications/Factory/Notification.php:309
#, php-format #, php-format
msgid "%1$s shared the post %2$s" msgid "%1$s shared the post %2$s"
msgstr "%1$s поделился записью %2$s" msgstr "%1$s поделился записью %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:233 #: src/Navigation/Notifications/Factory/Notification.php:241
#: src/Navigation/Notifications/Factory/Notification.php:303 #: src/Navigation/Notifications/Factory/Notification.php:311
#, php-format #, php-format
msgid "%1$s shared a post" msgid "%1$s shared a post"
msgstr "%1$s поделился записью" msgstr "%1$s поделился записью"
#: src/Navigation/Notifications/Factory/Notification.php:241 #: src/Navigation/Notifications/Factory/Notification.php:249
#, php-format #, php-format
msgid "%1$s wants to attend your event %2$s" msgid "%1$s wants to attend your event %2$s"
msgstr "%1$s хочет прийти на ваше событие %2$s" msgstr "%1$s хочет прийти на ваше событие %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:248 #: src/Navigation/Notifications/Factory/Notification.php:256
#, php-format #, php-format
msgid "%1$s does not want to attend your event %2$s" msgid "%1$s does not want to attend your event %2$s"
msgstr "%1$s не хочет приходить на ваше событие %2$s" msgstr "%1$s не хочет приходить на ваше событие %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:255 #: src/Navigation/Notifications/Factory/Notification.php:263
#, php-format #, php-format
msgid "%1$s maybe wants to attend your event %2$s" msgid "%1$s maybe wants to attend your event %2$s"
msgstr "%1$s возможно захочет прийти на в ваше событие %2$s" msgstr "%1$s возможно захочет прийти на в ваше событие %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:262 #: src/Navigation/Notifications/Factory/Notification.php:270
#, php-format #, php-format
msgid "%1$s tagged you on %2$s" msgid "%1$s tagged you on %2$s"
msgstr "%1$s отметил(а) вас в %2$s" msgstr "%1$s отметил(а) вас в %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:266 #: src/Navigation/Notifications/Factory/Notification.php:274
#, php-format #, php-format
msgid "%1$s replied to you on %2$s" msgid "%1$s replied to you on %2$s"
msgstr "%1$s ответил(а) на %2$s" msgstr "%1$s ответил(а) на %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:270 #: src/Navigation/Notifications/Factory/Notification.php:278
#, php-format #, php-format
msgid "%1$s commented in your thread %2$s" msgid "%1$s commented in your thread %2$s"
msgstr "%1$s ответил(а) в вашем обсуждении %2$s" msgstr "%1$s ответил(а) в вашем обсуждении %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:274 #: src/Navigation/Notifications/Factory/Notification.php:282
#, php-format #, php-format
msgid "%1$s commented on your comment %2$s" msgid "%1$s commented on your comment %2$s"
msgstr "%1$s ответил(а) на ваш комментарий %2$s" msgstr "%1$s ответил(а) на ваш комментарий %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:281 #: src/Navigation/Notifications/Factory/Notification.php:289
#, php-format #, php-format
msgid "%1$s commented in their thread %2$s" msgid "%1$s commented in their thread %2$s"
msgstr "%1$s ответил(а) в своём обсуждении %2$s" msgstr "%1$s ответил(а) в своём обсуждении %2$s"
#: src/Navigation/Notifications/Factory/Notification.php:283 #: src/Navigation/Notifications/Factory/Notification.php:291
#, php-format #, php-format
msgid "%1$s commented in their thread" msgid "%1$s commented in their thread"
msgstr "%1$s ответил(а) в своём обсуждении" msgstr "%1$s ответил(а) в своём обсуждении"
#: src/Navigation/Notifications/Factory/Notification.php:285 #: src/Navigation/Notifications/Factory/Notification.php:293
#, php-format #, php-format
msgid "%1$s commented in the thread %2$s from %3$s" msgid "%1$s commented in the thread %2$s from %3$s"
msgstr "%1$s ответил(а) в обсуждении %2$s от %3$s" msgstr "%1$s ответил(а) в обсуждении %2$s от %3$s"
#: src/Navigation/Notifications/Factory/Notification.php:287 #: src/Navigation/Notifications/Factory/Notification.php:295
#, php-format #, php-format
msgid "%1$s commented in the thread from %3$s" msgid "%1$s commented in the thread from %3$s"
msgstr "%1$s ответил(а) в обсуждении от %3$s" msgstr "%1$s ответил(а) в обсуждении от %3$s"
#: src/Navigation/Notifications/Factory/Notification.php:292 #: src/Navigation/Notifications/Factory/Notification.php:300
#, php-format #, php-format
msgid "%1$s commented on your thread %2$s" msgid "%1$s commented on your thread %2$s"
msgstr "%1$s ответил(а) в вашем обсуждении %2$s" msgstr "%1$s ответил(а) в вашем обсуждении %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:221 #: src/Navigation/Notifications/Repository/Notify.php:225
#: src/Navigation/Notifications/Repository/Notify.php:735 #: src/Navigation/Notifications/Repository/Notify.php:721
msgid "[Friendica:Notify]" msgid "[Friendica:Notify]"
msgstr "[Friendica]" msgstr "[Friendica]"
#: src/Navigation/Notifications/Repository/Notify.php:285 #: src/Navigation/Notifications/Repository/Notify.php:289
#, php-format #, php-format
msgid "%s New mail received at %s" msgid "%s New mail received at %s"
msgstr "%s Новая почта получена в %s" msgstr "%s Новая почта получена в %s"
#: src/Navigation/Notifications/Repository/Notify.php:287 #: src/Navigation/Notifications/Repository/Notify.php:291
#, php-format #, php-format
msgid "%1$s sent you a new private message at %2$s." msgid "%1$s sent you a new private message at %2$s."
msgstr "%1$s отправил вам новое личное сообщение на %2$s." msgstr "%1$s отправил вам новое личное сообщение на %2$s."
#: src/Navigation/Notifications/Repository/Notify.php:288 #: src/Navigation/Notifications/Repository/Notify.php:292
msgid "a private message" msgid "a private message"
msgstr "личное сообщение" msgstr "личное сообщение"
#: src/Navigation/Notifications/Repository/Notify.php:288 #: src/Navigation/Notifications/Repository/Notify.php:292
#, php-format #, php-format
msgid "%1$s sent you %2$s." msgid "%1$s sent you %2$s."
msgstr "%1$s послал вам %2$s." msgstr "%1$s послал вам %2$s."
#: src/Navigation/Notifications/Repository/Notify.php:290 #: src/Navigation/Notifications/Repository/Notify.php:294
#, php-format #, php-format
msgid "Please visit %s to view and/or reply to your private messages." msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Пожалуйста, посетите %s для просмотра и/или ответа на личные сообщения." msgstr "Пожалуйста, посетите %s для просмотра и/или ответа на личные сообщения."
#: src/Navigation/Notifications/Repository/Notify.php:320 #: src/Navigation/Notifications/Repository/Notify.php:324
#, php-format #, php-format
msgid "%1$s commented on %2$s's %3$s %4$s" msgid "%1$s commented on %2$s's %3$s %4$s"
msgstr "%1$s прокомментировал(а) %2$s %3$s %4$s" msgstr "%1$s прокомментировал(а) %2$s %3$s %4$s"
#: src/Navigation/Notifications/Repository/Notify.php:325 #: src/Navigation/Notifications/Repository/Notify.php:329
#, php-format #, php-format
msgid "%1$s commented on your %2$s %3$s" msgid "%1$s commented on your %2$s %3$s"
msgstr "%1$s прокомментировал(а) ваш %2$s %3$s" msgstr "%1$s прокомментировал(а) ваш %2$s %3$s"
#: src/Navigation/Notifications/Repository/Notify.php:329 #: src/Navigation/Notifications/Repository/Notify.php:333
#, php-format #, php-format
msgid "%1$s commented on their %2$s %3$s" msgid "%1$s commented on their %2$s %3$s"
msgstr "%1$s прокомментировал(а) свой %2$s %3$s" msgstr "%1$s прокомментировал(а) свой %2$s %3$s"
#: src/Navigation/Notifications/Repository/Notify.php:333 #: src/Navigation/Notifications/Repository/Notify.php:337
#: src/Navigation/Notifications/Repository/Notify.php:769 #: src/Navigation/Notifications/Repository/Notify.php:755
#, php-format #, php-format
msgid "%1$s Comment to conversation #%2$d by %3$s" msgid "%1$s Comment to conversation #%2$d by %3$s"
msgstr "%1$s Комментариев к разговору #%2$d от %3$s" msgstr "%1$s Комментариев к разговору #%2$d от %3$s"
#: src/Navigation/Notifications/Repository/Notify.php:335 #: src/Navigation/Notifications/Repository/Notify.php:339
#, php-format #, php-format
msgid "%s commented on an item/conversation you have been following." msgid "%s commented on an item/conversation you have been following."
msgstr "%s оставил комментарий к элементу/беседе, за которой вы следите." msgstr "%s оставил комментарий к элементу/беседе, за которой вы следите."
#: src/Navigation/Notifications/Repository/Notify.php:339 #: src/Navigation/Notifications/Repository/Notify.php:343
#: src/Navigation/Notifications/Repository/Notify.php:354 #: src/Navigation/Notifications/Repository/Notify.php:358
#: src/Navigation/Notifications/Repository/Notify.php:373 #: src/Navigation/Notifications/Repository/Notify.php:770
#: src/Navigation/Notifications/Repository/Notify.php:784
#, php-format #, php-format
msgid "Please visit %s to view and/or reply to the conversation." msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Пожалуйста посетите %s для просмотра и/или ответа в беседу." msgstr "Пожалуйста посетите %s для просмотра и/или ответа в беседу."
#: src/Navigation/Notifications/Repository/Notify.php:346 #: src/Navigation/Notifications/Repository/Notify.php:350
#, php-format #, php-format
msgid "%s %s posted to your profile wall" msgid "%s %s posted to your profile wall"
msgstr "%s %s размещены на стене вашего профиля" msgstr "%s %s размещены на стене вашего профиля"
#: src/Navigation/Notifications/Repository/Notify.php:348 #: src/Navigation/Notifications/Repository/Notify.php:352
#, php-format #, php-format
msgid "%1$s posted to your profile wall at %2$s" msgid "%1$s posted to your profile wall at %2$s"
msgstr "%1$s написал на вашей стене на %2$s" msgstr "%1$s написал на вашей стене на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:349 #: src/Navigation/Notifications/Repository/Notify.php:353
#, php-format #, php-format
msgid "%1$s posted to [url=%2$s]your wall[/url]" msgid "%1$s posted to [url=%2$s]your wall[/url]"
msgstr "%1$s написал на [url=%2$s]вашей стене[/url]" msgstr "%1$s написал на [url=%2$s]вашей стене[/url]"
#: src/Navigation/Notifications/Repository/Notify.php:361 #: src/Navigation/Notifications/Repository/Notify.php:366
#, php-format
msgid "%1$s %2$s poked you"
msgstr "%1$s %2$s продвинул тебя"
#: src/Navigation/Notifications/Repository/Notify.php:363
#, php-format
msgid "%1$s poked you at %2$s"
msgstr "%1$s потыкал вас на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:364
#, php-format
msgid "%1$s [url=%2$s]poked you[/url]."
msgstr "%1$s [url=%2$s]потыкал вас[/url]."
#: src/Navigation/Notifications/Repository/Notify.php:381
#, php-format #, php-format
msgid "%s Introduction received" msgid "%s Introduction received"
msgstr "%s Входящих получено" msgstr "%s Входящих получено"
#: src/Navigation/Notifications/Repository/Notify.php:383 #: src/Navigation/Notifications/Repository/Notify.php:368
#, php-format #, php-format
msgid "You've received an introduction from '%1$s' at %2$s" msgid "You've received an introduction from '%1$s' at %2$s"
msgstr "Вы получили запрос от '%1$s' на %2$s" msgstr "Вы получили запрос от '%1$s' на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:384 #: src/Navigation/Notifications/Repository/Notify.php:369
#, php-format #, php-format
msgid "You've received [url=%1$s]an introduction[/url] from %2$s." msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr "Вы получили [url=%1$s]запрос[/url] от %2$s." msgstr "Вы получили [url=%1$s]запрос[/url] от %2$s."
#: src/Navigation/Notifications/Repository/Notify.php:389 #: src/Navigation/Notifications/Repository/Notify.php:374
#: src/Navigation/Notifications/Repository/Notify.php:435 #: src/Navigation/Notifications/Repository/Notify.php:420
#, php-format #, php-format
msgid "You may visit their profile at %s" msgid "You may visit their profile at %s"
msgstr "Вы можете посмотреть его профиль здесь %s" msgstr "Вы можете посмотреть его профиль здесь %s"
#: src/Navigation/Notifications/Repository/Notify.php:391 #: src/Navigation/Notifications/Repository/Notify.php:376
#, php-format #, php-format
msgid "Please visit %s to approve or reject the introduction." msgid "Please visit %s to approve or reject the introduction."
msgstr "Посетите %s для подтверждения или отказа запроса." msgstr "Посетите %s для подтверждения или отказа запроса."
#: src/Navigation/Notifications/Repository/Notify.php:398 #: src/Navigation/Notifications/Repository/Notify.php:383
#, php-format #, php-format
msgid "%s A new person is sharing with you" msgid "%s A new person is sharing with you"
msgstr "%s Новый человек поделился с Вами" msgstr "%s Новый человек поделился с Вами"
#: src/Navigation/Notifications/Repository/Notify.php:400 #: src/Navigation/Notifications/Repository/Notify.php:385
#: src/Navigation/Notifications/Repository/Notify.php:401 #: src/Navigation/Notifications/Repository/Notify.php:386
#, php-format #, php-format
msgid "%1$s is sharing with you at %2$s" msgid "%1$s is sharing with you at %2$s"
msgstr "%1$s делится с вами на %2$s" msgstr "%1$s делится с вами на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:408 #: src/Navigation/Notifications/Repository/Notify.php:393
#, php-format #, php-format
msgid "%s You have a new follower" msgid "%s You have a new follower"
msgstr "%s У Вас новый подписчик" msgstr "%s У Вас новый подписчик"
#: src/Navigation/Notifications/Repository/Notify.php:410 #: src/Navigation/Notifications/Repository/Notify.php:395
#: src/Navigation/Notifications/Repository/Notify.php:411 #: src/Navigation/Notifications/Repository/Notify.php:396
#, php-format #, php-format
msgid "You have a new follower at %2$s : %1$s" msgid "You have a new follower at %2$s : %1$s"
msgstr "У вас новый подписчик на %2$s : %1$s" msgstr "У вас новый подписчик на %2$s : %1$s"
#: src/Navigation/Notifications/Repository/Notify.php:424 #: src/Navigation/Notifications/Repository/Notify.php:409
#, php-format #, php-format
msgid "%s Friend suggestion received" msgid "%s Friend suggestion received"
msgstr "%s Получено дружеское приглашение" msgstr "%s Получено дружеское приглашение"
#: src/Navigation/Notifications/Repository/Notify.php:426 #: src/Navigation/Notifications/Repository/Notify.php:411
#, php-format #, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s" msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr "Вы получили предложение дружбы от '%1$s' на %2$s" msgstr "Вы получили предложение дружбы от '%1$s' на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:427 #: src/Navigation/Notifications/Repository/Notify.php:412
#, php-format #, php-format
msgid "" msgid ""
"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s." "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr "У вас [url=%1$s]новое предложение дружбы[/url] для %2$s от %3$s." msgstr "У вас [url=%1$s]новое предложение дружбы[/url] для %2$s от %3$s."
#: src/Navigation/Notifications/Repository/Notify.php:433 #: src/Navigation/Notifications/Repository/Notify.php:418
msgid "Name:" msgid "Name:"
msgstr "Имя:" msgstr "Имя:"
#: src/Navigation/Notifications/Repository/Notify.php:434 #: src/Navigation/Notifications/Repository/Notify.php:419
msgid "Photo:" msgid "Photo:"
msgstr "Фото:" msgstr "Фото:"
#: src/Navigation/Notifications/Repository/Notify.php:437 #: src/Navigation/Notifications/Repository/Notify.php:422
#, php-format #, php-format
msgid "Please visit %s to approve or reject the suggestion." msgid "Please visit %s to approve or reject the suggestion."
msgstr "Пожалуйста, посетите %s для подтверждения, или отказа запроса." msgstr "Пожалуйста, посетите %s для подтверждения, или отказа запроса."
#: src/Navigation/Notifications/Repository/Notify.php:430
#: src/Navigation/Notifications/Repository/Notify.php:445 #: src/Navigation/Notifications/Repository/Notify.php:445
#: src/Navigation/Notifications/Repository/Notify.php:460
#, php-format #, php-format
msgid "%s Connection accepted" msgid "%s Connection accepted"
msgstr "%s Соединение принято" msgstr "%s Соединение принято"
#: src/Navigation/Notifications/Repository/Notify.php:432
#: src/Navigation/Notifications/Repository/Notify.php:447 #: src/Navigation/Notifications/Repository/Notify.php:447
#: src/Navigation/Notifications/Repository/Notify.php:462
#, php-format #, php-format
msgid "'%1$s' has accepted your connection request at %2$s" msgid "'%1$s' has accepted your connection request at %2$s"
msgstr "'%1$s' принял соединение с вами на %2$s" msgstr "'%1$s' принял соединение с вами на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:433
#: src/Navigation/Notifications/Repository/Notify.php:448 #: src/Navigation/Notifications/Repository/Notify.php:448
#: src/Navigation/Notifications/Repository/Notify.php:463
#, php-format #, php-format
msgid "%2$s has accepted your [url=%1$s]connection request[/url]." msgid "%2$s has accepted your [url=%1$s]connection request[/url]."
msgstr "%2$s принял ваше [url=%1$s]предложение о соединении[/url]." msgstr "%2$s принял ваше [url=%1$s]предложение о соединении[/url]."
#: src/Navigation/Notifications/Repository/Notify.php:453 #: src/Navigation/Notifications/Repository/Notify.php:438
msgid "" msgid ""
"You are now mutual friends and may exchange status updates, photos, and " "You are now mutual friends and may exchange status updates, photos, and "
"email without restriction." "email without restriction."
msgstr "Вы теперь взаимные друзья и можете обмениваться статусами, фотографиями и письмами без ограничений." msgstr "Вы теперь взаимные друзья и можете обмениваться статусами, фотографиями и письмами без ограничений."
#: src/Navigation/Notifications/Repository/Notify.php:455 #: src/Navigation/Notifications/Repository/Notify.php:440
#, php-format #, php-format
msgid "Please visit %s if you wish to make any changes to this relationship." msgid "Please visit %s if you wish to make any changes to this relationship."
msgstr "Посетите %s если вы хотите сделать изменения в этом отношении." msgstr "Посетите %s если вы хотите сделать изменения в этом отношении."
#: src/Navigation/Notifications/Repository/Notify.php:468 #: src/Navigation/Notifications/Repository/Notify.php:453
#, php-format #, php-format
msgid "" msgid ""
"'%1$s' has chosen to accept you a fan, which restricts some forms of " "'%1$s' has chosen to accept you a fan, which restricts some forms of "
@ -10568,33 +10779,33 @@ msgid ""
"automatically." "automatically."
msgstr "%1$s решил принять приглашение и пометил вас как фаната, что запрещает некоторые формы общения - например, личные сообщения и некоторые действия с профилем. Если эта страница знаменитости или сообщества, то эти настройки были применены автоматически." msgstr "%1$s решил принять приглашение и пометил вас как фаната, что запрещает некоторые формы общения - например, личные сообщения и некоторые действия с профилем. Если эта страница знаменитости или сообщества, то эти настройки были применены автоматически."
#: src/Navigation/Notifications/Repository/Notify.php:470 #: src/Navigation/Notifications/Repository/Notify.php:455
#, php-format #, php-format
msgid "" msgid ""
"'%1$s' may choose to extend this into a two-way or more permissive " "'%1$s' may choose to extend this into a two-way or more permissive "
"relationship in the future." "relationship in the future."
msgstr "%1$s может расширить взаимоотношения до более мягких в будущем." msgstr "%1$s может расширить взаимоотношения до более мягких в будущем."
#: src/Navigation/Notifications/Repository/Notify.php:472 #: src/Navigation/Notifications/Repository/Notify.php:457
#, php-format #, php-format
msgid "Please visit %s if you wish to make any changes to this relationship." msgid "Please visit %s if you wish to make any changes to this relationship."
msgstr "Посетите %s если вы хотите сделать изменения в этом отношении." msgstr "Посетите %s если вы хотите сделать изменения в этом отношении."
#: src/Navigation/Notifications/Repository/Notify.php:482 #: src/Navigation/Notifications/Repository/Notify.php:467
msgid "registration request" msgid "registration request"
msgstr "запрос регистрации" msgstr "запрос регистрации"
#: src/Navigation/Notifications/Repository/Notify.php:484 #: src/Navigation/Notifications/Repository/Notify.php:469
#, php-format #, php-format
msgid "You've received a registration request from '%1$s' at %2$s" msgid "You've received a registration request from '%1$s' at %2$s"
msgstr "Вы получили запрос на регистрацию от '%1$s' на %2$s" msgstr "Вы получили запрос на регистрацию от '%1$s' на %2$s"
#: src/Navigation/Notifications/Repository/Notify.php:485 #: src/Navigation/Notifications/Repository/Notify.php:470
#, php-format #, php-format
msgid "You've received a [url=%1$s]registration request[/url] from %2$s." msgid "You've received a [url=%1$s]registration request[/url] from %2$s."
msgstr "Вы получили [url=%1$s]запрос регистрации[/url] от %2$s." msgstr "Вы получили [url=%1$s]запрос регистрации[/url] от %2$s."
#: src/Navigation/Notifications/Repository/Notify.php:490 #: src/Navigation/Notifications/Repository/Notify.php:475
#, php-format #, php-format
msgid "" msgid ""
"Full Name:\t%s\n" "Full Name:\t%s\n"
@ -10602,17 +10813,17 @@ msgid ""
"Login Name:\t%s (%s)" "Login Name:\t%s (%s)"
msgstr "Полное имя:\t%s\nРасположение:\t%s\nИмя для входа:\t%s (%s)" msgstr "Полное имя:\t%s\nРасположение:\t%s\nИмя для входа:\t%s (%s)"
#: src/Navigation/Notifications/Repository/Notify.php:496 #: src/Navigation/Notifications/Repository/Notify.php:481
#, php-format #, php-format
msgid "Please visit %s to approve or reject the request." msgid "Please visit %s to approve or reject the request."
msgstr "Пожалуйста, посетите %s чтобы подтвердить или отвергнуть запрос." msgstr "Пожалуйста, посетите %s чтобы подтвердить или отвергнуть запрос."
#: src/Navigation/Notifications/Repository/Notify.php:763 #: src/Navigation/Notifications/Repository/Notify.php:749
#, php-format #, php-format
msgid "%s %s tagged you" msgid "%s %s tagged you"
msgstr "%s %s отметил(и) Вас" msgstr "%s %s отметил(и) Вас"
#: src/Navigation/Notifications/Repository/Notify.php:766 #: src/Navigation/Notifications/Repository/Notify.php:752
#, php-format #, php-format
msgid "%s %s shared a new post" msgid "%s %s shared a new post"
msgstr "%s %s поделился(-ась) новым сообщением" msgstr "%s %s поделился(-ась) новым сообщением"
@ -10640,194 +10851,194 @@ msgstr "Пожалуйста, свяжитесь с отправителем, о
msgid "%s posted an update." msgid "%s posted an update."
msgstr "%s отправил/а/ обновление." msgstr "%s отправил/а/ обновление."
#: src/Object/Post.php:134 #: src/Object/Post.php:136
msgid "Private Message" msgid "Private Message"
msgstr "Приватная запись" msgstr "Приватная запись"
#: src/Object/Post.php:137 #: src/Object/Post.php:140
msgid "Public Message" msgid "Public Message"
msgstr "Публичная запись" msgstr "Публичная запись"
#: src/Object/Post.php:140 #: src/Object/Post.php:144
msgid "Unlisted Message" msgid "Unlisted Message"
msgstr "Запись без публикации в общих лентах" msgstr "Запись без публикации в общих лентах"
#: src/Object/Post.php:170 #: src/Object/Post.php:179
msgid "This entry was edited" msgid "This entry was edited"
msgstr "Эта запись была отредактирована" msgstr "Эта запись была отредактирована"
#: src/Object/Post.php:198 #: src/Object/Post.php:207
msgid "Connector Message" msgid "Connector Message"
msgstr "Сообщение-коннектор" msgstr "Сообщение-коннектор"
#: src/Object/Post.php:213 src/Object/Post.php:215 #: src/Object/Post.php:222 src/Object/Post.php:224
msgid "Edit" msgid "Edit"
msgstr "Редактировать" msgstr "Редактировать"
#: src/Object/Post.php:239 #: src/Object/Post.php:248
msgid "Delete globally" msgid "Delete globally"
msgstr "Удалить везде" msgstr "Удалить везде"
#: src/Object/Post.php:239 #: src/Object/Post.php:248
msgid "Remove locally" msgid "Remove locally"
msgstr "Убрать для себя" msgstr "Убрать для себя"
#: src/Object/Post.php:255 #: src/Object/Post.php:264
#, php-format #, php-format
msgid "Block %s" msgid "Block %s"
msgstr "Заблокировать %s" msgstr "Заблокировать %s"
#: src/Object/Post.php:260 #: src/Object/Post.php:269
msgid "Save to folder" msgid "Save to folder"
msgstr "Сохранить в папку" msgstr "Сохранить в папку"
#: src/Object/Post.php:294 #: src/Object/Post.php:304
msgid "I will attend" msgid "I will attend"
msgstr "Я буду" msgstr "Я буду"
#: src/Object/Post.php:294 #: src/Object/Post.php:304
msgid "I will not attend" msgid "I will not attend"
msgstr "Меня не будет" msgstr "Меня не будет"
#: src/Object/Post.php:294 #: src/Object/Post.php:304
msgid "I might attend" msgid "I might attend"
msgstr "Возможно" msgstr "Возможно"
#: src/Object/Post.php:324 #: src/Object/Post.php:334
msgid "Ignore thread" msgid "Ignore thread"
msgstr "Игнорировать обсуждение" msgstr "Игнорировать обсуждение"
#: src/Object/Post.php:325 #: src/Object/Post.php:335
msgid "Unignore thread" msgid "Unignore thread"
msgstr "Не игнорировать обсуждение" msgstr "Не игнорировать обсуждение"
#: src/Object/Post.php:326 #: src/Object/Post.php:336
msgid "Toggle ignore status" msgid "Toggle ignore status"
msgstr "Переключить игнорирование" msgstr "Переключить игнорирование"
#: src/Object/Post.php:336 #: src/Object/Post.php:346
msgid "Add star" msgid "Add star"
msgstr "Добавить в Избранное" msgstr "Добавить в Избранное"
#: src/Object/Post.php:337 #: src/Object/Post.php:347
msgid "Remove star" msgid "Remove star"
msgstr "Убрать из Избранного" msgstr "Убрать из Избранного"
#: src/Object/Post.php:338 #: src/Object/Post.php:348
msgid "Toggle star status" msgid "Toggle star status"
msgstr "Добавить/убрать из Избранного" msgstr "Добавить/убрать из Избранного"
#: src/Object/Post.php:349 #: src/Object/Post.php:359
msgid "Pin" msgid "Pin"
msgstr "Закрепить" msgstr "Закрепить"
#: src/Object/Post.php:350 #: src/Object/Post.php:360
msgid "Unpin" msgid "Unpin"
msgstr "Открепить" msgstr "Открепить"
#: src/Object/Post.php:351 #: src/Object/Post.php:361
msgid "Toggle pin status" msgid "Toggle pin status"
msgstr "Закрепить/открепить" msgstr "Закрепить/открепить"
#: src/Object/Post.php:354 #: src/Object/Post.php:364
msgid "Pinned" msgid "Pinned"
msgstr "Закреплено" msgstr "Закреплено"
#: src/Object/Post.php:359 #: src/Object/Post.php:369
msgid "Add tag" msgid "Add tag"
msgstr "Добавить тег" msgstr "Добавить тег"
#: src/Object/Post.php:372 #: src/Object/Post.php:382
msgid "Quote share this" msgid "Quote share this"
msgstr "Поделиться с комментарием" msgstr "Поделиться с комментарием"
#: src/Object/Post.php:372 #: src/Object/Post.php:382
msgid "Quote Share" msgid "Quote Share"
msgstr "Цитировать" msgstr "Цитировать"
#: src/Object/Post.php:375 #: src/Object/Post.php:385
msgid "Reshare this" msgid "Reshare this"
msgstr "Поделиться этим с подписчиками" msgstr "Поделиться этим с подписчиками"
#: src/Object/Post.php:375 #: src/Object/Post.php:385
msgid "Reshare" msgid "Reshare"
msgstr "Поделиться" msgstr "Поделиться"
#: src/Object/Post.php:376 #: src/Object/Post.php:386
msgid "Cancel your Reshare" msgid "Cancel your Reshare"
msgstr "Отменить репост" msgstr "Отменить репост"
#: src/Object/Post.php:376 #: src/Object/Post.php:386
msgid "Unshare" msgid "Unshare"
msgstr "Отменить репост" msgstr "Отменить репост"
#: src/Object/Post.php:423 #: src/Object/Post.php:433
#, php-format #, php-format
msgid "%s (Received %s)" msgid "%s (Received %s)"
msgstr "%s (Получено %s)" msgstr "%s (Получено %s)"
#: src/Object/Post.php:428 #: src/Object/Post.php:438
msgid "Comment this item on your system" msgid "Comment this item on your system"
msgstr "Прокомментировать это на вашем узле" msgstr "Прокомментировать это на вашем узле"
#: src/Object/Post.php:428 #: src/Object/Post.php:438
msgid "Remote comment" msgid "Remote comment"
msgstr "Загруженный комментарий" msgstr "Загруженный комментарий"
#: src/Object/Post.php:449 #: src/Object/Post.php:459
msgid "Share via ..." msgid "Share via ..."
msgstr "Отправить в ..." msgstr "Отправить в ..."
#: src/Object/Post.php:449 #: src/Object/Post.php:459
msgid "Share via external services" msgid "Share via external services"
msgstr "Поделиться через сторонние сервисы" msgstr "Поделиться через сторонние сервисы"
#: src/Object/Post.php:478 #: src/Object/Post.php:488
msgid "to" msgid "to"
msgstr "к" msgstr "к"
#: src/Object/Post.php:479 #: src/Object/Post.php:489
msgid "via" msgid "via"
msgstr "через" msgstr "через"
#: src/Object/Post.php:480 #: src/Object/Post.php:490
msgid "Wall-to-Wall" msgid "Wall-to-Wall"
msgstr "Стена-на-Стену" msgstr "Стена-на-Стену"
#: src/Object/Post.php:481 #: src/Object/Post.php:491
msgid "via Wall-To-Wall:" msgid "via Wall-To-Wall:"
msgstr "через Стена-на-Стену:" msgstr "через Стена-на-Стену:"
#: src/Object/Post.php:523 #: src/Object/Post.php:533
#, php-format #, php-format
msgid "Reply to %s" msgid "Reply to %s"
msgstr "Ответ %s" msgstr "Ответ %s"
#: src/Object/Post.php:526 #: src/Object/Post.php:536
msgid "More" msgid "More"
msgstr "Ещё" msgstr "Ещё"
#: src/Object/Post.php:544 #: src/Object/Post.php:554
msgid "Notifier task is pending" msgid "Notifier task is pending"
msgstr "Постановка в очередь" msgstr "Постановка в очередь"
#: src/Object/Post.php:545 #: src/Object/Post.php:555
msgid "Delivery to remote servers is pending" msgid "Delivery to remote servers is pending"
msgstr "Ожидается отправка адресатам" msgstr "Ожидается отправка адресатам"
#: src/Object/Post.php:546 #: src/Object/Post.php:556
msgid "Delivery to remote servers is underway" msgid "Delivery to remote servers is underway"
msgstr "Отправка адресатам в процессе" msgstr "Отправка адресатам в процессе"
#: src/Object/Post.php:547 #: src/Object/Post.php:557
msgid "Delivery to remote servers is mostly done" msgid "Delivery to remote servers is mostly done"
msgstr "Отправка адресатам почти завершилась" msgstr "Отправка адресатам почти завершилась"
#: src/Object/Post.php:548 #: src/Object/Post.php:558
msgid "Delivery to remote servers is done" msgid "Delivery to remote servers is done"
msgstr "Отправка адресатам завершена" msgstr "Отправка адресатам завершена"
#: src/Object/Post.php:568 #: src/Object/Post.php:578
#, php-format #, php-format
msgid "%d comment" msgid "%d comment"
msgid_plural "%d comments" msgid_plural "%d comments"
@ -10836,54 +11047,55 @@ msgstr[1] "%d комментариев"
msgstr[2] "%d комментариев" msgstr[2] "%d комментариев"
msgstr[3] "%d комментариев" msgstr[3] "%d комментариев"
#: src/Object/Post.php:569 #: src/Object/Post.php:579
msgid "Show more" msgid "Show more"
msgstr "Показать больше" msgstr "Показать больше"
#: src/Object/Post.php:570 #: src/Object/Post.php:580
msgid "Show fewer" msgid "Show fewer"
msgstr "Показать меньше" msgstr "Показать меньше"
#: src/Protocol/OStatus.php:1648 #: src/Protocol/OStatus.php:1472
#, php-format #, php-format
msgid "%s is now following %s." msgid "%s is now following %s."
msgstr "%s теперь подписан на %s." msgstr "%s теперь подписан на %s."
#: src/Protocol/OStatus.php:1649 #: src/Protocol/OStatus.php:1473
msgid "following" msgid "following"
msgstr "следует" msgstr "следует"
#: src/Protocol/OStatus.php:1652 #: src/Protocol/OStatus.php:1476
#, php-format #, php-format
msgid "%s stopped following %s." msgid "%s stopped following %s."
msgstr "%s отписался от %s." msgstr "%s отписался от %s."
#: src/Protocol/OStatus.php:1653 #: src/Protocol/OStatus.php:1477
msgid "stopped following" msgid "stopped following"
msgstr "отписка от" msgstr "отписка от"
#: src/Render/FriendicaSmartyEngine.php:52 #: src/Render/FriendicaSmartyEngine.php:56
msgid "The folder view/smarty3/ must be writable by webserver." #, php-format
msgid "The folder %s must be writable by webserver."
msgstr "" msgstr ""
#: src/Security/Authentication.php:221 #: src/Security/Authentication.php:226
msgid "Login failed." msgid "Login failed."
msgstr "Войти не удалось." msgstr "Войти не удалось."
#: src/Security/Authentication.php:262 #: src/Security/Authentication.php:271
msgid "Login failed. Please check your credentials." msgid "Login failed. Please check your credentials."
msgstr "Ошибка входа. Пожалуйста, проверьте данные для входа." msgstr "Ошибка входа. Пожалуйста, проверьте данные для входа."
#: src/Security/Authentication.php:360 #: src/Security/Authentication.php:382
#, php-format #, php-format
msgid "Welcome %s" msgid "Welcome %s"
msgstr "Добро пожаловать, %s" msgstr "Добро пожаловать, %s"
#: src/Security/Authentication.php:361 #: src/Security/Authentication.php:383
msgid "Please upload a profile photo." msgid "Please upload a profile photo."
msgstr "Пожалуйста, загрузите фотографию профиля." msgstr "Пожалуйста, загрузите фотографию профиля."
#: src/Util/EMailer/MailBuilder.php:259 #: src/Util/EMailer/MailBuilder.php:260
msgid "Friendica Notification" msgid "Friendica Notification"
msgstr "Уведомление Friendica" msgstr "Уведомление Friendica"
@ -10906,264 +11118,275 @@ msgstr "%s Администратор"
msgid "thanks" msgid "thanks"
msgstr "спасибо" msgstr "спасибо"
#: src/Util/Temporal.php:167 #: src/Util/Temporal.php:171
msgid "YYYY-MM-DD or MM-DD" msgid "YYYY-MM-DD or MM-DD"
msgstr "YYYY-MM-DD или MM-DD" msgstr "YYYY-MM-DD или MM-DD"
#: src/Util/Temporal.php:275 #: src/Util/Temporal.php:279
#, php-format #, php-format
msgid "Time zone: <strong>%s</strong> <a href=\"%s\">Change in Settings</a>" msgid "Time zone: <strong>%s</strong> <a href=\"%s\">Change in Settings</a>"
msgstr "Временная зона: <strong>%s</strong> <a href=\"%s\">Изменить в Настройках</a>" msgstr "Временная зона: <strong>%s</strong> <a href=\"%s\">Изменить в Настройках</a>"
#: src/Util/Temporal.php:318 #: src/Util/Temporal.php:318 src/Util/Temporal.php:325
msgid "never" msgid "never"
msgstr "никогда" msgstr "никогда"
#: src/Util/Temporal.php:325 #: src/Util/Temporal.php:332
msgid "less than a second ago" msgid "less than a second ago"
msgstr "менее секунды назад" msgstr "менее секунды назад"
#: src/Util/Temporal.php:333 #: src/Util/Temporal.php:341
msgid "year" msgid "year"
msgstr "год" msgstr "год"
#: src/Util/Temporal.php:333 #: src/Util/Temporal.php:341
msgid "years" msgid "years"
msgstr "лет" msgstr "лет"
#: src/Util/Temporal.php:334 #: src/Util/Temporal.php:342
msgid "months" msgid "months"
msgstr "мес." msgstr "мес."
#: src/Util/Temporal.php:335 #: src/Util/Temporal.php:343
msgid "weeks" msgid "weeks"
msgstr "нед." msgstr "нед."
#: src/Util/Temporal.php:336 #: src/Util/Temporal.php:344
msgid "days" msgid "days"
msgstr "дней" msgstr "дней"
#: src/Util/Temporal.php:337 #: src/Util/Temporal.php:345
msgid "hour" msgid "hour"
msgstr "час" msgstr "час"
#: src/Util/Temporal.php:337 #: src/Util/Temporal.php:345
msgid "hours" msgid "hours"
msgstr "час." msgstr "час."
#: src/Util/Temporal.php:338 #: src/Util/Temporal.php:346
msgid "minute" msgid "minute"
msgstr "мин." msgstr "мин."
#: src/Util/Temporal.php:338 #: src/Util/Temporal.php:346
msgid "minutes" msgid "minutes"
msgstr "мин." msgstr "мин."
#: src/Util/Temporal.php:339 #: src/Util/Temporal.php:347
msgid "second" msgid "second"
msgstr "секунда" msgstr "секунда"
#: src/Util/Temporal.php:339 #: src/Util/Temporal.php:347
msgid "seconds" msgid "seconds"
msgstr "сек." msgstr "сек."
#: src/Util/Temporal.php:349 #: src/Util/Temporal.php:357
#, php-format #, php-format
msgid "in %1$d %2$s" msgid "in %1$d %2$s"
msgstr "через %1$d %2$s" msgstr "через %1$d %2$s"
#: src/Util/Temporal.php:352 #: src/Util/Temporal.php:360
#, php-format #, php-format
msgid "%1$d %2$s ago" msgid "%1$d %2$s ago"
msgstr "%1$d %2$s назад" msgstr "%1$d %2$s назад"
#: src/Worker/Delivery.php:524 #: src/Worker/Delivery.php:527
msgid "(no subject)" msgid "(no subject)"
msgstr "(нет темы)" msgstr "(нет темы)"
#: src/Worker/PushSubscription.php:103 #: src/Worker/PushSubscription.php:110
msgid "Notification from Friendica" msgid "Notification from Friendica"
msgstr "Уведомление от Friendica" msgstr "Уведомление от Friendica"
#: src/Worker/PushSubscription.php:104 #: src/Worker/PushSubscription.php:111
msgid "Empty Post" msgid "Empty Post"
msgstr "Пустая запись" msgstr "Пустая запись"
#: view/theme/duepuntozero/config.php:52 #: view/theme/duepuntozero/config.php:69
msgid "default" msgid "default"
msgstr "По умолчанию" msgstr "По умолчанию"
#: view/theme/duepuntozero/config.php:53 #: view/theme/duepuntozero/config.php:70
msgid "greenzero" msgid "greenzero"
msgstr "greenzero" msgstr "greenzero"
#: view/theme/duepuntozero/config.php:54 #: view/theme/duepuntozero/config.php:71
msgid "purplezero" msgid "purplezero"
msgstr "purplezero" msgstr "purplezero"
#: view/theme/duepuntozero/config.php:55 #: view/theme/duepuntozero/config.php:72
msgid "easterbunny" msgid "easterbunny"
msgstr "easterbunny" msgstr "easterbunny"
#: view/theme/duepuntozero/config.php:56 #: view/theme/duepuntozero/config.php:73
msgid "darkzero" msgid "darkzero"
msgstr "darkzero" msgstr "darkzero"
#: view/theme/duepuntozero/config.php:57 #: view/theme/duepuntozero/config.php:74
msgid "comix" msgid "comix"
msgstr "comix" msgstr "comix"
#: view/theme/duepuntozero/config.php:58 #: view/theme/duepuntozero/config.php:75
msgid "slackr" msgid "slackr"
msgstr "slackr" msgstr "slackr"
#: view/theme/duepuntozero/config.php:71 #: view/theme/duepuntozero/config.php:88
msgid "Variations" msgid "Variations"
msgstr "Вариации" msgstr "Вариации"
#: view/theme/frio/config.php:142 #: view/theme/frio/config.php:154
msgid "Light (Accented)" msgid "Light (Accented)"
msgstr "Светлая (с акцентами)" msgstr "Светлая (с акцентами)"
#: view/theme/frio/config.php:143 #: view/theme/frio/config.php:155
msgid "Dark (Accented)" msgid "Dark (Accented)"
msgstr "Тёмная (с акцентами)" msgstr "Тёмная (с акцентами)"
#: view/theme/frio/config.php:144 #: view/theme/frio/config.php:156
msgid "Black (Accented)" msgid "Black (Accented)"
msgstr "Чёрная (с акцентами)" msgstr "Чёрная (с акцентами)"
#: view/theme/frio/config.php:156 #: view/theme/frio/config.php:168
msgid "Note" msgid "Note"
msgstr "Примечание" msgstr "Примечание"
#: view/theme/frio/config.php:156 #: view/theme/frio/config.php:168
msgid "Check image permissions if all users are allowed to see the image" msgid "Check image permissions if all users are allowed to see the image"
msgstr "Проверьте настройки разрешений изображения, оно должно быть видно всем пользователям" msgstr "Проверьте настройки разрешений изображения, оно должно быть видно всем пользователям"
#: view/theme/frio/config.php:162 #: view/theme/frio/config.php:174
msgid "Custom" msgid "Custom"
msgstr "Другое" msgstr "Другое"
#: view/theme/frio/config.php:163 #: view/theme/frio/config.php:175
msgid "Legacy" msgid "Legacy"
msgstr "Традиционная" msgstr "Традиционная"
#: view/theme/frio/config.php:164 #: view/theme/frio/config.php:176
msgid "Accented" msgid "Accented"
msgstr "С акцентами" msgstr "С акцентами"
#: view/theme/frio/config.php:165 #: view/theme/frio/config.php:177
msgid "Select color scheme" msgid "Select color scheme"
msgstr "Выбрать цветовую схему" msgstr "Выбрать цветовую схему"
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:178
msgid "Select scheme accent" msgid "Select scheme accent"
msgstr "Выберите акцент темы" msgstr "Выберите акцент темы"
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:178
msgid "Blue" msgid "Blue"
msgstr "Синий" msgstr "Синий"
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:178
msgid "Red" msgid "Red"
msgstr "Красный" msgstr "Красный"
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:178
msgid "Purple" msgid "Purple"
msgstr "Фиолетовый" msgstr "Фиолетовый"
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:178
msgid "Green" msgid "Green"
msgstr "Зелёный" msgstr "Зелёный"
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:178
msgid "Pink" msgid "Pink"
msgstr "Розовый" msgstr "Розовый"
#: view/theme/frio/config.php:167 #: view/theme/frio/config.php:179
msgid "Copy or paste schemestring" msgid "Copy or paste schemestring"
msgstr "Скопируйте или вставьте код темы" msgstr "Скопируйте или вставьте код темы"
#: view/theme/frio/config.php:167 #: view/theme/frio/config.php:179
msgid "" msgid ""
"You can copy this string to share your theme with others. Pasting here " "You can copy this string to share your theme with others. Pasting here "
"applies the schemestring" "applies the schemestring"
msgstr "Вы можете скопировать эту строку и поделиться настройками вашей темы с другими. Вставка строки здесь применяет настройки оформления темы." msgstr "Вы можете скопировать эту строку и поделиться настройками вашей темы с другими. Вставка строки здесь применяет настройки оформления темы."
#: view/theme/frio/config.php:168 #: view/theme/frio/config.php:180
msgid "Navigation bar background color" msgid "Navigation bar background color"
msgstr "Цвет фона навигационной панели" msgstr "Цвет фона навигационной панели"
#: view/theme/frio/config.php:169 #: view/theme/frio/config.php:181
msgid "Navigation bar icon color " msgid "Navigation bar icon color "
msgstr "Цвет значков навигационной панели" msgstr "Цвет значков навигационной панели"
#: view/theme/frio/config.php:170 #: view/theme/frio/config.php:182
msgid "Link color" msgid "Link color"
msgstr "Цвет ссылок" msgstr "Цвет ссылок"
#: view/theme/frio/config.php:171 #: view/theme/frio/config.php:183
msgid "Set the background color" msgid "Set the background color"
msgstr "Установить цвет фона" msgstr "Установить цвет фона"
#: view/theme/frio/config.php:172 #: view/theme/frio/config.php:184
msgid "Content background opacity" msgid "Content background opacity"
msgstr "Прозрачность фона основного содержимого" msgstr "Прозрачность фона основного содержимого"
#: view/theme/frio/config.php:173 #: view/theme/frio/config.php:185
msgid "Set the background image" msgid "Set the background image"
msgstr "Установить фоновую картинку" msgstr "Установить фоновую картинку"
#: view/theme/frio/config.php:174 #: view/theme/frio/config.php:186
msgid "Background image style" msgid "Background image style"
msgstr "Стиль фонового изображения" msgstr "Стиль фонового изображения"
#: view/theme/frio/config.php:179 #: view/theme/frio/config.php:189
msgid "Always open Compose page"
msgstr "Всегда открывать страницу редактора"
#: view/theme/frio/config.php:189
msgid ""
"The New Post button always open the <a href=\"/compose\">Compose page</a> "
"instead of the modal form. When this is disabled, the Compose page can be "
"accessed with a middle click on the link or from the modal."
msgstr "Кнопка создания новой записи всегда будет открывать <a href=\"/compose\">страницу редактора</a> вместо всплывающего окна. Когда это отключено, страница редактора может быть развёрнута из всплывающего окна, либо при открытии ссылки кнопки в новой вкладке."
#: view/theme/frio/config.php:193
msgid "Login page background image" msgid "Login page background image"
msgstr "Фоновое изображение страницы входа" msgstr "Фоновое изображение страницы входа"
#: view/theme/frio/config.php:183 #: view/theme/frio/config.php:197
msgid "Login page background color" msgid "Login page background color"
msgstr "Цвет фона страницы входа" msgstr "Цвет фона страницы входа"
#: view/theme/frio/config.php:183 #: view/theme/frio/config.php:197
msgid "Leave background image and color empty for theme defaults" msgid "Leave background image and color empty for theme defaults"
msgstr "Оставьте настройки фоновых цвета и изображения пустыми, чтобы применить настройки темы по-умолчанию." msgstr "Оставьте настройки фоновых цвета и изображения пустыми, чтобы применить настройки темы по-умолчанию."
#: view/theme/frio/php/Image.php:40 #: view/theme/frio/php/Image.php:39
msgid "Top Banner" msgid "Top Banner"
msgstr "Верхний баннер" msgstr "Верхний баннер"
#: view/theme/frio/php/Image.php:40 #: view/theme/frio/php/Image.php:39
msgid "" msgid ""
"Resize image to the width of the screen and show background color below on " "Resize image to the width of the screen and show background color below on "
"long pages." "long pages."
msgstr "Растянуть изображение по ширине экрана и показать заливку цветом под ним на длинных страницах." msgstr "Растянуть изображение по ширине экрана и показать заливку цветом под ним на длинных страницах."
#: view/theme/frio/php/Image.php:41 #: view/theme/frio/php/Image.php:40
msgid "Full screen" msgid "Full screen"
msgstr "Во весь экран" msgstr "Во весь экран"
#: view/theme/frio/php/Image.php:41 #: view/theme/frio/php/Image.php:40
msgid "" msgid ""
"Resize image to fill entire screen, clipping either the right or the bottom." "Resize image to fill entire screen, clipping either the right or the bottom."
msgstr "Растянуть изображение во весь экран, обрезав его часть справа или снизу." msgstr "Растянуть изображение во весь экран, обрезав его часть справа или снизу."
#: view/theme/frio/php/Image.php:42 #: view/theme/frio/php/Image.php:41
msgid "Single row mosaic" msgid "Single row mosaic"
msgstr "Мозаика в один ряд" msgstr "Мозаика в один ряд"
#: view/theme/frio/php/Image.php:42 #: view/theme/frio/php/Image.php:41
msgid "" msgid ""
"Resize image to repeat it on a single row, either vertical or horizontal." "Resize image to repeat it on a single row, either vertical or horizontal."
msgstr "Растянуть и размножить изображение в один ряд, вертикально или горизонтально." msgstr "Растянуть и размножить изображение в один ряд, вертикально или горизонтально."
#: view/theme/frio/php/Image.php:43 #: view/theme/frio/php/Image.php:42
msgid "Mosaic" msgid "Mosaic"
msgstr "Мозаика" msgstr "Мозаика"
#: view/theme/frio/php/Image.php:43 #: view/theme/frio/php/Image.php:42
msgid "Repeat image to fill the screen." msgid "Repeat image to fill the screen."
msgstr "Размножить изображение по всему экрану." msgstr "Размножить изображение по всему экрану."
@ -11175,78 +11398,78 @@ msgstr "Пропустить до основного содержимого"
msgid "Back to top" msgid "Back to top"
msgstr "Наверх" msgstr "Наверх"
#: view/theme/frio/theme.php:207 #: view/theme/frio/theme.php:220
msgid "Guest" msgid "Guest"
msgstr "Гость" msgstr "Гость"
#: view/theme/frio/theme.php:210 #: view/theme/frio/theme.php:223
msgid "Visitor" msgid "Visitor"
msgstr "Посетитель" msgstr "Посетитель"
#: view/theme/quattro/config.php:73 #: view/theme/quattro/config.php:90
msgid "Alignment" msgid "Alignment"
msgstr "Выравнивание" msgstr "Выравнивание"
#: view/theme/quattro/config.php:73 #: view/theme/quattro/config.php:90
msgid "Left" msgid "Left"
msgstr "Слева" msgstr "Слева"
#: view/theme/quattro/config.php:73 #: view/theme/quattro/config.php:90
msgid "Center" msgid "Center"
msgstr "Центр" msgstr "Центр"
#: view/theme/quattro/config.php:74 #: view/theme/quattro/config.php:91
msgid "Color scheme" msgid "Color scheme"
msgstr "Цветовая схема" msgstr "Цветовая схема"
#: view/theme/quattro/config.php:75 #: view/theme/quattro/config.php:92
msgid "Posts font size" msgid "Posts font size"
msgstr "Размер шрифта записей" msgstr "Размер шрифта записей"
#: view/theme/quattro/config.php:76 #: view/theme/quattro/config.php:93
msgid "Textareas font size" msgid "Textareas font size"
msgstr "Размер шрифта текстовых полей" msgstr "Размер шрифта текстовых полей"
#: view/theme/vier/config.php:75 #: view/theme/vier/config.php:92
msgid "Comma separated list of helper forums" msgid "Comma separated list of helper forums"
msgstr "Разделенный запятыми список форумов помощи" msgstr "Разделенный запятыми список форумов помощи"
#: view/theme/vier/config.php:115 #: view/theme/vier/config.php:132
msgid "don't show" msgid "don't show"
msgstr "не показывать" msgstr "не показывать"
#: view/theme/vier/config.php:115 #: view/theme/vier/config.php:132
msgid "show" msgid "show"
msgstr "показывать" msgstr "показывать"
#: view/theme/vier/config.php:121 #: view/theme/vier/config.php:138
msgid "Set style" msgid "Set style"
msgstr "Установить стиль" msgstr "Установить стиль"
#: view/theme/vier/config.php:122 #: view/theme/vier/config.php:139
msgid "Community Pages" msgid "Community Pages"
msgstr "Страницы сообщества" msgstr "Страницы сообщества"
#: view/theme/vier/config.php:123 view/theme/vier/theme.php:125 #: view/theme/vier/config.php:140 view/theme/vier/theme.php:152
msgid "Community Profiles" msgid "Community Profiles"
msgstr "Профили сообщества" msgstr "Профили сообщества"
#: view/theme/vier/config.php:124 #: view/theme/vier/config.php:141
msgid "Help or @NewHere ?" msgid "Help or @NewHere ?"
msgstr "Помощь" msgstr "Помощь"
#: view/theme/vier/config.php:125 view/theme/vier/theme.php:296 #: view/theme/vier/config.php:142 view/theme/vier/theme.php:323
msgid "Connect Services" msgid "Connect Services"
msgstr "Подключить службы" msgstr "Подключить службы"
#: view/theme/vier/config.php:126 #: view/theme/vier/config.php:143
msgid "Find Friends" msgid "Find Friends"
msgstr "Найти друзей" msgstr "Найти друзей"
#: view/theme/vier/config.php:127 view/theme/vier/theme.php:152 #: view/theme/vier/config.php:144 view/theme/vier/theme.php:179
msgid "Last users" msgid "Last users"
msgstr "Последние пользователи" msgstr "Последние пользователи"
#: view/theme/vier/theme.php:211 #: view/theme/vier/theme.php:238
msgid "Quick Start" msgid "Quick Start"
msgstr "Быстрый старт" msgstr "Быстрый старт"

View file

@ -508,16 +508,20 @@ $a->strings['remove'] = 'удалить';
$a->strings['Delete Selected Items'] = 'Удалить выбранные позиции'; $a->strings['Delete Selected Items'] = 'Удалить выбранные позиции';
$a->strings['You had been addressed (%s).'] = 'К вам обратились (%s).'; $a->strings['You had been addressed (%s).'] = 'К вам обратились (%s).';
$a->strings['You are following %s.'] = 'Вы подписаны на %s.'; $a->strings['You are following %s.'] = 'Вы подписаны на %s.';
$a->strings['Tagged'] = 'Отмечено'; $a->strings['You subscribed to one or more tags in this post.'] = 'Вы подписаны на один или несколько тегов в этой записи.';
$a->strings['Reshared'] = 'Репост'; $a->strings['Reshared'] = 'Репост';
$a->strings['Reshared by %s <%s>'] = 'Репост от %s <%s>'; $a->strings['Reshared by %s <%s>'] = 'Репост от %s <%s>';
$a->strings['%s is participating in this thread.'] = '%s участвует в этом обсуждении'; $a->strings['%s is participating in this thread.'] = '%s участвует в этом обсуждении';
$a->strings['Stored'] = 'Сохранено'; $a->strings['Stored for general reasons'] = 'Загружено по необходимости';
$a->strings['Global'] = 'Глобально'; $a->strings['Global post'] = 'Глобальная запись';
$a->strings['Relayed'] = 'Ретранслировано'; $a->strings['Sent via an relay server'] = 'Прислано через релей';
$a->strings['Relayed by %s <%s>'] = 'Ретранслировано %s <%s>'; $a->strings['Sent via the relay server %s <%s>'] = 'Прислано через релей %s <%s>';
$a->strings['Fetched'] = 'Загружено'; $a->strings['Fetched'] = 'Загружено';
$a->strings['Fetched because of %s <%s>'] = 'Загружено из-за %s <%s>'; $a->strings['Fetched because of %s <%s>'] = 'Загружено из-за %s <%s>';
$a->strings['Stored because of a child post to complete this thread.'] = 'Загружено из-за комментария в этой ветке.';
$a->strings['Stored because of your activity (like, comment, star, ...)'] = 'Загружено из-за ваших действий (лайк, комментарий, ...)';
$a->strings['Distributed'] = 'Распространено';
$a->strings['Pushed to us'] = 'Прислано нам';
$a->strings['General Features'] = 'Основные возможности'; $a->strings['General Features'] = 'Основные возможности';
$a->strings['Photo Location'] = 'Место фотографирования'; $a->strings['Photo Location'] = 'Место фотографирования';
$a->strings['Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map.'] = 'Метаданные фотографий обычно вырезаются. Эта настройка получает местоположение (если есть) до вырезки метаданных и связывает с координатами на карте.'; $a->strings['Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map.'] = 'Метаданные фотографий обычно вырезаются. Эта настройка получает местоположение (если есть) до вырезки метаданных и связывает с координатами на карте.';
@ -544,7 +548,6 @@ $a->strings['Forums'] = 'Форумы';
$a->strings['External link to forum'] = 'Внешняя ссылка на форум'; $a->strings['External link to forum'] = 'Внешняя ссылка на форум';
$a->strings['show less'] = 'показать меньше'; $a->strings['show less'] = 'показать меньше';
$a->strings['show more'] = 'показать больше'; $a->strings['show more'] = 'показать больше';
$a->strings['%1$s poked %2$s'] = '%1$s ткнул %2$s';
$a->strings['event'] = 'мероприятие'; $a->strings['event'] = 'мероприятие';
$a->strings['Follow Thread'] = 'Подписаться на обсуждение'; $a->strings['Follow Thread'] = 'Подписаться на обсуждение';
$a->strings['View Status'] = 'Просмотреть статус'; $a->strings['View Status'] = 'Просмотреть статус';
@ -556,7 +559,6 @@ $a->strings['Send PM'] = 'Отправить ЛС';
$a->strings['Block'] = 'Заблокировать'; $a->strings['Block'] = 'Заблокировать';
$a->strings['Ignore'] = 'Игнорировать'; $a->strings['Ignore'] = 'Игнорировать';
$a->strings['Languages'] = 'Языки'; $a->strings['Languages'] = 'Языки';
$a->strings['Poke'] = 'потыкать';
$a->strings['Nothing new here'] = 'Ничего нового здесь'; $a->strings['Nothing new here'] = 'Ничего нового здесь';
$a->strings['Go back'] = 'Назад'; $a->strings['Go back'] = 'Назад';
$a->strings['Clear notifications'] = 'Стереть уведомления'; $a->strings['Clear notifications'] = 'Стереть уведомления';
@ -809,18 +811,6 @@ $a->strings['Sep'] = 'Сен';
$a->strings['Oct'] = 'Окт'; $a->strings['Oct'] = 'Окт';
$a->strings['Nov'] = 'Нбр'; $a->strings['Nov'] = 'Нбр';
$a->strings['Dec'] = 'Дек'; $a->strings['Dec'] = 'Дек';
$a->strings['poke'] = 'poke';
$a->strings['poked'] = 'ткнут';
$a->strings['ping'] = 'пинг';
$a->strings['pinged'] = 'пингуется';
$a->strings['prod'] = 'толкать';
$a->strings['prodded'] = 'толкнут';
$a->strings['slap'] = 'шлепнуть';
$a->strings['slapped'] = 'шлепнут';
$a->strings['finger'] = 'указатель';
$a->strings['fingered'] = 'пощупали';
$a->strings['rebuff'] = 'ребаф';
$a->strings['rebuffed'] = 'ребафнут';
$a->strings['Friendica can\'t display this page at the moment, please contact the administrator.'] = 'Friendica не может отобразить эту страницу в данный момент, пожалуйста, свяжитесь с администратором.'; $a->strings['Friendica can\'t display this page at the moment, please contact the administrator.'] = 'Friendica не может отобразить эту страницу в данный момент, пожалуйста, свяжитесь с администратором.';
$a->strings['Storage base path'] = 'Корневой каталог хранилища'; $a->strings['Storage base path'] = 'Корневой каталог хранилища';
$a->strings['Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree'] = 'Каталог, куда сохраняются загруженные файлы. Для максимальной безопасности этот каталог должен быть размещён вне каталогов веб-сервера.'; $a->strings['Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree'] = 'Каталог, куда сохраняются загруженные файлы. Для максимальной безопасности этот каталог должен быть размещён вне каталогов веб-сервера.';
@ -922,10 +912,30 @@ $a->strings['comment'] = 'комментарий';
$a->strings['post'] = 'пост'; $a->strings['post'] = 'пост';
$a->strings['Content warning: %s'] = 'Предупреждение о контенте: %s'; $a->strings['Content warning: %s'] = 'Предупреждение о контенте: %s';
$a->strings['bytes'] = 'байт'; $a->strings['bytes'] = 'байт';
$a->strings['%s (%d%s, %d votes)'] = '%s (%d%s, %d голосов)'; $a->strings['%2$s (%3$d%%, %1$d vote)'] = [
$a->strings['%s (%d votes)'] = '%s (%d голосов)'; 0 => '%2$s (%3$d%%, %1$d голос)',
$a->strings['%d voters. Poll end: %s'] = '%d голосов. Конец опроса: %s'; 1 => '%2$s (%3$d%%, %1$d голоса)',
$a->strings['%d voters.'] = '%d голосов.'; 2 => '%2$s (%3$d%%, %1$d голосов)',
3 => '%2$s (%3$d%%, %1$d голосов)',
];
$a->strings['%2$s (%1$d vote)'] = [
0 => '%2$s (%1$d голос)',
1 => '%2$s (%1$d голоса)',
2 => '%2$s (%1$d голосов)',
3 => '%2$s (%1$d голосов)',
];
$a->strings['%d voter. Poll end: %s'] = [
0 => '%d голос. Конец опроса: %s',
1 => '%d голоса. Конец опроса: %s',
2 => '%d голосов. Конец опроса: %s',
3 => '%d голосов. Конец опроса: %s',
];
$a->strings['%d voter.'] = [
0 => '%d голос.',
1 => '%d голоса.',
2 => '%d голосов.',
3 => '%d голосов.',
];
$a->strings['Poll end: %s'] = 'Конец опроса: %s'; $a->strings['Poll end: %s'] = 'Конец опроса: %s';
$a->strings['View on separate page'] = 'Посмотреть в отдельной вкладке'; $a->strings['View on separate page'] = 'Посмотреть в отдельной вкладке';
$a->strings['[no subject]'] = '[без темы]'; $a->strings['[no subject]'] = '[без темы]';
@ -969,6 +979,7 @@ $a->strings['Not enough information to authenticate'] = 'Недостаточн
$a->strings['Password can\'t be empty'] = 'Пароль не может быть пустым'; $a->strings['Password can\'t be empty'] = 'Пароль не может быть пустым';
$a->strings['Empty passwords are not allowed.'] = 'Пароль не должен быть пустым.'; $a->strings['Empty passwords are not allowed.'] = 'Пароль не должен быть пустым.';
$a->strings['The new password has been exposed in a public data dump, please choose another.'] = 'Новый пароль содержится в опубликованных списках украденных паролей, пожалуйста, используйте другой.'; $a->strings['The new password has been exposed in a public data dump, please choose another.'] = 'Новый пароль содержится в опубликованных списках украденных паролей, пожалуйста, используйте другой.';
$a->strings['The password length is limited to 72 characters.'] = 'Длина пароля ограничена 72 символами.';
$a->strings['The password can\'t contain accentuated letters, white spaces or colons (:)'] = 'Пароль не может содержать символы с акцентами, пробелы или двоеточия (:)'; $a->strings['The password can\'t contain accentuated letters, white spaces or colons (:)'] = 'Пароль не может содержать символы с акцентами, пробелы или двоеточия (:)';
$a->strings['Passwords do not match. Password unchanged.'] = 'Пароли не совпадают. Пароль не изменен.'; $a->strings['Passwords do not match. Password unchanged.'] = 'Пароли не совпадают. Пароль не изменен.';
$a->strings['An invitation is required.'] = 'Требуется приглашение.'; $a->strings['An invitation is required.'] = 'Требуется приглашение.';
@ -1140,6 +1151,16 @@ $a->strings['
Если вы захотите удалить свою учётную запись, то сможете сделать это на %3$s/removeme Если вы захотите удалить свою учётную запись, то сможете сделать это на %3$s/removeme
Спасибо и добро пожаловать на %2$s.'; Спасибо и добро пожаловать на %2$s.';
$a->strings['[%s] Notice of remote server domain pattern block list update'] = '[%s] Обновление списка блокировки серверов';
$a->strings['Dear %s,
You are receiving this email because the Friendica node at %s where you are registered as a user updated their remote server domain pattern block list.
Please review the updated list at %s at your earliest convenience.'] = 'Уважаемый(ая) %s,
Вы получили это письмо, так как на узле Friendica %s, где вы зарегистрированы, обновился список блокировки серверов.
Пожалуйста, ознакомьтесь с новым списком по адресу %s.';
$a->strings['Addon not found.'] = 'Дополнение не найдено.'; $a->strings['Addon not found.'] = 'Дополнение не найдено.';
$a->strings['Addon %s disabled.'] = 'Дополнение %s отключено.'; $a->strings['Addon %s disabled.'] = 'Дополнение %s отключено.';
$a->strings['Addon %s enabled.'] = 'Дополнение %s включено.'; $a->strings['Addon %s enabled.'] = 'Дополнение %s включено.';
@ -1242,18 +1263,46 @@ $a->strings['Also purges all the locally stored content authored by the known co
]; ];
$a->strings['Block reason'] = 'Причина блокировки'; $a->strings['Block reason'] = 'Причина блокировки';
$a->strings['The reason why you blocked this server domain pattern. This reason will be shown publicly in the server information page.'] = 'Причина, по которой вы заблокировали этот домен. Это будет показано публично на странице с информацией о сервере.'; $a->strings['The reason why you blocked this server domain pattern. This reason will be shown publicly in the server information page.'] = 'Причина, по которой вы заблокировали этот домен. Это будет показано публично на странице с информацией о сервере.';
$a->strings['Error importing pattern file'] = 'Ошибка импорта файла списка';
$a->strings['Local blocklist replaced with the provided file.'] = 'Список блокировки заменён на список из файла.';
$a->strings['%d pattern was added to the local blocklist.'] = [
0 => '%d маска была добавлена в список блокировки.',
1 => '%d маски были добавлены в список блокировки.',
2 => '%d масок было добавлено в список блокировки.',
3 => '%d масок было добавлено в список блокировки.',
];
$a->strings['No pattern was added to the local blocklist.'] = 'Новых масок не было добавлено.';
$a->strings['Import a Server Domain Pattern Blocklist'] = 'Импорт списка блокировки серверов';
$a->strings['<p>This file can be downloaded from the <code>/friendica</code> path of any Friendica server.</p>'] = '<p>Этот файл может быть загружен по ссылке <code>/friendica</code> с любого сервера Friendica.</p>';
$a->strings['Upload file'] = 'Загрузить файл';
$a->strings['Patterns to import'] = 'Маски для импорта';
$a->strings['Domain Pattern'] = 'Маска домена';
$a->strings['Import Mode'] = 'Режим импорта';
$a->strings['Import Patterns'] = 'Импорт значений';
$a->strings['%d total pattern'] = [
0 => '%d маска',
1 => '%d маски всего',
2 => '%d масок всего',
3 => '%d масок всего',
];
$a->strings['Server domain pattern blocklist CSV file'] = 'Список блокировки серверов в виде файла CSV';
$a->strings['Append'] = 'Добавить';
$a->strings['Imports patterns from the file that weren\'t already existing in the current blocklist.'] = 'Добавляет маски из файла, которые ещё не существуют в текущем списке блокировки.';
$a->strings['Replace'] = 'Заменить';
$a->strings['Replaces the current blocklist by the imported patterns.'] = 'Заменяет текущий список загруженными значениями.';
$a->strings['Blocked server domain pattern'] = 'Маска домена блокируемого сервера'; $a->strings['Blocked server domain pattern'] = 'Маска домена блокируемого сервера';
$a->strings['Reason for the block'] = 'Причина блокировки'; $a->strings['Reason for the block'] = 'Причина блокировки';
$a->strings['Delete server domain pattern'] = 'Удалить маску домена'; $a->strings['Delete server domain pattern'] = 'Удалить маску домена';
$a->strings['Check to delete this entry from the blocklist'] = 'Отметьте, чтобы удалить эту запись из черного списка'; $a->strings['Check to delete this entry from the blocklist'] = 'Отметьте, чтобы удалить эту запись из списка блокировки';
$a->strings['Server Domain Pattern Blocklist'] = 'Чёрный список доменов'; $a->strings['Server Domain Pattern Blocklist'] = 'Список блокировки доменов';
$a->strings['This page can be used to define a blocklist 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.'] = 'На этой странице можно настроить чёрный список доменов узлов федеративной сети, которые не должны взаимодействовать с вашим узлом. Для каждой записи вы должны предоставить причину блокировки.'; $a->strings['This page can be used to define a blocklist 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.'] = 'На этой странице можно настроить список блокировки доменов узлов федеративной сети, которые не должны взаимодействовать с вашим узлом. Для каждой записи вы должны предоставить причину блокировки.';
$a->strings['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.'] = 'Список блокируемых доменов будет отображаться публично на странице <a href="/friendica">/friendica</a>, чтобы ваши пользователи и другие люди могли легко понять причину проблем с доставкой записей.'; $a->strings['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.'] = 'Список блокируемых доменов будет отображаться публично на странице <a href="/friendica">/friendica</a>, чтобы ваши пользователи и другие люди могли легко понять причину проблем с доставкой записей.';
$a->strings['Add new entry to the blocklist'] = 'Добавить новую запись в чёрный список'; $a->strings['Import server domain pattern blocklist'] = 'Импорт списка блокировки';
$a->strings['Save changes to the blocklist'] = 'Сохранить изменения чёрного списка'; $a->strings['Add new entry to the blocklist'] = 'Добавить новую запись в список блокировки';
$a->strings['Current Entries in the Blocklist'] = 'Текущие значения чёрного списка'; $a->strings['Save changes to the blocklist'] = 'Сохранить изменения списка блокировки';
$a->strings['Delete entry from the blocklist'] = 'Удалить запись из чёрного списка'; $a->strings['Current Entries in the Blocklist'] = 'Текущие значения списка блокировки';
$a->strings['Delete entry from the blocklist?'] = 'Удалить запись из чёрного списка?'; $a->strings['Delete entry from the blocklist'] = 'Удалить запись из списка';
$a->strings['Delete entry from the blocklist?'] = 'Удалить запись из списка блокировки?';
$a->strings['Update has been marked successful'] = 'Обновление было успешно отмечено'; $a->strings['Update has been marked successful'] = 'Обновление было успешно отмечено';
$a->strings['Database structure update %s was successfully applied.'] = 'Обновление базы данных %s успешно применено.'; $a->strings['Database structure update %s was successfully applied.'] = 'Обновление базы данных %s успешно применено.';
$a->strings['Executing of database structure update %s failed with error: %s'] = 'Выполнение обновления базы данных %s завершено с ошибкой: %s'; $a->strings['Executing of database structure update %s failed with error: %s'] = 'Выполнение обновления базы данных %s завершено с ошибкой: %s';
@ -1271,16 +1320,8 @@ $a->strings['Lock feature %s'] = 'Заблокировать %s';
$a->strings['Manage Additional Features'] = 'Управление дополнительными возможностями'; $a->strings['Manage Additional Features'] = 'Управление дополнительными возможностями';
$a->strings['Other'] = 'Другой'; $a->strings['Other'] = 'Другой';
$a->strings['unknown'] = 'неизвестно'; $a->strings['unknown'] = 'неизвестно';
$a->strings['%s total systems'] = '%s систем всего';
$a->strings['%s active users last month'] = '%s активных пользователей за месяц';
$a->strings['%s active users last six months'] = '%s активных пользователей за полгода';
$a->strings['%s registered users'] = '%s зарегистрированных пользователей';
$a->strings['%s locally created posts and comments'] = '%s местных записей и комментариев';
$a->strings['%s posts per user'] = '%s записей на пользователя';
$a->strings['%s users per system'] = '%s пользователей на систему';
$a->strings['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.'] = 'На этой странице вы можете увидеть немного статистики из известной вашему узлу федеративной сети. Эти данные неполные и только отражают ту часть сети, с которой ваш узел взаимодействовал.'; $a->strings['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.'] = 'На этой странице вы можете увидеть немного статистики из известной вашему узлу федеративной сети. Эти данные неполные и только отражают ту часть сети, с которой ваш узел взаимодействовал.';
$a->strings['Federation Statistics'] = 'Статистика федерации'; $a->strings['Federation Statistics'] = 'Статистика федерации';
$a->strings['Currently this node is aware of %s nodes (%s active users last month, %s active users last six months, %s registered users in total) from the following platforms:'] = 'Сейчас этому узлу известно о %s узлах (%s активных пользователей за месяц, %s активных пользователей за полгода, %s всего зарегистрированных) со следующих платформ:';
$a->strings['Item marked for deletion.'] = 'Запись помечена для удаления.'; $a->strings['Item marked for deletion.'] = 'Запись помечена для удаления.';
$a->strings['Delete Item'] = 'Удалить запись'; $a->strings['Delete Item'] = 'Удалить запись';
$a->strings['Delete this Item'] = 'Удалить эту запись'; $a->strings['Delete this Item'] = 'Удалить эту запись';
@ -1312,7 +1353,6 @@ $a->strings['Job Parameters'] = 'Параметры задания';
$a->strings['Priority'] = 'Приоритет'; $a->strings['Priority'] = 'Приоритет';
$a->strings['No special theme for mobile devices'] = 'Нет специальной темы для мобильных устройств'; $a->strings['No special theme for mobile devices'] = 'Нет специальной темы для мобильных устройств';
$a->strings['%s - (Experimental)'] = '%s - (экспериментально)'; $a->strings['%s - (Experimental)'] = '%s - (экспериментально)';
$a->strings['No community page for local users'] = 'Нет общей ленты записей локальных пользователей';
$a->strings['No community page'] = 'Нет общей ленты записей'; $a->strings['No community page'] = 'Нет общей ленты записей';
$a->strings['Public postings from users of this site'] = 'Публичные записи от пользователей этого узла'; $a->strings['Public postings from users of this site'] = 'Публичные записи от пользователей этого узла';
$a->strings['Public postings from the federated network'] = 'Публичные записи федеративной сети'; $a->strings['Public postings from the federated network'] = 'Публичные записи федеративной сети';
@ -1498,6 +1538,7 @@ $a->strings['If enabled, the tags from the saved searches will used for the "tag
$a->strings['Start Relocation'] = 'Начать перемещение'; $a->strings['Start Relocation'] = 'Начать перемещение';
$a->strings['Invalid storage backend setting value.'] = 'Недопустимое значение типа хранилища.'; $a->strings['Invalid storage backend setting value.'] = 'Недопустимое значение типа хранилища.';
$a->strings['Database (legacy)'] = 'База данных (устаревшее)'; $a->strings['Database (legacy)'] = 'База данных (устаревшее)';
$a->strings['There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s'] = 'Новая версия Friendica доступна для загрузки. Ваша текущая версия %1$s, последняя версия %2$s';
$a->strings['The worker was never executed. Please check your database structure!'] = 'Фоновые задания ни разу не выполнялись. Пожалуйста, проверьте структуру базы данных!'; $a->strings['The worker was never executed. Please check your database structure!'] = 'Фоновые задания ни разу не выполнялись. Пожалуйста, проверьте структуру базы данных!';
$a->strings['The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.'] = 'Последний раз фоновое задание выполнялось %s UTC. Это более одного часа назад. Пожалуйста, проверьте настройки crontab.'; $a->strings['The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.'] = 'Последний раз фоновое задание выполнялось %s UTC. Это более одного часа назад. Пожалуйста, проверьте настройки crontab.';
$a->strings['Normal Account'] = 'Обычный аккаунт'; $a->strings['Normal Account'] = 'Обычный аккаунт';
@ -1625,7 +1666,6 @@ $a->strings['Weekly posting limit of %d post reached. The post was rejected.'] =
2 => 'Недельный лимит в %d записей достигнут. Запись была отклонена.', 2 => 'Недельный лимит в %d записей достигнут. Запись была отклонена.',
3 => 'Недельный лимит в %d записей достигнут. Запись была отклонена.', 3 => 'Недельный лимит в %d записей достигнут. Запись была отклонена.',
]; ];
$a->strings['Monthly posting limit of %d post reached. The post was rejected.'] = 'Месячный лимит в %d записей достигнут. Запись была отклонена.';
$a->strings['Profile Details'] = 'Информация о вас'; $a->strings['Profile Details'] = 'Информация о вас';
$a->strings['Only You Can See This'] = 'Только вы можете это видеть'; $a->strings['Only You Can See This'] = 'Только вы можете это видеть';
$a->strings['Scheduled Posts'] = 'Запланированные записи'; $a->strings['Scheduled Posts'] = 'Запланированные записи';
@ -1713,12 +1753,6 @@ $a->strings['Contact (%s)'] = [
2 => 'Контакты (%s)', 2 => 'Контакты (%s)',
3 => 'Контакты (%s)', 3 => 'Контакты (%s)',
]; ];
$a->strings['Error while sending poke, please retry.'] = 'Ошибка при отправке тычка, попробуйте ещё.';
$a->strings['You must be logged in to use this module.'] = 'Вам нужно войти, чтобы использовать этот модуль.';
$a->strings['Poke/Prod'] = 'Потыкать/Потолкать';
$a->strings['poke, prod or do other things to somebody'] = 'Потыкать, потолкать или сделать что-то еще с кем-то';
$a->strings['Choose what you wish to do to recipient'] = 'Выберите действия для получателя';
$a->strings['Make this post private'] = 'Сделать эту запись личной';
$a->strings['Failed to update contact record.'] = 'Не удалось обновить запись контакта.'; $a->strings['Failed to update contact record.'] = 'Не удалось обновить запись контакта.';
$a->strings['Contact has been unblocked'] = 'Контакт разблокирован'; $a->strings['Contact has been unblocked'] = 'Контакт разблокирован';
$a->strings['Contact has been blocked'] = 'Контакт заблокирован'; $a->strings['Contact has been blocked'] = 'Контакт заблокирован';
@ -1775,12 +1809,12 @@ $a->strings['Contact is deleted.'] = 'Контакт удалён.';
$a->strings['Follow was successfully revoked.'] = 'Подписка была успешно отозвана.'; $a->strings['Follow was successfully revoked.'] = 'Подписка была успешно отозвана.';
$a->strings['Do you really want to revoke this contact\'s follow? This cannot be undone and they will have to manually follow you back again.'] = 'Вы действительно хотите отозвать подписку этого контакта на вас? Это нельзя будет отменить позже, им потребуется снова подписаться на вас.'; $a->strings['Do you really want to revoke this contact\'s follow? This cannot be undone and they will have to manually follow you back again.'] = 'Вы действительно хотите отозвать подписку этого контакта на вас? Это нельзя будет отменить позже, им потребуется снова подписаться на вас.';
$a->strings['Yes'] = 'Да'; $a->strings['Yes'] = 'Да';
$a->strings['This community stream shows all public posts received by this node. They may not reflect the opinions of this nodes users.'] = 'Эта общая лента показывает все публичные записи, которые получил этот сервер. Они могут не отражать мнений пользователей этого сервера.';
$a->strings['Local Community'] = 'Местное сообщество'; $a->strings['Local Community'] = 'Местное сообщество';
$a->strings['Posts from local users on this server'] = 'Записи пользователей с этого сервера'; $a->strings['Posts from local users on this server'] = 'Записи пользователей с этого сервера';
$a->strings['Global Community'] = 'Глобальное сообщество'; $a->strings['Global Community'] = 'Глобальное сообщество';
$a->strings['Posts from users of the whole federated network'] = 'Записи пользователей со всей федеративной сети'; $a->strings['Posts from users of the whole federated network'] = 'Записи пользователей со всей федеративной сети';
$a->strings['No results.'] = 'Нет результатов.'; $a->strings['No results.'] = 'Нет результатов.';
$a->strings['This community stream shows all public posts received by this node. They may not reflect the opinions of this nodes users.'] = 'Эта общая лента показывает все публичные записи, которые получил этот сервер. Они могут не отражать мнений пользователей этого сервера.';
$a->strings['Not available.'] = 'Недоступно.'; $a->strings['Not available.'] = 'Недоступно.';
$a->strings['No such group'] = 'Нет такой группы'; $a->strings['No such group'] = 'Нет такой группы';
$a->strings['Group: %s'] = 'Группа: %s'; $a->strings['Group: %s'] = 'Группа: %s';
@ -1816,8 +1850,8 @@ $a->strings['No entries (some entries may be hidden).'] = 'Нет записей
$a->strings['Find on this site'] = 'Найти на этом сайте'; $a->strings['Find on this site'] = 'Найти на этом сайте';
$a->strings['Results for:'] = 'Результаты для:'; $a->strings['Results for:'] = 'Результаты для:';
$a->strings['Site Directory'] = 'Каталог сайта'; $a->strings['Site Directory'] = 'Каталог сайта';
$a->strings['Item was not removed'] = 'Запись не была удалена';
$a->strings['Item was not deleted'] = 'Запись не была удалена'; $a->strings['Item was not deleted'] = 'Запись не была удалена';
$a->strings['Item was not removed'] = 'Запись не была удалена';
$a->strings['- select -'] = '- выбрать -'; $a->strings['- select -'] = '- выбрать -';
$a->strings['Suggested contact not found.'] = 'Рекомендованный контакт не найден.'; $a->strings['Suggested contact not found.'] = 'Рекомендованный контакт не найден.';
$a->strings['Friend suggestion sent.'] = 'Приглашение в друзья отправлено.'; $a->strings['Friend suggestion sent.'] = 'Приглашение в друзья отправлено.';
@ -1827,6 +1861,7 @@ $a->strings['Installed addons/apps:'] = 'Установленные дополн
$a->strings['No installed addons/apps'] = 'Нет установленных дополнений'; $a->strings['No installed addons/apps'] = 'Нет установленных дополнений';
$a->strings['Read about the <a href="%1$s/tos">Terms of Service</a> of this node.'] = 'Ознакомьтесь с <a href="%1$s/tos">Условиями Предоставления Услуг</a> этого узла.'; $a->strings['Read about the <a href="%1$s/tos">Terms of Service</a> of this node.'] = 'Ознакомьтесь с <a href="%1$s/tos">Условиями Предоставления Услуг</a> этого узла.';
$a->strings['On this server the following remote servers are blocked.'] = 'На этом сервере заблокированы следующие удалённые серверы.'; $a->strings['On this server the following remote servers are blocked.'] = 'На этом сервере заблокированы следующие удалённые серверы.';
$a->strings['Download this list in CSV format'] = 'Скачать этот список в формате CSV';
$a->strings['This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.'] = 'Это сервер Friendica, версия %s, работающий по адресу %s. Версия базы данных %s, версия post update %s.'; $a->strings['This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.'] = 'Это сервер Friendica, версия %s, работающий по адресу %s. Версия базы данных %s, версия post update %s.';
$a->strings['Please visit <a href="https://friendi.ca">Friendi.ca</a> to learn more about the Friendica project.'] = 'Посетите <a href="https://friendi.ca">Friendi.ca</a>, чтобы узнать больше о проекте Friendica.'; $a->strings['Please visit <a href="https://friendi.ca">Friendi.ca</a> to learn more about the Friendica project.'] = 'Посетите <a href="https://friendi.ca">Friendi.ca</a>, чтобы узнать больше о проекте Friendica.';
$a->strings['Bug reports and issues: please visit'] = 'Отчет об ошибках и проблемах: пожалуйста, посетите'; $a->strings['Bug reports and issues: please visit'] = 'Отчет об ошибках и проблемах: пожалуйста, посетите';
@ -2013,6 +2048,7 @@ $a->strings['Remote subscription can\'t be done for your network. Please subscri
$a->strings['Friend/Connection Request'] = 'Запрос в друзья / на подключение'; $a->strings['Friend/Connection Request'] = 'Запрос в друзья / на подключение';
$a->strings['If you are not yet a member of the free social web, <a href="%s">follow this link to find a public Friendica node and join us today</a>.'] = 'Если вы ещё не член свободной социальной сети, <a href="%s">пройдите по этой ссылке, чтобы найти публичный узел Friendica и присоединитесь к нам сегодня</a>.'; $a->strings['If you are not yet a member of the free social web, <a href="%s">follow this link to find a public Friendica node and join us today</a>.'] = 'Если вы ещё не член свободной социальной сети, <a href="%s">пройдите по этой ссылке, чтобы найти публичный узел Friendica и присоединитесь к нам сегодня</a>.';
$a->strings['Your Webfinger address or profile URL:'] = 'Ваш адрес Webfinger или ссылка на профиль:'; $a->strings['Your Webfinger address or profile URL:'] = 'Ваш адрес Webfinger или ссылка на профиль:';
$a->strings['You must be logged in to use this module.'] = 'Вам нужно войти, чтобы использовать этот модуль.';
$a->strings['Only logged in users are permitted to perform a search.'] = 'Только зарегистрированные пользователи могут использовать поиск.'; $a->strings['Only logged in users are permitted to perform a search.'] = 'Только зарегистрированные пользователи могут использовать поиск.';
$a->strings['Only one search per minute is permitted for not logged in users.'] = 'Незарегистрированные пользователи могут выполнять поиск раз в минуту.'; $a->strings['Only one search per minute is permitted for not logged in users.'] = 'Незарегистрированные пользователи могут выполнять поиск раз в минуту.';
$a->strings['Items tagged with: %s'] = 'Элементы с тегами: %s'; $a->strings['Items tagged with: %s'] = 'Элементы с тегами: %s';
@ -2031,6 +2067,11 @@ $a->strings['terms of service'] = 'правила';
$a->strings['Website Privacy Policy'] = 'Политика конфиденциальности сервера'; $a->strings['Website Privacy Policy'] = 'Политика конфиденциальности сервера';
$a->strings['privacy policy'] = 'политика конфиденциальности'; $a->strings['privacy policy'] = 'политика конфиденциальности';
$a->strings['Logged out.'] = 'Выход из системы.'; $a->strings['Logged out.'] = 'Выход из системы.';
$a->strings['Passwords do not match.'] = 'Пароли не совпадают';
$a->strings['Password unchanged.'] = 'Пароль не поменялся';
$a->strings['Current Password:'] = 'Текущий пароль:';
$a->strings['Your current password to confirm the changes'] = 'Ваш текущий пароль, для подтверждения изменений';
$a->strings['Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:).'] = 'Разрешенные символы: a-z, A-Z, 0-9 специальные символы за исключением пробелов, букв с акцентами и двоеточия (:).';
$a->strings['Remaining recovery codes: %d'] = 'Осталось кодов для восстановления: %d'; $a->strings['Remaining recovery codes: %d'] = 'Осталось кодов для восстановления: %d';
$a->strings['Invalid code, please retry.'] = 'Неправильный код, попробуйте ещё.'; $a->strings['Invalid code, please retry.'] = 'Неправильный код, попробуйте ещё.';
$a->strings['Two-factor recovery'] = 'Двухфакторное восстановление доступа'; $a->strings['Two-factor recovery'] = 'Двухфакторное восстановление доступа';
@ -2041,8 +2082,6 @@ $a->strings['Submit recovery code and complete login'] = 'Отправить к
$a->strings['<p>Open the two-factor authentication app on your device to get an authentication code and verify your identity.</p>'] = '<p>Откройте приложение для двухфакторной аутентификации на вашем устройстве, чтобы получить код аутентификации и подтвердить вашу личность.</p>'; $a->strings['<p>Open the two-factor authentication app on your device to get an authentication code and verify your identity.</p>'] = '<p>Откройте приложение для двухфакторной аутентификации на вашем устройстве, чтобы получить код аутентификации и подтвердить вашу личность.</p>';
$a->strings['Please enter a code from your authentication app'] = 'Пожалуйста, введите код из вашего приложения для аутентификации'; $a->strings['Please enter a code from your authentication app'] = 'Пожалуйста, введите код из вашего приложения для аутентификации';
$a->strings['Verify code and complete login'] = 'Введите код для завершения входа'; $a->strings['Verify code and complete login'] = 'Введите код для завершения входа';
$a->strings['Passwords do not match.'] = 'Пароли не совпадают';
$a->strings['Password unchanged.'] = 'Пароль не поменялся';
$a->strings['Please use a shorter name.'] = 'Пожалуйста, выберите имя короче.'; $a->strings['Please use a shorter name.'] = 'Пожалуйста, выберите имя короче.';
$a->strings['Name too short.'] = 'Имя слишком короткое'; $a->strings['Name too short.'] = 'Имя слишком короткое';
$a->strings['Wrong Password.'] = 'Неправильный пароль'; $a->strings['Wrong Password.'] = 'Неправильный пароль';
@ -2073,10 +2112,7 @@ $a->strings['Your profile will also be published in the global friendica directo
$a->strings['Account Settings'] = 'Настройки аккаунта'; $a->strings['Account Settings'] = 'Настройки аккаунта';
$a->strings['Your Identity Address is <strong>\'%s\'</strong> or \'%s\'.'] = 'Ваш адрес: <strong>\'%s\'</strong> или \'%s\'.'; $a->strings['Your Identity Address is <strong>\'%s\'</strong> or \'%s\'.'] = 'Ваш адрес: <strong>\'%s\'</strong> или \'%s\'.';
$a->strings['Password Settings'] = 'Смена пароля'; $a->strings['Password Settings'] = 'Смена пароля';
$a->strings['Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:).'] = 'Разрешенные символы: a-z, A-Z, 0-9 специальные символы за исключением пробелов, букв с акцентами и двоеточия (:).';
$a->strings['Leave password fields blank unless changing'] = 'Оставьте поля пароля пустыми, если он не изменяется'; $a->strings['Leave password fields blank unless changing'] = 'Оставьте поля пароля пустыми, если он не изменяется';
$a->strings['Current Password:'] = 'Текущий пароль:';
$a->strings['Your current password to confirm the changes'] = 'Ваш текущий пароль, для подтверждения изменений';
$a->strings['Password:'] = 'Пароль:'; $a->strings['Password:'] = 'Пароль:';
$a->strings['Your current password to confirm the changes of the email address'] = 'Ваш текущий пароль для подтверждения смены адреса почты'; $a->strings['Your current password to confirm the changes of the email address'] = 'Ваш текущий пароль для подтверждения смены адреса почты';
$a->strings['Delete OpenID URL'] = 'Удалить ссылку OpenID'; $a->strings['Delete OpenID URL'] = 'Удалить ссылку OpenID';
@ -2128,7 +2164,6 @@ $a->strings['Someone writes a followup comment'] = 'Кто-то пишет по
$a->strings['You receive a private message'] = 'Вы получаете личное сообщение'; $a->strings['You receive a private message'] = 'Вы получаете личное сообщение';
$a->strings['You receive a friend suggestion'] = 'Вы полулили предложение о добавлении в друзья'; $a->strings['You receive a friend suggestion'] = 'Вы полулили предложение о добавлении в друзья';
$a->strings['You are tagged in a post'] = 'Вы отмечены в записи'; $a->strings['You are tagged in a post'] = 'Вы отмечены в записи';
$a->strings['You are poked/prodded/etc. in a post'] = 'Вас потыкали/подтолкнули/и т.д. в записи';
$a->strings['Create a desktop notification when:'] = 'Показывать уведомление при:'; $a->strings['Create a desktop notification when:'] = 'Показывать уведомление при:';
$a->strings['Someone tagged you'] = 'Вас отметили'; $a->strings['Someone tagged you'] = 'Вас отметили';
$a->strings['Someone directly commented on your post'] = 'На вашу запись написали комментарий'; $a->strings['Someone directly commented on your post'] = 'На вашу запись написали комментарий';
@ -2256,7 +2291,6 @@ $a->strings['skip this step'] = 'пропустить этот шаг';
$a->strings['select a photo from your photo albums'] = 'выберите фото из ваших фотоальбомов'; $a->strings['select a photo from your photo albums'] = 'выберите фото из ваших фотоальбомов';
$a->strings['Please enter your password to access this page.'] = 'Пожалуйста, введите ваш пароль для доступа к этой странице.'; $a->strings['Please enter your password to access this page.'] = 'Пожалуйста, введите ваш пароль для доступа к этой странице.';
$a->strings['Revoke All'] = 'Отозвать все'; $a->strings['Revoke All'] = 'Отозвать все';
$a->strings['Wrong Password'] = 'Неверный пароль.';
$a->strings['Current password:'] = 'Текущий пароль:'; $a->strings['Current password:'] = 'Текущий пароль:';
$a->strings['Enable two-factor authentication'] = 'Включить двухфакторную аутентификацию'; $a->strings['Enable two-factor authentication'] = 'Включить двухфакторную аутентификацию';
$a->strings['Show recovery codes'] = 'Показать коды восстановления'; $a->strings['Show recovery codes'] = 'Показать коды восстановления';
@ -2358,9 +2392,6 @@ $a->strings['Please visit %s to view and/or reply to the conversation.'] = 'По
$a->strings['%s %s posted to your profile wall'] = '%s %s размещены на стене вашего профиля'; $a->strings['%s %s posted to your profile wall'] = '%s %s размещены на стене вашего профиля';
$a->strings['%1$s posted to your profile wall at %2$s'] = '%1$s написал на вашей стене на %2$s'; $a->strings['%1$s posted to your profile wall at %2$s'] = '%1$s написал на вашей стене на %2$s';
$a->strings['%1$s posted to [url=%2$s]your wall[/url]'] = '%1$s написал на [url=%2$s]вашей стене[/url]'; $a->strings['%1$s posted to [url=%2$s]your wall[/url]'] = '%1$s написал на [url=%2$s]вашей стене[/url]';
$a->strings['%1$s %2$s poked you'] = '%1$s %2$s продвинул тебя';
$a->strings['%1$s poked you at %2$s'] = '%1$s потыкал вас на %2$s';
$a->strings['%1$s [url=%2$s]poked you[/url].'] = '%1$s [url=%2$s]потыкал вас[/url].';
$a->strings['%s Introduction received'] = '%s Входящих получено'; $a->strings['%s Introduction received'] = '%s Входящих получено';
$a->strings['You\'ve received an introduction from \'%1$s\' at %2$s'] = 'Вы получили запрос от \'%1$s\' на %2$s'; $a->strings['You\'ve received an introduction from \'%1$s\' at %2$s'] = 'Вы получили запрос от \'%1$s\' на %2$s';
$a->strings['You\'ve received [url=%1$s]an introduction[/url] from %2$s.'] = 'Вы получили [url=%1$s]запрос[/url] от %2$s.'; $a->strings['You\'ve received [url=%1$s]an introduction[/url] from %2$s.'] = 'Вы получили [url=%1$s]запрос[/url] от %2$s.';
@ -2517,6 +2548,8 @@ $a->strings['Set the background color'] = 'Установить цвет фон
$a->strings['Content background opacity'] = 'Прозрачность фона основного содержимого'; $a->strings['Content background opacity'] = 'Прозрачность фона основного содержимого';
$a->strings['Set the background image'] = 'Установить фоновую картинку'; $a->strings['Set the background image'] = 'Установить фоновую картинку';
$a->strings['Background image style'] = 'Стиль фонового изображения'; $a->strings['Background image style'] = 'Стиль фонового изображения';
$a->strings['Always open Compose page'] = 'Всегда открывать страницу редактора';
$a->strings['The New Post button always open the <a href="/compose">Compose page</a> instead of the modal form. When this is disabled, the Compose page can be accessed with a middle click on the link or from the modal.'] = 'Кнопка создания новой записи всегда будет открывать <a href="/compose">страницу редактора</a> вместо всплывающего окна. Когда это отключено, страница редактора может быть развёрнута из всплывающего окна, либо при открытии ссылки кнопки в новой вкладке.';
$a->strings['Login page background image'] = 'Фоновое изображение страницы входа'; $a->strings['Login page background image'] = 'Фоновое изображение страницы входа';
$a->strings['Login page background color'] = 'Цвет фона страницы входа'; $a->strings['Login page background color'] = 'Цвет фона страницы входа';
$a->strings['Leave background image and color empty for theme defaults'] = 'Оставьте настройки фоновых цвета и изображения пустыми, чтобы применить настройки темы по-умолчанию.'; $a->strings['Leave background image and color empty for theme defaults'] = 'Оставьте настройки фоновых цвета и изображения пустыми, чтобы применить настройки темы по-умолчанию.';

View file

@ -21,16 +21,15 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
function theme_content(App $a) function theme_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$colorset = DI::pConfig()->get(Session::getLocalUser(), 'duepuntozero', 'colorset'); $colorset = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'duepuntozero', 'colorset');
$user = true; $user = true;
return clean_form($a, $colorset, $user); return clean_form($a, $colorset, $user);
@ -38,12 +37,12 @@ function theme_content(App $a)
function theme_post(App $a) function theme_post(App $a)
{ {
if (! Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
if (isset($_POST['duepuntozero-settings-submit'])) { if (isset($_POST['duepuntozero-settings-submit'])) {
DI::pConfig()->set(Session::getLocalUser(), 'duepuntozero', 'colorset', $_POST['duepuntozero_colorset']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'duepuntozero', 'colorset', $_POST['duepuntozero_colorset']);
} }
} }
@ -76,7 +75,7 @@ function clean_form(App $a, &$colorset, $user)
]; ];
if ($user) { if ($user) {
$color = DI::pConfig()->get(Session::getLocalUser(), 'duepuntozero', 'colorset'); $color = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'duepuntozero', 'colorset');
} else { } else {
$color = DI::config()->get('duepuntozero', 'colorset'); $color = DI::config()->get('duepuntozero', 'colorset');
} }

View file

@ -21,7 +21,6 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
/* /*
@ -35,7 +34,7 @@ function duepuntozero_init(App $a) {
$colorset = null; $colorset = null;
if (DI::mode()->has(App\Mode::MAINTENANCEDISABLED)) { if (DI::mode()->has(App\Mode::MAINTENANCEDISABLED)) {
$colorset = DI::pConfig()->get(Session::getLocalUser(), 'duepuntozero', 'colorset'); $colorset = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'duepuntozero', 'colorset');
if (!$colorset) if (!$colorset)
$colorset = DI::config()->get('duepuntozero', 'colorset'); // user setting have priority, then node settings $colorset = DI::config()->get('duepuntozero', 'colorset'); // user setting have priority, then node settings
} }

View file

@ -21,14 +21,13 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
require_once 'view/theme/frio/php/Image.php'; require_once 'view/theme/frio/php/Image.php';
function theme_post(App $a) function theme_post(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -48,12 +47,12 @@ function theme_post(App $a)
'always_open_compose', 'always_open_compose',
] as $field) { ] as $field) {
if (isset($_POST['frio_' . $field])) { if (isset($_POST['frio_' . $field])) {
DI::pConfig()->set(Session::getLocalUser(), 'frio', $field, $_POST['frio_' . $field]); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'frio', $field, $_POST['frio_' . $field]);
} }
} }
DI::pConfig()->set(Session::getLocalUser(), 'frio', 'css_modified', time()); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'frio', 'css_modified', time());
} }
} }
@ -89,13 +88,13 @@ function theme_admin_post(App $a)
function theme_content(): string function theme_content(): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }
$arr = [ $arr = [
'scheme' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'scheme', 'scheme' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'scheme',
DI::pConfig()->get(Session::getLocalUser(), 'frio', 'schema', DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'schema',
DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'scheme',
DI::config()->get('frio', 'schema') DI::config()->get('frio', 'schema')
) )
@ -103,15 +102,15 @@ function theme_content(): string
), ),
'share_string' => '', 'share_string' => '',
'scheme_accent' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'scheme_accent' , DI::config()->get('frio', 'scheme_accent')), 'scheme_accent' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'scheme_accent' , DI::config()->get('frio', 'scheme_accent')),
'nav_bg' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'nav_bg' , DI::config()->get('frio', 'nav_bg')), 'nav_bg' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'nav_bg' , DI::config()->get('frio', 'nav_bg')),
'nav_icon_color' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'nav_icon_color' , DI::config()->get('frio', 'nav_icon_color')), 'nav_icon_color' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'nav_icon_color' , DI::config()->get('frio', 'nav_icon_color')),
'link_color' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'link_color' , DI::config()->get('frio', 'link_color')), 'link_color' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'link_color' , DI::config()->get('frio', 'link_color')),
'background_color' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'background_color' , DI::config()->get('frio', 'background_color')), 'background_color' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'background_color' , DI::config()->get('frio', 'background_color')),
'contentbg_transp' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'contentbg_transp' , DI::config()->get('frio', 'contentbg_transp')), 'contentbg_transp' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'contentbg_transp' , DI::config()->get('frio', 'contentbg_transp')),
'background_image' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'background_image' , DI::config()->get('frio', 'background_image')), 'background_image' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'background_image' , DI::config()->get('frio', 'background_image')),
'bg_image_option' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'bg_image_option' , DI::config()->get('frio', 'bg_image_option')), 'bg_image_option' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'bg_image_option' , DI::config()->get('frio', 'bg_image_option')),
'always_open_compose' => DI::pConfig()->get(Session::getLocalUser(), 'frio', 'always_open_compose', DI::config()->get('frio', 'always_open_compose', false)), 'always_open_compose' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'always_open_compose', DI::config()->get('frio', 'always_open_compose', false)),
]; ];
return frio_form($arr); return frio_form($arr);
@ -119,7 +118,7 @@ function theme_content(): string
function theme_admin(): string function theme_admin(): string
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return ''; return '';
} }

View file

@ -34,7 +34,6 @@
* 'overwrites' => Variables which overwriting custom settings * 'overwrites' => Variables which overwriting custom settings
*/ */
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Util\Strings; use Friendica\Util\Strings;
@ -43,7 +42,7 @@ function get_scheme_info($scheme)
$theme = DI::app()->getCurrentTheme(); $theme = DI::app()->getCurrentTheme();
$themepath = 'view/theme/' . $theme . '/'; $themepath = 'view/theme/' . $theme . '/';
if (empty($scheme)) { if (empty($scheme)) {
$scheme = DI::pConfig()->get(Session::getLocalUser(), 'frio', 'scheme', DI::pConfig()->get(Session::getLocalUser(), 'frio', 'schema', '---')); $scheme = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'scheme', DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'frio', 'schema', '---'));
} }
$scheme = Strings::sanitizeFilePathItem($scheme); $scheme = Strings::sanitizeFilePathItem($scheme);

View file

@ -29,7 +29,6 @@ use Friendica\Content\Widget;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model; use Friendica\Model;
@ -215,8 +214,8 @@ function frio_remote_nav(App $a, array &$nav_info)
$fields = ['id', 'url', 'avatar', 'micro', 'name', 'nick', 'baseurl', 'updated']; $fields = ['id', 'url', 'avatar', 'micro', 'name', 'nick', 'baseurl', 'updated'];
if ($a->isLoggedIn()) { if ($a->isLoggedIn()) {
$remoteUser = Contact::selectFirst($fields, ['uid' => $a->getLoggedInUserId(), 'self' => true]); $remoteUser = Contact::selectFirst($fields, ['uid' => $a->getLoggedInUserId(), 'self' => true]);
} elseif (!Session::getLocalUser() && Session::getRemoteUser()) { } elseif (!DI::userSession()->getLocalUserId() && DI::userSession()->getRemoteUserId()) {
$remoteUser = Contact::getById(Session::getRemoteUser(), $fields); $remoteUser = Contact::getById(DI::userSession()->getRemoteUserId(), $fields);
$nav_info['nav']['remote'] = DI::l10n()->t('Guest'); $nav_info['nav']['remote'] = DI::l10n()->t('Guest');
} elseif (Profile::getMyURL()) { } elseif (Profile::getMyURL()) {
$remoteUser = Contact::getByURL($homelink, null, $fields); $remoteUser = Contact::getByURL($homelink, null, $fields);
@ -233,7 +232,7 @@ function frio_remote_nav(App $a, array &$nav_info)
$server_url = $remoteUser['baseurl']; $server_url = $remoteUser['baseurl'];
} }
if (!Session::getLocalUser() && !empty($server_url) && !is_null($remoteUser)) { if (!DI::userSession()->getLocalUserId() && !empty($server_url) && !is_null($remoteUser)) {
// user menu // user menu
$nav_info['nav']['usermenu'][] = [$server_url . '/profile/' . $remoteUser['nick'], DI::l10n()->t('Status'), '', DI::l10n()->t('Your posts and conversations')]; $nav_info['nav']['usermenu'][] = [$server_url . '/profile/' . $remoteUser['nick'], DI::l10n()->t('Status'), '', DI::l10n()->t('Your posts and conversations')];
$nav_info['nav']['usermenu'][] = [$server_url . '/profile/' . $remoteUser['nick'] . '/profile', DI::l10n()->t('Profile'), '', DI::l10n()->t('Your profile page')]; $nav_info['nav']['usermenu'][] = [$server_url . '/profile/' . $remoteUser['nick'] . '/profile', DI::l10n()->t('Profile'), '', DI::l10n()->t('Your profile page')];
@ -257,8 +256,8 @@ function frio_display_item(App $a, &$arr)
// Add follow to the item menu // Add follow to the item menu
$followThread = []; $followThread = [];
if ( if (
Session::getLocalUser() DI::userSession()->getLocalUserId()
&& in_array($arr['item']['uid'], [0, Session::getLocalUser()]) && in_array($arr['item']['uid'], [0, DI::userSession()->getLocalUserId()])
&& $arr['item']['gravity'] == Item::GRAVITY_PARENT && $arr['item']['gravity'] == Item::GRAVITY_PARENT
&& !$arr['item']['self'] && !$arr['item']['self']
&& !$arr['item']['mention'] && !$arr['item']['mention']

View file

@ -21,32 +21,31 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
function theme_content(App $a) { function theme_content(App $a) {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
$align = DI::pConfig()->get(Session::getLocalUser(), 'quattro', 'align' ); $align = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'quattro', 'align' );
$color = DI::pConfig()->get(Session::getLocalUser(), 'quattro', 'color' ); $color = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'quattro', 'color' );
$tfs = DI::pConfig()->get(Session::getLocalUser(),"quattro","tfs"); $tfs = DI::pConfig()->get(DI::userSession()->getLocalUserId(),"quattro","tfs");
$pfs = DI::pConfig()->get(Session::getLocalUser(),"quattro","pfs"); $pfs = DI::pConfig()->get(DI::userSession()->getLocalUserId(),"quattro","pfs");
return quattro_form($a,$align, $color, $tfs, $pfs); return quattro_form($a,$align, $color, $tfs, $pfs);
} }
function theme_post(App $a) { function theme_post(App $a) {
if (! Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
if (isset($_POST['quattro-settings-submit'])){ if (isset($_POST['quattro-settings-submit'])){
DI::pConfig()->set(Session::getLocalUser(), 'quattro', 'align', $_POST['quattro_align']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'quattro', 'align', $_POST['quattro_align']);
DI::pConfig()->set(Session::getLocalUser(), 'quattro', 'color', $_POST['quattro_color']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'quattro', 'color', $_POST['quattro_color']);
DI::pConfig()->set(Session::getLocalUser(), 'quattro', 'tfs', $_POST['quattro_tfs']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'quattro', 'tfs', $_POST['quattro_tfs']);
DI::pConfig()->set(Session::getLocalUser(), 'quattro', 'pfs', $_POST['quattro_pfs']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'quattro', 'pfs', $_POST['quattro_pfs']);
} }
} }

View file

@ -21,14 +21,13 @@
use Friendica\App; use Friendica\App;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
require_once __DIR__ . '/theme.php'; require_once __DIR__ . '/theme.php';
function theme_content(App $a) function theme_content(App $a)
{ {
if (!Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
@ -36,7 +35,7 @@ function theme_content(App $a)
return; return;
} }
$style = DI::pConfig()->get(Session::getLocalUser(), 'vier', 'style'); $style = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'vier', 'style');
if ($style == "") { if ($style == "") {
$style = DI::config()->get('vier', 'style'); $style = DI::config()->get('vier', 'style');
@ -59,18 +58,18 @@ function theme_content(App $a)
function theme_post(App $a) function theme_post(App $a)
{ {
if (! Session::getLocalUser()) { if (!DI::userSession()->getLocalUserId()) {
return; return;
} }
if (isset($_POST['vier-settings-submit'])) { if (isset($_POST['vier-settings-submit'])) {
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'style', $_POST['vier_style']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'style', $_POST['vier_style']);
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'show_pages', $_POST['vier_show_pages']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'show_pages', $_POST['vier_show_pages']);
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'show_profiles', $_POST['vier_show_profiles']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'show_profiles', $_POST['vier_show_profiles']);
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'show_helpers', $_POST['vier_show_helpers']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'show_helpers', $_POST['vier_show_helpers']);
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'show_services', $_POST['vier_show_services']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'show_services', $_POST['vier_show_services']);
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'show_friends', $_POST['vier_show_friends']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'show_friends', $_POST['vier_show_friends']);
DI::pConfig()->set(Session::getLocalUser(), 'vier', 'show_lastusers', $_POST['vier_show_lastusers']); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'vier', 'show_lastusers', $_POST['vier_show_lastusers']);
} }
} }

View file

@ -31,7 +31,6 @@ use Friendica\Content\ForumManager;
use Friendica\Core\Addon; use Friendica\Core\Addon;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search; use Friendica\Core\Search;
use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -53,7 +52,7 @@ function vier_init(App $a)
DI::mode()->has(App\Mode::MAINTENANCEDISABLED) DI::mode()->has(App\Mode::MAINTENANCEDISABLED)
&& ( && (
$args->get(0) === 'profile' && $args->get(1) === ($a->getLoggedInUserNickname() ?? '') $args->get(0) === 'profile' && $args->get(1) === ($a->getLoggedInUserNickname() ?? '')
|| $args->get(0) === 'network' && Session::getLocalUser() || $args->get(0) === 'network' && DI::userSession()->getLocalUserId()
) )
) { ) {
vier_community_info(); vier_community_info();
@ -115,8 +114,8 @@ EOT;
function get_vier_config($key, $default = false, $admin = false) function get_vier_config($key, $default = false, $admin = false)
{ {
if (Session::getLocalUser() && !$admin) { if (DI::userSession()->getLocalUserId() && !$admin) {
$result = DI::pConfig()->get(Session::getLocalUser(), "vier", $key); $result = DI::pConfig()->get(DI::userSession()->getLocalUserId(), "vier", $key);
if (!is_null($result)) { if (!is_null($result)) {
return $result; return $result;
} }
@ -145,7 +144,7 @@ function vier_community_info()
// comunity_profiles // comunity_profiles
if ($show_profiles) { if ($show_profiles) {
$contacts = Contact\Relation::getSuggestions(Session::getLocalUser(), 0, 9); $contacts = Contact\Relation::getSuggestions(DI::userSession()->getLocalUserId(), 0, 9);
$tpl = Renderer::getMarkupTemplate('ch_directory_item.tpl'); $tpl = Renderer::getMarkupTemplate('ch_directory_item.tpl');
if (DBA::isResult($contacts)) { if (DBA::isResult($contacts)) {
@ -192,7 +191,7 @@ function vier_community_info()
} }
//right_aside FIND FRIENDS //right_aside FIND FRIENDS
if ($show_friends && Session::getLocalUser()) { if ($show_friends && DI::userSession()->getLocalUserId()) {
$nv = []; $nv = [];
$nv['findpeople'] = DI::l10n()->t('Find People'); $nv['findpeople'] = DI::l10n()->t('Find People');
$nv['desc'] = DI::l10n()->t('Enter name or interest'); $nv['desc'] = DI::l10n()->t('Enter name or interest');
@ -211,8 +210,8 @@ function vier_community_info()
} }
//Community_Pages at right_aside //Community_Pages at right_aside
if ($show_pages && Session::getLocalUser()) { if ($show_pages && DI::userSession()->getLocalUserId()) {
$aside['$page'] = ForumManager::widget('network/forum', Session::getLocalUser());; $aside['$page'] = ForumManager::widget('network/forum', DI::userSession()->getLocalUserId());;
} }
// END Community Page // END Community Page