Merge pull request #12350 from annando/link-preview
The appearance of the link preview is now configurable
This commit is contained in:
commit
16f5dc92f8
|
@ -68,6 +68,12 @@ class BBCode
|
|||
|
||||
const TOP_ANCHOR = '<br class="top-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
|
||||
*
|
||||
|
@ -654,7 +660,7 @@ class BBCode
|
|||
* @return string
|
||||
* @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');
|
||||
$data = $data ?: self::getAttachmentData($text);
|
||||
|
@ -689,12 +695,18 @@ class BBCode
|
|||
$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'])) {
|
||||
$preview_class = $preview_mode == self::PREVIEW_LARGE ? 'attachment-image' : 'attachment-preview';
|
||||
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 {
|
||||
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'])) {
|
||||
$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']);
|
||||
}
|
||||
|
|
|
@ -3004,7 +3004,7 @@ class Item
|
|||
$item['hashtags'] = $tags['hashtags'];
|
||||
$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'];
|
||||
|
||||
|
@ -3402,7 +3402,10 @@ class Item
|
|||
}
|
||||
|
||||
// @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)) {
|
||||
$rendered = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/link.tpl'), [
|
||||
'$url' => $data['url'],
|
||||
|
|
|
@ -446,13 +446,14 @@ class Media
|
|||
* @param string $body
|
||||
* @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
|
||||
$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 = [];
|
||||
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) {
|
||||
if (!self::isPictureLink($picture[1], $picture[2])) {
|
||||
continue;
|
||||
|
@ -464,14 +465,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) {
|
||||
$body = str_replace($picture[0], '', $body);
|
||||
$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) {
|
||||
if (!self::isPictureLink($picture[1], $picture[2])) {
|
||||
continue;
|
||||
|
@ -483,41 +484,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) {
|
||||
$body = str_replace($picture[0], '', $body);
|
||||
$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) {
|
||||
$body = str_replace($audio[0], '', $body);
|
||||
$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) {
|
||||
$body = str_replace($video[0], '', $body);
|
||||
$attachments[$video[1]] = ['uri-id' => $uriid, 'type' => self::VIDEO, 'url' => $video[1]];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($attachments as $attachment) {
|
||||
if (Post\Link::exists($uriid, $attachment['preview'] ?? $attachment['url'])) {
|
||||
continue;
|
||||
}
|
||||
if ($uriid != 0) {
|
||||
foreach ($attachments as $attachment) {
|
||||
if (Post\Link::exists($uriid, $attachment['preview'] ?? $attachment['url'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Only store attachments that are part of the unshared body
|
||||
if (Item::containsLink($unshared_body, $attachment['preview'] ?? $attachment['url'], $attachment['type'])) {
|
||||
self::insert($attachment);
|
||||
// Only store attachments that are part of the unshared body
|
||||
if (Item::containsLink($unshared_body, $attachment['preview'] ?? $attachment['url'], $attachment['type'])) {
|
||||
self::insert($attachment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
*
|
||||
|
|
|
@ -21,7 +21,9 @@
|
|||
|
||||
namespace Friendica\Module\Settings;
|
||||
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Theme;
|
||||
use Friendica\Database\DBA;
|
||||
|
@ -55,6 +57,7 @@ class Display extends BaseSettings
|
|||
$enable_dislike = !empty($_POST['enable_dislike']) ? intval($_POST['enable_dislike']) : 0;
|
||||
$display_resharer = !empty($_POST['display_resharer']) ? intval($_POST['display_resharer']) : 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;
|
||||
if ($browser_update != -1) {
|
||||
$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', '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', 'preview_mode' , $preview_mode);
|
||||
|
||||
if (in_array($theme, Theme::getAllowedList())) {
|
||||
if ($theme == $user['theme']) {
|
||||
|
@ -175,7 +179,7 @@ class Display extends BaseSettings
|
|||
$enable_dislike = !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike', 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);
|
||||
|
||||
$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);
|
||||
$weekdays = [
|
||||
|
@ -188,6 +192,13 @@ class Display extends BaseSettings
|
|||
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 = '';
|
||||
if ($themeconfigfile = Theme::getConfigFile($theme_selected)) {
|
||||
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.')],
|
||||
'$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.")],
|
||||
'$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],
|
||||
]);
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2022.12-rc\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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/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/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/Index.php:111
|
||||
#: src/Module/Settings/RemoveMe.php:117 src/Module/Settings/UserExport.php:80
|
||||
|
@ -858,7 +858,7 @@ msgstr ""
|
|||
msgid "Enter user nickname: "
|
||||
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/Moderation/Users/Active.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/Module/BaseProfile.php:85 src/Module/BaseProfile.php:88
|
||||
#: 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
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
|
@ -1909,39 +1909,39 @@ msgstr ""
|
|||
msgid "last"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:1003 src/Content/Text/BBCode.php:1865
|
||||
#: src/Content/Text/BBCode.php:1866
|
||||
#: src/Content/Text/BBCode.php:1015 src/Content/Text/BBCode.php:1877
|
||||
#: src/Content/Text/BBCode.php:1878
|
||||
msgid "Image/photo"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:1220
|
||||
#: src/Content/Text/BBCode.php:1232
|
||||
#, php-format
|
||||
msgid ""
|
||||
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3536
|
||||
#: src/Model/Item.php:3542 src/Model/Item.php:3543
|
||||
#: src/Content/Text/BBCode.php:1257 src/Model/Item.php:3539
|
||||
#: src/Model/Item.php:3545 src/Model/Item.php:3546
|
||||
msgid "Link to source"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:1814
|
||||
#: src/Content/Text/BBCode.php:1826
|
||||
msgid "$1 wrote:"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:2098
|
||||
#: src/Content/Text/BBCode.php:2110
|
||||
msgid "Invalid source protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:2113
|
||||
#: src/Content/Text/BBCode.php:2125
|
||||
msgid "Invalid link protocol"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2542,37 +2542,37 @@ msgid "Could not connect to database."
|
|||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:430
|
||||
#: src/Module/Settings/Display.php:183
|
||||
#: src/Module/Settings/Display.php:187
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:431
|
||||
#: src/Module/Settings/Display.php:184
|
||||
#: src/Module/Settings/Display.php:188
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:432
|
||||
#: src/Module/Settings/Display.php:185
|
||||
#: src/Module/Settings/Display.php:189
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:433
|
||||
#: src/Module/Settings/Display.php:186
|
||||
#: src/Module/Settings/Display.php:190
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:434
|
||||
#: src/Module/Settings/Display.php:187
|
||||
#: src/Module/Settings/Display.php:191
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:435
|
||||
#: src/Module/Settings/Display.php:188
|
||||
#: src/Module/Settings/Display.php:192
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:403 src/Model/Event.php:429
|
||||
#: src/Module/Settings/Display.php:182
|
||||
#: src/Module/Settings/Display.php:186
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2874,63 +2874,63 @@ msgstr ""
|
|||
msgid "Forum"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2831
|
||||
#: src/Model/Contact.php:2849
|
||||
msgid "Disallowed profile URL."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2836 src/Module/Friendica.php:82
|
||||
#: src/Model/Contact.php:2854 src/Module/Friendica.php:82
|
||||
msgid "Blocked domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2841
|
||||
#: src/Model/Contact.php:2859
|
||||
msgid "Connect URL missing."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2850
|
||||
#: src/Model/Contact.php:2868
|
||||
msgid ""
|
||||
"The contact could not be added. Please check the relevant network "
|
||||
"credentials in your Settings -> Social Networks page."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2892
|
||||
#: src/Model/Contact.php:2910
|
||||
msgid "The profile address specified does not provide adequate information."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2894
|
||||
#: src/Model/Contact.php:2912
|
||||
msgid "No compatible communication protocols or feeds were discovered."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2897
|
||||
#: src/Model/Contact.php:2915
|
||||
msgid "An author or name was not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2900
|
||||
#: src/Model/Contact.php:2918
|
||||
msgid "No browser URL could be matched to this address."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2903
|
||||
#: src/Model/Contact.php:2921
|
||||
msgid ""
|
||||
"Unable to match @-style Identity Address with a known protocol or email "
|
||||
"contact."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2904
|
||||
#: src/Model/Contact.php:2922
|
||||
msgid "Use mailto: in front of address to force email check."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2910
|
||||
#: src/Model/Contact.php:2928
|
||||
msgid ""
|
||||
"The profile address specified belongs to a network which has been disabled "
|
||||
"on this site."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2915
|
||||
#: src/Model/Contact.php:2933
|
||||
msgid ""
|
||||
"Limited profile. This person will be unable to receive direct/personal "
|
||||
"notifications from you."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:2974
|
||||
#: src/Model/Contact.php:2992
|
||||
msgid "Unable to retrieve contact information."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3100,44 +3100,44 @@ msgstr ""
|
|||
msgid "Content warning: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3448
|
||||
#: src/Model/Item.php:3451
|
||||
msgid "bytes"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3479
|
||||
#: src/Model/Item.php:3482
|
||||
#, php-format
|
||||
msgid "%2$s (%3$d%%, %1$d vote)"
|
||||
msgid_plural "%2$s (%3$d%%, %1$d votes)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3481
|
||||
#: src/Model/Item.php:3484
|
||||
#, php-format
|
||||
msgid "%2$s (%1$d vote)"
|
||||
msgid_plural "%2$s (%1$d votes)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3486
|
||||
#: src/Model/Item.php:3489
|
||||
#, php-format
|
||||
msgid "%d voter. Poll end: %s"
|
||||
msgid_plural "%d voters. Poll end: %s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3488
|
||||
#: src/Model/Item.php:3491
|
||||
#, php-format
|
||||
msgid "%d voter."
|
||||
msgid_plural "%d voters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3490
|
||||
#: src/Model/Item.php:3493
|
||||
#, php-format
|
||||
msgid "Poll end: %s"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3145,7 +3145,7 @@ msgstr ""
|
|||
msgid "[no subject]"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3294,146 +3294,146 @@ msgstr ""
|
|||
msgid "Contact information and Social Networks"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:570 src/Model/User.php:603
|
||||
#: src/Model/User.php:571 src/Model/User.php:604
|
||||
msgid "Login failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:635
|
||||
#: src/Model/User.php:636
|
||||
msgid "Not enough information to authenticate"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:752
|
||||
#: src/Model/User.php:753
|
||||
msgid "Password can't be empty"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:794
|
||||
#: src/Model/User.php:795
|
||||
msgid "Empty passwords are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:798
|
||||
#: src/Model/User.php:799
|
||||
msgid ""
|
||||
"The new password has been exposed in a public data dump, please choose "
|
||||
"another."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:802
|
||||
#: src/Model/User.php:803
|
||||
msgid "The password length is limited to 72 characters."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:806
|
||||
#: src/Model/User.php:807
|
||||
msgid ""
|
||||
"The password can't contain accentuated letters, white spaces or colons (:)"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:985
|
||||
#: src/Model/User.php:986
|
||||
msgid "Passwords do not match. Password unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:992
|
||||
#: src/Model/User.php:993
|
||||
msgid "An invitation is required."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:996
|
||||
#: src/Model/User.php:997
|
||||
msgid "Invitation could not be verified."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1004
|
||||
#: src/Model/User.php:1005
|
||||
msgid "Invalid OpenID url"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1017 src/Security/Authentication.php:241
|
||||
#: src/Model/User.php:1018 src/Security/Authentication.php:241
|
||||
msgid ""
|
||||
"We encountered a problem while logging in with the OpenID you provided. "
|
||||
"Please check the correct spelling of the ID."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1017 src/Security/Authentication.php:241
|
||||
#: src/Model/User.php:1018 src/Security/Authentication.php:241
|
||||
msgid "The error message was:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1023
|
||||
#: src/Model/User.php:1024
|
||||
msgid "Please enter the required information."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1037
|
||||
#: src/Model/User.php:1038
|
||||
#, php-format
|
||||
msgid ""
|
||||
"system.username_min_length (%s) and system.username_max_length (%s) are "
|
||||
"excluding each other, swapping values."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1044
|
||||
#: src/Model/User.php:1045
|
||||
#, php-format
|
||||
msgid "Username should be at least %s character."
|
||||
msgid_plural "Username should be at least %s characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/User.php:1048
|
||||
#: src/Model/User.php:1049
|
||||
#, php-format
|
||||
msgid "Username should be at most %s character."
|
||||
msgid_plural "Username should be at most %s characters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/User.php:1056
|
||||
#: src/Model/User.php:1057
|
||||
msgid "That doesn't appear to be your full (First Last) name."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1061
|
||||
#: src/Model/User.php:1062
|
||||
msgid "Your email domain is not among those allowed on this site."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1065
|
||||
#: src/Model/User.php:1066
|
||||
msgid "Not a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1068
|
||||
#: src/Model/User.php:1069
|
||||
msgid "The nickname was blocked from registration by the nodes admin."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1084
|
||||
#: src/Model/User.php:1085
|
||||
msgid "Your nickname can only contain a-z, 0-9 and _."
|
||||
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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1163
|
||||
#: src/Model/User.php:1164
|
||||
msgid "An error occurred creating your default profile. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1170
|
||||
#: src/Model/User.php:1171
|
||||
msgid "An error occurred creating your self contact. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1175
|
||||
#: src/Model/User.php:1176
|
||||
msgid "Friends"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1179
|
||||
#: src/Model/User.php:1180
|
||||
msgid ""
|
||||
"An error occurred creating your default contact group. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1218
|
||||
#: src/Model/User.php:1219
|
||||
msgid "Profile Photos"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1411
|
||||
#: src/Model/User.php:1412
|
||||
#, php-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -3441,7 +3441,7 @@ msgid ""
|
|||
"\t\t\tthe administrator of %2$s has set up an account for you."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1414
|
||||
#: src/Model/User.php:1415
|
||||
#, php-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -3479,12 +3479,12 @@ msgid ""
|
|||
"\t\tThank you and welcome to %4$s."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1447 src/Model/User.php:1554
|
||||
#: src/Model/User.php:1448 src/Model/User.php:1555
|
||||
#, php-format
|
||||
msgid "Registration details for %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1467
|
||||
#: src/Model/User.php:1468
|
||||
#, php-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -3500,12 +3500,12 @@ msgid ""
|
|||
"\t\t"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1486
|
||||
#: src/Model/User.php:1487
|
||||
#, php-format
|
||||
msgid "Registration at %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1510
|
||||
#: src/Model/User.php:1511
|
||||
#, php-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -3514,7 +3514,7 @@ msgid ""
|
|||
"\t\t\t"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:1518
|
||||
#: src/Model/User.php:1519
|
||||
#, php-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -3623,7 +3623,7 @@ msgstr ""
|
|||
#: src/Module/Settings/Account.php:560 src/Module/Settings/Addons.php:81
|
||||
#: src/Module/Settings/Connectors.php:159
|
||||
#: 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
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
||||
|
@ -3975,11 +3975,11 @@ msgstr ""
|
|||
msgid "%s is no valid input for maximum image size"
|
||||
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"
|
||||
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
|
||||
msgid "%s - (Experimental)"
|
||||
msgstr ""
|
||||
|
@ -8120,12 +8120,12 @@ msgstr ""
|
|||
msgid "The Photo with id %s is not available."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Photo.php:174
|
||||
#: src/Module/Photo.php:178
|
||||
#, php-format
|
||||
msgid "Invalid external resource with url %s."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Photo.php:176
|
||||
#: src/Module/Photo.php:180
|
||||
#, php-format
|
||||
msgid "Invalid photo with id %s."
|
||||
msgstr ""
|
||||
|
@ -9529,125 +9529,145 @@ msgstr ""
|
|||
msgid "No entries."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:106
|
||||
#: src/Module/Settings/Display.php:110
|
||||
msgid "The theme you chose isn't available."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:145
|
||||
#: src/Module/Settings/Display.php:149
|
||||
#, php-format
|
||||
msgid "%s - (Unsupported)"
|
||||
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
|
||||
msgid "Large Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:210
|
||||
msgid "Display Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:201
|
||||
#: src/Module/Settings/Display.php:212
|
||||
msgid "General Theme Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:202
|
||||
#: src/Module/Settings/Display.php:213
|
||||
msgid "Custom Theme Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:203
|
||||
#: src/Module/Settings/Display.php:214
|
||||
msgid "Content Settings"
|
||||
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/vier/config.php:136
|
||||
msgid "Theme settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:211
|
||||
#: src/Module/Settings/Display.php:222
|
||||
msgid "Display Theme:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:212
|
||||
#: src/Module/Settings/Display.php:223
|
||||
msgid "Mobile Theme:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:215
|
||||
#: src/Module/Settings/Display.php:226
|
||||
msgid "Number of items to display per page:"
|
||||
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"
|
||||
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:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:217
|
||||
#: src/Module/Settings/Display.php:228
|
||||
msgid "Update browser every xx seconds"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:217
|
||||
#: src/Module/Settings/Display.php:228
|
||||
msgid "Minimum of 10 seconds. Enter -1 to disable it."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:218
|
||||
#: src/Module/Settings/Display.php:229
|
||||
msgid ""
|
||||
"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 "
|
||||
"else the top of the page."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:219
|
||||
#: src/Module/Settings/Display.php:230
|
||||
msgid "Display emoticons"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:219
|
||||
#: src/Module/Settings/Display.php:230
|
||||
msgid "When enabled, emoticons are replaced with matching symbols."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:220
|
||||
#: src/Module/Settings/Display.php:231
|
||||
msgid "Infinite scroll"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:220
|
||||
#: src/Module/Settings/Display.php:231
|
||||
msgid "Automatic fetch new items when reaching the page end."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:221
|
||||
#: src/Module/Settings/Display.php:232
|
||||
msgid "Enable Smart Threading"
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:221
|
||||
#: src/Module/Settings/Display.php:232
|
||||
msgid "Enable the automatic suppression of extraneous thread indentation."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:222
|
||||
#: src/Module/Settings/Display.php:233
|
||||
msgid "Display the Dislike feature"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:223
|
||||
#: src/Module/Settings/Display.php:234
|
||||
msgid "Display the resharer"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: src/Module/Settings/Display.php:224
|
||||
#: src/Module/Settings/Display.php:235
|
||||
msgid "Stay local"
|
||||
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."
|
||||
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:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -11330,7 +11350,7 @@ msgstr ""
|
|||
msgid "%1$d %2$s ago"
|
||||
msgstr ""
|
||||
|
||||
#: src/Worker/Delivery.php:534
|
||||
#: src/Worker/Delivery.php:533
|
||||
msgid "(no subject)"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
{{include file="field_checkbox.tpl" field=$enable_dislike}}
|
||||
{{include file="field_checkbox.tpl" field=$display_resharer}}
|
||||
{{include file="field_checkbox.tpl" field=$stay_local}}
|
||||
{{include file="field_select.tpl" field=$preview_mode}}
|
||||
|
||||
<h2>{{$calendar_title}}</h2>
|
||||
{{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=$display_resharer}}
|
||||
{{include file="field_checkbox.tpl" field=$stay_local}}
|
||||
{{include file="field_select.tpl" field=$preview_mode}}
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
|
||||
|
|
Loading…
Reference in New Issue
Block a user