Merge branch 'friendica:2023.09-rc' into Leftovers-from-PR-#13339

This commit is contained in:
Raroun 2023-11-01 08:21:50 +01:00 committed by GitHub
commit 1ede164450
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 13728 additions and 8954 deletions

View File

@ -1,6 +1,6 @@
-- ------------------------------------------
-- Friendica 2023.09-rc (Giant Rhubarb)
-- DB_UPDATE_VERSION 1538
-- DB_UPDATE_VERSION 1539
-- ------------------------------------------

View File

@ -221,6 +221,10 @@ function item_insert(int $uid, array $request, bool $preview, string $return_pat
DI::contentItem()->postProcessPost($post, $recipients);
if (($post['private'] == Item::PRIVATE) && ($post['thr-parent-id'] != $post['uri-id'])) {
DI::contentItem()->copyPermissions($post['thr-parent-id'], $post['uri-id']);
}
Logger::debug('post_complete');
item_post_return(DI::baseUrl(), $return_path);

View File

@ -48,6 +48,7 @@ use Friendica\Model\User;
use Friendica\Network\HTTPException;
use Friendica\Object\EMail\ItemCCEMail;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub;
use Friendica\Util\ACLFormatter;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Emailer;
@ -991,12 +992,14 @@ class Item
$post['deny_gid'] = $owner['deny_gid'];
}
if ($post['allow_gid'] || $post['allow_cid'] || $post['deny_gid'] || $post['deny_cid']) {
$post['private'] = ItemModel::PRIVATE;
} elseif ($this->pConfig->get($post['uid'], 'system', 'unlisted')) {
$post['private'] = ItemModel::UNLISTED;
} else {
$post['private'] = ItemModel::PUBLIC;
if (!isset($post['private'])) {
if ($post['allow_gid'] || $post['allow_cid'] || $post['deny_gid'] || $post['deny_cid']) {
$post['private'] = ItemModel::PRIVATE;
} elseif ($this->pConfig->get($post['uid'], 'system', 'unlisted')) {
$post['private'] = ItemModel::UNLISTED;
} else {
$post['private'] = ItemModel::PUBLIC;
}
}
if (empty($post['contact-id'])) {
@ -1046,6 +1049,8 @@ class Item
Tag::createImplicitMentions($post['uri-id'], $post['thr-parent-id']);
}
ActivityPub\Transmitter::storeReceiversForItem($post);
Hook::callAll('post_local_end', $post);
$author = DBA::selectFirst('contact', ['thumb'], ['uid' => $post['uid'], 'self' => true]);
@ -1066,4 +1071,25 @@ class Item
));
}
}
public function copyPermissions(int $fromUriId, int $toUriId)
{
$from = Post::selectFirstPost(['author-id'], ['uri-id' => $fromUriId]);
$from_author = DBA::selectFirst('account-view', ['ap-followers'], ['id' => $from['author-id']]);
$to = Post::selectFirstPost(['author-id'], ['uri-id' => $toUriId]);
$to_author = DBA::selectFirst('account-view', ['ap-followers'], ['id' => $to['author-id']]);
$existing = array_column(Tag::getByURIId($toUriId, [Tag::TO, Tag::CC, Tag::BCC]), 'url');
foreach (Tag::getByURIId($fromUriId, [Tag::TO, Tag::CC, Tag::BCC]) as $receiver) {
if ($receiver['url'] == $from_author['ap-followers']) {
$receiver['url'] = $to_author['ap-followers'];
$receiver['name'] = trim(parse_url($receiver['url'], PHP_URL_PATH), '/');
}
if (in_array($receiver['url'], $existing)) {
continue;
}
Tag::store($toUriId, $receiver['type'], $receiver['name'], $receiver['url']);
}
}
}

View File

@ -1379,10 +1379,11 @@ class Worker
/**
* Defers the current worker entry
*
* @param int $worker_defer_limit Maximum defer limit
* @return boolean had the entry been deferred?
* @throws \Exception
*/
public static function defer(): bool
public static function defer(int $worker_defer_limit = 0): bool
{
$queue = DI::app()->getQueue();
@ -1395,6 +1396,10 @@ class Worker
$max_level = DI::config()->get('system', 'worker_defer_limit');
if ($worker_defer_limit) {
$max_level = min($worker_defer_limit, $max_level);
}
$new_retrial = self::getNextRetrial($queue, $max_level);
if ($new_retrial > $max_level) {

View File

@ -428,7 +428,7 @@ class Circle
'uid' => $uid,
'rel' => [Contact::FOLLOWER, Contact::FRIEND],
'network' => $networks,
'contact-type' => [Contact::TYPE_UNKNOWN, Contact::TYPE_PERSON],
'contact-type' => [Contact::TYPE_UNKNOWN, Contact::TYPE_PERSON, Contact::TYPE_NEWS, Contact::TYPE_ORGANISATION],
'archive' => false,
'pending' => false,
'blocked' => false,

View File

@ -880,6 +880,10 @@ class Item
if (is_int($notify) && in_array($notify, Worker::PRIORITIES)) {
$priority = $notify;
}
// Mastodon style API visibility
$copy_permissions = ($item['visibility'] ?? 'private') == 'private';
unset($item['visibility']);
} else {
$item['network'] = trim(($item['network'] ?? '') ?: Protocol::PHANTOM);
}
@ -1038,10 +1042,12 @@ class Item
// Reshares have to keep their permissions to allow groups to work
if (!$defined_permissions && (!$item['origin'] || ($item['verb'] != Activity::ANNOUNCE))) {
$item['allow_cid'] = $toplevel_parent['allow_cid'];
$item['allow_gid'] = $toplevel_parent['allow_gid'];
$item['deny_cid'] = $toplevel_parent['deny_cid'];
$item['deny_gid'] = $toplevel_parent['deny_gid'];
// Don't store the permissions on pure AP posts
$store_permissions = ($item['network'] != Protocol::ACTIVITYPUB) || $item['origin'] || !empty($item['diaspora_signed_text']);
$item['allow_cid'] = $store_permissions ? $toplevel_parent['allow_cid'] : '';
$item['allow_gid'] = $store_permissions ? $toplevel_parent['allow_gid'] : '';
$item['deny_cid'] = $store_permissions ? $toplevel_parent['deny_cid'] : '';
$item['deny_gid'] = $store_permissions ? $toplevel_parent['deny_gid'] : '';
}
$parent_origin = $toplevel_parent['origin'];
@ -1359,6 +1365,9 @@ class Item
if ($notify) {
DI::contentItem()->postProcessPost($posted_item);
if ($copy_permissions && ($posted_item['thr-parent-id'] != $posted_item['uri-id']) && ($posted_item['private'] == self::PRIVATE)) {
DI::contentItem()->copyPermissions($posted_item['thr-parent-id'], $posted_item['uri-id']);
}
} else {
Hook::callAll('post_remote_end', $posted_item);
}

View File

@ -25,13 +25,11 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\System;
use Friendica\Database\Database;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Protocol\ActivityPub;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
use Friendica\Util\Strings;
/**

View File

@ -343,6 +343,35 @@ class User
return DBA::selectFirst('user', $fields, ['nickname' => $nickname]);
}
/**
* Set static settings for community user accounts
*
* @param integer $uid
* @return void
*/
public static function setCommunityUserSettings(int $uid)
{
$user = self::getById($uid, ['account-type', 'page-flags']);
if ($user['account-type'] != User::ACCOUNT_TYPE_COMMUNITY) {
return;
}
DI::pConfig()->set($uid, 'system', 'unlisted', true);
$fields = [
'allow_cid' => '',
'allow_gid' => $user['page-flags'] == User::PAGE_FLAGS_PRVGROUP ? '<' . Circle::FOLLOWERS . '>' : '',
'deny_cid' => '',
'deny_gid' => '',
'blockwall' => true,
'blocktags' => true,
];
User::update($fields, $uid);
Profile::update(['hide-friends' => true], $uid);
}
/**
* Returns the user id of a given profile URL
*

View File

@ -25,7 +25,6 @@ use Friendica\Content\PageInfo;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\Markdown;
use Friendica\Core\Protocol;
use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\DI;
@ -192,6 +191,7 @@ class Statuses extends BaseApi
$item['title'] = '';
$item['body'] = $this->formatStatus($request['status'], $uid);
$item['app'] = $this->getApp();
$item['visibility'] = $request['visibility'];
switch ($request['visibility']) {
case 'public':
@ -209,6 +209,18 @@ class Statuses extends BaseApi
$item['private'] = Item::UNLISTED;
break;
case 'private':
if ($request['in_reply_to_id']) {
$parent_item = Post::selectFirst(Item::ITEM_FIELDLIST, ['uri-id' => $request['in_reply_to_id'], 'uid' => $uid, 'private' => Item::PRIVATE]);
if (!empty($parent_item)) {
$item['allow_cid'] = $parent_item['allow_cid'];
$item['allow_gid'] = $parent_item['allow_gid'];
$item['deny_cid'] = $parent_item['deny_cid'];
$item['deny_gid'] = $parent_item['deny_gid'];
$item['private'] = $parent_item['private'];
break;
}
}
if (!empty($owner['allow_cid'] . $owner['allow_gid'] . $owner['deny_cid'] . $owner['deny_gid'])) {
$item['allow_cid'] = $owner['allow_cid'];
$item['allow_gid'] = $owner['allow_gid'];
@ -287,7 +299,7 @@ class Statuses extends BaseApi
}
$item = DI::contentItem()->expandTags($item, $request['visibility'] == 'direct');
if (!empty($request['media_ids'])) {
$item = $this->storeMediaIds($request['media_ids'], $item);
}

View File

@ -113,12 +113,26 @@ class PermissionTooltip extends \Friendica\BaseModule
exit;
}
if (!empty($model['allow_cid']) || !empty($model['allow_gid']) || !empty($model['deny_cid']) || !empty($model['deny_gid'])) {
$receivers = $this->fetchReceiversFromACL($model);
}
$this->httpExit(DI::l10n()->t('Visible to:') . '<br />' . $receivers);
}
/**
* Fetch a list of receivers based on the ACL data
*
* @param array $model
* @return string
*/
private function fetchReceiversFromACL(array $model)
{
$allowed_users = $model['allow_cid'];
$allowed_circles = $model['allow_gid'];
$deny_users = $model['deny_cid'];
$deny_circles = $model['deny_gid'];
$o = DI::l10n()->t('Visible to:') . '<br />';
$l = [];
if (count($allowed_circles)) {
@ -165,11 +179,7 @@ class PermissionTooltip extends \Friendica\BaseModule
$l[] = '<strike>' . $contact['name'] . '</strike>';
}
if (!empty($l)) {
$this->httpExit($o . implode(', ', $l));
} else {
$this->httpExit($o . $receivers);;
}
return implode(', ', $l);
}
/**

View File

@ -199,6 +199,7 @@ class Account extends BaseSettings
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
}
User::setCommunityUserSettings(DI::userSession()->getLocalUserId());
DI::baseUrl()->redirect($redirectUrl);
}
@ -321,37 +322,16 @@ class Account extends BaseSettings
$page_flags = User::PAGE_FLAGS_COMMUNITY;
}
$fields = [];
$profile_fields = [];
if ($account_type == User::ACCOUNT_TYPE_COMMUNITY) {
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'unlisted', true);
$fields = [
'allow_cid' => '',
'allow_gid' => $page_flags == User::PAGE_FLAGS_PRVGROUP ?
'<' . Circle::FOLLOWERS . '>'
: '',
'deny_cid' => '',
'deny_gid' => '',
'blockwall' => true,
'blocktags' => true,
];
$profile_fields = [
'hide-friends' => true,
];
}
$fields = array_merge($fields, [
$fields = [
'page-flags' => $page_flags,
'account-type' => $account_type,
]);
];
if (!User::update($fields, DI::userSession()->getLocalUserId()) || !empty($profile_fields) && !Profile::update($profile_fields, DI::userSession()->getLocalUserId())) {
if (!User::update($fields, DI::userSession()->getLocalUserId())) {
DI::sysmsg()->addNotice(DI::l10n()->t('Settings were not updated.'));
}
User::setCommunityUserSettings(DI::userSession()->getLocalUserId());
DI::baseUrl()->redirect($redirectUrl);
}

View File

@ -560,14 +560,13 @@ class Transmitter
*
* @param array $item Item array
* @param boolean $blindcopy addressing via "bcc" or "cc"?
* @param boolean $expand_followers Expand the list of followers
* @param integer $last_id Last item id for adding receivers
*
* @return array with permission data
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
private static function createPermissionBlockForItem(array $item, bool $blindcopy, bool $expand_followers, int $last_id = 0): array
private static function createPermissionBlockForItem(array $item, bool $blindcopy, int $last_id = 0): array
{
if ($last_id == 0) {
$last_id = $item['id'];
@ -704,7 +703,7 @@ class Transmitter
$data['to'][] = $actor_profile['followers'];
}
} else {
$receiver_list = Item::enumeratePermissions($item, true, $expand_followers);
$receiver_list = Item::enumeratePermissions($item, true, false);
foreach ($terms as $term) {
$cid = Contact::getIdForURL($term['url'], $item['uid']);
@ -851,6 +850,28 @@ class Transmitter
unset($receivers['bcc']);
}
if (!$blindcopy && count($receivers['audience']) == 1) {
$receivers['audience'] = $receivers['audience'][0];
} elseif (!$receivers['audience']) {
unset($receivers['audience']);
}
return $receivers;
}
/**
* Store the receivers for the given item
*
* @param array $item
* @return void
*/
public static function storeReceiversForItem(array $item)
{
$receivers = self::createPermissionBlockForItem($item, true);
if (empty($receivers)) {
return;
}
foreach (['to' => Tag::TO, 'cc' => Tag::CC, 'bcc' => Tag::BCC, 'audience' => Tag::AUDIENCE] as $element => $type) {
if (!empty($receivers[$element])) {
foreach ($receivers[$element] as $receiver) {
@ -863,6 +884,44 @@ class Transmitter
}
}
}
}
/**
* Get a list of receivers for the provided uri-id
*
* @param array $item
* @param boolean $blindcopy
* @return void
*/
public static function getReceiversForUriId(int $uri_id, bool $blindcopy)
{
$receivers = [
'to' => [],
'cc' => [],
'bcc' => [],
'audience' => [],
];
foreach (Tag::getByURIId($uri_id, [Tag::TO, Tag::CC, Tag::BCC, Tag::AUDIENCE]) as $receiver) {
switch ($receiver['type']) {
case Tag::TO:
$receivers['to'][] = $receiver['url'];
break;
case Tag::CC:
$receivers['cc'][] = $receiver['url'];
break;
case Tag::BCC:
$receivers['bcc'][] = $receiver['url'];
break;
case Tag::AUDIENCE:
$receivers['audience'][] = $receiver['url'];
break;
}
}
if (!$blindcopy) {
unset($receivers['bcc']);
}
if (!$blindcopy && count($receivers['audience']) == 1) {
$receivers['audience'] = $receivers['audience'][0];
@ -932,11 +991,13 @@ class Transmitter
}
$condition = [
'uid' => $uid,
'archive' => false,
'pending' => false,
'blocked' => false,
'network' => Protocol::FEDERATED,
'uid' => $uid,
'self' => false,
'archive' => false,
'pending' => false,
'blocked' => false,
'network' => Protocol::FEDERATED,
'contact-type' => [Contact::TYPE_UNKNOWN, Contact::TYPE_PERSON, Contact::TYPE_NEWS, Contact::TYPE_ORGANISATION],
];
if (!empty($uid)) {
@ -980,14 +1041,13 @@ class Transmitter
* @param array $item Item array
* @param integer $uid User ID
* @param boolean $personal fetch personal inboxes
* @param integer $last_id Last item id for adding receivers
* @return array with inboxes
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function fetchTargetInboxes(array $item, int $uid, bool $personal = false, int $last_id = 0): array
public static function fetchTargetInboxes(array $item, int $uid, bool $personal = false): array
{
$permissions = self::createPermissionBlockForItem($item, true, true, $last_id);
$permissions = self::getReceiversForUriId($item['uri-id'], true);
if (empty($permissions)) {
return [];
}
@ -1019,7 +1079,7 @@ class Transmitter
}
if ($item_profile && ($receiver == $item_profile['followers']) && ($uid == $profile_uid)) {
$inboxes = array_merge_recursive($inboxes, self::fetchTargetInboxesforUser($uid, $personal, self::isAPPost($last_id)));
$inboxes = array_merge_recursive($inboxes, self::fetchTargetInboxesforUser($uid, $personal, true));
} else {
$profile = APContact::getByURL($receiver, false);
if (!empty($profile)) {
@ -1119,7 +1179,7 @@ class Transmitter
$data['actor'] = $mail['author-link'];
$data['published'] = DateTimeFormat::utc($mail['created'] . '+00:00', DateTimeFormat::ATOM);
$data['instrument'] = self::getService();
$data = array_merge($data, self::createPermissionBlockForItem($mail, true, false));
$data = array_merge($data, self::createPermissionBlockForItem($mail, true));
if (empty($data['to']) && !empty($data['cc'])) {
$data['to'] = $data['cc'];
@ -1351,7 +1411,7 @@ class Transmitter
$data['instrument'] = self::getService();
$data = array_merge($data, self::createPermissionBlockForItem($item, false, false));
$data = array_merge($data, self::createPermissionBlockForItem($item, false));
if (in_array($data['type'], ['Create', 'Update', 'Delete'])) {
$data['object'] = self::createNote($item, $api_mode);
@ -1705,7 +1765,7 @@ class Transmitter
$data['name'] = BBCode::toPlaintext($item['title'], false);
}
$permission_block = self::createPermissionBlockForItem($item, false, false);
$permission_block = self::getReceiversForUriId($item['uri-id'], false);
$real_quote = false;

View File

@ -1192,6 +1192,7 @@ class Diaspora
{
$fields = [
'id', 'parent', 'body', 'wall', 'uri', 'guid', 'private', 'origin',
'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
'author-name', 'author-link', 'author-avatar', 'gravity',
'owner-name', 'owner-link', 'owner-avatar'
];
@ -1567,6 +1568,12 @@ class Diaspora
$datarray['verb'] = Activity::POST;
$datarray['gravity'] = Item::GRAVITY_COMMENT;
$datarray['private'] = $toplevel_parent_item['private'];
$datarray['allow_cid'] = $toplevel_parent_item['allow_cid'];
$datarray['allow_gid'] = $toplevel_parent_item['allow_gid'];
$datarray['deny_cid'] = $toplevel_parent_item['deny_cid'];
$datarray['deny_gid'] = $toplevel_parent_item['deny_gid'];
$datarray['thr-parent'] = $thr_parent ?: $toplevel_parent_item['uri'];
$datarray['object-type'] = Activity\ObjectType::COMMENT;
@ -1823,6 +1830,13 @@ class Diaspora
$datarray['verb'] = $verb;
$datarray['gravity'] = Item::GRAVITY_ACTIVITY;
$datarray['private'] = $toplevel_parent_item['private'];
$datarray['allow_cid'] = $toplevel_parent_item['allow_cid'];
$datarray['allow_gid'] = $toplevel_parent_item['allow_gid'];
$datarray['deny_cid'] = $toplevel_parent_item['deny_cid'];
$datarray['deny_gid'] = $toplevel_parent_item['deny_gid'];
$datarray['thr-parent'] = $toplevel_parent_item['uri'];
$datarray['object-type'] = Activity\ObjectType::NOTE;

View File

@ -434,6 +434,7 @@ class HTTPSignature
}
if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
Logger::debug('Fetching was unsuccessful', ['url' => $request, 'return-code' => $curlResult->getReturnCode(), 'error-number' => $curlResult->getErrorNumber(), 'error' => $curlResult->getError()]);
return [];
}

View File

@ -29,6 +29,8 @@ use Friendica\Network\HTTPException;
class RevokeFollow
{
const WORKER_DEFER_LIMIT = 5;
/**
* Issue asynchronous follow revocation message to remote servers.
* The local relationship has already been updated, so we can't use the user-specific contact
@ -51,7 +53,7 @@ class RevokeFollow
}
if (!Protocol::revokeFollow($contact, $owner)) {
Worker::defer();
Worker::defer(self::WORKER_DEFER_LIMIT);
}
}
}

View File

@ -28,6 +28,8 @@ use Friendica\Model\User;
class Unfollow
{
const WORKER_DEFER_LIMIT = 5;
/**
* Issue asynchronous unfollow message to remote servers.
* The local relationship has already been updated, so we can't use the user-specific contact.
@ -51,7 +53,7 @@ class Unfollow
$result = Protocol::unfollow($contact, $owner);
if ($result === false) {
Worker::defer();
Worker::defer(self::WORKER_DEFER_LIMIT);
}
}
}

View File

@ -30,6 +30,8 @@ use Friendica\Protocol\ActivityPub\Receiver;
class FetchMissingActivity
{
const WORKER_DEFER_LIMIT = 5;
/**
* Fetch missing activities
* @param string $url Contact URL
@ -42,7 +44,7 @@ class FetchMissingActivity
$result = ActivityPub\Processor::fetchMissingActivity($url, $child, $relay_actor, $completion);
if ($result) {
Logger::info('Successfully fetched missing activity', ['url' => $url]);
} elseif (!Worker::defer()) {
} elseif (!Worker::defer(self::WORKER_DEFER_LIMIT)) {
Logger::info('Activity could not be fetched', ['url' => $url]);
// recursively delete all entries that belong to this worker task

View File

@ -102,7 +102,7 @@ class Notifier
$uid = $target_id;
$condition = ['uid' => $target_id, 'self' => false, 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
$delivery_contacts_stmt = DBA::select('contact', ['id', 'url', 'addr', 'network', 'protocol', 'baseurl', 'gsid', 'batch'], $condition);
$delivery_contacts_stmt = DBA::select('contact', ['id', 'uri-id', 'url', 'addr', 'network', 'protocol', 'baseurl', 'gsid', 'batch'], $condition);
} else {
$post = Post::selectFirst(['id'], ['uri-id' => $post_uriid, 'uid' => $sender_uid]);
if (!DBA::isResult($post)) {
@ -191,7 +191,8 @@ class Notifier
$apdelivery = self::activityPubDelivery($cmd, $target_item, $parent, $thr_parent, $a->getQueueValue('priority'), $a->getQueueValue('created'), $owner);
$ap_contacts = $apdelivery['contacts'];
$delivery_queue_count += $apdelivery['count'];
if (($thr_parent['network'] == Protocol::ACTIVITYPUB) && ($thr_parent['private'] == Item::PRIVATE)) {
// Restrict distribution to AP, when there are no permissions.
if (($target_item['private'] == Item::PRIVATE) && empty($target_item['allow_cid']) && empty($target_item['allow_gid']) && empty($target_item['deny_cid']) && empty($target_item['deny_gid'])) {
$only_ap_delivery = true;
$public_message = false;
$diaspora_delivery = false;
@ -438,7 +439,7 @@ class Notifier
if (!empty($networks)) {
$condition['network'] = $networks;
}
$delivery_contacts_stmt = DBA::select('contact', ['id', 'addr', 'url', 'network', 'protocol', 'baseurl', 'gsid', 'batch'], $condition);
$delivery_contacts_stmt = DBA::select('contact', ['id', 'uri-id', 'addr', 'url', 'network', 'protocol', 'baseurl', 'gsid', 'batch'], $condition);
}
$conversants = [];
@ -462,7 +463,7 @@ class Notifier
$condition = ['network' => Protocol::DFRN, 'uid' => $owner['uid'], 'blocked' => false,
'pending' => false, 'archive' => false, 'rel' => [Contact::FOLLOWER, Contact::FRIEND]];
$contacts = DBA::selectToArray('contact', ['id', 'url', 'addr', 'name', 'network', 'protocol', 'baseurl', 'gsid'], $condition);
$contacts = DBA::selectToArray('contact', ['id', 'uri-id', 'url', 'addr', 'name', 'network', 'protocol', 'baseurl', 'gsid'], $condition);
$conversants = array_merge($contacts, $participants);
@ -593,6 +594,11 @@ class Notifier
continue;
}
if (($contact['network'] == Protocol::ACTIVITYPUB) && !DI::dsprContact()->existsByUriId($contact['uri-id'])) {
Logger::info('The ActivityPub contact does not support Diaspora, so skip delivery via Diaspora', ['id' => $post_uriid, 'uid' => $sender_uid, 'url' => $contact['url']]);
continue;
}
Logger::info('Delivery', ['batch' => $in_batch, 'target' => $post_uriid, 'uid' => $sender_uid, 'guid' => $target_item['guid'] ?? '', 'to' => $contact]);
// Ensure that posts with our own protocol arrives before Diaspora posts arrive.
@ -815,7 +821,7 @@ class Notifier
Logger::info('Remote item is no AP post. It will not be distributed.', ['id' => $target_item['id'], 'url' => $target_item['uri'], 'verb' => $target_item['verb']]);
return ['count' => 0, 'contacts' => []];
} elseif ($parent['origin'] && (($target_item['gravity'] != Item::GRAVITY_ACTIVITY) || DI::config()->get('system', 'redistribute_activities'))) {
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid, false, $target_item['id']);
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid);
if (in_array($target_item['private'], [Item::PUBLIC])) {
$inboxes = ActivityPub\Transmitter::addRelayServerInboxesForItem($parent['id'], $inboxes);

View File

@ -56,7 +56,7 @@ use Friendica\Database\DBA;
// This file is required several times during the test in DbaDefinition which justifies this condition
if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1538);
define('DB_UPDATE_VERSION', 1539);
}
return [

View File

@ -1398,5 +1398,16 @@ function update_1535()
}
DI::config()->delete('system', 'compute_group_counts');
return Update::SUCCESS;
}
function update_1539()
{
$users = DBA::select('user', ['uid'], ['account-type' => User::ACCOUNT_TYPE_COMMUNITY]);
while ($user = DBA::fetch($users)) {
User::setCommunityUserSettings($user['uid']);
}
DBA::close($users);
return Update::SUCCESS;
}

View File

@ -741,7 +741,7 @@ msgstr "Den Server dieses Autors ignorieren?"
msgid ""
"You won't see any content from this server including reshares in your "
"Network page, the community pages and individual conversations."
msgstr "Sie werden keine Inhalte von dieser Instanz sehen, auch nicht das erneute Teilen auf Ihrer Netzwerkseite, den Gemeinschaftsseiten und einzelnen Unterhaltungen."
msgstr "Du wirst keine Inhalte von dieser Instanz sehen, auch nicht das erneute Teilen auf Ihrer Netzwerkseite, den Gemeinschaftsseiten und einzelnen Unterhaltungen."
#: src/App/Page.php:255
msgid "Like not successful"
@ -773,13 +773,13 @@ msgstr "Ziehe Dateien hierher, um sie hochzuladen"
#: src/App/Page.php:264
msgid "Your browser does not support drag and drop file uploads."
msgstr "Ihr Browser unterstützt das Hochladen von Dateien per Drag & Drop nicht."
msgstr "Dein Browser unterstützt das Hochladen von Dateien per Drag & Drop nicht."
#: src/App/Page.php:265
msgid ""
"Please use the fallback form below to upload your files like in the olden "
"days."
msgstr "Bitte verwenden Sie das untenstehende Formular, um Ihre Dateien wie früher hochzuladen."
msgstr "Bitte verwende das unten stehende Formular, um Ihre Dateien wie früher hochzuladen."
#: src/App/Page.php:266
msgid "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB."
@ -787,7 +787,7 @@ msgstr "Datei ist zu groß ({{filesize}}MiB). Maximale Dateigröße: {{maxFilesi
#: src/App/Page.php:267
msgid "You can't upload files of this type."
msgstr "Sie können keine Dateien dieses Typs hochladen."
msgstr "Du kannst keine Dateien dieses Typs hochladen."
#: src/App/Page.php:268
msgid "Server responded with {{statusCode}} code."
@ -803,7 +803,7 @@ msgstr "Hochladen abgebrochen"
#: src/App/Page.php:271
msgid "Are you sure you want to cancel this upload?"
msgstr "Sind Sie sicher, dass Sie diesen Upload abbrechen möchten?"
msgstr "Bist du sicher, dass du diesen Upload abbrechen möchten?"
#: src/App/Page.php:272
msgid "Remove file"
@ -811,7 +811,7 @@ msgstr "Datei entfernen"
#: src/App/Page.php:273
msgid "You can't upload any more files."
msgstr "Sie können keine weiteren Dateien hochladen."
msgstr "Du kannst keine weiteren Dateien hochladen."
#: src/App/Page.php:351
msgid "toggle mobile"
@ -1464,7 +1464,7 @@ msgstr "Du folgst %s."
#: src/Content/Conversation.php:774
#, php-format
msgid "You subscribed to %s."
msgstr "Sie haben %s abonniert."
msgstr "Du hast %s abonniert."
#: src/Content/Conversation.php:776
msgid "You subscribed to one or more tags in this post."
@ -1568,7 +1568,7 @@ msgstr "Für Dich"
#: src/Content/Conversation/Factory/Channel.php:42
msgid "Posts from contacts you interact with and who interact with you"
msgstr "Beiträge von Kontakten, mit denen Sie interagieren und die mit Ihnen interagieren"
msgstr "Beiträge von Kontakten, mit denen du interagierst und die mit dir interagieren"
#: src/Content/Conversation/Factory/Channel.php:43
msgid "What's Hot"
@ -1585,7 +1585,7 @@ msgstr "Beiträge in %s"
#: src/Content/Conversation/Factory/Channel.php:45
msgid "Posts from your followers that you don't follow"
msgstr "Beiträge von Ihren Followern, denen Sie nicht folgen"
msgstr "Beiträge von deinen Followern, denen du nicht folgst"
#: src/Content/Conversation/Factory/Channel.php:46
msgid "Sharers of sharers"
@ -1593,7 +1593,7 @@ msgstr "Geteilt von teilenden "
#: src/Content/Conversation/Factory/Channel.php:46
msgid "Posts from accounts that are followed by accounts that you follow"
msgstr "Beiträge von Accounts, welche von von Accounts gefolgt werden, denen Sie folgen "
msgstr "Beiträge von Accounts, welche von von Accounts gefolgt werden, denen du folgst "
#: src/Content/Conversation/Factory/Channel.php:47
#: src/Module/Settings/Channels.php:137 src/Module/Settings/Channels.php:153
@ -2549,7 +2549,7 @@ msgstr "Dieser Inhalt wird außschließlich den Kontakten gezeigt, die du in der
msgid ""
"Start typing the name of a contact or a circle to show a filtered list. You "
"can also mention the special circles \"Followers\" and \"Mutuals\"."
msgstr "Geben Sie den Namen eines Kontakts oder eines Circles ein, um eine gefilterte Liste anzuzeigen. Sie können auch die speziellen Kreise \"folgende\" und \"beidseitige Freundschaft\" erwähnen."
msgstr "Gebe den Namen eines Kontakts oder eines Circles ein, um eine gefilterte Liste anzuzeigen. Du kannst auch die speziellen Kreise \"Folgende\" und \"beidseitige Freundschaft\" erwähnen."
#: src/Core/ACL.php:325
msgid "Show to:"
@ -3232,7 +3232,7 @@ msgid ""
"A deleted circle with this name was revived. Existing item permissions "
"<strong>may</strong> apply to this circle and any future members. If this is"
" not what you intended, please create another circle with a different name."
msgstr "Ein gelöschter Circle mit diesem Namen wurde wiederhergestellt. Bestehende Objektberechtigungen <strong>können</strong> für diesen Circle und alle zukünftigen Mitglieder gelten. Wenn dies nicht das ist, was Sie beabsichtigen, erstellen Sie bitte einen neuen Circle mit einem anderen Namen."
msgstr "Ein gelöschter Circle mit diesem Namen wurde wiederhergestellt. Bestehende Objektberechtigungen <strong>können</strong> für diesen Circle und alle zukünftigen Mitglieder gelten. Wenn dies nicht das ist, was du beabsichtigst, erstelle bitte einen neuen Circle mit einem anderen Namen."
#: src/Model/Circle.php:544
msgid "Everybody"
@ -3811,7 +3811,7 @@ msgstr "Kontakte"
#: src/Model/User.php:1262
msgid ""
"An error occurred creating your default contact circle. Please try again."
msgstr "Beim Erstellen Ihres Circles ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
msgstr "Beim Erstellen Ihres Circles ist ein Fehler aufgetreten. Bitte versuche es erneut."
#: src/Model/User.php:1306
msgid "Profile Photos"
@ -3855,7 +3855,7 @@ msgid ""
"\t\tIf you ever want to delete your account, you can do so at %1$s/settings/removeme\n"
"\n"
"\t\tThank you and welcome to %4$s."
msgstr "\nNachfolgend die Anmeldedetails:\n\nAdresse der Seite: %1$s\nBenutzername: %2$s\nPasswort: %3$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich angemeldet hast.Bitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser Seite zu kontrollieren.Eventuell magst du ja auch einige Informationen über dich in deinem Profil veröffentlichen, damit andere Leute dich einfacher finden können.Bearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).Wir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir passendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.Außerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter angibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.Wir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.Wenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie allerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nDu kannst dein Nutzerkonto jederzeit unter %1$s/settings/removeme wieder löschen.\n\nDanke und willkommen auf %4$s."
msgstr "\nNachfolgend die Anmeldedetails:\n\nAdresse der Seite: %1$s\nBenutzername: %2$s\nPasswort: %3$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich angemeldet hast.Bitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser Seite zu kontrollieren.Eventuell magst du ja auch einige Informationen über dich in deinem Profil veröffentlichen, damit andere Leute dich einfacher finden können.Bearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite). Wir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir passendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.Außerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter angibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen. Wir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.Wenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie allerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nDu kannst dein Nutzerkonto jederzeit unter %1$s/settings/removeme wieder löschen.\n\nDanke und willkommen auf %4$s."
#: src/Model/User.php:1522 src/Model/User.php:1629
#, php-format
@ -3926,7 +3926,7 @@ msgstr "\nDie Anmelde-Details sind die folgenden:\n\tAdresse der Seite:\t%3$s\n\
#: src/Model/User.php:1656
msgid ""
"User with delegates can't be removed, please remove delegate users first"
msgstr "Benutzer mit Delegaten können nicht entfernt werden, bitte entfernen Sie zuerst die delegierten Benutzer"
msgstr "Benutzer mit Delegaten können nicht entfernt werden, bitte entferne zuerst die delegierten Benutzer"
#: src/Module/Admin/Addons/Details.php:65
msgid "Addon not found."
@ -5407,7 +5407,7 @@ msgid ""
"The system.url entry is missing. This is a low level setting and can lead to"
" unexpected behavior. Please add a valid entry as soon as possible in the "
"config file or per console command!"
msgstr "Der Eintrag system.url fehlt. Dies ist eine Einstellung auf niedriger Ebene und kann zu unerwartetem Verhalten führen. Bitte fügen Sie so bald wie möglich einen gültigen Eintrag in der Konfigurationsdatei oder per Konsolenbefehl hinzu!"
msgstr "Der Eintrag system.url fehlt. Dies ist eine Einstellung auf niedriger Ebene und kann zu unerwartetem Verhalten führen. Bitt füge so bald wie möglich einen gültigen Eintrag in der Konfigurationsdatei oder per Konsolenbefehl hinzu!"
#: src/Module/Admin/Summary.php:107
msgid "The worker was never executed. Please check your database structure!"
@ -5732,13 +5732,13 @@ msgstr[1] "Das monatliche Limit von %d Beiträgen wurde erreicht. Der Beitrag wu
#: src/Module/BaseModeration.php:86
msgid "You don't have access to moderation pages."
msgstr "Sie haben keinen Zugriff zu den Moderationsseiten."
msgstr "Du hast keinen Zugriff zu den Moderationsseiten."
#: src/Module/BaseModeration.php:90
msgid ""
"Submanaged account can't access the moderation pages. Please log back in as "
"the main account."
msgstr "Das unterverwaltete Konto kann nicht auf die Moderationsseiten zugreifen. Bitte melden Sie sich wieder mit dem Hauptkonto an."
msgstr "Das verwaltete Konto kann nicht auf die Moderationsseiten zugreifen. Bitte melde dich wieder mit dem Hauptkonto an."
#: src/Module/BaseModeration.php:110 src/Module/Moderation/Reports.php:94
msgid "Reports"
@ -5818,7 +5818,7 @@ msgid_plural ""
"registered on. You can review the list of domains your node is currently "
"blocking in the <a href=\"/friendica\">About page</a>."
msgstr[0] "%d Ergebnis wurde herausgefiltert, weil Ihr Knoten die Domäne blockiert, auf der das Ergebnis registriert ist. Sie können die Liste aller Domänen, die Ihr Knoten derzeit blockiert, auf der <a href=\"/friendica\">Info-Seite</a> einsehen."
msgstr[1] "%d Ergebnisse wurden herausgefiltert, weil Ihr Knoten die Domäne blockiert, auf der die Ergebnisse registriert sind. Sie können die Liste aller Domänen, die Ihr Knoten derzeit blockiert, auf der<a href=\"/friendica\">Info-Seite</a> einsehen."
msgstr[1] "%d Ergebnisse wurden herausgefiltert, weil Ihr Knoten die Domäne blockiert, auf der die Ergebnisse registriert sind. Du kannst die Liste aller Domänen, die Ihr Knoten derzeit blockiert, auf der<a href=\"/friendica\">Info-Seite</a> einsehen."
#: src/Module/BaseSettings.php:78
msgid "Account"
@ -6456,7 +6456,7 @@ msgstr "Private Kommunikation ist für diesen Kontakt nicht verfügbar."
#: src/Module/Contact/Profile.php:282
msgid "This contact is on a server you ignored."
msgstr "Dieser Kontakt befindet sich auf einem Server, den Sie ignoriert haben."
msgstr "Dieser Kontakt befindet sich auf einem Server, den du ignoriert hast."
#: src/Module/Contact/Profile.php:285
msgid "Never"
@ -6653,7 +6653,7 @@ msgid ""
"contacts who flood the channel, so you might want to see only some of their "
"posts. Or you don't want to see their content at all, but you don't want to "
"block or hide the contact completely."
msgstr "Je nach Art des Kanals werden nicht alle Beiträge dieses Kontakts angezeigt. Standardmäßig müssen Beiträge eine Mindestanzahl an Interaktionen (Kommentare, Gefällt mir Angaben) aufweisen, um in Ihren Kanälen angezeigt zu werden. Andererseits kann es Kontakte geben, die den Kanal überfluten, so dass Sie vielleicht nur einige ihrer Beiträge sehen möchten. Oder Sie möchten deren Inhalte überhaupt nicht sehen, aber Sie möchten den Kontakt nicht komplett blockieren oder ausblenden."
msgstr "Je nach Art des Kanals werden nicht alle Beiträge dieses Kontakts angezeigt. Standardmäßig müssen Beiträge eine Mindestanzahl an Interaktionen (Kommentare, Gefällt mir Angaben) aufweisen, um in Ihren Kanälen angezeigt zu werden. Andererseits kann es Kontakte geben, die den Kanal überfluten, so dass du vielleicht nur einige ihrer Beiträge sehen möchtest. Oder du willst deren Inhalte überhaupt nicht sehen, aber du willst den Kontakt nicht komplett blockieren oder ausblenden."
#: src/Module/Contact/Profile.php:431
msgid "Default frequency"
@ -6664,7 +6664,7 @@ msgid ""
"Posts by this contact are displayed in the \"for you\" channel if you "
"interact often with this contact or if a post reached some level of "
"interaction."
msgstr "Beiträge dieses Kontakts werden im \"Für Dich\"-Kanal angezeigt, wenn Sie häufig mit diesem Kontakt interagieren oder wenn ein Beitrag ein gewisses Maß an Interaktion erreicht hat."
msgstr "Beiträge dieses Kontakts werden im \"Für Dich\"-Kanal angezeigt, wenn du häufig mit diesem Kontakt interagieren oder wenn ein Beitrag ein gewisses Maß an Interaktion erreicht hat."
#: src/Module/Contact/Profile.php:432
msgid "Display all posts of this contact"
@ -7269,7 +7269,7 @@ msgstr "Die Friendica System URL"
msgid ""
"Overwrite this field in case the system URL determination isn't right, "
"otherwise leave it as is."
msgstr "Überschreiben Sie dieses Feld, falls die System-URL-Erkennung nicht korrekt ist, ansonsten lassen Sie es unverändert."
msgstr "Überschreibe dieses Feld, falls die System-URL-Erkennung nicht korrekt ist, ansonsten lasse es unverändert."
#: src/Module/Install.php:242
msgid "Database connection"
@ -7422,7 +7422,7 @@ msgid ""
"web that is owned and controlled by its members. They can also connect with "
"many traditional social networks. See %s for a list of alternate Friendica "
"sites you can join."
msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst."
msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Du kannst dich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst."
#: src/Module/Invite.php:157
msgid ""
@ -7435,7 +7435,7 @@ msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social "
"web that is owned and controlled by its members. They can also connect with "
"many traditional social networks."
msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden."
msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Du kannst dich auch mit vielen üblichen Sozialen Netzwerken verbinden."
#: src/Module/Invite.php:159
#, php-format
@ -8056,7 +8056,7 @@ msgstr "Kontakt nicht gefunden oder seine Instanz ist bereits auf dieser Instanz
#: src/Module/Moderation/Report/Create.php:136
msgid "Please login to access this page."
msgstr "Bitte melden Sie sich an, um auf diese Seite zuzugreifen."
msgstr "Bitte melde dich an, um auf diese Seite zuzugreifen."
#: src/Module/Moderation/Report/Create.php:165
#: src/Module/Moderation/Report/Create.php:180
@ -8074,7 +8074,7 @@ msgstr "Kontakt wählen"
msgid ""
"Please enter below the contact address or profile URL you would like to "
"create a moderation report about."
msgstr "Bitte geben Sie unten die Kontaktadresse oder Profil-URL ein, über die Sie einen Moderationsbericht erstellen möchten."
msgstr "Bitte gib unten die Kontaktadresse oder Profil-URL ein, über die du einen Moderationsbericht erstellen möchten."
#: src/Module/Moderation/Report/Create.php:171
msgid "Contact address/URL"
@ -8086,7 +8086,7 @@ msgstr "Kategorie auswählen"
#: src/Module/Moderation/Report/Create.php:182
msgid "Please pick below the category of your report."
msgstr "Bitte wählen Sie unten die Kategorie für Ihren Bericht."
msgstr "Bitte wähle unten die Kategorie für deinen Bericht."
#: src/Module/Moderation/Report/Create.php:186
#: src/Module/Moderation/Report/Create.php:311
@ -8121,7 +8121,7 @@ msgid ""
"insensitive, intentionally or not. This includes disclosing people's private"
" information (doxxing), posting threats or offensive pictures in posts or "
"replies."
msgstr "Dieser Kontakt hat Sie oder andere Personen verärgert, indem er absichtlich oder unabsichtlich provokativ oder unsensibel war. Dazu gehören die Offenlegung privater Informationen (Doxxing), das Posten von Drohungen oder anstößigen Bildern in Beiträgen oder Antworten."
msgstr "Dieser Kontakt hat dich oder andere Personen verärgert, indem er absichtlich oder unabsichtlich provokativ oder unsensibel war. Dazu gehören die Offenlegung privater Informationen (Doxxing), das Posten von Drohungen oder anstößigen Bildern in Beiträgen oder Antworten."
#: src/Module/Moderation/Report/Create.php:189
#: src/Module/Moderation/Report/Create.php:314
@ -8145,13 +8145,13 @@ msgstr "Verstoß gegen die Regeln"
msgid ""
"This contact violated one or more rules of this node. You will be able to "
"pick which one(s) in the next step."
msgstr "Dieser Kontakt hat gegen eine oder mehrere Regeln dieser Instanz verstoßen. Sie können im nächsten Schritt auswählen, welche."
msgstr "Dieser Kontakt hat gegen eine oder mehrere Regeln dieser Instanz verstoßen. Du kannst im nächsten Schritt auswählen, welche."
#: src/Module/Moderation/Report/Create.php:191
msgid ""
"Please elaborate below why you submitted this report. The more details you "
"provide, the better your report can be handled."
msgstr "Bitte geben Sie im Folgenden an, warum Sie diese Meldung eingereicht haben. Je mehr Details Sie angeben, desto besser kann Ihre Meldung bearbeitet werden."
msgstr "Bitte gib im Folgenden an, warum du diese Meldung eingereicht hast. Je mehr Details du angibst, desto besser kann Ihre Meldung bearbeitet werden."
#: src/Module/Moderation/Report/Create.php:193
msgid "Additional Information"
@ -8162,7 +8162,7 @@ msgid ""
"Please provide any additional information relevant to this particular "
"report. You will be able to attach posts by this contact in the next step, "
"but any context is welcome."
msgstr "Bitte geben Sie alle zusätzlichen Informationen an, die für diesen Bericht relevant sind. Sie können im nächsten Schritt Beiträge dieser Kontaktperson anhängen, aber jeder Kontext ist willkommen."
msgstr "Bitte gib alle zusätzlichen Informationen an, die für diesen Bericht relevant sind. Du kannst im nächsten Schritt Beiträge dieser Kontaktperson anhängen, aber jeder Kontext ist willkommen."
#: src/Module/Moderation/Report/Create.php:209
msgid "Pick Rules"
@ -8170,7 +8170,7 @@ msgstr "Regeln auswählen"
#: src/Module/Moderation/Report/Create.php:210
msgid "Please pick below the node rules you believe this contact violated."
msgstr "Bitte wählen Sie unten die Instanzregeln aus, gegen die dieser Kontakt Ihrer Meinung nach verstoßen hat."
msgstr "Bitte wähle unten die Instanzregeln aus, gegen die dieser Kontakt deiner Meinung nach verstoßen hat."
#: src/Module/Moderation/Report/Create.php:261
msgid "Pick Posts"
@ -8178,7 +8178,7 @@ msgstr "Beiträge auswählen"
#: src/Module/Moderation/Report/Create.php:262
msgid "Please optionally pick posts to attach to your report."
msgstr "Bitte wählen Sie optional Beiträge aus, die Sie an Ihren Bericht anhängen möchten."
msgstr "Bitte wähle optional Beiträge aus, die du an diesen Bericht anhängen möchtest."
#: src/Module/Moderation/Report/Create.php:281
msgid "Submit Report"
@ -8192,7 +8192,7 @@ msgstr "Weiteres Vorgehen"
msgid ""
"You can also perform one of the following action on the contact you "
"reported:"
msgstr "Sie können auch eine der folgenden Aktionen für den gemeldeten Kontakt durchführen:"
msgstr "Du kannst auch eine der folgenden Aktionen für den gemeldeten Kontakt durchführen:"
#: src/Module/Moderation/Report/Create.php:291
msgid "Nothing"
@ -8212,7 +8212,7 @@ msgstr "Ihre Beiträge und Antworten werden weiterhin auf Ihrer Netzwerkseite an
msgid ""
"Their posts won't appear in your Network page anymore, but their replies can"
" appear in forum threads. They still can follow you."
msgstr "Ihre Beiträge werden nicht mehr auf Ihrer Netzwerkseite angezeigt, aber ihre Antworten können in Forenbeiträgen erscheinen. Sie können Ihnen immer noch folgen."
msgstr "Ihre Beiträge werden nicht mehr auf deiner Netzwerkseite angezeigt, aber ihre Antworten können in Forenbeiträgen erscheinen. Sie können dir immer noch folgen."
#: src/Module/Moderation/Report/Create.php:294
msgid "Block contact"
@ -8224,7 +8224,7 @@ msgid ""
" appear in forum threads, with their content collapsed by default. They "
"cannot follow you but still can have access to your public posts by other "
"means."
msgstr "Ihre Beiträge erscheinen nicht mehr auf Ihrer Netzwerkseite, aber ihre Antworten können in Forumsthemen erscheinen, wobei ihr Inhalt standardmäßig eingeklappt ist. Sie können Ihnen nicht folgen, haben aber auf anderem Wege weiterhin Zugang zu Ihren öffentlichen Beiträgen."
msgstr "Ihre Beiträge erscheinen nicht mehr auf deiner Netzwerkseite, aber ihre Antworten können in Forumsthemen erscheinen, wobei ihr Inhalt standardmäßig eingeklappt ist. Sie können dir nicht folgen, haben aber auf anderem Wege weiterhin Zugang zu deinen öffentlichen Beiträgen."
#: src/Module/Moderation/Report/Create.php:297
msgid "Forward report"
@ -8232,15 +8232,15 @@ msgstr "Bericht weiterleiten"
#: src/Module/Moderation/Report/Create.php:297
msgid "Would you ike to forward this report to the remote server?"
msgstr "Möchten Sie diesen Bericht an den Remote-Server weiterleiten?"
msgstr "Möchtest du diesen Bericht an den Entfernten-Server weiterleiten?"
#: src/Module/Moderation/Report/Create.php:330
msgid "1. Pick a contact"
msgstr "1. Wählen Sie einen Kontakt"
msgstr "1. Wähle einen Kontakt"
#: src/Module/Moderation/Report/Create.php:331
msgid "2. Pick a category"
msgstr "2. Wählen Sie eine Kategorie"
msgstr "2. Wähle eine Kategorie"
#: src/Module/Moderation/Report/Create.php:332
msgid "2a. Pick rules"
@ -9320,7 +9320,7 @@ 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 "Mit der Version 2022.09 haben wir festgestellt, dass jedes Passwort, das länger als 72 Zeichen ist, beim Hashing abgeschnitten wird. Um Verwirrung über dieses Verhalten zu vermeiden, aktualisieren Sie Ihr Passwort bitte so, dass es höchstens 72 Zeichen hat."
msgstr "Mit der Version 2022.09 haben wir festgestellt, dass jedes Passwort, das länger als 72 Zeichen ist, beim Hashing abgeschnitten wird. Um Verwirrung über dieses Verhalten zu vermeiden, aktualisiere dein Passwort bitte so, dass es höchstens 72 Zeichen hat."
#: src/Module/Security/PasswordTooLong.php:93
msgid "Update Password"
@ -10004,11 +10004,11 @@ msgstr "Dies sollte den Inhalt des Kanals in wenigen Worten beschreiben."
msgid ""
"When you want to access this channel via an access key, you can define it "
"here. Pay attention to not use an already used one."
msgstr "Wenn Sie auf diesen Kanal über einen Zugangsschlüssel zugreifen wollen, können Sie ihn hier festlegen. Achten Sie darauf, dass Sie nicht einen bereits verwendeten Schlüssel verwenden."
msgstr "Wenn du auf diesen Kanal über einen Zugangsschlüssel zugreifen willst, kannst du ihn hier festlegen. Achte darauf, dass du nicht einen bereits verwendeten Schlüssel benutzt."
#: src/Module/Settings/Channels.php:149
msgid "Select a circle or channel, that your channel should be based on."
msgstr "Wählen Sie einen Circle oder Kanal, auf dem Ihr Kanal basieren soll."
msgstr "Wähle einen Circle oder Kanal, auf dem Ihr Kanal basieren soll."
#: src/Module/Settings/Channels.php:150
msgid ""
@ -10028,23 +10028,23 @@ msgid ""
"Search terms for the body, supports the \"boolean mode\" operators from "
"MariaDB. See the help for a complete list of operators and additional "
"keywords: %s"
msgstr "Suchbegriffe für den Body, unterstützt die \"boolean mode\"-Operatoren von MariaDB. In der Hilfe finden Sie eine vollständige Liste der Operatoren und zusätzliche Schlüsselwörter: %s"
msgstr "Suchbegriffe für den Body, unterstützt die \"boolean mode\"-Operatoren von MariaDB. In der Hilfe findest du eine vollständige Liste der Operatoren und zusätzliche Schlüsselwörter: %s"
#: src/Module/Settings/Channels.php:153
msgid "Check to display images in the channel."
msgstr "Aktivieren Sie diese Option, um Bilder im Kanal anzuzeigen."
msgstr "Aktiviere diese Option, um Bilder im Kanal anzuzeigen."
#: src/Module/Settings/Channels.php:154
msgid "Check to display videos in the channel."
msgstr "Aktivieren Sie diese Option, um Videos im Kanal anzuzeigen."
msgstr "Aktiviere diese Option, um Videos im Kanal anzuzeigen."
#: src/Module/Settings/Channels.php:155
msgid "Check to display audio in the channel."
msgstr "Aktivieren Sie diese Option, um Audio im Kanal anzuzeigen."
msgstr "Aktiviere diese Option, um Audio im Kanal anzuzeigen."
#: src/Module/Settings/Channels.php:158
msgid "This page can be used to define your own channels."
msgstr "Auf dieser Seite können Sie Ihre eigenen Kanäle definieren."
msgstr "Auf dieser Seite kannst du deine eigenen Kanäle definieren."
#: src/Module/Settings/Channels.php:159
msgid "Add new entry to the channel list"
@ -10481,7 +10481,7 @@ msgstr "Lesezeichen"
msgid ""
"Enable timelines that you want to see in the channels widget. Bookmark "
"timelines that you want to see in the top menu."
msgstr "Aktivieren Sie dieTimelines, die Sie im Kanäle-Widget sehen möchten. Setzen Sie ein Lesezeichen für Timelines, die Sie im oberen Menü sehen möchten."
msgstr "Aktiviere die Timelines, die Sie im Kanäle-Widget sehen möchten. Setze ein Lesezeichen für Timelines, die du im oberen Menü sehen willst."
#: src/Module/Settings/Display.php:337
msgid "Channel languages:"
@ -10489,7 +10489,7 @@ msgstr "Channel Spachen:"
#: src/Module/Settings/Display.php:337
msgid "Select all languages that you want to see in your channels."
msgstr "Wählen Sie alle Sprachen aus, die Sie in Ihren Kanälen sehen möchten."
msgstr "Wähle alle Sprachen aus, die du in deinen Kanälen sehen willst."
#: src/Module/Settings/Display.php:339
msgid "Beginning of week:"
@ -10732,11 +10732,11 @@ msgstr "wähle ein Foto aus deinen Fotoalben"
msgid ""
"There was a validation error, please make sure you're logged in with the "
"account you want to remove and try again."
msgstr "Es gab einen Überprüfungsfehler. Bitte vergewissern Sie sich, dass Sie mit dem Konto, das Sie entfernen möchten, angemeldet sind, und versuchen Sie es erneut."
msgstr "Es gab einen Überprüfungsfehler. Bitte vergewisser dich, dass du mit dem Konto, das du entfernen möchtest angemeldet bist, und versuche es erneut."
#: src/Module/Settings/RemoveMe.php:76
msgid "If this error persists, please contact your administrator."
msgstr "Wenn dieser Fehler weiterhin besteht, wenden Sie sich bitte an den Administrator Ihrer Instanz."
msgstr "Wenn dieser Fehler weiterhin besteht, wende dich bitte an den Administrator deiner Instanz."
#: src/Module/Settings/RemoveMe.php:90
#: src/Navigation/Notifications/Repository/Notify.php:471
@ -10779,11 +10779,11 @@ msgstr "Bitte gib dein Passwort zur Verifikation ein:"
#: src/Module/Settings/Server/Action.php:60
msgid "Do you want to ignore this server?"
msgstr "Möchten Sie diese Instanz ignorieren?"
msgstr "Möchtest du diese Instanz ignorieren?"
#: src/Module/Settings/Server/Action.php:64
msgid "Do you want to unignore this server?"
msgstr "Möchten Sie diese Instanz nicht mehr ignorieren?"
msgstr "Möchtest du diese Instanz nicht mehr ignorieren?"
#: src/Module/Settings/Server/Action.php:74
#: src/Module/Settings/Server/Index.php:104
@ -10803,11 +10803,11 @@ msgid ""
"Here you can find all the remote servers you have taken individual "
"moderation actions against. For a list of servers your node has blocked, "
"please check out the <a href=\"friendica\">Information</a> page."
msgstr "Hier finden Sie alle Remote-Server, gegen die Sie individuelle Moderationsmaßnahmen ergriffen haben. Eine Liste der Server, die Ihre Instanz blockiert hat, finden Sie auf der <a href=\"friendica\">Informationseite</a> ."
msgstr "Hier findest du alle Entfernten-Server, gegen die du individuelle Moderationsmaßnahmen ergriffen hast. Eine Liste der Server, die deine Instanz blockiert hat, findest du auf der <a href=\"friendica\">Informationseite</a> ."
#: src/Module/Settings/Server/Index.php:110
msgid "Delete all your settings for the remote server"
msgstr "Löschen Sie alle Ihre Einstellungen für die Remote-Instanz"
msgstr "Lösche alle deine Einstellungen für die Entfernte-Instanz"
#: src/Module/Settings/Server/Index.php:111
msgid "Save changes"
@ -11147,13 +11147,13 @@ msgstr "Diese Instanz hat den Top-Level-Autor oder den Autor des freigegebenen B
msgid ""
"You have ignored or blocked the top-level author or the author of the shared"
" post."
msgstr "Sie haben den Autor der obersten Ebene oder den Autor des freigegebenen Beitrags ignoriert oder blockiert."
msgstr "Du hast den Autor der obersten Ebene oder den Autor des freigegebenen Beitrags ignoriert oder blockiert."
#: src/Module/Special/DisplayNotFound.php:39
msgid ""
"You have ignored the top-level author's server or the shared post author's "
"server."
msgstr "Sie haben die Instanz des übergeordneten Autors oder die Instanz des Autors des freigegebenen Beitrags ignoriert."
msgstr "Du hast die Instanz des übergeordneten Autors oder die Instanz des Autors des freigegebenen Beitrags ignoriert."
#: src/Module/Special/DisplayNotFound.php:45
msgid "Conversation Not Found"
@ -11161,7 +11161,7 @@ msgstr "Konversation nicht gefunden"
#: src/Module/Special/DisplayNotFound.php:46
msgid "Unfortunately, the requested conversation isn't available to you."
msgstr "Leider ist die gewünschte Konversation für Sie nicht verfügbar."
msgstr "Leider ist die gewünschte Konversation für dich nicht verfügbar."
#: src/Module/Special/DisplayNotFound.php:47
msgid "Possible reasons include:"
@ -11451,7 +11451,7 @@ msgid ""
"Once you have made some friends, organize them into private conversation "
"circles from the sidebar of your Contacts page and then you can interact "
"with each circle privately on your Network page."
msgstr "Sobald Sie einige Freunde gefunden haben, können Sie diese in der Seitenleiste Ihrer Kontaktseite in private Circles einteilen und dann mit jedem Circle auf Ihrer Netzwerkseite privat interagieren."
msgstr "Sobald du einige Freunde gefunden hast, kannst du diese in der Seitenleiste deiner Kontaktseite in private Circles einteilen und dann mit jedem Circle auf deiner Netzwerkseite privat interagieren."
#: src/Module/Welcome.php:80
msgid "Why Aren't My Posts Public?"

View File

@ -200,7 +200,7 @@ $a->strings['Block this author? They won\'t be able to follow you nor see your p
$a->strings['Ignore this author? You won\'t be able to see their posts and their notifications.'] = 'Diesen Autor ignorieren? Du wirst seine Beiträge und Benachrichtigungen nicht mehr sehen können.';
$a->strings['Collapse this author\'s posts?'] = 'Beiträge dieses Autors zusammenklappen?';
$a->strings['Ignore this author\'s server?'] = 'Den Server dieses Autors ignorieren?';
$a->strings['You won\'t see any content from this server including reshares in your Network page, the community pages and individual conversations.'] = 'Sie werden keine Inhalte von dieser Instanz sehen, auch nicht das erneute Teilen auf Ihrer Netzwerkseite, den Gemeinschaftsseiten und einzelnen Unterhaltungen.';
$a->strings['You won\'t see any content from this server including reshares in your Network page, the community pages and individual conversations.'] = 'Du wirst keine Inhalte von dieser Instanz sehen, auch nicht das erneute Teilen auf Ihrer Netzwerkseite, den Gemeinschaftsseiten und einzelnen Unterhaltungen.';
$a->strings['Like not successful'] = 'Das "Mag ich" war nicht erfolgreich';
$a->strings['Dislike not successful'] = 'Das "Mag ich nicht" war nicht erfolgreich';
$a->strings['Sharing not successful'] = 'Das Teilen war nicht erfolgreich';
@ -208,16 +208,16 @@ $a->strings['Attendance unsuccessful'] = 'Die Teilnahme war nicht erfolgreich';
$a->strings['Backend error'] = 'Fehler im Backend';
$a->strings['Network error'] = 'Netzwerkfehler';
$a->strings['Drop files here to upload'] = 'Ziehe Dateien hierher, um sie hochzuladen';
$a->strings['Your browser does not support drag and drop file uploads.'] = 'Ihr Browser unterstützt das Hochladen von Dateien per Drag & Drop nicht.';
$a->strings['Please use the fallback form below to upload your files like in the olden days.'] = 'Bitte verwenden Sie das untenstehende Formular, um Ihre Dateien wie früher hochzuladen.';
$a->strings['Your browser does not support drag and drop file uploads.'] = 'Dein Browser unterstützt das Hochladen von Dateien per Drag & Drop nicht.';
$a->strings['Please use the fallback form below to upload your files like in the olden days.'] = 'Bitte verwende das unten stehende Formular, um Ihre Dateien wie früher hochzuladen.';
$a->strings['File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.'] = 'Datei ist zu groß ({{filesize}}MiB). Maximale Dateigröße: {{maxFilesize}}MiB.';
$a->strings['You can\'t upload files of this type.'] = 'Sie können keine Dateien dieses Typs hochladen.';
$a->strings['You can\'t upload files of this type.'] = 'Du kannst keine Dateien dieses Typs hochladen.';
$a->strings['Server responded with {{statusCode}} code.'] = 'Der Server antwortete mit Status-Code {{statusCode}} ';
$a->strings['Cancel upload'] = 'Hochladen abbrechen';
$a->strings['Upload canceled.'] = 'Hochladen abgebrochen';
$a->strings['Are you sure you want to cancel this upload?'] = 'Sind Sie sicher, dass Sie diesen Upload abbrechen möchten?';
$a->strings['Are you sure you want to cancel this upload?'] = 'Bist du sicher, dass du diesen Upload abbrechen möchten?';
$a->strings['Remove file'] = 'Datei entfernen';
$a->strings['You can\'t upload any more files.'] = 'Sie können keine weiteren Dateien hochladen.';
$a->strings['You can\'t upload any more files.'] = 'Du kannst keine weiteren Dateien hochladen.';
$a->strings['toggle mobile'] = 'mobile Ansicht umschalten';
$a->strings['Method not allowed for this module. Allowed method(s): %s'] = 'Diese Methode ist in diesem Modul nicht erlaubt. Erlaubte Methoden sind: %s';
$a->strings['Page not found.'] = 'Seite nicht gefunden.';
@ -391,7 +391,7 @@ $a->strings['remove'] = 'löschen';
$a->strings['Delete Selected Items'] = 'Lösche die markierten Beiträge';
$a->strings['You had been addressed (%s).'] = 'Du wurdest angeschrieben (%s).';
$a->strings['You are following %s.'] = 'Du folgst %s.';
$a->strings['You subscribed to %s.'] = 'Sie haben %s abonniert.';
$a->strings['You subscribed to %s.'] = 'Du hast %s abonniert.';
$a->strings['You subscribed to one or more tags in this post.'] = 'Du folgst einem oder mehreren Hashtags dieses Beitrags.';
$a->strings['%s reshared this.'] = '%s hat dies geteilt';
$a->strings['Reshared'] = 'Geteilt';
@ -415,13 +415,13 @@ $a->strings['Filed under:'] = 'Abgelegt unter:';
$a->strings['%s from %s'] = '%s von %s';
$a->strings['View in context'] = 'Im Zusammenhang betrachten';
$a->strings['For you'] = 'Für Dich';
$a->strings['Posts from contacts you interact with and who interact with you'] = 'Beiträge von Kontakten, mit denen Sie interagieren und die mit Ihnen interagieren';
$a->strings['Posts from contacts you interact with and who interact with you'] = 'Beiträge von Kontakten, mit denen du interagierst und die mit dir interagieren';
$a->strings['What\'s Hot'] = 'Angesagt';
$a->strings['Posts with a lot of interactions'] = 'Beiträge mit vielen Interaktionen';
$a->strings['Posts in %s'] = 'Beiträge in %s';
$a->strings['Posts from your followers that you don\'t follow'] = 'Beiträge von Ihren Followern, denen Sie nicht folgen';
$a->strings['Posts from your followers that you don\'t follow'] = 'Beiträge von deinen Followern, denen du nicht folgst';
$a->strings['Sharers of sharers'] = 'Geteilt von teilenden ';
$a->strings['Posts from accounts that are followed by accounts that you follow'] = 'Beiträge von Accounts, welche von von Accounts gefolgt werden, denen Sie folgen ';
$a->strings['Posts from accounts that are followed by accounts that you follow'] = 'Beiträge von Accounts, welche von von Accounts gefolgt werden, denen du folgst ';
$a->strings['Images'] = 'Bilder';
$a->strings['Posts with images'] = 'Beiträge mit Bildern';
$a->strings['Audio'] = 'Audio';
@ -642,7 +642,7 @@ $a->strings['Public'] = 'Öffentlich';
$a->strings['This content will be shown to all your followers and can be seen in the community pages and by anyone with its link.'] = 'Dieser Inhalt wird all deine Abonenten sowie auf der Gemeinschaftsseite angezeigt. Außerdem kann ihn jeder sehen, der den Link kennt.';
$a->strings['Limited/Private'] = 'Begrenzt/Privat';
$a->strings['This content will be shown only to the people in the first box, to the exception of the people mentioned in the second box. It won\'t appear anywhere public.'] = 'Dieser Inhalt wird außschließlich den Kontakten gezeigt, die du in der ersten Box ausgewählt hast, mit den Ausnahmen derer die du in der zweiten Box auflistest. Er wird nicht öffentlich zugänglich sein.';
$a->strings['Start typing the name of a contact or a circle to show a filtered list. You can also mention the special circles "Followers" and "Mutuals".'] = 'Geben Sie den Namen eines Kontakts oder eines Circles ein, um eine gefilterte Liste anzuzeigen. Sie können auch die speziellen Kreise "folgende" und "beidseitige Freundschaft" erwähnen.';
$a->strings['Start typing the name of a contact or a circle to show a filtered list. You can also mention the special circles "Followers" and "Mutuals".'] = 'Gebe den Namen eines Kontakts oder eines Circles ein, um eine gefilterte Liste anzuzeigen. Du kannst auch die speziellen Kreise "Folgende" und "beidseitige Freundschaft" erwähnen.';
$a->strings['Show to:'] = 'Sichtbar für:';
$a->strings['Except to:'] = 'Ausgenommen:';
$a->strings['CC: email addresses'] = 'Cc: E-Mail-Addressen';
@ -803,7 +803,7 @@ $a->strings['Unauthorized'] = 'Nicht autorisiert';
$a->strings['Token is not authorized with a valid user or is missing a required scope'] = 'Token ist nicht durch einen gültigen Benutzer autorisiert oder es fehlt ein erforderlicher Geltungsbereich';
$a->strings['Internal Server Error'] = 'Interner Serverfehler';
$a->strings['Legacy module file not found: %s'] = 'Legacy-Moduldatei nicht gefunden: %s';
$a->strings['A deleted circle with this name was revived. Existing item permissions <strong>may</strong> apply to this circle and any future members. If this is not what you intended, please create another circle with a different name.'] = 'Ein gelöschter Circle mit diesem Namen wurde wiederhergestellt. Bestehende Objektberechtigungen <strong>können</strong> für diesen Circle und alle zukünftigen Mitglieder gelten. Wenn dies nicht das ist, was Sie beabsichtigen, erstellen Sie bitte einen neuen Circle mit einem anderen Namen.';
$a->strings['A deleted circle with this name was revived. Existing item permissions <strong>may</strong> apply to this circle and any future members. If this is not what you intended, please create another circle with a different name.'] = 'Ein gelöschter Circle mit diesem Namen wurde wiederhergestellt. Bestehende Objektberechtigungen <strong>können</strong> für diesen Circle und alle zukünftigen Mitglieder gelten. Wenn dies nicht das ist, was du beabsichtigst, erstelle bitte einen neuen Circle mit einem anderen Namen.';
$a->strings['Everybody'] = 'Alle Kontakte';
$a->strings['edit'] = 'bearbeiten';
$a->strings['add'] = 'hinzufügen';
@ -951,7 +951,7 @@ $a->strings['An error occurred during registration. Please try again.'] = 'Währ
$a->strings['An error occurred creating your default profile. Please try again.'] = 'Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal.';
$a->strings['An error occurred creating your self contact. Please try again.'] = 'Bei der Erstellung deines self-Kontakts ist ein Fehler aufgetreten. Bitte versuche es erneut.';
$a->strings['Friends'] = 'Kontakte';
$a->strings['An error occurred creating your default contact circle. Please try again.'] = 'Beim Erstellen Ihres Circles ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.';
$a->strings['An error occurred creating your default contact circle. Please try again.'] = 'Beim Erstellen Ihres Circles ist ein Fehler aufgetreten. Bitte versuche es erneut.';
$a->strings['Profile Photos'] = 'Profilbilder';
$a->strings['
Dear %1$s,
@ -991,7 +991,7 @@ Adresse der Seite: %1$s
Benutzername: %2$s
Passwort: %3$s
Du kannst dein Passwort unter "Einstellungen" ändern, sobald du dich angemeldet hast.Bitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser Seite zu kontrollieren.Eventuell magst du ja auch einige Informationen über dich in deinem Profil veröffentlichen, damit andere Leute dich einfacher finden können.Bearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).Wir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir passendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.Außerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter angibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.Wir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.Wenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie allerdings dabei helfen, neue und interessante Kontakte zu knüpfen.
Du kannst dein Passwort unter "Einstellungen" ändern, sobald du dich angemeldet hast.Bitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser Seite zu kontrollieren.Eventuell magst du ja auch einige Informationen über dich in deinem Profil veröffentlichen, damit andere Leute dich einfacher finden können.Bearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite). Wir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir passendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.Außerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter angibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen. Wir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.Wenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie allerdings dabei helfen, neue und interessante Kontakte zu knüpfen.
Du kannst dein Nutzerkonto jederzeit unter %1$s/settings/removeme wieder löschen.
@ -1078,7 +1078,7 @@ allerdings dabei helfen, neue und interessante Kontakte zu knüpfen.
Solltest du dein Nutzerkonto löschen wollen, kannst du dies unter %3$s/settings/removeme jederzeit tun.
Danke für deine Aufmerksamkeit und willkommen auf %2$s.';
$a->strings['User with delegates can\'t be removed, please remove delegate users first'] = 'Benutzer mit Delegaten können nicht entfernt werden, bitte entfernen Sie zuerst die delegierten Benutzer';
$a->strings['User with delegates can\'t be removed, please remove delegate users first'] = 'Benutzer mit Delegaten können nicht entfernt werden, bitte entferne zuerst die delegierten Benutzer';
$a->strings['Addon not found.'] = 'Addon nicht gefunden.';
$a->strings['Addon %s disabled.'] = 'Addon %s ausgeschaltet.';
$a->strings['Addon %s enabled.'] = 'Addon %s aktiviert.';
@ -1405,7 +1405,7 @@ $a->strings['Your table_definition_cache is too low (%d). This can lead to the d
$a->strings['There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s'] = 'Es gibt eine neue Version von Friendica. Du verwendest derzeit die Version %1$s, die aktuelle Version ist %2$s.';
$a->strings['The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.'] = 'Das Update der Datenbank ist fehlgeschlagen. Bitte führe \'php bin/console.php dbstructure update\' in der Kommandozeile aus und achte auf eventuell auftretende Fehlermeldungen.';
$a->strings['The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)'] = 'Das letzte Update ist fehlgeschlagen. Bitte führe "php bin/console.php dbstructure update" auf der Kommandozeile aus und werfe einen Blick auf eventuell auftretende Fehler. (Zusätzliche Informationen zu Fehlern könnten in den Logdateien stehen.)';
$a->strings['The system.url entry is missing. This is a low level setting and can lead to unexpected behavior. Please add a valid entry as soon as possible in the config file or per console command!'] = 'Der Eintrag system.url fehlt. Dies ist eine Einstellung auf niedriger Ebene und kann zu unerwartetem Verhalten führen. Bitte fügen Sie so bald wie möglich einen gültigen Eintrag in der Konfigurationsdatei oder per Konsolenbefehl hinzu!';
$a->strings['The system.url entry is missing. This is a low level setting and can lead to unexpected behavior. Please add a valid entry as soon as possible in the config file or per console command!'] = 'Der Eintrag system.url fehlt. Dies ist eine Einstellung auf niedriger Ebene und kann zu unerwartetem Verhalten führen. Bitt füge so bald wie möglich einen gültigen Eintrag in der Konfigurationsdatei oder per Konsolenbefehl hinzu!';
$a->strings['The worker was never executed. Please check your database structure!'] = 'Der Hintergrundprozess (worker) wurde noch nie gestartet. Bitte überprüfe deine Datenbankstruktur.';
$a->strings['The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.'] = 'Der Hintergrundprozess (worker) wurde zuletzt um %s UTC ausgeführt. Das war vor mehr als einer Stunde. Bitte überprüfe deine crontab-Einstellungen.';
$a->strings['Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.'] = 'Die Konfiguration von Friendica befindet sich ab jetzt in der \'config/local.config.php\' Datei. Kopiere bitte die Datei \'config/local-sample.config.php\' nach \'config/local.config.php\' und setze die Konfigurationvariablen so wie in der alten <code>.htconfig.php</code>. Wie die Übertragung der Werte aussehen muss, kannst du der <a href="%s">Konfiguration Hilfeseite</a> entnehmen.';
@ -1481,8 +1481,8 @@ $a->strings['Monthly posting limit of %d post reached. The post was rejected.']
0 => 'Das monatliche Limit von %d Beitrag wurde erreicht. Der Beitrag wurde verworfen.',
1 => 'Das monatliche Limit von %d Beiträgen wurde erreicht. Der Beitrag wurde verworfen.',
];
$a->strings['You don\'t have access to moderation pages.'] = 'Sie haben keinen Zugriff zu den Moderationsseiten.';
$a->strings['Submanaged account can\'t access the moderation pages. Please log back in as the main account.'] = 'Das unterverwaltete Konto kann nicht auf die Moderationsseiten zugreifen. Bitte melden Sie sich wieder mit dem Hauptkonto an.';
$a->strings['You don\'t have access to moderation pages.'] = 'Du hast keinen Zugriff zu den Moderationsseiten.';
$a->strings['Submanaged account can\'t access the moderation pages. Please log back in as the main account.'] = 'Das verwaltete Konto kann nicht auf die Moderationsseiten zugreifen. Bitte melde dich wieder mit dem Hauptkonto an.';
$a->strings['Reports'] = 'Reports';
$a->strings['Users'] = 'Nutzer';
$a->strings['Tools'] = 'Werkzeuge';
@ -1501,7 +1501,7 @@ $a->strings['Group Search - %s'] = 'Gruppensuche - %s';
$a->strings['No matches'] = 'Keine Übereinstimmungen';
$a->strings['%d result was filtered out because your node blocks the domain it is registered on. You can review the list of domains your node is currently blocking in the <a href="/friendica">About page</a>.'] = [
0 => '%d Ergebnis wurde herausgefiltert, weil Ihr Knoten die Domäne blockiert, auf der das Ergebnis registriert ist. Sie können die Liste aller Domänen, die Ihr Knoten derzeit blockiert, auf der <a href="/friendica">Info-Seite</a> einsehen.',
1 => '%d Ergebnisse wurden herausgefiltert, weil Ihr Knoten die Domäne blockiert, auf der die Ergebnisse registriert sind. Sie können die Liste aller Domänen, die Ihr Knoten derzeit blockiert, auf der<a href="/friendica">Info-Seite</a> einsehen.',
1 => '%d Ergebnisse wurden herausgefiltert, weil Ihr Knoten die Domäne blockiert, auf der die Ergebnisse registriert sind. Du kannst die Liste aller Domänen, die Ihr Knoten derzeit blockiert, auf der<a href="/friendica">Info-Seite</a> einsehen.',
];
$a->strings['Account'] = 'Nutzerkonto';
$a->strings['Two-factor authentication'] = 'Zwei-Faktor Authentifizierung';
@ -1655,7 +1655,7 @@ $a->strings['You are mutual friends with %s'] = 'Du hast mit %s eine beidseitige
$a->strings['You are sharing with %s'] = 'Du teilst mit %s';
$a->strings['%s is sharing with you'] = '%s teilt mit dir';
$a->strings['Private communications are not available for this contact.'] = 'Private Kommunikation ist für diesen Kontakt nicht verfügbar.';
$a->strings['This contact is on a server you ignored.'] = 'Dieser Kontakt befindet sich auf einem Server, den Sie ignoriert haben.';
$a->strings['This contact is on a server you ignored.'] = 'Dieser Kontakt befindet sich auf einem Server, den du ignoriert hast.';
$a->strings['Never'] = 'Niemals';
$a->strings['(Update was not successful)'] = '(Aktualisierung war nicht erfolgreich)';
$a->strings['(Update was successful)'] = '(Aktualisierung war erfolgreich)';
@ -1699,9 +1699,9 @@ $a->strings['Mirror postings from this contact'] = 'Spiegle Beiträge dieses Kon
$a->strings['Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.'] = 'Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica, alle Top-Level Beiträge dieses Kontakts an all Deine Kontakte zu senden (spiegeln).';
$a->strings['Channel Settings'] = 'Kanal Einstellungen';
$a->strings['Frequency of this contact in relevant channels'] = 'Häufigkeit dieses Kontakts in relevanten Kanälen';
$a->strings['Depending on the type of the channel not all posts from this contact are displayed. By default, posts need to have a minimum amount of interactions (comments, likes) to show in your channels. On the other hand there can be contacts who flood the channel, so you might want to see only some of their posts. Or you don\'t want to see their content at all, but you don\'t want to block or hide the contact completely.'] = 'Je nach Art des Kanals werden nicht alle Beiträge dieses Kontakts angezeigt. Standardmäßig müssen Beiträge eine Mindestanzahl an Interaktionen (Kommentare, Gefällt mir Angaben) aufweisen, um in Ihren Kanälen angezeigt zu werden. Andererseits kann es Kontakte geben, die den Kanal überfluten, so dass Sie vielleicht nur einige ihrer Beiträge sehen möchten. Oder Sie möchten deren Inhalte überhaupt nicht sehen, aber Sie möchten den Kontakt nicht komplett blockieren oder ausblenden.';
$a->strings['Depending on the type of the channel not all posts from this contact are displayed. By default, posts need to have a minimum amount of interactions (comments, likes) to show in your channels. On the other hand there can be contacts who flood the channel, so you might want to see only some of their posts. Or you don\'t want to see their content at all, but you don\'t want to block or hide the contact completely.'] = 'Je nach Art des Kanals werden nicht alle Beiträge dieses Kontakts angezeigt. Standardmäßig müssen Beiträge eine Mindestanzahl an Interaktionen (Kommentare, Gefällt mir Angaben) aufweisen, um in Ihren Kanälen angezeigt zu werden. Andererseits kann es Kontakte geben, die den Kanal überfluten, so dass du vielleicht nur einige ihrer Beiträge sehen möchtest. Oder du willst deren Inhalte überhaupt nicht sehen, aber du willst den Kontakt nicht komplett blockieren oder ausblenden.';
$a->strings['Default frequency'] = 'Standardhäufigkeit';
$a->strings['Posts by this contact are displayed in the "for you" channel if you interact often with this contact or if a post reached some level of interaction.'] = 'Beiträge dieses Kontakts werden im "Für Dich"-Kanal angezeigt, wenn Sie häufig mit diesem Kontakt interagieren oder wenn ein Beitrag ein gewisses Maß an Interaktion erreicht hat.';
$a->strings['Posts by this contact are displayed in the "for you" channel if you interact often with this contact or if a post reached some level of interaction.'] = 'Beiträge dieses Kontakts werden im "Für Dich"-Kanal angezeigt, wenn du häufig mit diesem Kontakt interagieren oder wenn ein Beitrag ein gewisses Maß an Interaktion erreicht hat.';
$a->strings['Display all posts of this contact'] = 'Alle Beiträge dieses Kontakts anzeigen';
$a->strings['All posts from this contact will appear on the "for you" channel'] = 'Alle Beiträge dieses Kontakts werden auf dem Kanal "Für Dich" erscheinen';
$a->strings['Display only few posts'] = 'Zeige nur einige Beiträge an';
@ -1844,7 +1844,7 @@ $a->strings['Base settings'] = 'Grundeinstellungen';
$a->strings['Base path to installation'] = 'Basis-Pfad zur Installation';
$a->strings['If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot.'] = 'Falls das System nicht den korrekten Pfad zu deiner Installation gefunden hat, gib den richtigen Pfad bitte hier ein. Du solltest hier den Pfad nur auf einem eingeschränkten System angeben müssen, bei dem du mit symbolischen Links auf dein Webverzeichnis verweist.';
$a->strings['The Friendica system URL'] = 'Die Friendica System URL';
$a->strings['Overwrite this field in case the system URL determination isn\'t right, otherwise leave it as is.'] = 'Überschreiben Sie dieses Feld, falls die System-URL-Erkennung nicht korrekt ist, ansonsten lassen Sie es unverändert.';
$a->strings['Overwrite this field in case the system URL determination isn\'t right, otherwise leave it as is.'] = 'Überschreibe dieses Feld, falls die System-URL-Erkennung nicht korrekt ist, ansonsten lasse es unverändert.';
$a->strings['Database connection'] = 'Datenbankverbindung';
$a->strings['In order to install Friendica we need to know how to connect to your database.'] = 'Um Friendica installieren zu können, müssen wir wissen, wie wir mit Deiner Datenbank Kontakt aufnehmen können.';
$a->strings['Please contact your hosting provider or site administrator if you have questions about these settings.'] = 'Bitte kontaktiere den Hosting-Provider oder den Administrator der Seite, falls du Fragen zu diesen Einstellungen haben solltest.';
@ -1877,9 +1877,9 @@ $a->strings['%d message sent.'] = [
$a->strings['You have no more invitations available'] = 'Du hast keine weiteren Einladungen';
$a->strings['Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.'] = 'Besuche %s für eine Liste der öffentlichen Server, denen du beitreten kannst. Friendica-Mitglieder unterschiedlicher Server können sich sowohl alle miteinander verbinden, als auch mit Mitgliedern anderer sozialer Netzwerke.';
$a->strings['To accept this invitation, please visit and register at %s or any other public Friendica website.'] = 'Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica-Website.';
$a->strings['Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.'] = 'Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst.';
$a->strings['Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.'] = 'Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Du kannst dich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst.';
$a->strings['Our apologies. This system is not currently configured to connect with other public sites or invite members.'] = 'Es tut uns leid. Dieses System ist zurzeit nicht dafür konfiguriert, sich mit anderen öffentlichen Seiten zu verbinden oder Mitglieder einzuladen.';
$a->strings['Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.'] = 'Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden.';
$a->strings['Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.'] = 'Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Du kannst dich auch mit vielen üblichen Sozialen Netzwerken verbinden.';
$a->strings['To accept this invitation, please visit and register at %s.'] = 'Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s.';
$a->strings['Send invitations'] = 'Einladungen senden';
$a->strings['Enter email addresses, one per line:'] = 'E-Mail-Adressen eingeben, eine pro Zeile:';
@ -2039,43 +2039,43 @@ $a->strings['No source recorded'] = 'Keine Quelle aufgezeichnet';
$a->strings['Please make sure the <code>debug.store_source</code> config key is set in <code>config/local.config.php</code> for future items to have sources.'] = 'Bitte stelle sicher, dass der Config-Schlüssel <code>debug.store_source</code> in der <code>config/local.config.php</code> gesetzt ist um in Zukunft Quellen zu haben.';
$a->strings['Item Guid'] = 'Beitrags-Guid';
$a->strings['Contact not found or their server is already blocked on this node.'] = 'Kontakt nicht gefunden oder seine Instanz ist bereits auf dieser Instanz blockiert.';
$a->strings['Please login to access this page.'] = 'Bitte melden Sie sich an, um auf diese Seite zuzugreifen.';
$a->strings['Please login to access this page.'] = 'Bitte melde dich an, um auf diese Seite zuzugreifen.';
$a->strings['Create Moderation Report'] = 'Moderationsbericht erstellen';
$a->strings['Pick Contact'] = 'Kontakt wählen';
$a->strings['Please enter below the contact address or profile URL you would like to create a moderation report about.'] = 'Bitte geben Sie unten die Kontaktadresse oder Profil-URL ein, über die Sie einen Moderationsbericht erstellen möchten.';
$a->strings['Please enter below the contact address or profile URL you would like to create a moderation report about.'] = 'Bitte gib unten die Kontaktadresse oder Profil-URL ein, über die du einen Moderationsbericht erstellen möchten.';
$a->strings['Contact address/URL'] = 'Kontaktadresse/URL';
$a->strings['Pick Category'] = 'Kategorie auswählen';
$a->strings['Please pick below the category of your report.'] = 'Bitte wählen Sie unten die Kategorie für Ihren Bericht.';
$a->strings['Please pick below the category of your report.'] = 'Bitte wähle unten die Kategorie für deinen Bericht.';
$a->strings['Spam'] = 'Spam';
$a->strings['This contact is publishing many repeated/overly long posts/replies or advertising their product/websites in otherwise irrelevant conversations.'] = 'Dieser Kontakt veröffentlicht viele wiederholte/überlange Beiträge/Antworten oder wirbt für sein Produkt/seine Website in ansonsten belanglosen Gesprächen.';
$a->strings['Illegal Content'] = 'Illegaler Inhalt';
$a->strings['This contact is publishing content that is considered illegal in this node\'s hosting juridiction.'] = 'Dieser Kontakt veröffentlicht Inhalte, die in dem Land, in dem diese Instanz gehostet wird, als illegal gelten.';
$a->strings['Community Safety'] = 'Sicherheit in der Gemeinschaft';
$a->strings['This contact aggravated you or other people, by being provocative or insensitive, intentionally or not. This includes disclosing people\'s private information (doxxing), posting threats or offensive pictures in posts or replies.'] = 'Dieser Kontakt hat Sie oder andere Personen verärgert, indem er absichtlich oder unabsichtlich provokativ oder unsensibel war. Dazu gehören die Offenlegung privater Informationen (Doxxing), das Posten von Drohungen oder anstößigen Bildern in Beiträgen oder Antworten.';
$a->strings['This contact aggravated you or other people, by being provocative or insensitive, intentionally or not. This includes disclosing people\'s private information (doxxing), posting threats or offensive pictures in posts or replies.'] = 'Dieser Kontakt hat dich oder andere Personen verärgert, indem er absichtlich oder unabsichtlich provokativ oder unsensibel war. Dazu gehören die Offenlegung privater Informationen (Doxxing), das Posten von Drohungen oder anstößigen Bildern in Beiträgen oder Antworten.';
$a->strings['Unwanted Content/Behavior'] = 'Unerwünschte Inhalte/Verhaltensweisen';
$a->strings['This contact has repeatedly published content irrelevant to the node\'s theme or is openly criticizing the node\'s administration/moderation without directly engaging with the relevant people for example or repeatedly nitpicking on a sensitive topic.'] = 'Dieser Kontakt hat wiederholt Inhalte veröffentlicht, die für das Thema der Instanz irrelevant sind, oder er kritisiert offen die Verwaltung/Moderation der Instanz, ohne sich direkt mit den betreffenden Personen auseinanderzusetzen, oder er ist wiederholt erbsenzählerisch bei einem heiklen Thema.';
$a->strings['Rules Violation'] = 'Verstoß gegen die Regeln';
$a->strings['This contact violated one or more rules of this node. You will be able to pick which one(s) in the next step.'] = 'Dieser Kontakt hat gegen eine oder mehrere Regeln dieser Instanz verstoßen. Sie können im nächsten Schritt auswählen, welche.';
$a->strings['Please elaborate below why you submitted this report. The more details you provide, the better your report can be handled.'] = 'Bitte geben Sie im Folgenden an, warum Sie diese Meldung eingereicht haben. Je mehr Details Sie angeben, desto besser kann Ihre Meldung bearbeitet werden.';
$a->strings['This contact violated one or more rules of this node. You will be able to pick which one(s) in the next step.'] = 'Dieser Kontakt hat gegen eine oder mehrere Regeln dieser Instanz verstoßen. Du kannst im nächsten Schritt auswählen, welche.';
$a->strings['Please elaborate below why you submitted this report. The more details you provide, the better your report can be handled.'] = 'Bitte gib im Folgenden an, warum du diese Meldung eingereicht hast. Je mehr Details du angibst, desto besser kann Ihre Meldung bearbeitet werden.';
$a->strings['Additional Information'] = 'Zusätzliche Informationen';
$a->strings['Please provide any additional information relevant to this particular report. You will be able to attach posts by this contact in the next step, but any context is welcome.'] = 'Bitte geben Sie alle zusätzlichen Informationen an, die für diesen Bericht relevant sind. Sie können im nächsten Schritt Beiträge dieser Kontaktperson anhängen, aber jeder Kontext ist willkommen.';
$a->strings['Please provide any additional information relevant to this particular report. You will be able to attach posts by this contact in the next step, but any context is welcome.'] = 'Bitte gib alle zusätzlichen Informationen an, die für diesen Bericht relevant sind. Du kannst im nächsten Schritt Beiträge dieser Kontaktperson anhängen, aber jeder Kontext ist willkommen.';
$a->strings['Pick Rules'] = 'Regeln auswählen';
$a->strings['Please pick below the node rules you believe this contact violated.'] = 'Bitte wählen Sie unten die Instanzregeln aus, gegen die dieser Kontakt Ihrer Meinung nach verstoßen hat.';
$a->strings['Please pick below the node rules you believe this contact violated.'] = 'Bitte wähle unten die Instanzregeln aus, gegen die dieser Kontakt deiner Meinung nach verstoßen hat.';
$a->strings['Pick Posts'] = 'Beiträge auswählen';
$a->strings['Please optionally pick posts to attach to your report.'] = 'Bitte wählen Sie optional Beiträge aus, die Sie an Ihren Bericht anhängen möchten.';
$a->strings['Please optionally pick posts to attach to your report.'] = 'Bitte wähle optional Beiträge aus, die du an diesen Bericht anhängen möchtest.';
$a->strings['Submit Report'] = 'Bericht senden';
$a->strings['Further Action'] = 'Weiteres Vorgehen';
$a->strings['You can also perform one of the following action on the contact you reported:'] = 'Sie können auch eine der folgenden Aktionen für den gemeldeten Kontakt durchführen:';
$a->strings['You can also perform one of the following action on the contact you reported:'] = 'Du kannst auch eine der folgenden Aktionen für den gemeldeten Kontakt durchführen:';
$a->strings['Nothing'] = 'Nichts';
$a->strings['Collapse contact'] = 'Kontakt verbergen';
$a->strings['Their posts and replies will keep appearing in your Network page but their content will be collapsed by default.'] = 'Ihre Beiträge und Antworten werden weiterhin auf Ihrer Netzwerkseite angezeigt, aber ihr Inhalt wird standardmäßig ausgeblendet.';
$a->strings['Their posts won\'t appear in your Network page anymore, but their replies can appear in forum threads. They still can follow you.'] = 'Ihre Beiträge werden nicht mehr auf Ihrer Netzwerkseite angezeigt, aber ihre Antworten können in Forenbeiträgen erscheinen. Sie können Ihnen immer noch folgen.';
$a->strings['Their posts won\'t appear in your Network page anymore, but their replies can appear in forum threads. They still can follow you.'] = 'Ihre Beiträge werden nicht mehr auf deiner Netzwerkseite angezeigt, aber ihre Antworten können in Forenbeiträgen erscheinen. Sie können dir immer noch folgen.';
$a->strings['Block contact'] = 'Kontakt blockieren';
$a->strings['Their posts won\'t appear in your Network page anymore, but their replies can appear in forum threads, with their content collapsed by default. They cannot follow you but still can have access to your public posts by other means.'] = 'Ihre Beiträge erscheinen nicht mehr auf Ihrer Netzwerkseite, aber ihre Antworten können in Forumsthemen erscheinen, wobei ihr Inhalt standardmäßig eingeklappt ist. Sie können Ihnen nicht folgen, haben aber auf anderem Wege weiterhin Zugang zu Ihren öffentlichen Beiträgen.';
$a->strings['Their posts won\'t appear in your Network page anymore, but their replies can appear in forum threads, with their content collapsed by default. They cannot follow you but still can have access to your public posts by other means.'] = 'Ihre Beiträge erscheinen nicht mehr auf deiner Netzwerkseite, aber ihre Antworten können in Forumsthemen erscheinen, wobei ihr Inhalt standardmäßig eingeklappt ist. Sie können dir nicht folgen, haben aber auf anderem Wege weiterhin Zugang zu deinen öffentlichen Beiträgen.';
$a->strings['Forward report'] = 'Bericht weiterleiten';
$a->strings['Would you ike to forward this report to the remote server?'] = 'Möchten Sie diesen Bericht an den Remote-Server weiterleiten?';
$a->strings['1. Pick a contact'] = '1. Wählen Sie einen Kontakt';
$a->strings['2. Pick a category'] = '2. Wählen Sie eine Kategorie';
$a->strings['Would you ike to forward this report to the remote server?'] = 'Möchtest du diesen Bericht an den Entfernten-Server weiterleiten?';
$a->strings['1. Pick a contact'] = '1. Wähle einen Kontakt';
$a->strings['2. Pick a category'] = '2. Wähle eine Kategorie';
$a->strings['2a. Pick rules'] = '2a. Regeln wählen';
$a->strings['2b. Add comment'] = '2b. Kommentar hinzufügen';
$a->strings['3. Pick posts'] = '3. Beiträge auswählen';
@ -2330,7 +2330,7 @@ $a->strings['Passwords do not match.'] = 'Die Passwörter stimmen nicht überein
$a->strings['Password does not need changing.'] = 'Passwort muss nicht geändert werden.';
$a->strings['Password unchanged.'] = 'Passwort unverändert.';
$a->strings['Password Too Long'] = 'Passwort ist zu lang';
$a->strings['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.'] = 'Mit der Version 2022.09 haben wir festgestellt, dass jedes Passwort, das länger als 72 Zeichen ist, beim Hashing abgeschnitten wird. Um Verwirrung über dieses Verhalten zu vermeiden, aktualisieren Sie Ihr Passwort bitte so, dass es höchstens 72 Zeichen hat.';
$a->strings['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.'] = 'Mit der Version 2022.09 haben wir festgestellt, dass jedes Passwort, das länger als 72 Zeichen ist, beim Hashing abgeschnitten wird. Um Verwirrung über dieses Verhalten zu vermeiden, aktualisiere dein Passwort bitte so, dass es höchstens 72 Zeichen hat.';
$a->strings['Update Password'] = 'Passwort aktualisieren';
$a->strings['Current Password:'] = 'Aktuelles Passwort:';
$a->strings['Your current password to confirm the changes'] = 'Dein aktuelles Passwort um die Änderungen zu bestätigen';
@ -2480,15 +2480,15 @@ $a->strings['Delete channel'] = 'Lösche Kanal';
$a->strings['Check to delete this entry from the channel list'] = 'Haken setzen, um diesen Eintrag aus der Kanalliste zu löschen';
$a->strings['Short name for the channel. It is displayed on the channels widget.'] = 'Kurzname für den Kanal. Er wird im Widget für die Kanäle angezeigt.';
$a->strings['This should describe the content of the channel in a few word.'] = 'Dies sollte den Inhalt des Kanals in wenigen Worten beschreiben.';
$a->strings['When you want to access this channel via an access key, you can define it here. Pay attention to not use an already used one.'] = 'Wenn Sie auf diesen Kanal über einen Zugangsschlüssel zugreifen wollen, können Sie ihn hier festlegen. Achten Sie darauf, dass Sie nicht einen bereits verwendeten Schlüssel verwenden.';
$a->strings['Select a circle or channel, that your channel should be based on.'] = 'Wählen Sie einen Circle oder Kanal, auf dem Ihr Kanal basieren soll.';
$a->strings['When you want to access this channel via an access key, you can define it here. Pay attention to not use an already used one.'] = 'Wenn du auf diesen Kanal über einen Zugangsschlüssel zugreifen willst, kannst du ihn hier festlegen. Achte darauf, dass du nicht einen bereits verwendeten Schlüssel benutzt.';
$a->strings['Select a circle or channel, that your channel should be based on.'] = 'Wähle einen Circle oder Kanal, auf dem Ihr Kanal basieren soll.';
$a->strings['Comma separated list of tags. A post will be used when it contains any of the listed tags.'] = 'Durch Kommata getrennte Liste von Tags. Ein Beitrag wird verwendet, wenn er eines der aufgeführten Tags enthält.';
$a->strings['Comma separated list of tags. If a post contain any of these tags, then it will not be part of nthis channel.'] = 'Durch Kommata getrennte Liste von Tags. Wenn ein Beitrag eines dieser Tags enthält, wird er nicht Teil dieses Kanals sein.';
$a->strings['Search terms for the body, supports the "boolean mode" operators from MariaDB. See the help for a complete list of operators and additional keywords: %s'] = 'Suchbegriffe für den Body, unterstützt die "boolean mode"-Operatoren von MariaDB. In der Hilfe finden Sie eine vollständige Liste der Operatoren und zusätzliche Schlüsselwörter: %s';
$a->strings['Check to display images in the channel.'] = 'Aktivieren Sie diese Option, um Bilder im Kanal anzuzeigen.';
$a->strings['Check to display videos in the channel.'] = 'Aktivieren Sie diese Option, um Videos im Kanal anzuzeigen.';
$a->strings['Check to display audio in the channel.'] = 'Aktivieren Sie diese Option, um Audio im Kanal anzuzeigen.';
$a->strings['This page can be used to define your own channels.'] = 'Auf dieser Seite können Sie Ihre eigenen Kanäle definieren.';
$a->strings['Search terms for the body, supports the "boolean mode" operators from MariaDB. See the help for a complete list of operators and additional keywords: %s'] = 'Suchbegriffe für den Body, unterstützt die "boolean mode"-Operatoren von MariaDB. In der Hilfe findest du eine vollständige Liste der Operatoren und zusätzliche Schlüsselwörter: %s';
$a->strings['Check to display images in the channel.'] = 'Aktiviere diese Option, um Bilder im Kanal anzuzeigen.';
$a->strings['Check to display videos in the channel.'] = 'Aktiviere diese Option, um Videos im Kanal anzuzeigen.';
$a->strings['Check to display audio in the channel.'] = 'Aktiviere diese Option, um Audio im Kanal anzuzeigen.';
$a->strings['This page can be used to define your own channels.'] = 'Auf dieser Seite kannst du deine eigenen Kanäle definieren.';
$a->strings['Add new entry to the channel list'] = 'Neuen Eintrag zur Kanalliste hinzufügen';
$a->strings['Add'] = 'Hinzufügen';
$a->strings['Current Entries in the channel list'] = 'Aktuelle Einträge in der Kanalliste';
@ -2585,9 +2585,9 @@ $a->strings['Don\'t go to a remote system when following a contact link.'] = 'Ge
$a->strings['Link preview mode'] = 'Vorschau Modus für Links';
$a->strings['Appearance of the link preview that is added to each post with a link.'] = 'Aussehen der Linkvorschau, die zu jedem Beitrag mit einem Link hinzugefügt wird.';
$a->strings['Bookmark'] = 'Lesezeichen';
$a->strings['Enable timelines that you want to see in the channels widget. Bookmark timelines that you want to see in the top menu.'] = 'Aktivieren Sie dieTimelines, die Sie im Kanäle-Widget sehen möchten. Setzen Sie ein Lesezeichen für Timelines, die Sie im oberen Menü sehen möchten.';
$a->strings['Enable timelines that you want to see in the channels widget. Bookmark timelines that you want to see in the top menu.'] = 'Aktiviere die Timelines, die Sie im Kanäle-Widget sehen möchten. Setze ein Lesezeichen für Timelines, die du im oberen Menü sehen willst.';
$a->strings['Channel languages:'] = 'Channel Spachen:';
$a->strings['Select all languages that you want to see in your channels.'] = 'Wählen Sie alle Sprachen aus, die Sie in Ihren Kanälen sehen möchten.';
$a->strings['Select all languages that you want to see in your channels.'] = 'Wähle alle Sprachen aus, die du in deinen Kanälen sehen willst.';
$a->strings['Beginning of week:'] = 'Wochenbeginn:';
$a->strings['Default calendar view:'] = 'Standard-Kalenderansicht:';
$a->strings['Additional Features'] = 'Zusätzliche Features';
@ -2650,8 +2650,8 @@ $a->strings['Upload Picture:'] = 'Bild hochladen';
$a->strings['or'] = 'oder';
$a->strings['skip this step'] = 'diesen Schritt überspringen';
$a->strings['select a photo from your photo albums'] = 'wähle ein Foto aus deinen Fotoalben';
$a->strings['There was a validation error, please make sure you\'re logged in with the account you want to remove and try again.'] = 'Es gab einen Überprüfungsfehler. Bitte vergewissern Sie sich, dass Sie mit dem Konto, das Sie entfernen möchten, angemeldet sind, und versuchen Sie es erneut.';
$a->strings['If this error persists, please contact your administrator.'] = 'Wenn dieser Fehler weiterhin besteht, wenden Sie sich bitte an den Administrator Ihrer Instanz.';
$a->strings['There was a validation error, please make sure you\'re logged in with the account you want to remove and try again.'] = 'Es gab einen Überprüfungsfehler. Bitte vergewisser dich, dass du mit dem Konto, das du entfernen möchtest angemeldet bist, und versuche es erneut.';
$a->strings['If this error persists, please contact your administrator.'] = 'Wenn dieser Fehler weiterhin besteht, wende dich bitte an den Administrator deiner Instanz.';
$a->strings['[Friendica System Notify]'] = '[Friendica-Systembenachrichtigung]';
$a->strings['User deleted their account'] = 'Gelöschter Nutzeraccount';
$a->strings['On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'] = 'Ein Nutzer deiner Friendica-Instanz hat seinen Account gelöscht. Bitte stelle sicher, dass dessen Daten aus deinen Backups entfernt werden.';
@ -2660,13 +2660,13 @@ $a->strings['Your account has been successfully removed. Bye bye!'] = 'Ihr Konto
$a->strings['Remove My Account'] = 'Konto löschen';
$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen.';
$a->strings['Please enter your password for verification:'] = 'Bitte gib dein Passwort zur Verifikation ein:';
$a->strings['Do you want to ignore this server?'] = 'Möchten Sie diese Instanz ignorieren?';
$a->strings['Do you want to unignore this server?'] = 'Möchten Sie diese Instanz nicht mehr ignorieren?';
$a->strings['Do you want to ignore this server?'] = 'Möchtest du diese Instanz ignorieren?';
$a->strings['Do you want to unignore this server?'] = 'Möchtest du diese Instanz nicht mehr ignorieren?';
$a->strings['Remote server settings'] = 'Einstellungen der Remote-Instanz';
$a->strings['Server URL'] = 'Server URL';
$a->strings['Settings saved'] = 'Einstellungen gespeichert';
$a->strings['Here you can find all the remote servers you have taken individual moderation actions against. For a list of servers your node has blocked, please check out the <a href="friendica">Information</a> page.'] = 'Hier finden Sie alle Remote-Server, gegen die Sie individuelle Moderationsmaßnahmen ergriffen haben. Eine Liste der Server, die Ihre Instanz blockiert hat, finden Sie auf der <a href="friendica">Informationseite</a> .';
$a->strings['Delete all your settings for the remote server'] = 'Löschen Sie alle Ihre Einstellungen für die Remote-Instanz';
$a->strings['Here you can find all the remote servers you have taken individual moderation actions against. For a list of servers your node has blocked, please check out the <a href="friendica">Information</a> page.'] = 'Hier findest du alle Entfernten-Server, gegen die du individuelle Moderationsmaßnahmen ergriffen hast. Eine Liste der Server, die deine Instanz blockiert hat, findest du auf der <a href="friendica">Informationseite</a> .';
$a->strings['Delete all your settings for the remote server'] = 'Lösche alle deine Einstellungen für die Entfernte-Instanz';
$a->strings['Save changes'] = 'Einstellungen speichern';
$a->strings['Please enter your password to access this page.'] = 'Bitte gib dein Passwort ein, um auf diese Seite zuzugreifen.';
$a->strings['App-specific password generation failed: The description is empty.'] = 'Die Erzeugung des App spezifischen Passworts ist fehlgeschlagen. Die Beschreibung ist leer.';
@ -2764,10 +2764,10 @@ $a->strings['Export the list of the accounts you are following as CSV file. Comp
$a->strings['The top-level post isn\'t visible.'] = 'Der Beitrag der obersten Ebene ist nicht sichtbar.';
$a->strings['The top-level post was deleted.'] = 'Der Beitrag auf der obersten Ebene wurde gelöscht.';
$a->strings['This node has blocked the top-level author or the author of the shared post.'] = 'Diese Instanz hat den Top-Level-Autor oder den Autor des freigegebenen Beitrags gesperrt.';
$a->strings['You have ignored or blocked the top-level author or the author of the shared post.'] = 'Sie haben den Autor der obersten Ebene oder den Autor des freigegebenen Beitrags ignoriert oder blockiert.';
$a->strings['You have ignored the top-level author\'s server or the shared post author\'s server.'] = 'Sie haben die Instanz des übergeordneten Autors oder die Instanz des Autors des freigegebenen Beitrags ignoriert.';
$a->strings['You have ignored or blocked the top-level author or the author of the shared post.'] = 'Du hast den Autor der obersten Ebene oder den Autor des freigegebenen Beitrags ignoriert oder blockiert.';
$a->strings['You have ignored the top-level author\'s server or the shared post author\'s server.'] = 'Du hast die Instanz des übergeordneten Autors oder die Instanz des Autors des freigegebenen Beitrags ignoriert.';
$a->strings['Conversation Not Found'] = 'Konversation nicht gefunden';
$a->strings['Unfortunately, the requested conversation isn\'t available to you.'] = 'Leider ist die gewünschte Konversation für Sie nicht verfügbar.';
$a->strings['Unfortunately, the requested conversation isn\'t available to you.'] = 'Leider ist die gewünschte Konversation für dich nicht verfügbar.';
$a->strings['Possible reasons include:'] = 'Mögliche Gründe sind:';
$a->strings['Stack trace:'] = 'Stack trace:';
$a->strings['Exception thrown in %s:%d'] = 'Exception thrown in %s:%d';
@ -2826,7 +2826,7 @@ $a->strings['Finding New People'] = 'Neue Leute kennenlernen';
$a->strings['On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours.'] = 'Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Personen zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Leute vorschlagen.
Auf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden.';
$a->strings['Add Your Contacts To Circle'] = 'Kontakte zum Circle hinzufügen';
$a->strings['Once you have made some friends, organize them into private conversation circles from the sidebar of your Contacts page and then you can interact with each circle privately on your Network page.'] = 'Sobald Sie einige Freunde gefunden haben, können Sie diese in der Seitenleiste Ihrer Kontaktseite in private Circles einteilen und dann mit jedem Circle auf Ihrer Netzwerkseite privat interagieren.';
$a->strings['Once you have made some friends, organize them into private conversation circles from the sidebar of your Contacts page and then you can interact with each circle privately on your Network page.'] = 'Sobald du einige Freunde gefunden hast, kannst du diese in der Seitenleiste deiner Kontaktseite in private Circles einteilen und dann mit jedem Circle auf deiner Netzwerkseite privat interagieren.';
$a->strings['Why Aren\'t My Posts Public?'] = 'Warum sind meine Beiträge nicht öffentlich?';
$a->strings['Friendica respects your privacy. By default, your posts will only show up to people you\'ve added as friends. For more information, see the help section from the link above.'] = 'Friendica respektiert Deine Privatsphäre. Mit der Grundeinstellung werden Deine Beiträge ausschließlich Deinen Kontakten angezeigt. Für weitere Informationen diesbezüglich lies dir bitte den entsprechenden Abschnitt in der Hilfe unter dem obigen Link durch.';
$a->strings['Getting Help'] = 'Hilfe bekommen';

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -12315,7 +12315,7 @@ msgstr "Отреагировали как %s : %s"
#: src/Protocol/ActivityPub/Receiver.php:522
msgid "Chat"
msgstr ""
msgstr "Чат"
#: src/Protocol/Delivery.php:547
msgid "(no subject)"

View File

@ -3005,6 +3005,7 @@ $a->strings['Attended by: %s'] = 'Присутствуют: %s';
$a->strings['Maybe attended by: %s'] = 'Под вопросом: %s';
$a->strings['Not attended by: %s'] = 'Не присутствуют: %s';
$a->strings['Reacted with %s by: %s'] = 'Отреагировали как %s : %s';
$a->strings['Chat'] = 'Чат';
$a->strings['(no subject)'] = '(нет темы)';
$a->strings['%s is now following %s.'] = '%s теперь подписан на %s.';
$a->strings['following'] = 'следует';