Merge pull request #13000 from annando/audience

Store "audience" and "attributedTo" data
This commit is contained in:
Hypolite Petovan 2023-04-23 19:40:46 -04:00 committed by GitHub
commit dd8f875d6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 186 additions and 153 deletions

View file

@ -873,6 +873,9 @@ class Conversation
case ItemModel::PR_BCC: case ItemModel::PR_BCC:
$row['direction'] = ['direction' => 7, 'title' => $this->l10n->t('You had been addressed (%s).', 'bcc')]; $row['direction'] = ['direction' => 7, 'title' => $this->l10n->t('You had been addressed (%s).', 'bcc')];
break; break;
case ItemModel::PR_AUDIENCE:
$row['direction'] = ['direction' => 7, 'title' => $this->l10n->t('You had been addressed (%s).', 'audience')];
break;
case ItemModel::PR_FOLLOWER: case ItemModel::PR_FOLLOWER:
$row['direction'] = ['direction' => 6, 'title' => $this->l10n->t('You are following %s.', $row['causer-name'] ?: $row['author-name'])]; $row['direction'] = ['direction' => 6, 'title' => $this->l10n->t('You are following %s.', $row['causer-name'] ?: $row['author-name'])];
break; break;

View file

@ -79,6 +79,7 @@ class Item
const PR_DISTRIBUTE = 79; const PR_DISTRIBUTE = 79;
const PR_PUSHED = 80; const PR_PUSHED = 80;
const PR_LOCAL = 81; const PR_LOCAL = 81;
const PR_AUDIENCE = 82;
// system.accept_only_sharer setting values // system.accept_only_sharer setting values
const COMPLETION_NONE = 1; const COMPLETION_NONE = 1;
@ -1624,7 +1625,7 @@ class Item
if (($uid != 0) && (($item['gravity'] == self::GRAVITY_PARENT) || $is_reshare) && if (($uid != 0) && (($item['gravity'] == self::GRAVITY_PARENT) || $is_reshare) &&
DI::pConfig()->get($uid, 'system', 'accept_only_sharer') == self::COMPLETION_NONE && DI::pConfig()->get($uid, 'system', 'accept_only_sharer') == self::COMPLETION_NONE &&
!in_array($item['post-reason'], [self::PR_FOLLOWER, self::PR_TAG, self::PR_TO, self::PR_CC, self::PR_ACTIVITY])) { !in_array($item['post-reason'], [self::PR_FOLLOWER, self::PR_TAG, self::PR_TO, self::PR_CC, self::PR_ACTIVITY, self::PR_AUDIENCE])) {
Logger::info('Contact is not a follower, thread will not be stored', ['author' => $item['author-link'], 'uid' => $uid, 'uri-id' => $uri_id, 'post-reason' => $item['post-reason']]); Logger::info('Contact is not a follower, thread will not be stored', ['author' => $item['author-link'], 'uid' => $uid, 'uri-id' => $uri_id, 'post-reason' => $item['post-reason']]);
return 0; return 0;
} }

View file

@ -58,6 +58,8 @@ class Tag
const CC = 11; const CC = 11;
const BTO = 12; const BTO = 12;
const BCC = 13; const BCC = 13;
const AUDIENCE = 14;
const ATTRIBUTED = 15;
const ACCOUNT = 1; const ACCOUNT = 1;
const GENERAL_COLLECTION = 2; const GENERAL_COLLECTION = 2;
@ -103,7 +105,7 @@ class Tag
$cid = 0; $cid = 0;
$tagid = 0; $tagid = 0;
if (in_array($type, [self::MENTION, self::EXCLUSIVE_MENTION, self::IMPLICIT_MENTION, self::TO, self::CC, self::BTO, self::BCC])) { if (in_array($type, [self::MENTION, self::EXCLUSIVE_MENTION, self::IMPLICIT_MENTION, self::TO, self::CC, self::BTO, self::BCC, self::AUDIENCE, self::ATTRIBUTED])) {
if (empty($url)) { if (empty($url)) {
// No mention without a contact url // No mention without a contact url
return; return;
@ -130,7 +132,7 @@ class Tag
} }
if (empty($cid)) { if (empty($cid)) {
if (!in_array($type, [self::TO, self::CC, self::BTO, self::BCC])) { if (!in_array($type, [self::TO, self::CC, self::BTO, self::BCC, self::AUDIENCE, self::ATTRIBUTED])) {
if (($type != self::HASHTAG) && !empty($url) && ($url != $name)) { if (($type != self::HASHTAG) && !empty($url) && ($url != $name)) {
$url = strtolower($url); $url = strtolower($url);
} else { } else {

View file

@ -190,7 +190,7 @@ class PermissionTooltip extends \Friendica\BaseModule
} }
$receivers = []; $receivers = [];
foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC]) as $receiver) { foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC, Tag::AUDIENCE, Tag::ATTRIBUTED]) as $receiver) {
// We only display BCC when it contains the current user // We only display BCC when it contains the current user
if (($receiver['type'] == Tag::BCC) && ($receiver['url'] != $own_url)) { if (($receiver['type'] == Tag::BCC) && ($receiver['url'] != $own_url)) {
continue; continue;
@ -236,6 +236,12 @@ class PermissionTooltip extends \Friendica\BaseModule
case Tag::BCC: case Tag::BCC:
$output .= DI::l10n()->t('<b>BCC:</b> %s<br>', implode(', ', $receiver)); $output .= DI::l10n()->t('<b>BCC:</b> %s<br>', implode(', ', $receiver));
break; break;
case Tag::AUDIENCE:
$output .= DI::l10n()->t('<b>Audience:</b> %s<br>', implode(', ', $receiver));
break;
case Tag::ATTRIBUTED:
$output .= DI::l10n()->t('<b>Attributed To:</b> %s<br>', implode(', ', $receiver));
break;
} }
} }

View file

@ -208,7 +208,7 @@ class ClientToServer
$targets = []; $targets = [];
foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc', 'as:audience'] as $element) {
switch ($element) { switch ($element) {
case 'as:to': case 'as:to':
$type = Receiver::TARGET_TO; $type = Receiver::TARGET_TO;
@ -222,6 +222,9 @@ class ClientToServer
case 'as:bcc': case 'as:bcc':
$type = Receiver::TARGET_BCC; $type = Receiver::TARGET_BCC;
break; break;
case 'as:audience':
$type = Receiver::TARGET_AUDIENCE;
break;
} }
$receiver_list = JsonLD::fetchElementArray($object, $element, '@id'); $receiver_list = JsonLD::fetchElementArray($object, $element, '@id');
if (empty($receiver_list)) { if (empty($receiver_list)) {

View file

@ -1026,6 +1026,9 @@ class Processor
case Receiver::TARGET_BCC: case Receiver::TARGET_BCC:
$item['post-reason'] = Item::PR_BCC; $item['post-reason'] = Item::PR_BCC;
break; break;
case Receiver::TARGET_AUDIENCE:
$item['post-reason'] = Item::PR_AUDIENCE;
break;
case Receiver::TARGET_FOLLOWER: case Receiver::TARGET_FOLLOWER:
$item['post-reason'] = Item::PR_FOLLOWER; $item['post-reason'] = Item::PR_FOLLOWER;
break; break;
@ -1071,7 +1074,7 @@ class Processor
continue; continue;
} }
if (($receiver != 0) && ($item['gravity'] == Item::GRAVITY_PARENT) && !in_array($item['post-reason'], [Item::PR_FOLLOWER, Item::PR_TAG, item::PR_TO, Item::PR_CC])) { if (($receiver != 0) && ($item['gravity'] == Item::GRAVITY_PARENT) && !in_array($item['post-reason'], [Item::PR_FOLLOWER, Item::PR_TAG, item::PR_TO, Item::PR_CC, Item::PR_AUDIENCE])) {
if (!($item['isForum'] ?? false)) { if (!($item['isForum'] ?? false)) {
if ($item['post-reason'] == Item::PR_BCC) { if ($item['post-reason'] == Item::PR_BCC) {
Logger::info('Top level post via BCC from a non sharer, ignoring', ['uid' => $receiver, 'contact' => $item['contact-id'], 'url' => $item['uri']]); Logger::info('Top level post via BCC from a non sharer, ignoring', ['uid' => $receiver, 'contact' => $item['contact-id'], 'url' => $item['uri']]);
@ -1274,7 +1277,7 @@ class Processor
public static function storeReceivers(int $uriid, array $receivers) public static function storeReceivers(int $uriid, array $receivers)
{ {
foreach (['as:to' => Tag::TO, 'as:cc' => Tag::CC, 'as:bto' => Tag::BTO, 'as:bcc' => Tag::BCC] as $element => $type) { foreach (['as:to' => Tag::TO, 'as:cc' => Tag::CC, 'as:bto' => Tag::BTO, 'as:bcc' => Tag::BCC, 'as:audience' => Tag::AUDIENCE, 'as:attributedTo' => Tag::ATTRIBUTED] as $element => $type) {
if (!empty($receivers[$element])) { if (!empty($receivers[$element])) {
foreach ($receivers[$element] as $receiver) { foreach ($receivers[$element] as $receiver) {
if ($receiver == ActivityPub::PUBLIC_COLLECTION) { if ($receiver == ActivityPub::PUBLIC_COLLECTION) {

View file

@ -73,6 +73,7 @@ class Receiver
const TARGET_FOLLOWER = 5; const TARGET_FOLLOWER = 5;
const TARGET_ANSWER = 6; const TARGET_ANSWER = 6;
const TARGET_GLOBAL = 7; const TARGET_GLOBAL = 7;
const TARGET_AUDIENCE = 8;
const COMPLETION_NONE = 0; const COMPLETION_NONE = 0;
const COMPLETION_ANNOUNCE = 1; const COMPLETION_ANNOUNCE = 1;
@ -487,7 +488,7 @@ class Receiver
$object_data['object_type'] = $object_type; $object_data['object_type'] = $object_type;
} }
foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc', 'as:audience', 'as:attributedTo'] as $element) {
if ((empty($object_data['receiver_urls'][$element]) || in_array($element, ['as:bto', 'as:bcc'])) && !empty($urls[$element])) { if ((empty($object_data['receiver_urls'][$element]) || in_array($element, ['as:bto', 'as:bcc'])) && !empty($urls[$element])) {
$object_data['receiver_urls'][$element] = array_unique(array_merge($object_data['receiver_urls'][$element] ?? [], $urls[$element])); $object_data['receiver_urls'][$element] = array_unique(array_merge($object_data['receiver_urls'][$element] ?? [], $urls[$element]));
} }
@ -1032,7 +1033,7 @@ class Receiver
{ {
$urls = []; $urls = [];
foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc', 'as:audience', 'as:attributedTo'] as $element) {
$receiver_list = JsonLD::fetchElementArray($activity, $element, '@id'); $receiver_list = JsonLD::fetchElementArray($activity, $element, '@id');
if (empty($receiver_list)) { if (empty($receiver_list)) {
continue; continue;
@ -1104,7 +1105,7 @@ class Receiver
// We have to prevent false follower assumptions upon thread completions // We have to prevent false follower assumptions upon thread completions
$follower_target = empty($activity['thread-completion']) ? self::TARGET_FOLLOWER : self::TARGET_UNKNOWN; $follower_target = empty($activity['thread-completion']) ? self::TARGET_FOLLOWER : self::TARGET_UNKNOWN;
foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc','as:audience'] as $element) {
$receiver_list = JsonLD::fetchElementArray($activity, $element, '@id'); $receiver_list = JsonLD::fetchElementArray($activity, $element, '@id');
if (empty($receiver_list)) { if (empty($receiver_list)) {
continue; continue;
@ -1165,6 +1166,9 @@ class Receiver
case 'as:bcc': case 'as:bcc':
$type = self::TARGET_BCC; $type = self::TARGET_BCC;
break; break;
case 'as:audience':
$type = self::TARGET_AUDIENCE;
break;
} }
$receivers[$contact['uid']] = ['uid' => $contact['uid'], 'type' => $type]; $receivers[$contact['uid']] = ['uid' => $contact['uid'], 'type' => $type];

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2023.06-dev\n" "Project-Id-Version: 2023.06-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-20 07:48-0400\n" "POT-Creation-Date: 2023-04-23 21:21+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"
@ -294,7 +294,7 @@ msgstr ""
#: mod/message.php:202 mod/message.php:358 mod/photos.php:1291 #: mod/message.php:202 mod/message.php:358 mod/photos.php:1291
#: src/Content/Conversation.php:389 src/Content/Conversation.php:733 #: src/Content/Conversation.php:389 src/Content/Conversation.php:733
#: src/Module/Item/Compose.php:204 src/Module/Post/Edit.php:145 #: src/Module/Item/Compose.php:204 src/Module/Post/Edit.php:145
#: src/Module/Profile/UnkMail.php:154 src/Object/Post.php:545 #: src/Module/Profile/UnkMail.php:154 src/Object/Post.php:550
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""
@ -311,7 +311,7 @@ msgstr ""
#: src/Module/Install.php:309 src/Module/Invite.php:178 #: src/Module/Install.php:309 src/Module/Invite.php:178
#: src/Module/Item/Compose.php:189 src/Module/Moderation/Item/Source.php:79 #: src/Module/Item/Compose.php:189 src/Module/Moderation/Item/Source.php:79
#: src/Module/Profile/Profile.php:274 src/Module/Profile/UnkMail.php:155 #: src/Module/Profile/Profile.php:274 src/Module/Profile/UnkMail.php:155
#: src/Module/Settings/Profile/Index.php:230 src/Object/Post.php:1058 #: src/Module/Settings/Profile/Index.php:230 src/Object/Post.php:1063
#: view/theme/duepuntozero/config.php:85 view/theme/frio/config.php:171 #: view/theme/duepuntozero/config.php:85 view/theme/frio/config.php:171
#: view/theme/quattro/config.php:87 view/theme/vier/config.php:135 #: view/theme/quattro/config.php:87 view/theme/vier/config.php:135
msgid "Submit" msgid "Submit"
@ -596,28 +596,28 @@ msgstr ""
#: mod/photos.php:1135 mod/photos.php:1191 mod/photos.php:1265 #: mod/photos.php:1135 mod/photos.php:1191 mod/photos.php:1265
#: src/Module/Contact.php:588 src/Module/Item/Compose.php:188 #: src/Module/Contact.php:588 src/Module/Item/Compose.php:188
#: src/Object/Post.php:1055 #: src/Object/Post.php:1060
msgid "This is you" msgid "This is you"
msgstr "" msgstr ""
#: mod/photos.php:1137 mod/photos.php:1193 mod/photos.php:1267 #: mod/photos.php:1137 mod/photos.php:1193 mod/photos.php:1267
#: src/Object/Post.php:539 src/Object/Post.php:1057 #: src/Object/Post.php:544 src/Object/Post.php:1062
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: mod/photos.php:1139 mod/photos.php:1195 mod/photos.php:1269 #: mod/photos.php:1139 mod/photos.php:1195 mod/photos.php:1269
#: src/Content/Conversation.php:404 src/Module/Calendar/Event/Form.php:248 #: src/Content/Conversation.php:404 src/Module/Calendar/Event/Form.php:248
#: src/Module/Item/Compose.php:199 src/Module/Post/Edit.php:165 #: src/Module/Item/Compose.php:199 src/Module/Post/Edit.php:165
#: src/Object/Post.php:1069 #: src/Object/Post.php:1074
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: mod/photos.php:1140 src/Content/Conversation.php:359 #: mod/photos.php:1140 src/Content/Conversation.php:359
#: src/Module/Post/Edit.php:130 src/Object/Post.php:1059 #: src/Module/Post/Edit.php:130 src/Object/Post.php:1064
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
#: mod/photos.php:1226 src/Content/Conversation.php:649 src/Object/Post.php:256 #: mod/photos.php:1226 src/Content/Conversation.php:649 src/Object/Post.php:257
msgid "Select" msgid "Select"
msgstr "" msgstr ""
@ -629,19 +629,19 @@ msgstr ""
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: mod/photos.php:1288 src/Object/Post.php:384 #: mod/photos.php:1288 src/Object/Post.php:385
msgid "Like" msgid "Like"
msgstr "" msgstr ""
#: mod/photos.php:1289 src/Object/Post.php:384 #: mod/photos.php:1289 src/Object/Post.php:385
msgid "I like this (toggle)" msgid "I like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1290 src/Object/Post.php:385 #: mod/photos.php:1290 src/Object/Post.php:386
msgid "Dislike" msgid "Dislike"
msgstr "" msgstr ""
#: mod/photos.php:1292 src/Object/Post.php:385 #: mod/photos.php:1292 src/Object/Post.php:386
msgid "I don't like this (toggle)" msgid "I don't like this (toggle)"
msgstr "" msgstr ""
@ -770,7 +770,7 @@ msgstr ""
msgid "All contacts" msgid "All contacts"
msgstr "" msgstr ""
#: src/BaseModule.php:432 src/Content/Widget.php:239 src/Core/ACL.php:194 #: src/BaseModule.php:432 src/Content/Widget.php:239 src/Core/ACL.php:195
#: src/Module/Contact.php:407 src/Module/PermissionTooltip.php:127 #: src/Module/Contact.php:407 src/Module/PermissionTooltip.php:127
#: src/Module/PermissionTooltip.php:149 #: src/Module/PermissionTooltip.php:149
msgid "Followers" msgid "Followers"
@ -1213,7 +1213,7 @@ msgid "Visible to <strong>everybody</strong>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:329 src/Module/Item/Compose.php:198 #: src/Content/Conversation.php:329 src/Module/Item/Compose.php:198
#: src/Object/Post.php:1068 #: src/Object/Post.php:1073
msgid "Please enter a image/video/audio/webpage URL:" msgid "Please enter a image/video/audio/webpage URL:"
msgstr "" msgstr ""
@ -1258,42 +1258,42 @@ msgid "attach file"
msgstr "" msgstr ""
#: src/Content/Conversation.php:364 src/Module/Item/Compose.php:190 #: src/Content/Conversation.php:364 src/Module/Item/Compose.php:190
#: src/Module/Post/Edit.php:171 src/Object/Post.php:1060 #: src/Module/Post/Edit.php:171 src/Object/Post.php:1065
msgid "Bold" msgid "Bold"
msgstr "" msgstr ""
#: src/Content/Conversation.php:365 src/Module/Item/Compose.php:191 #: src/Content/Conversation.php:365 src/Module/Item/Compose.php:191
#: src/Module/Post/Edit.php:172 src/Object/Post.php:1061 #: src/Module/Post/Edit.php:172 src/Object/Post.php:1066
msgid "Italic" msgid "Italic"
msgstr "" msgstr ""
#: src/Content/Conversation.php:366 src/Module/Item/Compose.php:192 #: src/Content/Conversation.php:366 src/Module/Item/Compose.php:192
#: src/Module/Post/Edit.php:173 src/Object/Post.php:1062 #: src/Module/Post/Edit.php:173 src/Object/Post.php:1067
msgid "Underline" msgid "Underline"
msgstr "" msgstr ""
#: src/Content/Conversation.php:367 src/Module/Item/Compose.php:193 #: src/Content/Conversation.php:367 src/Module/Item/Compose.php:193
#: src/Module/Post/Edit.php:174 src/Object/Post.php:1063 #: src/Module/Post/Edit.php:174 src/Object/Post.php:1068
msgid "Quote" msgid "Quote"
msgstr "" msgstr ""
#: src/Content/Conversation.php:368 src/Module/Item/Compose.php:194 #: src/Content/Conversation.php:368 src/Module/Item/Compose.php:194
#: src/Module/Post/Edit.php:175 src/Object/Post.php:1064 #: src/Module/Post/Edit.php:175 src/Object/Post.php:1069
msgid "Code" msgid "Code"
msgstr "" msgstr ""
#: src/Content/Conversation.php:369 src/Module/Item/Compose.php:195 #: src/Content/Conversation.php:369 src/Module/Item/Compose.php:195
#: src/Object/Post.php:1065 #: src/Object/Post.php:1070
msgid "Image" msgid "Image"
msgstr "" msgstr ""
#: src/Content/Conversation.php:370 src/Module/Item/Compose.php:196 #: src/Content/Conversation.php:370 src/Module/Item/Compose.php:196
#: src/Module/Post/Edit.php:176 src/Object/Post.php:1066 #: src/Module/Post/Edit.php:176 src/Object/Post.php:1071
msgid "Link" msgid "Link"
msgstr "" msgstr ""
#: src/Content/Conversation.php:371 src/Module/Item/Compose.php:197 #: src/Content/Conversation.php:371 src/Module/Item/Compose.php:197
#: src/Module/Post/Edit.php:177 src/Object/Post.php:1067 #: src/Module/Post/Edit.php:177 src/Object/Post.php:1072
msgid "Link or Media" msgid "Link or Media"
msgstr "" msgstr ""
@ -1355,25 +1355,25 @@ msgstr ""
msgid "Open Compose page" msgid "Open Compose page"
msgstr "" msgstr ""
#: src/Content/Conversation.php:677 src/Object/Post.php:243 #: src/Content/Conversation.php:677 src/Object/Post.php:244
msgid "Pinned item" msgid "Pinned item"
msgstr "" msgstr ""
#: src/Content/Conversation.php:693 src/Object/Post.php:491 #: src/Content/Conversation.php:693 src/Object/Post.php:496
#: src/Object/Post.php:492 #: src/Object/Post.php:497
#, php-format #, php-format
msgid "View %s's profile @ %s" msgid "View %s's profile @ %s"
msgstr "" msgstr ""
#: src/Content/Conversation.php:706 src/Object/Post.php:479 #: src/Content/Conversation.php:706 src/Object/Post.php:484
msgid "Categories:" msgid "Categories:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:707 src/Object/Post.php:480 #: src/Content/Conversation.php:707 src/Object/Post.php:485
msgid "Filed under:" msgid "Filed under:"
msgstr "" msgstr ""
#: src/Content/Conversation.php:715 src/Object/Post.php:505 #: src/Content/Conversation.php:715 src/Object/Post.php:510
#, php-format #, php-format
msgid "%s from %s" msgid "%s from %s"
msgstr "" msgstr ""
@ -1392,81 +1392,82 @@ msgstr ""
#: src/Content/Conversation.php:865 src/Content/Conversation.php:868 #: src/Content/Conversation.php:865 src/Content/Conversation.php:868
#: src/Content/Conversation.php:871 src/Content/Conversation.php:874 #: src/Content/Conversation.php:871 src/Content/Conversation.php:874
#: src/Content/Conversation.php:877
#, php-format #, php-format
msgid "You had been addressed (%s)." msgid "You had been addressed (%s)."
msgstr "" msgstr ""
#: src/Content/Conversation.php:877 #: src/Content/Conversation.php:880
#, php-format #, php-format
msgid "You are following %s." msgid "You are following %s."
msgstr "" msgstr ""
#: src/Content/Conversation.php:880 #: src/Content/Conversation.php:883
msgid "You subscribed to one or more tags in this post." msgid "You subscribed to one or more tags in this post."
msgstr "" msgstr ""
#: src/Content/Conversation.php:893 #: src/Content/Conversation.php:896
#, php-format #, php-format
msgid "%s reshared this." msgid "%s reshared this."
msgstr "" msgstr ""
#: src/Content/Conversation.php:895 #: src/Content/Conversation.php:898
msgid "Reshared" msgid "Reshared"
msgstr "" msgstr ""
#: src/Content/Conversation.php:895
#, php-format
msgid "Reshared by %s <%s>"
msgstr ""
#: src/Content/Conversation.php:898 #: src/Content/Conversation.php:898
#, php-format #, php-format
msgid "%s is participating in this thread." msgid "Reshared by %s <%s>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:901 #: src/Content/Conversation.php:901
msgid "Stored for general reasons" #, php-format
msgid "%s is participating in this thread."
msgstr "" msgstr ""
#: src/Content/Conversation.php:904 #: src/Content/Conversation.php:904
msgid "Stored for general reasons"
msgstr ""
#: src/Content/Conversation.php:907
msgid "Global post" msgid "Global post"
msgstr "" msgstr ""
#: src/Content/Conversation.php:907 #: src/Content/Conversation.php:910
msgid "Sent via an relay server" msgid "Sent via an relay server"
msgstr "" msgstr ""
#: src/Content/Conversation.php:907 #: src/Content/Conversation.php:910
#, php-format #, php-format
msgid "Sent via the relay server %s <%s>" msgid "Sent via the relay server %s <%s>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:910 #: src/Content/Conversation.php:913
msgid "Fetched" msgid "Fetched"
msgstr "" msgstr ""
#: src/Content/Conversation.php:910 #: src/Content/Conversation.php:913
#, php-format #, php-format
msgid "Fetched because of %s <%s>" msgid "Fetched because of %s <%s>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:913 #: src/Content/Conversation.php:916
msgid "Stored because of a child post to complete this thread." msgid "Stored because of a child post to complete this thread."
msgstr "" msgstr ""
#: src/Content/Conversation.php:916 #: src/Content/Conversation.php:919
msgid "Local delivery" msgid "Local delivery"
msgstr "" msgstr ""
#: src/Content/Conversation.php:919 #: src/Content/Conversation.php:922
msgid "Stored because of your activity (like, comment, star, ...)" msgid "Stored because of your activity (like, comment, star, ...)"
msgstr "" msgstr ""
#: src/Content/Conversation.php:922 #: src/Content/Conversation.php:925
msgid "Distributed" msgid "Distributed"
msgstr "" msgstr ""
#: src/Content/Conversation.php:925 #: src/Content/Conversation.php:928
msgid "Pushed to us" msgid "Pushed to us"
msgstr "" msgstr ""
@ -1600,7 +1601,7 @@ msgstr ""
msgid "show more" msgid "show more"
msgstr "" msgstr ""
#: src/Content/Item.php:326 src/Model/Item.php:2921 #: src/Content/Item.php:326 src/Model/Item.php:2922
msgid "event" msgid "event"
msgstr "" msgstr ""
@ -1608,7 +1609,7 @@ msgstr ""
msgid "status" msgid "status"
msgstr "" msgstr ""
#: src/Content/Item.php:335 src/Model/Item.php:2923 #: src/Content/Item.php:335 src/Model/Item.php:2924
#: src/Module/Post/Tag/Add.php:123 #: src/Module/Post/Tag/Add.php:123
msgid "photo" msgid "photo"
msgstr "" msgstr ""
@ -1671,7 +1672,7 @@ msgstr ""
msgid "Collapse" msgid "Collapse"
msgstr "" msgstr ""
#: src/Content/Item.php:432 src/Object/Post.php:460 #: src/Content/Item.php:432 src/Object/Post.php:465
msgid "Languages" msgid "Languages"
msgstr "" msgstr ""
@ -2014,8 +2015,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:956 src/Model/Item.php:3606 #: src/Content/Text/BBCode.php:956 src/Model/Item.php:3607
#: src/Model/Item.php:3612 src/Model/Item.php:3613 #: src/Model/Item.php:3613 src/Model/Item.php:3614
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -2262,64 +2263,64 @@ msgstr ""
msgid "Unfollow" msgid "Unfollow"
msgstr "" msgstr ""
#: src/Core/ACL.php:165 src/Module/Profile/Profile.php:269 #: src/Core/ACL.php:166 src/Module/Profile/Profile.php:269
msgid "Yourself" msgid "Yourself"
msgstr "" msgstr ""
#: src/Core/ACL.php:201 src/Module/PermissionTooltip.php:133 #: src/Core/ACL.php:202 src/Module/PermissionTooltip.php:133
#: src/Module/PermissionTooltip.php:155 #: src/Module/PermissionTooltip.php:155
msgid "Mutuals" msgid "Mutuals"
msgstr "" msgstr ""
#: src/Core/ACL.php:293 #: src/Core/ACL.php:294
msgid "Post to Email" msgid "Post to Email"
msgstr "" msgstr ""
#: src/Core/ACL.php:320 src/Module/PermissionTooltip.php:90 #: src/Core/ACL.php:321 src/Module/PermissionTooltip.php:90
#: src/Module/PermissionTooltip.php:201 #: src/Module/PermissionTooltip.php:201
msgid "Public" msgid "Public"
msgstr "" msgstr ""
#: src/Core/ACL.php:321 #: src/Core/ACL.php:322
msgid "" msgid ""
"This content will be shown to all your followers and can be seen in the " "This content will be shown to all your followers and can be seen in the "
"community pages and by anyone with its link." "community pages and by anyone with its link."
msgstr "" msgstr ""
#: src/Core/ACL.php:322 src/Module/PermissionTooltip.php:98 #: src/Core/ACL.php:323 src/Module/PermissionTooltip.php:98
msgid "Limited/Private" msgid "Limited/Private"
msgstr "" msgstr ""
#: src/Core/ACL.php:323 #: src/Core/ACL.php:324
msgid "" msgid ""
"This content will be shown only to the people in the first box, to the " "This content will be shown only to the people in the first box, to the "
"exception of the people mentioned in the second box. It won't appear " "exception of the people mentioned in the second box. It won't appear "
"anywhere public." "anywhere public."
msgstr "" msgstr ""
#: src/Core/ACL.php:323 #: src/Core/ACL.php:324
msgid "" msgid ""
"Start typing the name of a contact or a group to show a filtered list. You " "Start typing the name of a contact or a group to show a filtered list. You "
"can also mention the special groups \"Followers\" and \"Mutuals\"." "can also mention the special groups \"Followers\" and \"Mutuals\"."
msgstr "" msgstr ""
#: src/Core/ACL.php:324 #: src/Core/ACL.php:325
msgid "Show to:" msgid "Show to:"
msgstr "" msgstr ""
#: src/Core/ACL.php:325 #: src/Core/ACL.php:326
msgid "Except to:" msgid "Except to:"
msgstr "" msgstr ""
#: src/Core/ACL.php:326 src/Module/Post/Edit.php:154 #: src/Core/ACL.php:327 src/Module/Post/Edit.php:154
msgid "CC: email addresses" msgid "CC: email addresses"
msgstr "" msgstr ""
#: src/Core/ACL.php:327 src/Module/Post/Edit.php:160 #: src/Core/ACL.php:328 src/Module/Post/Edit.php:160
msgid "Example: bob@example.com, mary@example.com" msgid "Example: bob@example.com, mary@example.com"
msgstr "" msgstr ""
#: src/Core/ACL.php:328 #: src/Core/ACL.php:329
msgid "Connectors" msgid "Connectors"
msgstr "" msgstr ""
@ -3184,81 +3185,81 @@ msgstr ""
msgid "Edit groups" msgid "Edit groups"
msgstr "" msgstr ""
#: src/Model/Item.php:2022 #: src/Model/Item.php:2023
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "" msgstr ""
#: src/Model/Item.php:2925 #: src/Model/Item.php:2926
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: src/Model/Item.php:2927 #: src/Model/Item.php:2928
msgid "comment" msgid "comment"
msgstr "" msgstr ""
#: src/Model/Item.php:2930 src/Module/Post/Tag/Add.php:123 #: src/Model/Item.php:2931 src/Module/Post/Tag/Add.php:123
msgid "post" msgid "post"
msgstr "" msgstr ""
#: src/Model/Item.php:3092 #: src/Model/Item.php:3093
#, php-format #, php-format
msgid "%s is blocked" msgid "%s is blocked"
msgstr "" msgstr ""
#: src/Model/Item.php:3094 #: src/Model/Item.php:3095
#, php-format #, php-format
msgid "%s is ignored" msgid "%s is ignored"
msgstr "" msgstr ""
#: src/Model/Item.php:3096 #: src/Model/Item.php:3097
#, php-format #, php-format
msgid "Content from %s is collapsed" msgid "Content from %s is collapsed"
msgstr "" msgstr ""
#: src/Model/Item.php:3100 #: src/Model/Item.php:3101
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3518 #: src/Model/Item.php:3519
msgid "bytes" msgid "bytes"
msgstr "" msgstr ""
#: src/Model/Item.php:3549 #: src/Model/Item.php:3550
#, 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:3551 #: src/Model/Item.php:3552
#, 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:3556 #: src/Model/Item.php:3557
#, 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:3558 #: src/Model/Item.php:3559
#, 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:3560 #: src/Model/Item.php:3561
#, php-format #, php-format
msgid "Poll end: %s" msgid "Poll end: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3594 src/Model/Item.php:3595 #: src/Model/Item.php:3595 src/Model/Item.php:3596
msgid "View on separate page" msgid "View on separate page"
msgstr "" msgstr ""
@ -5740,7 +5741,7 @@ msgid "Only show blocked contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:362 src/Module/Contact.php:417 #: src/Module/Contact.php:362 src/Module/Contact.php:417
#: src/Object/Post.php:344 #: src/Object/Post.php:345
msgid "Ignored" msgid "Ignored"
msgstr "" msgstr ""
@ -6445,7 +6446,7 @@ msgstr ""
msgid "Posts that mention or involve you" msgid "Posts that mention or involve you"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:289 src/Object/Post.php:356 #: src/Module/Conversation/Network.php:289 src/Object/Post.php:357
msgid "Starred" msgid "Starred"
msgstr "" msgstr ""
@ -8267,6 +8268,16 @@ msgstr ""
msgid "<b>BCC:</b> %s<br>" msgid "<b>BCC:</b> %s<br>"
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:240
#, php-format
msgid "<b>Audience:</b> %s<br>"
msgstr ""
#: src/Module/PermissionTooltip.php:243
#, php-format
msgid "<b>Attributed To:</b> %s<br>"
msgstr ""
#: src/Module/Photo.php:129 #: src/Module/Photo.php:129
msgid "The Photo is not available." msgid "The Photo is not available."
msgstr "" msgstr ""
@ -11238,230 +11249,230 @@ msgstr ""
msgid "Connector Message" msgid "Connector Message"
msgstr "" msgstr ""
#: src/Object/Post.php:221 src/Object/Post.php:223 #: src/Object/Post.php:222 src/Object/Post.php:224
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: src/Object/Post.php:247 #: src/Object/Post.php:248
msgid "Delete globally" msgid "Delete globally"
msgstr "" msgstr ""
#: src/Object/Post.php:247 #: src/Object/Post.php:248
msgid "Remove locally" msgid "Remove locally"
msgstr "" msgstr ""
#: src/Object/Post.php:264 #: src/Object/Post.php:265
#, php-format #, php-format
msgid "Block %s" msgid "Block %s"
msgstr "" msgstr ""
#: src/Object/Post.php:269 #: src/Object/Post.php:270
#, php-format #, php-format
msgid "Ignore %s" msgid "Ignore %s"
msgstr "" msgstr ""
#: src/Object/Post.php:274 #: src/Object/Post.php:275
msgid "Save to folder" msgid "Save to folder"
msgstr "" msgstr ""
#: src/Object/Post.php:309 #: src/Object/Post.php:310
msgid "I will attend" msgid "I will attend"
msgstr "" msgstr ""
#: src/Object/Post.php:309 #: src/Object/Post.php:310
msgid "I will not attend" msgid "I will not attend"
msgstr "" msgstr ""
#: src/Object/Post.php:309 #: src/Object/Post.php:310
msgid "I might attend" msgid "I might attend"
msgstr "" msgstr ""
#: src/Object/Post.php:339 #: src/Object/Post.php:340
msgid "Ignore thread" msgid "Ignore thread"
msgstr "" msgstr ""
#: src/Object/Post.php:340 #: src/Object/Post.php:341
msgid "Unignore thread" msgid "Unignore thread"
msgstr "" msgstr ""
#: src/Object/Post.php:341 #: src/Object/Post.php:342
msgid "Toggle ignore status" msgid "Toggle ignore status"
msgstr "" msgstr ""
#: src/Object/Post.php:351 #: src/Object/Post.php:352
msgid "Add star" msgid "Add star"
msgstr "" msgstr ""
#: src/Object/Post.php:352 #: src/Object/Post.php:353
msgid "Remove star" msgid "Remove star"
msgstr "" msgstr ""
#: src/Object/Post.php:353 #: src/Object/Post.php:354
msgid "Toggle star status" msgid "Toggle star status"
msgstr "" msgstr ""
#: src/Object/Post.php:364 #: src/Object/Post.php:365
msgid "Pin" msgid "Pin"
msgstr "" msgstr ""
#: src/Object/Post.php:365 #: src/Object/Post.php:366
msgid "Unpin" msgid "Unpin"
msgstr "" msgstr ""
#: src/Object/Post.php:366 #: src/Object/Post.php:367
msgid "Toggle pin status" msgid "Toggle pin status"
msgstr "" msgstr ""
#: src/Object/Post.php:369 #: src/Object/Post.php:370
msgid "Pinned" msgid "Pinned"
msgstr "" msgstr ""
#: src/Object/Post.php:374 #: src/Object/Post.php:375
msgid "Add tag" msgid "Add tag"
msgstr "" msgstr ""
#: src/Object/Post.php:387 #: src/Object/Post.php:388
msgid "Quote share this" msgid "Quote share this"
msgstr "" msgstr ""
#: src/Object/Post.php:387 #: src/Object/Post.php:388
msgid "Quote Share" msgid "Quote Share"
msgstr "" msgstr ""
#: src/Object/Post.php:390 #: src/Object/Post.php:391
msgid "Reshare this" msgid "Reshare this"
msgstr "" msgstr ""
#: src/Object/Post.php:390 #: src/Object/Post.php:391
msgid "Reshare" msgid "Reshare"
msgstr "" msgstr ""
#: src/Object/Post.php:391 #: src/Object/Post.php:392
msgid "Cancel your Reshare" msgid "Cancel your Reshare"
msgstr "" msgstr ""
#: src/Object/Post.php:391 #: src/Object/Post.php:392
msgid "Unshare" msgid "Unshare"
msgstr "" msgstr ""
#: src/Object/Post.php:438 #: src/Object/Post.php:443
#, php-format #, php-format
msgid "%s (Received %s)" msgid "%s (Received %s)"
msgstr "" msgstr ""
#: src/Object/Post.php:443 #: src/Object/Post.php:448
msgid "Comment this item on your system" msgid "Comment this item on your system"
msgstr "" msgstr ""
#: src/Object/Post.php:443 #: src/Object/Post.php:448
msgid "Remote comment" msgid "Remote comment"
msgstr "" msgstr ""
#: src/Object/Post.php:464 #: src/Object/Post.php:469
msgid "Share via ..." msgid "Share via ..."
msgstr "" msgstr ""
#: src/Object/Post.php:464 #: src/Object/Post.php:469
msgid "Share via external services" msgid "Share via external services"
msgstr "" msgstr ""
#: src/Object/Post.php:493 #: src/Object/Post.php:498
msgid "to" msgid "to"
msgstr "" msgstr ""
#: src/Object/Post.php:494 #: src/Object/Post.php:499
msgid "via" msgid "via"
msgstr "" msgstr ""
#: src/Object/Post.php:495 #: src/Object/Post.php:500
msgid "Wall-to-Wall" msgid "Wall-to-Wall"
msgstr "" msgstr ""
#: src/Object/Post.php:496 #: src/Object/Post.php:501
msgid "via Wall-To-Wall:" msgid "via Wall-To-Wall:"
msgstr "" msgstr ""
#: src/Object/Post.php:540 #: src/Object/Post.php:545
#, php-format #, php-format
msgid "Reply to %s" msgid "Reply to %s"
msgstr "" msgstr ""
#: src/Object/Post.php:543 #: src/Object/Post.php:548
msgid "More" msgid "More"
msgstr "" msgstr ""
#: src/Object/Post.php:561 #: src/Object/Post.php:566
msgid "Notifier task is pending" msgid "Notifier task is pending"
msgstr "" msgstr ""
#: src/Object/Post.php:562 #: src/Object/Post.php:567
msgid "Delivery to remote servers is pending" msgid "Delivery to remote servers is pending"
msgstr "" msgstr ""
#: src/Object/Post.php:563 #: src/Object/Post.php:568
msgid "Delivery to remote servers is underway" msgid "Delivery to remote servers is underway"
msgstr "" msgstr ""
#: src/Object/Post.php:564 #: src/Object/Post.php:569
msgid "Delivery to remote servers is mostly done" msgid "Delivery to remote servers is mostly done"
msgstr "" msgstr ""
#: src/Object/Post.php:565 #: src/Object/Post.php:570
msgid "Delivery to remote servers is done" msgid "Delivery to remote servers is done"
msgstr "" msgstr ""
#: src/Object/Post.php:585 #: src/Object/Post.php:590
#, php-format #, php-format
msgid "%d comment" msgid "%d comment"
msgid_plural "%d comments" msgid_plural "%d comments"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Object/Post.php:586 #: src/Object/Post.php:591
msgid "Show more" msgid "Show more"
msgstr "" msgstr ""
#: src/Object/Post.php:587 #: src/Object/Post.php:592
msgid "Show fewer" msgid "Show fewer"
msgstr "" msgstr ""
#: src/Object/Post.php:623
#, php-format
msgid "Reshared by: %s"
msgstr ""
#: src/Object/Post.php:628 #: src/Object/Post.php:628
#, php-format #, php-format
msgid "Viewed by: %s" msgid "Reshared by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:633 #: src/Object/Post.php:633
#, php-format #, php-format
msgid "Liked by: %s" msgid "Viewed by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:638 #: src/Object/Post.php:638
#, php-format #, php-format
msgid "Disliked by: %s" msgid "Liked by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:643 #: src/Object/Post.php:643
#, php-format #, php-format
msgid "Attended by: %s" msgid "Disliked by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:648 #: src/Object/Post.php:648
#, php-format #, php-format
msgid "Maybe attended by: %s" msgid "Attended by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:653 #: src/Object/Post.php:653
#, php-format #, php-format
msgid "Not attended by: %s" msgid "Maybe attended by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:658 #: src/Object/Post.php:658
#, php-format #, php-format
msgid "Not attended by: %s"
msgstr ""
#: src/Object/Post.php:663
#, php-format
msgid "Reacted with %s by: %s" msgid "Reacted with %s by: %s"
msgstr "" msgstr ""