Merge branch 'friendica:2022.12-rc' into new_image_presentation
This commit is contained in:
commit
75d857c595
16 changed files with 5182 additions and 4681 deletions
|
@ -150,6 +150,8 @@ class Router
|
||||||
if ($this->baseRoutesFilepath && !file_exists($this->baseRoutesFilepath)) {
|
if ($this->baseRoutesFilepath && !file_exists($this->baseRoutesFilepath)) {
|
||||||
throw new HTTPException\InternalServerErrorException('Routes file path does\'n exist.');
|
throw new HTTPException\InternalServerErrorException('Routes file path does\'n exist.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->parameters = [$this->server];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -293,18 +295,16 @@ class Router
|
||||||
|
|
||||||
$dispatcher = new FriendicaGroupCountBased($this->getCachedDispatchData());
|
$dispatcher = new FriendicaGroupCountBased($this->getCachedDispatchData());
|
||||||
|
|
||||||
$this->parameters = [$this->server];
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Check if the HTTP method is OPTIONS and return the special Options Module with the possible HTTP methods
|
// Check if the HTTP method is OPTIONS and return the special Options Module with the possible HTTP methods
|
||||||
if ($this->args->getMethod() === static::OPTIONS) {
|
if ($this->args->getMethod() === static::OPTIONS) {
|
||||||
$this->moduleClass = Options::class;
|
$this->moduleClass = Options::class;
|
||||||
$this->parameters = ['allowedMethods' => $dispatcher->getOptions($cmd)];
|
$this->parameters[] = ['AllowedMethods' => $dispatcher->getOptions($cmd)];
|
||||||
} else {
|
} else {
|
||||||
$routeInfo = $dispatcher->dispatch($this->args->getMethod(), $cmd);
|
$routeInfo = $dispatcher->dispatch($this->args->getMethod(), $cmd);
|
||||||
if ($routeInfo[0] === Dispatcher::FOUND) {
|
if ($routeInfo[0] === Dispatcher::FOUND) {
|
||||||
$this->moduleClass = $routeInfo[1];
|
$this->moduleClass = $routeInfo[1];
|
||||||
$this->parameters[] = $routeInfo[2];
|
$this->parameters[] = $routeInfo[2];
|
||||||
} else if ($routeInfo[0] === Dispatcher::METHOD_NOT_ALLOWED) {
|
} else if ($routeInfo[0] === Dispatcher::METHOD_NOT_ALLOWED) {
|
||||||
throw new HTTPException\MethodNotAllowedException($this->l10n->t('Method not allowed for this module. Allowed method(s): %s', implode(', ', $routeInfo[1])));
|
throw new HTTPException\MethodNotAllowedException($this->l10n->t('Method not allowed for this module. Allowed method(s): %s', implode(', ', $routeInfo[1])));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -68,6 +68,12 @@ class BBCode
|
||||||
|
|
||||||
const TOP_ANCHOR = '<br class="top-anchor">';
|
const TOP_ANCHOR = '<br class="top-anchor">';
|
||||||
const BOTTOM_ANCHOR = '<br class="button-anchor">';
|
const BOTTOM_ANCHOR = '<br class="button-anchor">';
|
||||||
|
|
||||||
|
const PREVIEW_NONE = 0;
|
||||||
|
const PREVIEW_NO_IMAGE = 1;
|
||||||
|
const PREVIEW_LARGE = 2;
|
||||||
|
const PREVIEW_SMALL = 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches attachment data that were generated the old way
|
* Fetches attachment data that were generated the old way
|
||||||
*
|
*
|
||||||
|
@ -654,7 +660,7 @@ class BBCode
|
||||||
* @return string
|
* @return string
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public static function convertAttachment(string $text, int $simplehtml = self::INTERNAL, bool $tryoembed = true, array $data = [], int $uriid = 0): string
|
public static function convertAttachment(string $text, int $simplehtml = self::INTERNAL, bool $tryoembed = true, array $data = [], int $uriid = 0, int $preview_mode = self::PREVIEW_LARGE): string
|
||||||
{
|
{
|
||||||
DI::profiler()->startRecording('rendering');
|
DI::profiler()->startRecording('rendering');
|
||||||
$data = $data ?: self::getAttachmentData($text);
|
$data = $data ?: self::getAttachmentData($text);
|
||||||
|
@ -689,12 +695,18 @@ class BBCode
|
||||||
$return = sprintf('<div class="type-%s">', $data['type']);
|
$return = sprintf('<div class="type-%s">', $data['type']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($preview_mode == self::PREVIEW_NO_IMAGE) {
|
||||||
|
unset($data['image']);
|
||||||
|
unset($data['preview']);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($data['title']) && !empty($data['url'])) {
|
if (!empty($data['title']) && !empty($data['url'])) {
|
||||||
|
$preview_class = $preview_mode == self::PREVIEW_LARGE ? 'attachment-image' : 'attachment-preview';
|
||||||
if (!empty($data['image']) && empty($data['text']) && ($data['type'] == 'photo')) {
|
if (!empty($data['image']) && empty($data['text']) && ($data['type'] == 'photo')) {
|
||||||
$return .= sprintf('<a href="%s" target="_blank" rel="noopener noreferrer"><img src="%s" alt="" title="%s" class="attachment-image" /></a>', $data['url'], self::proxyUrl($data['image'], $simplehtml, $uriid), $data['title']);
|
$return .= sprintf('<a href="%s" target="_blank" rel="noopener noreferrer"><img src="%s" alt="" title="%s" class="' . $preview_class . '" /></a>', $data['url'], self::proxyUrl($data['image'], $simplehtml, $uriid), $data['title']);
|
||||||
} else {
|
} else {
|
||||||
if (!empty($data['image'])) {
|
if (!empty($data['image'])) {
|
||||||
$return .= sprintf('<a href="%s" target="_blank" rel="noopener noreferrer"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br>', $data['url'], self::proxyUrl($data['image'], $simplehtml, $uriid), $data['title']);
|
$return .= sprintf('<a href="%s" target="_blank" rel="noopener noreferrer"><img src="%s" alt="" title="%s" class="' . $preview_class . '" /></a><br>', $data['url'], self::proxyUrl($data['image'], $simplehtml, $uriid), $data['title']);
|
||||||
} elseif (!empty($data['preview'])) {
|
} elseif (!empty($data['preview'])) {
|
||||||
$return .= sprintf('<a href="%s" target="_blank" rel="noopener noreferrer"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br>', $data['url'], self::proxyUrl($data['preview'], $simplehtml, $uriid), $data['title']);
|
$return .= sprintf('<a href="%s" target="_blank" rel="noopener noreferrer"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br>', $data['url'], self::proxyUrl($data['preview'], $simplehtml, $uriid), $data['title']);
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,7 +222,7 @@ class Item
|
||||||
$content_fields['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $content_fields['raw-body']);
|
$content_fields['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $content_fields['raw-body']);
|
||||||
$content_fields['raw-body'] = self::setHashtags($content_fields['raw-body']);
|
$content_fields['raw-body'] = self::setHashtags($content_fields['raw-body']);
|
||||||
|
|
||||||
Post\Media::insertFromRelevantUrl($item['uri-id'], $content_fields['raw-body']);
|
Post\Media::insertFromRelevantUrl($item['uri-id'], $content_fields['raw-body'], $fields['body'], $item['author-network']);
|
||||||
Post\Content::update($item['uri-id'], $content_fields);
|
Post\Content::update($item['uri-id'], $content_fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1190,7 +1190,8 @@ class Item
|
||||||
$item['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $item['raw-body']);
|
$item['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $item['raw-body']);
|
||||||
$item['raw-body'] = self::setHashtags($item['raw-body']);
|
$item['raw-body'] = self::setHashtags($item['raw-body']);
|
||||||
|
|
||||||
Post\Media::insertFromRelevantUrl($item['uri-id'], $item['raw-body']);
|
$author = Contact::getById($item['author-id'], ['network']);
|
||||||
|
Post\Media::insertFromRelevantUrl($item['uri-id'], $item['raw-body'], $item['body'], $author['network'] ?? '');
|
||||||
|
|
||||||
// Check for hashtags in the body and repair or add hashtag links
|
// Check for hashtags in the body and repair or add hashtag links
|
||||||
$item['body'] = self::setHashtags($item['body']);
|
$item['body'] = self::setHashtags($item['body']);
|
||||||
|
@ -3007,7 +3008,7 @@ class Item
|
||||||
$item['hashtags'] = $tags['hashtags'];
|
$item['hashtags'] = $tags['hashtags'];
|
||||||
$item['mentions'] = $tags['mentions'];
|
$item['mentions'] = $tags['mentions'];
|
||||||
|
|
||||||
$body = $item['body'] ?? '';
|
$body = $item['body'] = Post\Media::removeFromEndOfBody($item['body'] ?? '');
|
||||||
|
|
||||||
$fields = ['uri-id', 'uri', 'body', 'title', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink', 'network', 'has-media', 'quote-uri-id', 'post-type'];
|
$fields = ['uri-id', 'uri', 'body', 'title', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink', 'network', 'has-media', 'quote-uri-id', 'post-type'];
|
||||||
|
|
||||||
|
@ -3328,8 +3329,9 @@ class Item
|
||||||
private static function addVisualAttachments(array $attachments, array $item, string $content, bool $shared): string
|
private static function addVisualAttachments(array $attachments, array $item, string $content, bool $shared): string
|
||||||
{
|
{
|
||||||
DI::profiler()->startRecording('rendering');
|
DI::profiler()->startRecording('rendering');
|
||||||
$leading = '';
|
$leading = '';
|
||||||
$trailing = '';
|
$trailing = '';
|
||||||
|
$images = [];
|
||||||
|
|
||||||
// @todo In the future we should make a single for the template engine with all media in it. This allows more flexibilty.
|
// @todo In the future we should make a single for the template engine with all media in it. This allows more flexibilty.
|
||||||
foreach ($attachments['visual'] as $attachment) {
|
foreach ($attachments['visual'] as $attachment) {
|
||||||
|
@ -3384,19 +3386,19 @@ class Item
|
||||||
if (self::containsLink($item['body'], $src_url)) {
|
if (self::containsLink($item['body'], $src_url)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$media = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/image.tpl'), [
|
$images[] = ['src' => $src_url, 'preview' => $preview_url, 'attachment' => $attachment];
|
||||||
'$image' => [
|
}
|
||||||
'src' => $src_url,
|
}
|
||||||
'preview' => $preview_url,
|
|
||||||
'attachment' => $attachment,
|
foreach ($images as $image) {
|
||||||
],
|
$media = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/image.tpl'), [
|
||||||
]);
|
'$image' => $image,
|
||||||
// On Diaspora posts the attached pictures are leading
|
]);
|
||||||
if ($item['network'] == Protocol::DIASPORA) {
|
// On Diaspora posts the attached pictures are leading
|
||||||
$leading .= $media;
|
if ($item['network'] == Protocol::DIASPORA) {
|
||||||
} else {
|
$leading .= $media;
|
||||||
$trailing .= $media;
|
} else {
|
||||||
}
|
$trailing .= $media;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3514,7 +3516,10 @@ class Item
|
||||||
}
|
}
|
||||||
|
|
||||||
// @todo Use a template
|
// @todo Use a template
|
||||||
$rendered = BBCode::convertAttachment('', BBCode::INTERNAL, false, $data, $uriid);
|
$preview_mode = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'preview_mode', BBCode::PREVIEW_LARGE);
|
||||||
|
if ($preview_mode != BBCode::PREVIEW_NONE) {
|
||||||
|
$rendered = BBCode::convertAttachment('', BBCode::INTERNAL, false, $data, $uriid, $preview_mode);
|
||||||
|
}
|
||||||
} elseif (!self::containsLink($content, $data['url'], Post\Media::HTML)) {
|
} elseif (!self::containsLink($content, $data['url'], Post\Media::HTML)) {
|
||||||
$rendered = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/link.tpl'), [
|
$rendered = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/link.tpl'), [
|
||||||
'$url' => $data['url'],
|
'$url' => $data['url'],
|
||||||
|
|
|
@ -66,6 +66,7 @@ class Media
|
||||||
* Insert a post-media record
|
* Insert a post-media record
|
||||||
*
|
*
|
||||||
* @param array $media
|
* @param array $media
|
||||||
|
* @param bool $force
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function insert(array $media, bool $force = false)
|
public static function insert(array $media, bool $force = false)
|
||||||
|
@ -229,20 +230,9 @@ class Media
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($media['type'] == self::HTML) {
|
if ($media['type'] == self::HTML) {
|
||||||
$data = ParseUrl::getSiteinfoCached($media['url'], false);
|
$media = self::addPage($media);
|
||||||
$media['preview'] = $data['images'][0]['src'] ?? null;
|
|
||||||
$media['preview-height'] = $data['images'][0]['height'] ?? null;
|
|
||||||
$media['preview-width'] = $data['images'][0]['width'] ?? null;
|
|
||||||
$media['blurhash'] = $data['images'][0]['blurhash'] ?? null;
|
|
||||||
$media['description'] = $data['text'] ?? null;
|
|
||||||
$media['name'] = $data['title'] ?? null;
|
|
||||||
$media['author-url'] = $data['author_url'] ?? null;
|
|
||||||
$media['author-name'] = $data['author_name'] ?? null;
|
|
||||||
$media['author-image'] = $data['author_img'] ?? null;
|
|
||||||
$media['publisher-url'] = $data['publisher_url'] ?? null;
|
|
||||||
$media['publisher-name'] = $data['publisher_name'] ?? null;
|
|
||||||
$media['publisher-image'] = $data['publisher_img'] ?? null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $media;
|
return $media;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,6 +335,31 @@ class Media
|
||||||
return $media;
|
return $media;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add page infos for HTML entries
|
||||||
|
*
|
||||||
|
* @param array $media
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private static function addPage(array $media): array
|
||||||
|
{
|
||||||
|
$data = ParseUrl::getSiteinfoCached($media['url'], false);
|
||||||
|
$media['preview'] = $data['images'][0]['src'] ?? null;
|
||||||
|
$media['preview-height'] = $data['images'][0]['height'] ?? null;
|
||||||
|
$media['preview-width'] = $data['images'][0]['width'] ?? null;
|
||||||
|
$media['blurhash'] = $data['images'][0]['blurhash'] ?? null;
|
||||||
|
$media['description'] = $data['text'] ?? null;
|
||||||
|
$media['name'] = $data['title'] ?? null;
|
||||||
|
$media['author-url'] = $data['author_url'] ?? null;
|
||||||
|
$media['author-name'] = $data['author_name'] ?? null;
|
||||||
|
$media['author-image'] = $data['author_img'] ?? null;
|
||||||
|
$media['publisher-url'] = $data['publisher_url'] ?? null;
|
||||||
|
$media['publisher-name'] = $data['publisher_name'] ?? null;
|
||||||
|
$media['publisher-image'] = $data['publisher_img'] ?? null;
|
||||||
|
|
||||||
|
return $media;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch media data from local resources
|
* Fetch media data from local resources
|
||||||
* @param array $media
|
* @param array $media
|
||||||
|
@ -446,13 +461,14 @@ class Media
|
||||||
* @param string $body
|
* @param string $body
|
||||||
* @return string Body without media links
|
* @return string Body without media links
|
||||||
*/
|
*/
|
||||||
public static function insertFromBody(int $uriid, string $body): string
|
public static function insertFromBody(int $uriid, string $body, bool $endmatch = false): string
|
||||||
{
|
{
|
||||||
|
$endmatchpattern = $endmatch ? '\z' : '';
|
||||||
// Simplify image codes
|
// Simplify image codes
|
||||||
$unshared_body = $body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $body);
|
$unshared_body = $body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]$endmatchpattern/ism", '[img]$3[/img]', $body);
|
||||||
|
|
||||||
$attachments = [];
|
$attachments = [];
|
||||||
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) {
|
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]$endmatchpattern#ism", $body, $pictures, PREG_SET_ORDER)) {
|
||||||
foreach ($pictures as $picture) {
|
foreach ($pictures as $picture) {
|
||||||
if (!self::isPictureLink($picture[1], $picture[2])) {
|
if (!self::isPictureLink($picture[1], $picture[2])) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -464,14 +480,14 @@ class Media
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match_all("/\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]/Usi", $body, $pictures, PREG_SET_ORDER)) {
|
if (preg_match_all("/\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]$endmatchpattern/Usi", $body, $pictures, PREG_SET_ORDER)) {
|
||||||
foreach ($pictures as $picture) {
|
foreach ($pictures as $picture) {
|
||||||
$body = str_replace($picture[0], '', $body);
|
$body = str_replace($picture[0], '', $body);
|
||||||
$attachments[$picture[1]] = ['uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $picture[1], 'description' => $picture[2]];
|
$attachments[$picture[1]] = ['uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $picture[1], 'description' => $picture[2]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img\]([^\[]+?)\[/img\]\s*\[/url\]#ism", $body, $pictures, PREG_SET_ORDER)) {
|
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img\]([^\[]+?)\[/img\]\s*\[/url\]$endmatchpattern#ism", $body, $pictures, PREG_SET_ORDER)) {
|
||||||
foreach ($pictures as $picture) {
|
foreach ($pictures as $picture) {
|
||||||
if (!self::isPictureLink($picture[1], $picture[2])) {
|
if (!self::isPictureLink($picture[1], $picture[2])) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -483,41 +499,58 @@ class Media
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match_all("/\[img\]([^\[\]]*)\[\/img\]/ism", $body, $pictures, PREG_SET_ORDER)) {
|
if (preg_match_all("/\[img\]([^\[\]]*)\[\/img\]$endmatchpattern/ism", $body, $pictures, PREG_SET_ORDER)) {
|
||||||
foreach ($pictures as $picture) {
|
foreach ($pictures as $picture) {
|
||||||
$body = str_replace($picture[0], '', $body);
|
$body = str_replace($picture[0], '', $body);
|
||||||
$attachments[$picture[1]] = ['uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $picture[1]];
|
$attachments[$picture[1]] = ['uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $picture[1]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match_all("/\[audio\]([^\[\]]*)\[\/audio\]/ism", $body, $audios, PREG_SET_ORDER)) {
|
if (preg_match_all("/\[audio\]([^\[\]]*)\[\/audio\]$endmatchpattern/ism", $body, $audios, PREG_SET_ORDER)) {
|
||||||
foreach ($audios as $audio) {
|
foreach ($audios as $audio) {
|
||||||
$body = str_replace($audio[0], '', $body);
|
$body = str_replace($audio[0], '', $body);
|
||||||
$attachments[$audio[1]] = ['uri-id' => $uriid, 'type' => self::AUDIO, 'url' => $audio[1]];
|
$attachments[$audio[1]] = ['uri-id' => $uriid, 'type' => self::AUDIO, 'url' => $audio[1]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match_all("/\[video\]([^\[\]]*)\[\/video\]/ism", $body, $videos, PREG_SET_ORDER)) {
|
if (preg_match_all("/\[video\]([^\[\]]*)\[\/video\]$endmatchpattern/ism", $body, $videos, PREG_SET_ORDER)) {
|
||||||
foreach ($videos as $video) {
|
foreach ($videos as $video) {
|
||||||
$body = str_replace($video[0], '', $body);
|
$body = str_replace($video[0], '', $body);
|
||||||
$attachments[$video[1]] = ['uri-id' => $uriid, 'type' => self::VIDEO, 'url' => $video[1]];
|
$attachments[$video[1]] = ['uri-id' => $uriid, 'type' => self::VIDEO, 'url' => $video[1]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($attachments as $attachment) {
|
if ($uriid != 0) {
|
||||||
if (Post\Link::exists($uriid, $attachment['preview'] ?? $attachment['url'])) {
|
foreach ($attachments as $attachment) {
|
||||||
continue;
|
if (Post\Link::exists($uriid, $attachment['preview'] ?? $attachment['url'])) {
|
||||||
}
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Only store attachments that are part of the unshared body
|
// Only store attachments that are part of the unshared body
|
||||||
if (Item::containsLink($unshared_body, $attachment['preview'] ?? $attachment['url'], $attachment['type'])) {
|
if (Item::containsLink($unshared_body, $attachment['preview'] ?? $attachment['url'], $attachment['type'])) {
|
||||||
self::insert($attachment);
|
self::insert($attachment);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return trim($body);
|
return trim($body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove media that is at the end of the body
|
||||||
|
*
|
||||||
|
* @param string $body
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function removeFromEndOfBody(string $body): string
|
||||||
|
{
|
||||||
|
do {
|
||||||
|
$prebody = $body;
|
||||||
|
$body = self::insertFromBody(0, $body, true);
|
||||||
|
} while ($prebody != $body);
|
||||||
|
return $body;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add media links from a relevant url in the body
|
* Add media links from a relevant url in the body
|
||||||
*
|
*
|
||||||
|
@ -525,7 +558,7 @@ class Media
|
||||||
* @param string $body
|
* @param string $body
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function insertFromRelevantUrl(int $uriid, string $body)
|
public static function insertFromRelevantUrl(int $uriid, string $body, string $fullbody, string $network)
|
||||||
{
|
{
|
||||||
// Remove all hashtags and mentions
|
// Remove all hashtags and mentions
|
||||||
$body = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '', $body);
|
$body = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '', $body);
|
||||||
|
@ -534,7 +567,10 @@ class Media
|
||||||
if (preg_match_all("/\[url\](https?:.*?)\[\/url\]/ism", $body, $matches)) {
|
if (preg_match_all("/\[url\](https?:.*?)\[\/url\]/ism", $body, $matches)) {
|
||||||
foreach ($matches[1] as $url) {
|
foreach ($matches[1] as $url) {
|
||||||
Logger::info('Got page url (link without description)', ['uri-id' => $uriid, 'url' => $url]);
|
Logger::info('Got page url (link without description)', ['uri-id' => $uriid, 'url' => $url]);
|
||||||
self::insert(['uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $url]);
|
self::insert(['uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $url], false, $network);
|
||||||
|
if ($network == Protocol::DFRN) {
|
||||||
|
self::revertHTMLType($uriid, $url, $fullbody);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -542,11 +578,31 @@ class Media
|
||||||
if (preg_match_all("/\[url\=(https?:.*?)\].*?\[\/url\]/ism", $body, $matches)) {
|
if (preg_match_all("/\[url\=(https?:.*?)\].*?\[\/url\]/ism", $body, $matches)) {
|
||||||
foreach ($matches[1] as $url) {
|
foreach ($matches[1] as $url) {
|
||||||
Logger::info('Got page url (link with description)', ['uri-id' => $uriid, 'url' => $url]);
|
Logger::info('Got page url (link with description)', ['uri-id' => $uriid, 'url' => $url]);
|
||||||
self::insert(['uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $url]);
|
self::insert(['uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $url], false, $network);
|
||||||
|
if ($network == Protocol::DFRN) {
|
||||||
|
self::revertHTMLType($uriid, $url, $fullbody);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Revert the media type of links to UNKNOWN for DFRN posts when they aren't attached
|
||||||
|
*
|
||||||
|
* @param integer $uriid
|
||||||
|
* @param string $url
|
||||||
|
* @param string $body
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private static function revertHTMLType(int $uriid, string $url, string $body)
|
||||||
|
{
|
||||||
|
$attachment = BBCode::getAttachmentData($body);
|
||||||
|
if (!empty($attachment['url']) && Network::getUrlMatch($attachment['url'], $url)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DBA::update('post-media', ['type' => self::UNKNOWN], ['uri-id' => $uriid, 'type' => self::HTML, 'url' => $url]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add media links from the attachment field
|
* Add media links from the attachment field
|
||||||
*
|
*
|
||||||
|
@ -615,7 +671,7 @@ class Media
|
||||||
*/
|
*/
|
||||||
public static function getByURIId(int $uri_id, array $types = [])
|
public static function getByURIId(int $uri_id, array $types = [])
|
||||||
{
|
{
|
||||||
$condition = ['uri-id' => $uri_id];
|
$condition = ["`uri-id` = ? AND `type` != ?", $uri_id, self::UNKNOWN];
|
||||||
|
|
||||||
if (!empty($types)) {
|
if (!empty($types)) {
|
||||||
$condition = DBA::mergeConditions($condition, ['type' => $types]);
|
$condition = DBA::mergeConditions($condition, ['type' => $types]);
|
||||||
|
@ -634,7 +690,7 @@ class Media
|
||||||
*/
|
*/
|
||||||
public static function existsByURIId(int $uri_id, array $types = []): bool
|
public static function existsByURIId(int $uri_id, array $types = []): bool
|
||||||
{
|
{
|
||||||
$condition = ['uri-id' => $uri_id];
|
$condition = ["`uri-id` = ? AND `type` != ?", $uri_id, self::UNKNOWN];
|
||||||
|
|
||||||
if (!empty($types)) {
|
if (!empty($types)) {
|
||||||
$condition = DBA::mergeConditions($condition, ['type' => $types]);
|
$condition = DBA::mergeConditions($condition, ['type' => $types]);
|
||||||
|
|
|
@ -21,7 +21,9 @@
|
||||||
|
|
||||||
namespace Friendica\Module\Settings;
|
namespace Friendica\Module\Settings;
|
||||||
|
|
||||||
|
use Friendica\Content\Text\BBCode;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core\Renderer;
|
||||||
use Friendica\Core\Theme;
|
use Friendica\Core\Theme;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
|
@ -55,6 +57,7 @@ class Display extends BaseSettings
|
||||||
$enable_dislike = !empty($_POST['enable_dislike']) ? intval($_POST['enable_dislike']) : 0;
|
$enable_dislike = !empty($_POST['enable_dislike']) ? intval($_POST['enable_dislike']) : 0;
|
||||||
$display_resharer = !empty($_POST['display_resharer']) ? intval($_POST['display_resharer']) : 0;
|
$display_resharer = !empty($_POST['display_resharer']) ? intval($_POST['display_resharer']) : 0;
|
||||||
$stay_local = !empty($_POST['stay_local']) ? intval($_POST['stay_local']) : 0;
|
$stay_local = !empty($_POST['stay_local']) ? intval($_POST['stay_local']) : 0;
|
||||||
|
$preview_mode = !empty($_POST['preview_mode']) ? intval($_POST['preview_mode']) : 0;
|
||||||
$browser_update = !empty($_POST['browser_update']) ? intval($_POST['browser_update']) : 0;
|
$browser_update = !empty($_POST['browser_update']) ? intval($_POST['browser_update']) : 0;
|
||||||
if ($browser_update != -1) {
|
if ($browser_update != -1) {
|
||||||
$browser_update = $browser_update * 1000;
|
$browser_update = $browser_update * 1000;
|
||||||
|
@ -91,6 +94,7 @@ class Display extends BaseSettings
|
||||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'display_resharer' , $display_resharer);
|
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'display_resharer' , $display_resharer);
|
||||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'stay_local' , $stay_local);
|
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'stay_local' , $stay_local);
|
||||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week' , $first_day_of_week);
|
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week' , $first_day_of_week);
|
||||||
|
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'preview_mode' , $preview_mode);
|
||||||
|
|
||||||
if (in_array($theme, Theme::getAllowedList())) {
|
if (in_array($theme, Theme::getAllowedList())) {
|
||||||
if ($theme == $user['theme']) {
|
if ($theme == $user['theme']) {
|
||||||
|
@ -175,7 +179,7 @@ class Display extends BaseSettings
|
||||||
$enable_dislike = !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike', 0);
|
$enable_dislike = !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike', 0);
|
||||||
$display_resharer = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'display_resharer', 0);
|
$display_resharer = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'display_resharer', 0);
|
||||||
$stay_local = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'stay_local', 0);
|
$stay_local = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'stay_local', 0);
|
||||||
|
$preview_mode = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'preview_mode', BBCode::PREVIEW_LARGE);
|
||||||
|
|
||||||
$first_day_of_week = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week', 0);
|
$first_day_of_week = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'first_day_of_week', 0);
|
||||||
$weekdays = [
|
$weekdays = [
|
||||||
|
@ -188,6 +192,13 @@ class Display extends BaseSettings
|
||||||
6 => DI::l10n()->t("Saturday")
|
6 => DI::l10n()->t("Saturday")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$preview_modes = [
|
||||||
|
BBCode::PREVIEW_NONE => DI::l10n()->t('No preview'),
|
||||||
|
BBCode::PREVIEW_NO_IMAGE => DI::l10n()->t('No image'),
|
||||||
|
BBCode::PREVIEW_SMALL => DI::l10n()->t('Small Image'),
|
||||||
|
BBCode::PREVIEW_LARGE => DI::l10n()->t('Large Image'),
|
||||||
|
];
|
||||||
|
|
||||||
$theme_config = '';
|
$theme_config = '';
|
||||||
if ($themeconfigfile = Theme::getConfigFile($theme_selected)) {
|
if ($themeconfigfile = Theme::getConfigFile($theme_selected)) {
|
||||||
require_once $themeconfigfile;
|
require_once $themeconfigfile;
|
||||||
|
@ -222,6 +233,7 @@ class Display extends BaseSettings
|
||||||
'$enable_dislike' => ['enable_dislike' , DI::l10n()->t('Display the Dislike feature'), $enable_dislike, DI::l10n()->t('Display the Dislike button and dislike reactions on posts and comments.')],
|
'$enable_dislike' => ['enable_dislike' , DI::l10n()->t('Display the Dislike feature'), $enable_dislike, DI::l10n()->t('Display the Dislike button and dislike reactions on posts and comments.')],
|
||||||
'$display_resharer' => ['display_resharer' , DI::l10n()->t('Display the resharer'), $display_resharer, DI::l10n()->t('Display the first resharer as icon and text on a reshared item.')],
|
'$display_resharer' => ['display_resharer' , DI::l10n()->t('Display the resharer'), $display_resharer, DI::l10n()->t('Display the first resharer as icon and text on a reshared item.')],
|
||||||
'$stay_local' => ['stay_local' , DI::l10n()->t('Stay local'), $stay_local, DI::l10n()->t("Don't go to a remote system when following a contact link.")],
|
'$stay_local' => ['stay_local' , DI::l10n()->t('Stay local'), $stay_local, DI::l10n()->t("Don't go to a remote system when following a contact link.")],
|
||||||
|
'$preview_mode' => ['preview_mode' , DI::l10n()->t('Link preview mode'), $preview_mode, 'Appearance of the link preview that is added to each post with a link.', $preview_modes, false],
|
||||||
|
|
||||||
'$first_day_of_week' => ['first_day_of_week', DI::l10n()->t('Beginning of week:'), $first_day_of_week, '', $weekdays, false],
|
'$first_day_of_week' => ['first_day_of_week', DI::l10n()->t('Beginning of week:'), $first_day_of_week, '', $weekdays, false],
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -734,6 +734,9 @@ class Image
|
||||||
public function getBlurHash(): string
|
public function getBlurHash(): string
|
||||||
{
|
{
|
||||||
$image = New Image($this->asString());
|
$image = New Image($this->asString());
|
||||||
|
if (empty($image)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
$width = $image->getWidth();
|
$width = $image->getWidth();
|
||||||
$height = $image->getHeight();
|
$height = $image->getHeight();
|
||||||
|
@ -749,7 +752,11 @@ class Image
|
||||||
$row = [];
|
$row = [];
|
||||||
for ($x = 0; $x < $width; ++$x) {
|
for ($x = 0; $x < $width; ++$x) {
|
||||||
if ($image->isImagick()) {
|
if ($image->isImagick()) {
|
||||||
$colors = $image->image->getImagePixelColor($x, $y)->getColor();
|
try {
|
||||||
|
$colors = $image->image->getImagePixelColor($x, $y)->getColor();
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
$row[] = [$colors['r'], $colors['g'], $colors['b']];
|
$row[] = [$colors['r'], $colors['g'], $colors['b']];
|
||||||
} else {
|
} else {
|
||||||
$index = imagecolorat($image->image, $x, $y);
|
$index = imagecolorat($image->image, $x, $y);
|
||||||
|
|
|
@ -711,7 +711,7 @@ class DFRN
|
||||||
*/
|
*/
|
||||||
private static function getAttachment($doc, $root, array $item)
|
private static function getAttachment($doc, $root, array $item)
|
||||||
{
|
{
|
||||||
foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT, Post\Media::UNKNOWN]) as $attachment) {
|
foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT]) as $attachment) {
|
||||||
$attributes = ['rel' => 'enclosure',
|
$attributes = ['rel' => 'enclosure',
|
||||||
'href' => $attachment['url'],
|
'href' => $attachment['url'],
|
||||||
'type' => $attachment['mimetype']];
|
'type' => $attachment['mimetype']];
|
||||||
|
|
|
@ -499,7 +499,7 @@ class Diaspora
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($fields = self::validPosting($msg))) {
|
if (!($fields = self::validPosting($msg))) {
|
||||||
Logger::warning('Invalid posting');
|
Logger::warning('Invalid posting', ['msg' => $msg]);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -534,7 +534,7 @@ class Diaspora
|
||||||
if (is_null($fields)) {
|
if (is_null($fields)) {
|
||||||
$private = true;
|
$private = true;
|
||||||
if (!($fields = self::validPosting($msg))) {
|
if (!($fields = self::validPosting($msg))) {
|
||||||
Logger::warning('Invalid posting');
|
Logger::warning('Invalid posting', ['msg' => $msg]);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -3387,7 +3387,7 @@ class Diaspora
|
||||||
$body = '### ' . html_entity_decode($title) . "\n\n" . $body;
|
$body = '### ' . html_entity_decode($title) . "\n\n" . $body;
|
||||||
}
|
}
|
||||||
|
|
||||||
$attachments = Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT, Post\Media::UNKNOWN]);
|
$attachments = Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT]);
|
||||||
if (!empty($attachments)) {
|
if (!empty($attachments)) {
|
||||||
$body .= "\n[hr]\n";
|
$body .= "\n[hr]\n";
|
||||||
foreach ($attachments as $attachment) {
|
foreach ($attachments as $attachment) {
|
||||||
|
|
|
@ -1186,7 +1186,7 @@ class OStatus
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT, Post\Media::UNKNOWN]) as $attachment) {
|
foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT]) as $attachment) {
|
||||||
$attributes = ['rel' => 'enclosure',
|
$attributes = ['rel' => 'enclosure',
|
||||||
'href' => $attachment['url'],
|
'href' => $attachment['url'],
|
||||||
'type' => $attachment['mimetype']];
|
'type' => $attachment['mimetype']];
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 2022.12-rc\n"
|
"Project-Id-Version: 2022.12-rc\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-12-04 06:41-0500\n"
|
"POT-Creation-Date: 2022-12-07 07:12+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -47,7 +47,7 @@ msgstr ""
|
||||||
#: src/Module/Register.php:245 src/Module/Search/Directory.php:37
|
#: src/Module/Register.php:245 src/Module/Search/Directory.php:37
|
||||||
#: src/Module/Settings/Account.php:50 src/Module/Settings/Account.php:407
|
#: src/Module/Settings/Account.php:50 src/Module/Settings/Account.php:407
|
||||||
#: src/Module/Settings/Delegation.php:41 src/Module/Settings/Delegation.php:69
|
#: src/Module/Settings/Delegation.php:41 src/Module/Settings/Delegation.php:69
|
||||||
#: src/Module/Settings/Display.php:41 src/Module/Settings/Display.php:119
|
#: src/Module/Settings/Display.php:43 src/Module/Settings/Display.php:123
|
||||||
#: src/Module/Settings/Profile/Photo/Crop.php:165
|
#: src/Module/Settings/Profile/Photo/Crop.php:165
|
||||||
#: src/Module/Settings/Profile/Photo/Index.php:111
|
#: src/Module/Settings/Profile/Photo/Index.php:111
|
||||||
#: src/Module/Settings/RemoveMe.php:117 src/Module/Settings/UserExport.php:80
|
#: src/Module/Settings/RemoveMe.php:117 src/Module/Settings/UserExport.php:80
|
||||||
|
@ -858,7 +858,7 @@ msgstr ""
|
||||||
msgid "Enter user nickname: "
|
msgid "Enter user nickname: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Console/User.php:182 src/Model/User.php:661
|
#: src/Console/User.php:182 src/Model/User.php:662
|
||||||
#: src/Module/Api/Twitter/ContactEndpoint.php:74
|
#: src/Module/Api/Twitter/ContactEndpoint.php:74
|
||||||
#: src/Module/Moderation/Users/Active.php:71
|
#: src/Module/Moderation/Users/Active.php:71
|
||||||
#: src/Module/Moderation/Users/Blocked.php:71
|
#: src/Module/Moderation/Users/Blocked.php:71
|
||||||
|
@ -1670,7 +1670,7 @@ msgstr ""
|
||||||
#: src/Content/Nav.php:197 src/Content/Nav.php:257
|
#: src/Content/Nav.php:197 src/Content/Nav.php:257
|
||||||
#: src/Module/BaseProfile.php:85 src/Module/BaseProfile.php:88
|
#: src/Module/BaseProfile.php:85 src/Module/BaseProfile.php:88
|
||||||
#: src/Module/BaseProfile.php:96 src/Module/BaseProfile.php:99
|
#: src/Module/BaseProfile.php:96 src/Module/BaseProfile.php:99
|
||||||
#: src/Module/Settings/Display.php:205 view/theme/frio/theme.php:242
|
#: src/Module/Settings/Display.php:216 view/theme/frio/theme.php:242
|
||||||
#: view/theme/frio/theme.php:246
|
#: view/theme/frio/theme.php:246
|
||||||
msgid "Calendar"
|
msgid "Calendar"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1909,39 +1909,39 @@ msgstr ""
|
||||||
msgid "last"
|
msgid "last"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1003 src/Content/Text/BBCode.php:1865
|
#: src/Content/Text/BBCode.php:1015 src/Content/Text/BBCode.php:1877
|
||||||
#: src/Content/Text/BBCode.php:1866
|
#: src/Content/Text/BBCode.php:1878
|
||||||
msgid "Image/photo"
|
msgid "Image/photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1220
|
#: src/Content/Text/BBCode.php:1232
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
|
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3536
|
#: src/Content/Text/BBCode.php:1257 src/Model/Item.php:3539
|
||||||
#: src/Model/Item.php:3542 src/Model/Item.php:3543
|
#: src/Model/Item.php:3545 src/Model/Item.php:3546
|
||||||
msgid "Link to source"
|
msgid "Link to source"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1783 src/Content/Text/HTML.php:940
|
#: src/Content/Text/BBCode.php:1795 src/Content/Text/HTML.php:940
|
||||||
msgid "Click to open/close"
|
msgid "Click to open/close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1814
|
#: src/Content/Text/BBCode.php:1826
|
||||||
msgid "$1 wrote:"
|
msgid "$1 wrote:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1870 src/Content/Text/BBCode.php:1871
|
#: src/Content/Text/BBCode.php:1882 src/Content/Text/BBCode.php:1883
|
||||||
msgid "Encrypted content"
|
msgid "Encrypted content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:2098
|
#: src/Content/Text/BBCode.php:2110
|
||||||
msgid "Invalid source protocol"
|
msgid "Invalid source protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:2113
|
#: src/Content/Text/BBCode.php:2125
|
||||||
msgid "Invalid link protocol"
|
msgid "Invalid link protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2542,37 +2542,37 @@ msgid "Could not connect to database."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:430
|
#: src/Core/L10n.php:403 src/Model/Event.php:430
|
||||||
#: src/Module/Settings/Display.php:183
|
#: src/Module/Settings/Display.php:187
|
||||||
msgid "Monday"
|
msgid "Monday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:431
|
#: src/Core/L10n.php:403 src/Model/Event.php:431
|
||||||
#: src/Module/Settings/Display.php:184
|
#: src/Module/Settings/Display.php:188
|
||||||
msgid "Tuesday"
|
msgid "Tuesday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:432
|
#: src/Core/L10n.php:403 src/Model/Event.php:432
|
||||||
#: src/Module/Settings/Display.php:185
|
#: src/Module/Settings/Display.php:189
|
||||||
msgid "Wednesday"
|
msgid "Wednesday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:433
|
#: src/Core/L10n.php:403 src/Model/Event.php:433
|
||||||
#: src/Module/Settings/Display.php:186
|
#: src/Module/Settings/Display.php:190
|
||||||
msgid "Thursday"
|
msgid "Thursday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:434
|
#: src/Core/L10n.php:403 src/Model/Event.php:434
|
||||||
#: src/Module/Settings/Display.php:187
|
#: src/Module/Settings/Display.php:191
|
||||||
msgid "Friday"
|
msgid "Friday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:435
|
#: src/Core/L10n.php:403 src/Model/Event.php:435
|
||||||
#: src/Module/Settings/Display.php:188
|
#: src/Module/Settings/Display.php:192
|
||||||
msgid "Saturday"
|
msgid "Saturday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Core/L10n.php:403 src/Model/Event.php:429
|
#: src/Core/L10n.php:403 src/Model/Event.php:429
|
||||||
#: src/Module/Settings/Display.php:182
|
#: src/Module/Settings/Display.php:186
|
||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2874,63 +2874,63 @@ msgstr ""
|
||||||
msgid "Forum"
|
msgid "Forum"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2831
|
#: src/Model/Contact.php:2849
|
||||||
msgid "Disallowed profile URL."
|
msgid "Disallowed profile URL."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2836 src/Module/Friendica.php:82
|
#: src/Model/Contact.php:2854 src/Module/Friendica.php:82
|
||||||
msgid "Blocked domain"
|
msgid "Blocked domain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2841
|
#: src/Model/Contact.php:2859
|
||||||
msgid "Connect URL missing."
|
msgid "Connect URL missing."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2850
|
#: src/Model/Contact.php:2868
|
||||||
msgid ""
|
msgid ""
|
||||||
"The contact could not be added. Please check the relevant network "
|
"The contact could not be added. Please check the relevant network "
|
||||||
"credentials in your Settings -> Social Networks page."
|
"credentials in your Settings -> Social Networks page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2892
|
#: src/Model/Contact.php:2910
|
||||||
msgid "The profile address specified does not provide adequate information."
|
msgid "The profile address specified does not provide adequate information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2894
|
#: src/Model/Contact.php:2912
|
||||||
msgid "No compatible communication protocols or feeds were discovered."
|
msgid "No compatible communication protocols or feeds were discovered."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2897
|
#: src/Model/Contact.php:2915
|
||||||
msgid "An author or name was not found."
|
msgid "An author or name was not found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2900
|
#: src/Model/Contact.php:2918
|
||||||
msgid "No browser URL could be matched to this address."
|
msgid "No browser URL could be matched to this address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2903
|
#: src/Model/Contact.php:2921
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to match @-style Identity Address with a known protocol or email "
|
"Unable to match @-style Identity Address with a known protocol or email "
|
||||||
"contact."
|
"contact."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2904
|
#: src/Model/Contact.php:2922
|
||||||
msgid "Use mailto: in front of address to force email check."
|
msgid "Use mailto: in front of address to force email check."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2910
|
#: src/Model/Contact.php:2928
|
||||||
msgid ""
|
msgid ""
|
||||||
"The profile address specified belongs to a network which has been disabled "
|
"The profile address specified belongs to a network which has been disabled "
|
||||||
"on this site."
|
"on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2915
|
#: src/Model/Contact.php:2933
|
||||||
msgid ""
|
msgid ""
|
||||||
"Limited profile. This person will be unable to receive direct/personal "
|
"Limited profile. This person will be unable to receive direct/personal "
|
||||||
"notifications from you."
|
"notifications from you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Contact.php:2974
|
#: src/Model/Contact.php:2992
|
||||||
msgid "Unable to retrieve contact information."
|
msgid "Unable to retrieve contact information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3100,44 +3100,44 @@ msgstr ""
|
||||||
msgid "Content warning: %s"
|
msgid "Content warning: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3448
|
#: src/Model/Item.php:3451
|
||||||
msgid "bytes"
|
msgid "bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3479
|
#: src/Model/Item.php:3482
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%2$s (%3$d%%, %1$d vote)"
|
msgid "%2$s (%3$d%%, %1$d vote)"
|
||||||
msgid_plural "%2$s (%3$d%%, %1$d votes)"
|
msgid_plural "%2$s (%3$d%%, %1$d votes)"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3481
|
#: src/Model/Item.php:3484
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%2$s (%1$d vote)"
|
msgid "%2$s (%1$d vote)"
|
||||||
msgid_plural "%2$s (%1$d votes)"
|
msgid_plural "%2$s (%1$d votes)"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3486
|
#: src/Model/Item.php:3489
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d voter. Poll end: %s"
|
msgid "%d voter. Poll end: %s"
|
||||||
msgid_plural "%d voters. Poll end: %s"
|
msgid_plural "%d voters. Poll end: %s"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3488
|
#: src/Model/Item.php:3491
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d voter."
|
msgid "%d voter."
|
||||||
msgid_plural "%d voters."
|
msgid_plural "%d voters."
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3490
|
#: src/Model/Item.php:3493
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Poll end: %s"
|
msgid "Poll end: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3524 src/Model/Item.php:3525
|
#: src/Model/Item.php:3527 src/Model/Item.php:3528
|
||||||
msgid "View on separate page"
|
msgid "View on separate page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3145,7 +3145,7 @@ msgstr ""
|
||||||
msgid "[no subject]"
|
msgid "[no subject]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Photo.php:1145 src/Module/Media/Photo/Upload.php:198
|
#: src/Model/Photo.php:1152 src/Module/Media/Photo/Upload.php:198
|
||||||
msgid "Wall Photos"
|
msgid "Wall Photos"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3294,146 +3294,146 @@ msgstr ""
|
||||||
msgid "Contact information and Social Networks"
|
msgid "Contact information and Social Networks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:212 src/Model/User.php:1102
|
#: src/Model/User.php:213 src/Model/User.php:1103
|
||||||
msgid "SERIOUS ERROR: Generation of security keys failed."
|
msgid "SERIOUS ERROR: Generation of security keys failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:570 src/Model/User.php:603
|
#: src/Model/User.php:571 src/Model/User.php:604
|
||||||
msgid "Login failed"
|
msgid "Login failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:635
|
#: src/Model/User.php:636
|
||||||
msgid "Not enough information to authenticate"
|
msgid "Not enough information to authenticate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:752
|
#: src/Model/User.php:753
|
||||||
msgid "Password can't be empty"
|
msgid "Password can't be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:794
|
#: src/Model/User.php:795
|
||||||
msgid "Empty passwords are not allowed."
|
msgid "Empty passwords are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:798
|
#: src/Model/User.php:799
|
||||||
msgid ""
|
msgid ""
|
||||||
"The new password has been exposed in a public data dump, please choose "
|
"The new password has been exposed in a public data dump, please choose "
|
||||||
"another."
|
"another."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:802
|
#: src/Model/User.php:803
|
||||||
msgid "The password length is limited to 72 characters."
|
msgid "The password length is limited to 72 characters."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:806
|
#: src/Model/User.php:807
|
||||||
msgid ""
|
msgid ""
|
||||||
"The password can't contain accentuated letters, white spaces or colons (:)"
|
"The password can't contain accentuated letters, white spaces or colons (:)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:985
|
#: src/Model/User.php:986
|
||||||
msgid "Passwords do not match. Password unchanged."
|
msgid "Passwords do not match. Password unchanged."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:992
|
#: src/Model/User.php:993
|
||||||
msgid "An invitation is required."
|
msgid "An invitation is required."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:996
|
#: src/Model/User.php:997
|
||||||
msgid "Invitation could not be verified."
|
msgid "Invitation could not be verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1004
|
#: src/Model/User.php:1005
|
||||||
msgid "Invalid OpenID url"
|
msgid "Invalid OpenID url"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1017 src/Security/Authentication.php:241
|
#: src/Model/User.php:1018 src/Security/Authentication.php:241
|
||||||
msgid ""
|
msgid ""
|
||||||
"We encountered a problem while logging in with the OpenID you provided. "
|
"We encountered a problem while logging in with the OpenID you provided. "
|
||||||
"Please check the correct spelling of the ID."
|
"Please check the correct spelling of the ID."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1017 src/Security/Authentication.php:241
|
#: src/Model/User.php:1018 src/Security/Authentication.php:241
|
||||||
msgid "The error message was:"
|
msgid "The error message was:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1023
|
#: src/Model/User.php:1024
|
||||||
msgid "Please enter the required information."
|
msgid "Please enter the required information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1037
|
#: src/Model/User.php:1038
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"system.username_min_length (%s) and system.username_max_length (%s) are "
|
"system.username_min_length (%s) and system.username_max_length (%s) are "
|
||||||
"excluding each other, swapping values."
|
"excluding each other, swapping values."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1044
|
#: src/Model/User.php:1045
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Username should be at least %s character."
|
msgid "Username should be at least %s character."
|
||||||
msgid_plural "Username should be at least %s characters."
|
msgid_plural "Username should be at least %s characters."
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/User.php:1048
|
#: src/Model/User.php:1049
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Username should be at most %s character."
|
msgid "Username should be at most %s character."
|
||||||
msgid_plural "Username should be at most %s characters."
|
msgid_plural "Username should be at most %s characters."
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/User.php:1056
|
#: src/Model/User.php:1057
|
||||||
msgid "That doesn't appear to be your full (First Last) name."
|
msgid "That doesn't appear to be your full (First Last) name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1061
|
#: src/Model/User.php:1062
|
||||||
msgid "Your email domain is not among those allowed on this site."
|
msgid "Your email domain is not among those allowed on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1065
|
#: src/Model/User.php:1066
|
||||||
msgid "Not a valid email address."
|
msgid "Not a valid email address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1068
|
#: src/Model/User.php:1069
|
||||||
msgid "The nickname was blocked from registration by the nodes admin."
|
msgid "The nickname was blocked from registration by the nodes admin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1072 src/Model/User.php:1078
|
#: src/Model/User.php:1073 src/Model/User.php:1079
|
||||||
msgid "Cannot use that email."
|
msgid "Cannot use that email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1084
|
#: src/Model/User.php:1085
|
||||||
msgid "Your nickname can only contain a-z, 0-9 and _."
|
msgid "Your nickname can only contain a-z, 0-9 and _."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1092 src/Model/User.php:1149
|
#: src/Model/User.php:1093 src/Model/User.php:1150
|
||||||
msgid "Nickname is already registered. Please choose another."
|
msgid "Nickname is already registered. Please choose another."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1136 src/Model/User.php:1140
|
#: src/Model/User.php:1137 src/Model/User.php:1141
|
||||||
msgid "An error occurred during registration. Please try again."
|
msgid "An error occurred during registration. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1163
|
#: src/Model/User.php:1164
|
||||||
msgid "An error occurred creating your default profile. Please try again."
|
msgid "An error occurred creating your default profile. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1170
|
#: src/Model/User.php:1171
|
||||||
msgid "An error occurred creating your self contact. Please try again."
|
msgid "An error occurred creating your self contact. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1175
|
#: src/Model/User.php:1176
|
||||||
msgid "Friends"
|
msgid "Friends"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1179
|
#: src/Model/User.php:1180
|
||||||
msgid ""
|
msgid ""
|
||||||
"An error occurred creating your default contact group. Please try again."
|
"An error occurred creating your default contact group. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1218
|
#: src/Model/User.php:1219
|
||||||
msgid "Profile Photos"
|
msgid "Profile Photos"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1411
|
#: src/Model/User.php:1412
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -3441,7 +3441,7 @@ msgid ""
|
||||||
"\t\t\tthe administrator of %2$s has set up an account for you."
|
"\t\t\tthe administrator of %2$s has set up an account for you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1414
|
#: src/Model/User.php:1415
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -3479,12 +3479,12 @@ msgid ""
|
||||||
"\t\tThank you and welcome to %4$s."
|
"\t\tThank you and welcome to %4$s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1447 src/Model/User.php:1554
|
#: src/Model/User.php:1448 src/Model/User.php:1555
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Registration details for %s"
|
msgid "Registration details for %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1467
|
#: src/Model/User.php:1468
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -3500,12 +3500,12 @@ msgid ""
|
||||||
"\t\t"
|
"\t\t"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1486
|
#: src/Model/User.php:1487
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Registration at %s"
|
msgid "Registration at %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1510
|
#: src/Model/User.php:1511
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -3514,7 +3514,7 @@ msgid ""
|
||||||
"\t\t\t"
|
"\t\t\t"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/User.php:1518
|
#: src/Model/User.php:1519
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -3623,7 +3623,7 @@ msgstr ""
|
||||||
#: src/Module/Settings/Account.php:560 src/Module/Settings/Addons.php:81
|
#: src/Module/Settings/Account.php:560 src/Module/Settings/Addons.php:81
|
||||||
#: src/Module/Settings/Connectors.php:159
|
#: src/Module/Settings/Connectors.php:159
|
||||||
#: src/Module/Settings/Connectors.php:244
|
#: src/Module/Settings/Connectors.php:244
|
||||||
#: src/Module/Settings/Delegation.php:169 src/Module/Settings/Display.php:200
|
#: src/Module/Settings/Delegation.php:169 src/Module/Settings/Display.php:211
|
||||||
#: src/Module/Settings/Features.php:76
|
#: src/Module/Settings/Features.php:76
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3975,11 +3975,11 @@ msgstr ""
|
||||||
msgid "%s is no valid input for maximum image size"
|
msgid "%s is no valid input for maximum image size"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Admin/Site.php:342 src/Module/Settings/Display.php:137
|
#: src/Module/Admin/Site.php:342 src/Module/Settings/Display.php:141
|
||||||
msgid "No special theme for mobile devices"
|
msgid "No special theme for mobile devices"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Admin/Site.php:359 src/Module/Settings/Display.php:147
|
#: src/Module/Admin/Site.php:359 src/Module/Settings/Display.php:151
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%s - (Experimental)"
|
msgid "%s - (Experimental)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -8120,12 +8120,12 @@ msgstr ""
|
||||||
msgid "The Photo with id %s is not available."
|
msgid "The Photo with id %s is not available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Photo.php:174
|
#: src/Module/Photo.php:178
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Invalid external resource with url %s."
|
msgid "Invalid external resource with url %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Photo.php:176
|
#: src/Module/Photo.php:180
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Invalid photo with id %s."
|
msgid "Invalid photo with id %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -9529,125 +9529,145 @@ msgstr ""
|
||||||
msgid "No entries."
|
msgid "No entries."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:106
|
#: src/Module/Settings/Display.php:110
|
||||||
msgid "The theme you chose isn't available."
|
msgid "The theme you chose isn't available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:145
|
#: src/Module/Settings/Display.php:149
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%s - (Unsupported)"
|
msgid "%s - (Unsupported)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Display.php:196
|
||||||
|
msgid "No preview"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Display.php:197
|
||||||
|
msgid "No image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Display.php:198
|
||||||
|
msgid "Small Image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:199
|
#: src/Module/Settings/Display.php:199
|
||||||
|
msgid "Large Image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Display.php:210
|
||||||
msgid "Display Settings"
|
msgid "Display Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:201
|
#: src/Module/Settings/Display.php:212
|
||||||
msgid "General Theme Settings"
|
msgid "General Theme Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:202
|
#: src/Module/Settings/Display.php:213
|
||||||
msgid "Custom Theme Settings"
|
msgid "Custom Theme Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:203
|
#: src/Module/Settings/Display.php:214
|
||||||
msgid "Content Settings"
|
msgid "Content Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:204 view/theme/duepuntozero/config.php:86
|
#: src/Module/Settings/Display.php:215 view/theme/duepuntozero/config.php:86
|
||||||
#: view/theme/frio/config.php:172 view/theme/quattro/config.php:88
|
#: view/theme/frio/config.php:172 view/theme/quattro/config.php:88
|
||||||
#: view/theme/vier/config.php:136
|
#: view/theme/vier/config.php:136
|
||||||
msgid "Theme settings"
|
msgid "Theme settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:211
|
#: src/Module/Settings/Display.php:222
|
||||||
msgid "Display Theme:"
|
msgid "Display Theme:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:212
|
#: src/Module/Settings/Display.php:223
|
||||||
msgid "Mobile Theme:"
|
msgid "Mobile Theme:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:215
|
#: src/Module/Settings/Display.php:226
|
||||||
msgid "Number of items to display per page:"
|
msgid "Number of items to display per page:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:215 src/Module/Settings/Display.php:216
|
#: src/Module/Settings/Display.php:226 src/Module/Settings/Display.php:227
|
||||||
msgid "Maximum of 100 items"
|
msgid "Maximum of 100 items"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:216
|
#: src/Module/Settings/Display.php:227
|
||||||
msgid "Number of items to display per page when viewed from mobile device:"
|
msgid "Number of items to display per page when viewed from mobile device:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:217
|
#: src/Module/Settings/Display.php:228
|
||||||
msgid "Update browser every xx seconds"
|
msgid "Update browser every xx seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:217
|
#: src/Module/Settings/Display.php:228
|
||||||
msgid "Minimum of 10 seconds. Enter -1 to disable it."
|
msgid "Minimum of 10 seconds. Enter -1 to disable it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:218
|
#: src/Module/Settings/Display.php:229
|
||||||
msgid "Automatic updates only at the top of the post stream pages"
|
msgid "Automatic updates only at the top of the post stream pages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:218
|
#: src/Module/Settings/Display.php:229
|
||||||
msgid ""
|
msgid ""
|
||||||
"Auto update may add new posts at the top of the post stream pages, which can "
|
"Auto update may add new posts at the top of the post stream pages, which can "
|
||||||
"affect the scroll position and perturb normal reading if it happens anywhere "
|
"affect the scroll position and perturb normal reading if it happens anywhere "
|
||||||
"else the top of the page."
|
"else the top of the page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:219
|
#: src/Module/Settings/Display.php:230
|
||||||
msgid "Display emoticons"
|
msgid "Display emoticons"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:219
|
#: src/Module/Settings/Display.php:230
|
||||||
msgid "When enabled, emoticons are replaced with matching symbols."
|
msgid "When enabled, emoticons are replaced with matching symbols."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:220
|
#: src/Module/Settings/Display.php:231
|
||||||
msgid "Infinite scroll"
|
msgid "Infinite scroll"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:220
|
#: src/Module/Settings/Display.php:231
|
||||||
msgid "Automatic fetch new items when reaching the page end."
|
msgid "Automatic fetch new items when reaching the page end."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:221
|
#: src/Module/Settings/Display.php:232
|
||||||
msgid "Enable Smart Threading"
|
msgid "Enable Smart Threading"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:221
|
#: src/Module/Settings/Display.php:232
|
||||||
msgid "Enable the automatic suppression of extraneous thread indentation."
|
msgid "Enable the automatic suppression of extraneous thread indentation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:222
|
#: src/Module/Settings/Display.php:233
|
||||||
msgid "Display the Dislike feature"
|
msgid "Display the Dislike feature"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:222
|
#: src/Module/Settings/Display.php:233
|
||||||
msgid "Display the Dislike button and dislike reactions on posts and comments."
|
msgid "Display the Dislike button and dislike reactions on posts and comments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:223
|
#: src/Module/Settings/Display.php:234
|
||||||
msgid "Display the resharer"
|
msgid "Display the resharer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:223
|
#: src/Module/Settings/Display.php:234
|
||||||
msgid "Display the first resharer as icon and text on a reshared item."
|
msgid "Display the first resharer as icon and text on a reshared item."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:224
|
#: src/Module/Settings/Display.php:235
|
||||||
msgid "Stay local"
|
msgid "Stay local"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:224
|
#: src/Module/Settings/Display.php:235
|
||||||
msgid "Don't go to a remote system when following a contact link."
|
msgid "Don't go to a remote system when following a contact link."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Display.php:226
|
#: src/Module/Settings/Display.php:236
|
||||||
|
msgid "Link preview mode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Display.php:238
|
||||||
msgid "Beginning of week:"
|
msgid "Beginning of week:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -11330,7 +11350,7 @@ msgstr ""
|
||||||
msgid "%1$d %2$s ago"
|
msgid "%1$d %2$s ago"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Worker/Delivery.php:534
|
#: src/Worker/Delivery.php:533
|
||||||
msgid "(no subject)"
|
msgid "(no subject)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -147,16 +147,9 @@ $a->strings['Album was empty.'] = 'Album ist leer.';
|
||||||
$a->strings['Failed to delete the photo.'] = 'Das Foto konnte nicht gelöscht werden.';
|
$a->strings['Failed to delete the photo.'] = 'Das Foto konnte nicht gelöscht werden.';
|
||||||
$a->strings['a photo'] = 'einem Foto';
|
$a->strings['a photo'] = 'einem Foto';
|
||||||
$a->strings['%1$s was tagged in %2$s by %3$s'] = '%1$s wurde von %3$s in %2$s getaggt';
|
$a->strings['%1$s was tagged in %2$s by %3$s'] = '%1$s wurde von %3$s in %2$s getaggt';
|
||||||
$a->strings['Image exceeds size limit of %s'] = 'Bildgröße überschreitet das Limit von %s';
|
|
||||||
$a->strings['Image upload didn\'t complete, please try again'] = 'Der Upload des Bildes war nicht vollständig. Bitte versuche es erneut.';
|
|
||||||
$a->strings['Image file is missing'] = 'Bilddatei konnte nicht gefunden werden.';
|
|
||||||
$a->strings['Server can\'t accept new file upload at this time, please contact your administrator'] = 'Der Server kann derzeit keine neuen Datei-Uploads akzeptieren. Bitte kontaktiere deinen Administrator.';
|
|
||||||
$a->strings['Image file is empty.'] = 'Bilddatei ist leer.';
|
|
||||||
$a->strings['Unable to process image.'] = 'Konnte das Bild nicht bearbeiten.';
|
|
||||||
$a->strings['Image upload failed.'] = 'Hochladen des Bildes gescheitert.';
|
|
||||||
$a->strings['Public access denied.'] = 'Öffentlicher Zugriff verweigert.';
|
$a->strings['Public access denied.'] = 'Öffentlicher Zugriff verweigert.';
|
||||||
$a->strings['No photos selected'] = 'Keine Bilder ausgewählt';
|
$a->strings['No photos selected'] = 'Keine Bilder ausgewählt';
|
||||||
$a->strings['Access to this item is restricted.'] = 'Zugriff zu diesem Eintrag wurde eingeschränkt.';
|
$a->strings['The maximum accepted image size is %s'] = 'Die maximale erlaubte Größe von Bildern beträgt %s';
|
||||||
$a->strings['Upload Photos'] = 'Bilder hochladen';
|
$a->strings['Upload Photos'] = 'Bilder hochladen';
|
||||||
$a->strings['New album name: '] = 'Name des neuen Albums: ';
|
$a->strings['New album name: '] = 'Name des neuen Albums: ';
|
||||||
$a->strings['or select existing album:'] = 'oder wähle ein bestehendes Album:';
|
$a->strings['or select existing album:'] = 'oder wähle ein bestehendes Album:';
|
||||||
|
@ -385,6 +378,9 @@ $a->strings['Tag Cloud'] = 'Schlagwortwolke';
|
||||||
$a->strings['Provide a personal tag cloud on your profile page'] = 'Wortwolke aus den von dir verwendeten Schlagwörtern im Profil anzeigen';
|
$a->strings['Provide a personal tag cloud on your profile page'] = 'Wortwolke aus den von dir verwendeten Schlagwörtern im Profil anzeigen';
|
||||||
$a->strings['Display Membership Date'] = 'Mitgliedschaftsdatum anzeigen';
|
$a->strings['Display Membership Date'] = 'Mitgliedschaftsdatum anzeigen';
|
||||||
$a->strings['Display membership date in profile'] = 'Das Datum der Registrierung deines Accounts im Profil anzeigen';
|
$a->strings['Display membership date in profile'] = 'Das Datum der Registrierung deines Accounts im Profil anzeigen';
|
||||||
|
$a->strings['Advanced Calendar Settings'] = 'Erweiterte Kalender Einstellungen';
|
||||||
|
$a->strings['Allow anonymous access to your calendar'] = 'Erlaube anonymen Zugriff auf deinen Kalender';
|
||||||
|
$a->strings['Allows anonymous visitors to consult your calendar and your public events. Contact birthday events are private to you.'] = 'Anonyme Besucher können deinen Kalender öffnen und dort deine öffentliche Ereignisse einsehen. Geburtstage deiner Kontakte sind nicht öffentlich.';
|
||||||
$a->strings['Forums'] = 'Foren';
|
$a->strings['Forums'] = 'Foren';
|
||||||
$a->strings['External link to forum'] = 'Externer Link zum Forum';
|
$a->strings['External link to forum'] = 'Externer Link zum Forum';
|
||||||
$a->strings['show less'] = 'weniger anzeigen';
|
$a->strings['show less'] = 'weniger anzeigen';
|
||||||
|
@ -1083,6 +1079,7 @@ $a->strings['Command'] = 'Befehl';
|
||||||
$a->strings['Job Parameters'] = 'Parameter der Aufgabe';
|
$a->strings['Job Parameters'] = 'Parameter der Aufgabe';
|
||||||
$a->strings['Created'] = 'Erstellt';
|
$a->strings['Created'] = 'Erstellt';
|
||||||
$a->strings['Priority'] = 'Priorität';
|
$a->strings['Priority'] = 'Priorität';
|
||||||
|
$a->strings['%s is no valid input for maximum image size'] = '%s ist keine gültige Angabe der maximalen Größe von Bildern';
|
||||||
$a->strings['No special theme for mobile devices'] = 'Kein spezielles Theme für mobile Geräte verwenden.';
|
$a->strings['No special theme for mobile devices'] = 'Kein spezielles Theme für mobile Geräte verwenden.';
|
||||||
$a->strings['%s - (Experimental)'] = '%s - (Experimentell)';
|
$a->strings['%s - (Experimental)'] = '%s - (Experimentell)';
|
||||||
$a->strings['No community page'] = 'Keine Gemeinschaftsseite';
|
$a->strings['No community page'] = 'Keine Gemeinschaftsseite';
|
||||||
|
@ -1147,7 +1144,11 @@ $a->strings['Displays the menu entry for the Help pages from the navigation menu
|
||||||
$a->strings['Single user instance'] = 'Ein-Nutzer Instanz';
|
$a->strings['Single user instance'] = 'Ein-Nutzer Instanz';
|
||||||
$a->strings['Make this instance multi-user or single-user for the named user'] = 'Bestimmt, ob es sich bei dieser Instanz um eine Installation mit nur einen Nutzer oder mit mehreren Nutzern handelt.';
|
$a->strings['Make this instance multi-user or single-user for the named user'] = 'Bestimmt, ob es sich bei dieser Instanz um eine Installation mit nur einen Nutzer oder mit mehreren Nutzern handelt.';
|
||||||
$a->strings['Maximum image size'] = 'Maximale Bildgröße';
|
$a->strings['Maximum image size'] = 'Maximale Bildgröße';
|
||||||
$a->strings['Maximum size in bytes of uploaded images. Default is 0, which means no limits. Be aware that this setting does not affect server-side upload limits.'] = 'Maximal akzeptierte Dateigröße in Bytes eines hochzuladenden Bilds. Der Standard ist 0 und entspricht keiner Beschränkung der Dateigröße. Beachte, dass diese Einstellung nicht die serverseitigen Beschränkungen von Dateigrößen beeinflusst.';
|
$a->strings['Maximum size in bytes of uploaded images. Default is 0, which means no limits. You can put k, m, or g behind the desired value for KiB, MiB, GiB, respectively.
|
||||||
|
The value of <code>upload_max_filesize</code> in your <code>PHP.ini</code> needs be set to at least the desired limit.
|
||||||
|
Currently <code>upload_max_filesize</code> is set to %s (%sB)'] = 'Die maximale Größe von Bildern in Bytes. Grundeinstellung ist 0, welches keine Limitierung durch die Bildgröße bedeutet. Du kannst k, m oder g als Abkürzung hinter der Zahl angeben um KiB, MIB oder GiB zu definieren.
|
||||||
|
Der Wert der <code>1upload_max_filesize1</code> Variable in der <code>php.ini</code> Datei muss diesem Limit mindestens entsprechen.
|
||||||
|
Derzeit ist <code>3upload_max_filesize3</code> auf %s (%sB) gesetzt.';
|
||||||
$a->strings['Maximum image length'] = 'Maximale Bildlänge';
|
$a->strings['Maximum image length'] = 'Maximale Bildlänge';
|
||||||
$a->strings['Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.'] = 'Maximale Länge in Pixeln der längsten Seite eines hochgeladenen Bildes. Grundeinstellung ist -1, was keine Einschränkung bedeutet.';
|
$a->strings['Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.'] = 'Maximale Länge in Pixeln der längsten Seite eines hochgeladenen Bildes. Grundeinstellung ist -1, was keine Einschränkung bedeutet.';
|
||||||
$a->strings['JPEG image quality'] = 'Qualität des JPEG Bildes';
|
$a->strings['JPEG image quality'] = 'Qualität des JPEG Bildes';
|
||||||
|
@ -1331,6 +1332,8 @@ $a->strings['Show some informations regarding the needed information to operate
|
||||||
$a->strings['Privacy Statement Preview'] = 'Vorschau: Datenschutzerklärung';
|
$a->strings['Privacy Statement Preview'] = 'Vorschau: Datenschutzerklärung';
|
||||||
$a->strings['The Terms of Service'] = 'Die Nutzungsbedingungen';
|
$a->strings['The Terms of Service'] = 'Die Nutzungsbedingungen';
|
||||||
$a->strings['Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.'] = 'Füge hier die Nutzungsbedingungen deines Knotens ein. Du kannst BBCode zur Formatierung verwenden. Überschriften sollten [h2] oder darunter sein.';
|
$a->strings['Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.'] = 'Füge hier die Nutzungsbedingungen deines Knotens ein. Du kannst BBCode zur Formatierung verwenden. Überschriften sollten [h2] oder darunter sein.';
|
||||||
|
$a->strings['The rules'] = 'Die Regeln';
|
||||||
|
$a->strings['Enter your system rules here. Each line represents one rule.'] = 'Gib die Regeln deines Server hier ein. Jede Zeile steht für eine Regel.';
|
||||||
$a->strings['API endpoint %s %s is not implemented'] = 'API Endpunkt %s %s ist nicht implementiert';
|
$a->strings['API endpoint %s %s is not implemented'] = 'API Endpunkt %s %s ist nicht implementiert';
|
||||||
$a->strings['The API endpoint is currently not implemented but might be in the future.'] = 'The API endpoint is currently not implemented but might be in the future.';
|
$a->strings['The API endpoint is currently not implemented but might be in the future.'] = 'The API endpoint is currently not implemented but might be in the future.';
|
||||||
$a->strings['Missing parameters'] = 'Fehlende Parameter';
|
$a->strings['Missing parameters'] = 'Fehlende Parameter';
|
||||||
|
@ -1410,8 +1413,9 @@ $a->strings['Event Starts:'] = 'Veranstaltungsbeginn:';
|
||||||
$a->strings['Required'] = 'Benötigt';
|
$a->strings['Required'] = 'Benötigt';
|
||||||
$a->strings['Finish date/time is not known or not relevant'] = 'Enddatum/-zeit ist nicht bekannt oder nicht relevant';
|
$a->strings['Finish date/time is not known or not relevant'] = 'Enddatum/-zeit ist nicht bekannt oder nicht relevant';
|
||||||
$a->strings['Event Finishes:'] = 'Veranstaltungsende:';
|
$a->strings['Event Finishes:'] = 'Veranstaltungsende:';
|
||||||
$a->strings['Description:'] = 'Beschreibung';
|
$a->strings['Title (BBCode not allowed)'] = 'Titel (BBCode nicht erlaubt)';
|
||||||
$a->strings['Title:'] = 'Titel:';
|
$a->strings['Description (BBCode allowed)'] = 'Beschreibung (BBCode erlaubt)';
|
||||||
|
$a->strings['Location (BBCode not allowed)'] = 'Ort (BBCode nicht erlaubt)';
|
||||||
$a->strings['Share this event'] = 'Veranstaltung teilen';
|
$a->strings['Share this event'] = 'Veranstaltung teilen';
|
||||||
$a->strings['Basic'] = 'Allgemein';
|
$a->strings['Basic'] = 'Allgemein';
|
||||||
$a->strings['This calendar format is not supported'] = 'Dieses Kalenderformat wird nicht unterstützt.';
|
$a->strings['This calendar format is not supported'] = 'Dieses Kalenderformat wird nicht unterstützt.';
|
||||||
|
@ -1803,6 +1807,9 @@ $a->strings['Sorry, maybe your upload is bigger than the PHP configuration allow
|
||||||
$a->strings['Or - did you try to upload an empty file?'] = 'Oder - hast du versucht, eine leere Datei hochzuladen?';
|
$a->strings['Or - did you try to upload an empty file?'] = 'Oder - hast du versucht, eine leere Datei hochzuladen?';
|
||||||
$a->strings['File exceeds size limit of %s'] = 'Die Datei ist größer als das erlaubte Limit von %s';
|
$a->strings['File exceeds size limit of %s'] = 'Die Datei ist größer als das erlaubte Limit von %s';
|
||||||
$a->strings['File upload failed.'] = 'Hochladen der Datei fehlgeschlagen.';
|
$a->strings['File upload failed.'] = 'Hochladen der Datei fehlgeschlagen.';
|
||||||
|
$a->strings['Unable to process image.'] = 'Konnte das Bild nicht bearbeiten.';
|
||||||
|
$a->strings['Image exceeds size limit of %s'] = 'Bildgröße überschreitet das Limit von %s';
|
||||||
|
$a->strings['Image upload failed.'] = 'Hochladen des Bildes gescheitert.';
|
||||||
$a->strings['List of all users'] = 'Liste aller Benutzerkonten';
|
$a->strings['List of all users'] = 'Liste aller Benutzerkonten';
|
||||||
$a->strings['Active'] = 'Aktive';
|
$a->strings['Active'] = 'Aktive';
|
||||||
$a->strings['List of active accounts'] = 'Liste der aktiven Benutzerkonten';
|
$a->strings['List of active accounts'] = 'Liste der aktiven Benutzerkonten';
|
||||||
|
@ -2059,6 +2066,10 @@ $a->strings['Remove Item Tag'] = 'Gegenstands-Tag entfernen';
|
||||||
$a->strings['Select a tag to remove: '] = 'Wähle ein Tag zum Entfernen aus: ';
|
$a->strings['Select a tag to remove: '] = 'Wähle ein Tag zum Entfernen aus: ';
|
||||||
$a->strings['Remove'] = 'Entfernen';
|
$a->strings['Remove'] = 'Entfernen';
|
||||||
$a->strings['No contacts.'] = 'Keine Kontakte.';
|
$a->strings['No contacts.'] = 'Keine Kontakte.';
|
||||||
|
$a->strings['Image upload didn\'t complete, please try again'] = 'Der Upload des Bildes war nicht vollständig. Bitte versuche es erneut.';
|
||||||
|
$a->strings['Image file is missing'] = 'Bilddatei konnte nicht gefunden werden.';
|
||||||
|
$a->strings['Server can\'t accept new file upload at this time, please contact your administrator'] = 'Der Server kann derzeit keine neuen Datei-Uploads akzeptieren. Bitte kontaktiere deinen Administrator.';
|
||||||
|
$a->strings['Image file is empty.'] = 'Bilddatei ist leer.';
|
||||||
$a->strings['View Album'] = 'Album betrachten';
|
$a->strings['View Album'] = 'Album betrachten';
|
||||||
$a->strings['Profile not found.'] = 'Profil nicht gefunden.';
|
$a->strings['Profile not found.'] = 'Profil nicht gefunden.';
|
||||||
$a->strings['You\'re currently viewing your profile as <b>%s</b> <a href="%s" class="btn btn-sm pull-right">Cancel</a>'] = 'Du betrachtest dein Profil gerade als <b>%s</b> <a href="%s" class="btn btn-sm pull-right">Abbrechen</a>';
|
$a->strings['You\'re currently viewing your profile as <b>%s</b> <a href="%s" class="btn btn-sm pull-right">Cancel</a>'] = 'Du betrachtest dein Profil gerade als <b>%s</b> <a href="%s" class="btn btn-sm pull-right">Abbrechen</a>';
|
||||||
|
@ -2072,6 +2083,7 @@ $a->strings['%d year old'] = [
|
||||||
0 => '%d Jahr alt',
|
0 => '%d Jahr alt',
|
||||||
1 => '%d Jahre alt',
|
1 => '%d Jahre alt',
|
||||||
];
|
];
|
||||||
|
$a->strings['Description:'] = 'Beschreibung';
|
||||||
$a->strings['Forums:'] = 'Foren:';
|
$a->strings['Forums:'] = 'Foren:';
|
||||||
$a->strings['View profile as:'] = 'Das Profil aus der Sicht von jemandem anderen betrachten:';
|
$a->strings['View profile as:'] = 'Das Profil aus der Sicht von jemandem anderen betrachten:';
|
||||||
$a->strings['View as'] = 'Betrachten als';
|
$a->strings['View as'] = 'Betrachten als';
|
||||||
|
@ -2086,6 +2098,8 @@ $a->strings['Friend/Connection Request'] = 'Kontaktanfrage';
|
||||||
$a->strings['Enter your Webfinger address (user@domain.tld) or profile URL here. If this isn\'t supported by your system, you have to subscribe to <strong>%s</strong> or <strong>%s</strong> directly on your system.'] = 'Gib entweder deine Webfinger- (user@domain.tld) oder die Profil-Adresse an. Wenn dies von deinem System nicht unterstützt wird, folge bitte <strong>%s</strong> oder <strong>%s</strong> direkt von deinem System. ';
|
$a->strings['Enter your Webfinger address (user@domain.tld) or profile URL here. If this isn\'t supported by your system, you have to subscribe to <strong>%s</strong> or <strong>%s</strong> directly on your system.'] = 'Gib entweder deine Webfinger- (user@domain.tld) oder die Profil-Adresse an. Wenn dies von deinem System nicht unterstützt wird, folge bitte <strong>%s</strong> oder <strong>%s</strong> direkt von deinem System. ';
|
||||||
$a->strings['If you are not yet a member of the free social web, <a href="%s">follow this link to find a public Friendica node and join us today</a>.'] = 'Solltest du das freie Soziale Netzwerk noch nicht benutzen, kannst du <a href="%s">diesem Link folgen</a> um eine öffentliche Friendica Instanz zu finden um noch heute dem Netzwerk beizutreten.';
|
$a->strings['If you are not yet a member of the free social web, <a href="%s">follow this link to find a public Friendica node and join us today</a>.'] = 'Solltest du das freie Soziale Netzwerk noch nicht benutzen, kannst du <a href="%s">diesem Link folgen</a> um eine öffentliche Friendica Instanz zu finden um noch heute dem Netzwerk beizutreten.';
|
||||||
$a->strings['Your Webfinger address or profile URL:'] = 'Deine Webfinger Adresse oder Profil-URL';
|
$a->strings['Your Webfinger address or profile URL:'] = 'Deine Webfinger Adresse oder Profil-URL';
|
||||||
|
$a->strings['Restricted profile'] = 'Eingeschränktes Profil';
|
||||||
|
$a->strings['This profile has been restricted which prevents access to their public content from anonymous visitors.'] = 'Das Profil wurde eingeschränkt, dies verhindert den Zugriff auf öffentliche Beiträge durch anonyme Besucher des Profils.';
|
||||||
$a->strings['Scheduled'] = 'Zeitplan';
|
$a->strings['Scheduled'] = 'Zeitplan';
|
||||||
$a->strings['Content'] = 'Inhalt';
|
$a->strings['Content'] = 'Inhalt';
|
||||||
$a->strings['Remove post'] = 'Beitrag entfernen';
|
$a->strings['Remove post'] = 'Beitrag entfernen';
|
||||||
|
@ -2238,8 +2252,8 @@ $a->strings['Allow your profile to be searchable globally?'] = 'Darf dein Profil
|
||||||
$a->strings['Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.'] = 'Aktiviere diese Einstellung, wenn du von anderen einfach gefunden und gefolgt werden möchtest. Dei Profil wird dann auf anderen Systemen leicht durchsuchbar. Außerdem regelt diese Einstellung ob Friendica Suchmaschinen mitteilen soll, ob dein Profil indiziert werden soll oder nicht.';
|
$a->strings['Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.'] = 'Aktiviere diese Einstellung, wenn du von anderen einfach gefunden und gefolgt werden möchtest. Dei Profil wird dann auf anderen Systemen leicht durchsuchbar. Außerdem regelt diese Einstellung ob Friendica Suchmaschinen mitteilen soll, ob dein Profil indiziert werden soll oder nicht.';
|
||||||
$a->strings['Hide your contact/friend list from viewers of your profile?'] = 'Liste der Kontakte vor Betrachtern des Profil verbergen?';
|
$a->strings['Hide your contact/friend list from viewers of your profile?'] = 'Liste der Kontakte vor Betrachtern des Profil verbergen?';
|
||||||
$a->strings['A list of your contacts is displayed on your profile page. Activate this option to disable the display of your contact list.'] = 'Auf deiner Profilseite wird eine Liste deiner Kontakte angezeigt. Aktiviere diese Option wenn du das nicht möchtest.';
|
$a->strings['A list of your contacts is displayed on your profile page. Activate this option to disable the display of your contact list.'] = 'Auf deiner Profilseite wird eine Liste deiner Kontakte angezeigt. Aktiviere diese Option wenn du das nicht möchtest.';
|
||||||
$a->strings['Hide your profile details from anonymous viewers?'] = 'Profil-Details vor unbekannten Betrachtern verbergen?';
|
$a->strings['Hide your public content from anonymous viewers'] = 'Verbirg die öffentliche Inhalte vor anonymen Besuchern';
|
||||||
$a->strings['Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies will still be accessible by other means.'] = 'Anonyme Besucher deines Profils werden ausschließlich dein Profilbild, deinen Namen sowie deinen Spitznamen sehen. Deine öffentlichen Beiträge und Kommentare werden weiterhin sichtbar sein.';
|
$a->strings['Anonymous visitors will only see your basic profile details. Your public posts and replies will still be freely accessible on the remote servers of your followers and through relays.'] = 'Anonyme Besucher deines Profils werden nur grundlegende Informationen angezeigt bekommen. Deine öffentlichen Beiträge und Kommentare werden weiterhin frei zugänglich auf den Servern deiner Kontakte und über Relays sein.';
|
||||||
$a->strings['Make public posts unlisted'] = 'Öffentliche Beiträge nicht listen';
|
$a->strings['Make public posts unlisted'] = 'Öffentliche Beiträge nicht listen';
|
||||||
$a->strings['Your public posts will not appear on the community pages or in search results, nor be sent to relay servers. However they can still appear on public feeds on remote servers.'] = 'Deine öffentlichen Beiträge werden nicht auf der Gemeinschaftsseite oder in den Suchergebnissen erscheinen, außerdem werden sie nicht an Relay-Server geschickt. Sie werden aber weiterhin in allen öffentlichen Feeds, auch auf entfernten Servern, erscheinen.';
|
$a->strings['Your public posts will not appear on the community pages or in search results, nor be sent to relay servers. However they can still appear on public feeds on remote servers.'] = 'Deine öffentlichen Beiträge werden nicht auf der Gemeinschaftsseite oder in den Suchergebnissen erscheinen, außerdem werden sie nicht an Relay-Server geschickt. Sie werden aber weiterhin in allen öffentlichen Feeds, auch auf entfernten Servern, erscheinen.';
|
||||||
$a->strings['Make all posted pictures accessible'] = 'Alle geposteten Bilder zugreifbar machen';
|
$a->strings['Make all posted pictures accessible'] = 'Alle geposteten Bilder zugreifbar machen';
|
||||||
|
@ -2355,6 +2369,10 @@ $a->strings['Add'] = 'Hinzufügen';
|
||||||
$a->strings['No entries.'] = 'Keine Einträge.';
|
$a->strings['No entries.'] = 'Keine Einträge.';
|
||||||
$a->strings['The theme you chose isn\'t available.'] = 'Das gewählte Theme ist nicht verfügbar';
|
$a->strings['The theme you chose isn\'t available.'] = 'Das gewählte Theme ist nicht verfügbar';
|
||||||
$a->strings['%s - (Unsupported)'] = '%s - (Nicht unterstützt)';
|
$a->strings['%s - (Unsupported)'] = '%s - (Nicht unterstützt)';
|
||||||
|
$a->strings['No preview'] = 'Keine Vorschau';
|
||||||
|
$a->strings['No image'] = 'Kein Bild';
|
||||||
|
$a->strings['Small Image'] = 'Kleines Bild';
|
||||||
|
$a->strings['Large Image'] = 'Große Bilder';
|
||||||
$a->strings['Display Settings'] = 'Anzeige-Einstellungen';
|
$a->strings['Display Settings'] = 'Anzeige-Einstellungen';
|
||||||
$a->strings['General Theme Settings'] = 'Allgemeine Theme-Einstellungen';
|
$a->strings['General Theme Settings'] = 'Allgemeine Theme-Einstellungen';
|
||||||
$a->strings['Custom Theme Settings'] = 'Benutzerdefinierte Theme-Einstellungen';
|
$a->strings['Custom Theme Settings'] = 'Benutzerdefinierte Theme-Einstellungen';
|
||||||
|
@ -2381,6 +2399,7 @@ $a->strings['Display the resharer'] = 'Teilenden anzeigen';
|
||||||
$a->strings['Display the first resharer as icon and text on a reshared item.'] = 'Zeige das Profilbild des ersten Kontakts von dem ein Beitrag geteilt wurde.';
|
$a->strings['Display the first resharer as icon and text on a reshared item.'] = 'Zeige das Profilbild des ersten Kontakts von dem ein Beitrag geteilt wurde.';
|
||||||
$a->strings['Stay local'] = 'Bleib lokal';
|
$a->strings['Stay local'] = 'Bleib lokal';
|
||||||
$a->strings['Don\'t go to a remote system when following a contact link.'] = 'Gehe nicht zu einem Remote-System, wenn einem Kontaktlink gefolgt wird';
|
$a->strings['Don\'t go to a remote system when following a contact link.'] = 'Gehe nicht zu einem Remote-System, wenn einem Kontaktlink gefolgt wird';
|
||||||
|
$a->strings['Link preview mode'] = 'Vorschau Modus für Links';
|
||||||
$a->strings['Beginning of week:'] = 'Wochenbeginn:';
|
$a->strings['Beginning of week:'] = 'Wochenbeginn:';
|
||||||
$a->strings['Additional Features'] = 'Zusätzliche Features';
|
$a->strings['Additional Features'] = 'Zusätzliche Features';
|
||||||
$a->strings['Connected Apps'] = 'Verbundene Programme';
|
$a->strings['Connected Apps'] = 'Verbundene Programme';
|
||||||
|
@ -2552,6 +2571,7 @@ Die E-Mail-Adresse wird nur zur Benachrichtigung des Nutzers verwendet, sie wird
|
||||||
$a->strings['This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.'] = 'Diese Daten sind für die Kommunikation notwendig und werden an die Knoten der Kommunikationspartner übermittelt und dort gespeichert. Nutzer können weitere, private Angaben machen, die ebenfalls an die verwendeten Server der Kommunikationspartner übermittelt werden können.';
|
$a->strings['This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.'] = 'Diese Daten sind für die Kommunikation notwendig und werden an die Knoten der Kommunikationspartner übermittelt und dort gespeichert. Nutzer können weitere, private Angaben machen, die ebenfalls an die verwendeten Server der Kommunikationspartner übermittelt werden können.';
|
||||||
$a->strings['At any point in time a logged in user can export their account data from the <a href="%1$s/settings/userexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/settings/removeme">%1$s/settings/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.'] = 'Angemeldete Nutzer können ihre Nutzerdaten jederzeit von den <a href="%1$s/settings/userexport">Kontoeinstellungen</a> aus exportieren. Wenn ein Nutzer wünscht das Nutzerkonto zu löschen, so ist dies jederzeit unter <a href="%1$s/settings/removeme">%1$s/settings/removeme</a> möglich. Die Löschung des Nutzerkontos ist permanent. Die Löschung der Daten wird auch von den Knoten der Kommunikationspartner angefordert.';
|
$a->strings['At any point in time a logged in user can export their account data from the <a href="%1$s/settings/userexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/settings/removeme">%1$s/settings/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.'] = 'Angemeldete Nutzer können ihre Nutzerdaten jederzeit von den <a href="%1$s/settings/userexport">Kontoeinstellungen</a> aus exportieren. Wenn ein Nutzer wünscht das Nutzerkonto zu löschen, so ist dies jederzeit unter <a href="%1$s/settings/removeme">%1$s/settings/removeme</a> möglich. Die Löschung des Nutzerkontos ist permanent. Die Löschung der Daten wird auch von den Knoten der Kommunikationspartner angefordert.';
|
||||||
$a->strings['Privacy Statement'] = 'Datenschutzerklärung';
|
$a->strings['Privacy Statement'] = 'Datenschutzerklärung';
|
||||||
|
$a->strings['Rules'] = 'Regeln';
|
||||||
$a->strings['Parameter uri_id is missing.'] = 'Der Parameter uri_id fehlt.';
|
$a->strings['Parameter uri_id is missing.'] = 'Der Parameter uri_id fehlt.';
|
||||||
$a->strings['User imports on closed servers can only be done by an administrator.'] = 'Auf geschlossenen Servern können ausschließlich die Administratoren Benutzerkonten importieren.';
|
$a->strings['User imports on closed servers can only be done by an administrator.'] = 'Auf geschlossenen Servern können ausschließlich die Administratoren Benutzerkonten importieren.';
|
||||||
$a->strings['Move account'] = 'Account umziehen';
|
$a->strings['Move account'] = 'Account umziehen';
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -20,6 +20,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$enable_dislike}}
|
{{include file="field_checkbox.tpl" field=$enable_dislike}}
|
||||||
{{include file="field_checkbox.tpl" field=$display_resharer}}
|
{{include file="field_checkbox.tpl" field=$display_resharer}}
|
||||||
{{include file="field_checkbox.tpl" field=$stay_local}}
|
{{include file="field_checkbox.tpl" field=$stay_local}}
|
||||||
|
{{include file="field_select.tpl" field=$preview_mode}}
|
||||||
|
|
||||||
<h2>{{$calendar_title}}</h2>
|
<h2>{{$calendar_title}}</h2>
|
||||||
{{include file="field_select.tpl" field=$first_day_of_week}}
|
{{include file="field_select.tpl" field=$first_day_of_week}}
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$enable_dislike}}
|
{{include file="field_checkbox.tpl" field=$enable_dislike}}
|
||||||
{{include file="field_checkbox.tpl" field=$display_resharer}}
|
{{include file="field_checkbox.tpl" field=$display_resharer}}
|
||||||
{{include file="field_checkbox.tpl" field=$stay_local}}
|
{{include file="field_checkbox.tpl" field=$stay_local}}
|
||||||
|
{{include file="field_select.tpl" field=$preview_mode}}
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-footer">
|
<div class="panel-footer">
|
||||||
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
|
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
|
||||||
|
|
Loading…
Reference in a new issue