Meaningful notification message

This commit is contained in:
Michael 2021-08-19 13:58:55 +00:00
parent f0bb83c225
commit 6899d3c618
4 changed files with 321 additions and 98 deletions

View File

@ -175,7 +175,7 @@ class Plaintext
} }
} }
$html = BBCode::convert($post['text'] . ($post['after'] ?? ''), false, $htmlmode); $html = BBCode::convertForUriId($item['uri-id'], $post['text'] . ($post['after'] ?? ''), $htmlmode);
$msg = HTML::toPlaintext($html, 0, true); $msg = HTML::toPlaintext($html, 0, true);
$msg = trim(html_entity_decode($msg, ENT_QUOTES, 'UTF-8')); $msg = trim(html_entity_decode($msg, ENT_QUOTES, 'UTF-8'));

View File

@ -23,7 +23,10 @@ namespace Friendica\Model;
use Friendica\BaseModel; use Friendica\BaseModel;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\Plaintext;
use Friendica\Core\Logger;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\DI;
use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@ -135,7 +138,7 @@ class Notification extends BaseModel
{ {
if (($notification['vid'] == Verb::getID(Activity::FOLLOW)) && ($notification['type'] == Post\UserNotification::NOTIF_NONE)) { if (($notification['vid'] == Verb::getID(Activity::FOLLOW)) && ($notification['type'] == Post\UserNotification::NOTIF_NONE)) {
$contact = Contact::getById($notification['actor-id'], ['pending']); $contact = Contact::getById($notification['actor-id'], ['pending']);
$contact['pending'] ? $type = 'follow_request' : 'follow'; $type = $contact['pending'] ? 'follow_request' : 'follow';
} elseif (($notification['vid'] == Verb::getID(Activity::ANNOUNCE)) && } elseif (($notification['vid'] == Verb::getID(Activity::ANNOUNCE)) &&
in_array($notification['type'], [Post\UserNotification::NOTIF_DIRECT_COMMENT, Post\UserNotification::NOTIF_DIRECT_THREAD_COMMENT])) { in_array($notification['type'], [Post\UserNotification::NOTIF_DIRECT_COMMENT, Post\UserNotification::NOTIF_DIRECT_THREAD_COMMENT])) {
$type = 'reblog'; $type = 'reblog';
@ -154,4 +157,154 @@ class Notification extends BaseModel
return $type; return $type;
} }
/**
* Create a notification message for the given notification
*
* @param array $notification
* @return array with the elements "plain" for plaintext and "rich" for richtext
*/
public static function getMessage(array $notification)
{
$message = [];
if ($notification['type'] == Post\UserNotification::NOTIF_NONE) {
return $message;
}
if (empty($notification['target-uri-id'])) {
return $message;
}
$user = User::getById($notification['uid']);
if (empty($user)) {
Logger::info('User not found', ['application' => $notification['uid']]);
return $message;
}
$contact = Contact::getById($notification['actor-id']);
if (empty($contact)) {
Logger::info('Contact not found', ['contact' => $notification['actor-id']]);
return $message;
}
$like = Verb::getID(Activity::LIKE);
$dislike = Verb::getID(Activity::DISLIKE);
$announce = Verb::getID(Activity::ANNOUNCE);
$post = Verb::getID(Activity::POST);
if (in_array($notification['type'], [Post\UserNotification::NOTIF_THREAD_COMMENT, Post\UserNotification::NOTIF_COMMENT_PARTICIPATION])) {
$item = Post::selectFirst([], ['uri-id' => $notification['parent-uri-id'], 'uid' => [0, $notification['uid']]]);
if (empty($item)) {
Logger::info('Parent post not found', ['uri-id' => $notification['parent-uri-id']]);
return $message;
}
} else {
$item = Post::selectFirst([], ['uri-id' => $notification['target-uri-id'], 'uid' => [0, $notification['uid']]]);
if (empty($item)) {
Logger::info('Post not found', ['uri-id' => $notification['target-uri-id']]);
return $message;
}
if ($notification['vid'] == $post) {
$item = Post::selectFirst([], ['uri-id' => $item['thr-parent-id'], 'uid' => [0, $notification['uid']]]);
if (empty($item)) {
Logger::info('Thread parent post not found', ['uri-id' => $item['thr-parent-id']]);
return $message;
}
}
}
$link = DI::baseUrl() . '/display/' . urlencode($item['guid']);
$content = Plaintext::getPost($item, 70);
if (!empty($content['text'])) {
$title = '"' . trim(str_replace("\n", " ", $content['text'])) . '"';
} else {
$title = '';
}
$l10n = DI::l10n()->withLang($user['language']);
switch ($notification['vid']) {
case $like:
switch ($notification['type']) {
case Post\UserNotification::NOTIF_DIRECT_COMMENT:
$msg = $l10n->t('%1$s liked your comment %2$s');
break;
case Post\UserNotification::NOTIF_DIRECT_THREAD_COMMENT:
$msg = $l10n->t('%1$s liked your post %2$s');
break;
}
break;
case $dislike:
switch ($notification['type']) {
case Post\UserNotification::NOTIF_DIRECT_COMMENT:
$msg = $l10n->t('%1$s disliked your comment %2$s');
break;
case Post\UserNotification::NOTIF_DIRECT_THREAD_COMMENT:
$msg = $l10n->t('%1$s disliked your post %2$s');
break;
}
break;
case $announce:
switch ($notification['type']) {
case Post\UserNotification::NOTIF_DIRECT_COMMENT:
$msg = $l10n->t('%1$s shared your comment %2$s');
break;
case Post\UserNotification::NOTIF_DIRECT_THREAD_COMMENT:
$msg = $l10n->t('%1$s shared your post %2$s');
break;
}
break;
case $post:
switch ($notification['type']) {
case Post\UserNotification::NOTIF_EXPLICIT_TAGGED:
$msg = $l10n->t('%1$s tagged you on %2$s');
break;
case Post\UserNotification::NOTIF_IMPLICIT_TAGGED:
$msg = $l10n->t('%1$s replied to you on %2$s');
break;
case Post\UserNotification::NOTIF_THREAD_COMMENT:
$msg = $l10n->t('%1$s commented in your thread %2$s');
break;
case Post\UserNotification::NOTIF_DIRECT_COMMENT:
$msg = $l10n->t('%1$s commented on your comment %2$s');
break;
case Post\UserNotification::NOTIF_COMMENT_PARTICIPATION:
$msg = $l10n->t('%1$s commented in the thread %2$s');
break;
case Post\UserNotification::NOTIF_ACTIVITY_PARTICIPATION:
// Unhandled
break;
case Post\UserNotification::NOTIF_DIRECT_THREAD_COMMENT:
$msg = $l10n->t('%1$s commented on your thread %2$s');
break;
case Post\UserNotification::NOTIF_SHARED:
if ($title != '') {
$msg = $l10n->t('%1$s shared the post %2$s');
} else {
$msg = $l10n->t('%1$s shared a post');
}
break;
}
break;
}
if (!empty($msg)) {
$message['plain'] = sprintf($msg, $contact['name'], $title);
$message['rich'] = sprintf($msg,
'[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]',
'[url=' . $link . ']' . $title . '[/url]');
}
return $message;
}
} }

View File

@ -82,8 +82,8 @@ class PushSubscription
} }
} }
// @todo Add a meaningful title here, see the functionality in enotify.php $message = Notification::getMessage($notification);
$title = ''; $title = $message['plain'] ?: '';
$push = Subscription::create([ $push = Subscription::create([
'contentEncoding' => 'aesgcm', 'contentEncoding' => 'aesgcm',

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2021.09-dev\n" "Project-Id-Version: 2021.09-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-08-17 08:39+0200\n" "POT-Creation-Date: 2021-08-19 13:57+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"
@ -37,8 +37,8 @@ msgstr[1] ""
msgid "Monthly posting limit of %d post reached. The post was rejected." msgid "Monthly posting limit of %d post reached. The post was rejected."
msgstr "" msgstr ""
#: include/api.php:4437 mod/photos.php:86 mod/photos.php:195 mod/photos.php:623 #: include/api.php:4437 mod/photos.php:89 mod/photos.php:198 mod/photos.php:626
#: mod/photos.php:1031 mod/photos.php:1048 mod/photos.php:1594 #: mod/photos.php:1034 mod/photos.php:1051 mod/photos.php:1597
#: src/Model/User.php:1112 src/Model/User.php:1120 src/Model/User.php:1128 #: src/Model/User.php:1112 src/Model/User.php:1120 src/Model/User.php:1128
#: src/Module/Settings/Profile/Photo/Crop.php:101 #: src/Module/Settings/Profile/Photo/Crop.php:101
#: src/Module/Settings/Profile/Photo/Crop.php:117 #: src/Module/Settings/Profile/Photo/Crop.php:117
@ -71,11 +71,11 @@ msgstr ""
msgid "%1$s tagged %2$s's %3$s with %4$s" msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "" msgstr ""
#: include/conversation.php:467 mod/photos.php:1456 src/Object/Post.php:226 #: include/conversation.php:467 mod/photos.php:1459 src/Object/Post.php:226
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: include/conversation.php:468 mod/photos.php:1457 mod/settings.php:574 #: include/conversation.php:468 mod/photos.php:1460 mod/settings.php:574
#: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140 #: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
#: src/Module/Admin/Users/Index.php:153 src/Module/Contact.php:849 #: src/Module/Admin/Users/Index.php:153 src/Module/Contact.php:849
#: src/Module/Contact.php:1140 #: src/Module/Contact.php:1140
@ -106,7 +106,7 @@ msgstr ""
#: include/conversation.php:541 include/conversation.php:1143 #: include/conversation.php:541 include/conversation.php:1143
#: mod/editpost.php:107 mod/message.php:203 mod/message.php:368 #: mod/editpost.php:107 mod/message.php:203 mod/message.php:368
#: mod/photos.php:1521 mod/wallmessage.php:155 src/Module/Item/Compose.php:165 #: mod/photos.php:1524 mod/wallmessage.php:155 src/Module/Item/Compose.php:165
#: src/Object/Post.php:501 #: src/Object/Post.php:501
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""
@ -364,7 +364,7 @@ msgstr ""
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: include/conversation.php:1114 mod/editpost.php:92 mod/photos.php:1370 #: include/conversation.php:1114 mod/editpost.php:92 mod/photos.php:1373
#: src/Module/Contact/Poke.php:157 src/Object/Post.php:963 #: src/Module/Contact/Poke.php:157 src/Object/Post.php:963
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
@ -466,7 +466,7 @@ msgid "Permission settings"
msgstr "" msgstr ""
#: include/conversation.php:1145 mod/editpost.php:136 mod/events.php:583 #: include/conversation.php:1145 mod/editpost.php:136 mod/events.php:583
#: mod/photos.php:962 mod/photos.php:1323 #: mod/photos.php:965 mod/photos.php:1326
msgid "Permissions" msgid "Permissions"
msgstr "" msgstr ""
@ -475,15 +475,15 @@ msgid "Public post"
msgstr "" msgstr ""
#: include/conversation.php:1158 mod/editpost.php:128 mod/events.php:578 #: include/conversation.php:1158 mod/editpost.php:128 mod/events.php:578
#: mod/photos.php:1369 mod/photos.php:1425 mod/photos.php:1499 #: mod/photos.php:1372 mod/photos.php:1428 mod/photos.php:1502
#: src/Module/Item/Compose.php:160 src/Object/Post.php:973 #: src/Module/Item/Compose.php:160 src/Object/Post.php:973
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: include/conversation.php:1161 mod/editpost.php:130 mod/fbrowser.php:105 #: include/conversation.php:1161 mod/editpost.php:130 mod/fbrowser.php:105
#: mod/fbrowser.php:134 mod/follow.php:145 mod/photos.php:1025 #: mod/fbrowser.php:134 mod/follow.php:145 mod/photos.php:1028
#: mod/photos.php:1131 mod/tagrm.php:37 mod/tagrm.php:129 mod/unfollow.php:97 #: mod/photos.php:1134 mod/tagrm.php:37 mod/tagrm.php:129 mod/unfollow.php:97
#: src/Module/Contact.php:422 src/Module/RemoteFollow.php:112 #: src/Module/Contact.php:422 src/Module/RemoteFollow.php:116
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@ -829,7 +829,7 @@ msgstr ""
#: mod/api.php:30 mod/editpost.php:38 mod/events.php:236 mod/follow.php:56 #: mod/api.php:30 mod/editpost.php:38 mod/events.php:236 mod/follow.php:56
#: mod/follow.php:131 mod/item.php:184 mod/item.php:189 mod/item.php:934 #: mod/follow.php:131 mod/item.php:184 mod/item.php:189 mod/item.php:934
#: mod/message.php:69 mod/message.php:111 mod/notes.php:44 #: mod/message.php:69 mod/message.php:111 mod/notes.php:44
#: mod/ostatus_subscribe.php:32 mod/photos.php:160 mod/photos.php:914 #: mod/ostatus_subscribe.php:32 mod/photos.php:163 mod/photos.php:917
#: mod/repair_ostatus.php:31 mod/settings.php:47 mod/settings.php:57 #: mod/repair_ostatus.php:31 mod/settings.php:47 mod/settings.php:57
#: mod/settings.php:415 mod/suggest.php:34 mod/uimport.php:32 #: mod/settings.php:415 mod/suggest.php:34 mod/uimport.php:32
#: mod/unfollow.php:35 mod/unfollow.php:50 mod/unfollow.php:82 #: mod/unfollow.php:35 mod/unfollow.php:50 mod/unfollow.php:82
@ -869,12 +869,12 @@ msgstr ""
msgid "Access denied." msgid "Access denied."
msgstr "" msgstr ""
#: mod/cal.php:61 mod/cal.php:78 mod/photos.php:140 mod/photos.php:821 #: mod/cal.php:61 mod/cal.php:78 mod/photos.php:69 mod/photos.php:143
#: mod/videos.php:49 mod/videos.php:70 mod/videos.php:111 #: mod/photos.php:824 mod/videos.php:49 mod/videos.php:70 mod/videos.php:111
#: src/Module/HCard.php:54 src/Module/Profile/Common.php:41 #: src/Module/HCard.php:54 src/Module/Profile/Common.php:41
#: src/Module/Profile/Common.php:52 src/Module/Profile/Contacts.php:40 #: src/Module/Profile/Common.php:52 src/Module/Profile/Contacts.php:40
#: src/Module/Profile/Contacts.php:50 src/Module/Profile/Status.php:58 #: src/Module/Profile/Contacts.php:50 src/Module/Profile/Status.php:58
#: src/Module/Register.php:254 #: src/Module/Register.php:254 src/Module/RemoteFollow.php:49
msgid "User not found." msgid "User not found."
msgstr "" msgstr ""
@ -945,7 +945,7 @@ msgstr ""
msgid "calendar" msgid "calendar"
msgstr "" msgstr ""
#: mod/display.php:165 mod/photos.php:825 mod/videos.php:115 #: mod/display.php:165 mod/photos.php:828 mod/videos.php:115
#: src/Module/Conversation/Community.php:176 src/Module/Debug/Probe.php:39 #: src/Module/Conversation/Community.php:176 src/Module/Debug/Probe.php:39
#: src/Module/Debug/WebFinger.php:38 src/Module/Directory.php:49 #: src/Module/Debug/WebFinger.php:38 src/Module/Directory.php:49
#: src/Module/Search/Index.php:50 src/Module/Search/Index.php:55 #: src/Module/Search/Index.php:50 src/Module/Search/Index.php:55
@ -1082,8 +1082,8 @@ msgid "Share this event"
msgstr "" msgstr ""
#: mod/events.php:580 mod/message.php:204 mod/message.php:367 #: mod/events.php:580 mod/message.php:204 mod/message.php:367
#: mod/photos.php:944 mod/photos.php:1042 mod/photos.php:1327 #: mod/photos.php:947 mod/photos.php:1045 mod/photos.php:1330
#: mod/photos.php:1368 mod/photos.php:1424 mod/photos.php:1498 #: mod/photos.php:1371 mod/photos.php:1427 mod/photos.php:1501
#: src/Module/Admin/Item/Source.php:65 src/Module/Contact.php:565 #: src/Module/Admin/Item/Source.php:65 src/Module/Contact.php:565
#: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158 #: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158
#: src/Module/Debug/ActivityPubConversion.php:141 #: src/Module/Debug/ActivityPubConversion.php:141
@ -1126,7 +1126,7 @@ msgstr ""
msgid "Files" msgid "Files"
msgstr "" msgstr ""
#: mod/follow.php:75 mod/unfollow.php:96 src/Module/RemoteFollow.php:111 #: mod/follow.php:75 mod/unfollow.php:96 src/Module/RemoteFollow.php:115
msgid "Submit Request" msgid "Submit Request"
msgstr "" msgstr ""
@ -1146,7 +1146,7 @@ msgstr ""
msgid "OStatus support is disabled. Contact can't be added." msgid "OStatus support is disabled. Contact can't be added."
msgstr "" msgstr ""
#: mod/follow.php:140 src/Module/RemoteFollow.php:110 #: mod/follow.php:140 src/Module/RemoteFollow.php:114
msgid "Please answer the following:" msgid "Please answer the following:"
msgstr "" msgstr ""
@ -1532,245 +1532,245 @@ msgstr ""
msgid "Keep this window open until done." msgid "Keep this window open until done."
msgstr "" msgstr ""
#: mod/photos.php:108 src/Module/BaseProfile.php:67 #: mod/photos.php:111 src/Module/BaseProfile.php:67
msgid "Photo Albums" msgid "Photo Albums"
msgstr "" msgstr ""
#: mod/photos.php:109 mod/photos.php:1623 #: mod/photos.php:112 mod/photos.php:1626
msgid "Recent Photos" msgid "Recent Photos"
msgstr "" msgstr ""
#: mod/photos.php:111 mod/photos.php:1093 mod/photos.php:1625 #: mod/photos.php:114 mod/photos.php:1096 mod/photos.php:1628
msgid "Upload New Photos" msgid "Upload New Photos"
msgstr "" msgstr ""
#: mod/photos.php:129 src/Module/BaseSettings.php:37 #: mod/photos.php:132 src/Module/BaseSettings.php:37
msgid "everybody" msgid "everybody"
msgstr "" msgstr ""
#: mod/photos.php:167 #: mod/photos.php:170
msgid "Contact information unavailable" msgid "Contact information unavailable"
msgstr "" msgstr ""
#: mod/photos.php:206 #: mod/photos.php:209
msgid "Album not found." msgid "Album not found."
msgstr "" msgstr ""
#: mod/photos.php:264 #: mod/photos.php:267
msgid "Album successfully deleted" msgid "Album successfully deleted"
msgstr "" msgstr ""
#: mod/photos.php:266 #: mod/photos.php:269
msgid "Album was empty." msgid "Album was empty."
msgstr "" msgstr ""
#: mod/photos.php:298 #: mod/photos.php:301
msgid "Failed to delete the photo." msgid "Failed to delete the photo."
msgstr "" msgstr ""
#: mod/photos.php:573 #: mod/photos.php:576
msgid "a photo" msgid "a photo"
msgstr "" msgstr ""
#: mod/photos.php:573 #: mod/photos.php:576
#, php-format #, php-format
msgid "%1$s was tagged in %2$s by %3$s" msgid "%1$s was tagged in %2$s by %3$s"
msgstr "" msgstr ""
#: mod/photos.php:656 mod/photos.php:659 mod/photos.php:686 #: mod/photos.php:659 mod/photos.php:662 mod/photos.php:689
#: mod/wall_upload.php:216 src/Module/Settings/Profile/Photo/Index.php:60 #: mod/wall_upload.php:216 src/Module/Settings/Profile/Photo/Index.php:60
#, php-format #, php-format
msgid "Image exceeds size limit of %s" msgid "Image exceeds size limit of %s"
msgstr "" msgstr ""
#: mod/photos.php:662 #: mod/photos.php:665
msgid "Image upload didn't complete, please try again" msgid "Image upload didn't complete, please try again"
msgstr "" msgstr ""
#: mod/photos.php:665 #: mod/photos.php:668
msgid "Image file is missing" msgid "Image file is missing"
msgstr "" msgstr ""
#: mod/photos.php:670 #: mod/photos.php:673
msgid "" msgid ""
"Server can't accept new file upload at this time, please contact your " "Server can't accept new file upload at this time, please contact your "
"administrator" "administrator"
msgstr "" msgstr ""
#: mod/photos.php:694 #: mod/photos.php:697
msgid "Image file is empty." msgid "Image file is empty."
msgstr "" msgstr ""
#: mod/photos.php:709 mod/wall_upload.php:175 #: mod/photos.php:712 mod/wall_upload.php:175
#: src/Module/Settings/Profile/Photo/Index.php:69 #: src/Module/Settings/Profile/Photo/Index.php:69
msgid "Unable to process image." msgid "Unable to process image."
msgstr "" msgstr ""
#: mod/photos.php:738 mod/wall_upload.php:241 #: mod/photos.php:741 mod/wall_upload.php:241
#: src/Module/Settings/Profile/Photo/Index.php:96 #: src/Module/Settings/Profile/Photo/Index.php:96
msgid "Image upload failed." msgid "Image upload failed."
msgstr "" msgstr ""
#: mod/photos.php:830 #: mod/photos.php:833
msgid "No photos selected" msgid "No photos selected"
msgstr "" msgstr ""
#: mod/photos.php:899 mod/videos.php:166 #: mod/photos.php:902 mod/videos.php:166
msgid "Access to this item is restricted." msgid "Access to this item is restricted."
msgstr "" msgstr ""
#: mod/photos.php:954 #: mod/photos.php:957
msgid "Upload Photos" msgid "Upload Photos"
msgstr "" msgstr ""
#: mod/photos.php:958 mod/photos.php:1038 #: mod/photos.php:961 mod/photos.php:1041
msgid "New album name: " msgid "New album name: "
msgstr "" msgstr ""
#: mod/photos.php:959 #: mod/photos.php:962
msgid "or select existing album:" msgid "or select existing album:"
msgstr "" msgstr ""
#: mod/photos.php:960 #: mod/photos.php:963
msgid "Do not show a status post for this upload" msgid "Do not show a status post for this upload"
msgstr "" msgstr ""
#: mod/photos.php:1021 #: mod/photos.php:1024
msgid "Do you really want to delete this photo album and all its photos?" msgid "Do you really want to delete this photo album and all its photos?"
msgstr "" msgstr ""
#: mod/photos.php:1022 mod/photos.php:1043 #: mod/photos.php:1025 mod/photos.php:1046
msgid "Delete Album" msgid "Delete Album"
msgstr "" msgstr ""
#: mod/photos.php:1049 #: mod/photos.php:1052
msgid "Edit Album" msgid "Edit Album"
msgstr "" msgstr ""
#: mod/photos.php:1050 #: mod/photos.php:1053
msgid "Drop Album" msgid "Drop Album"
msgstr "" msgstr ""
#: mod/photos.php:1055 #: mod/photos.php:1058
msgid "Show Newest First" msgid "Show Newest First"
msgstr "" msgstr ""
#: mod/photos.php:1057 #: mod/photos.php:1060
msgid "Show Oldest First" msgid "Show Oldest First"
msgstr "" msgstr ""
#: mod/photos.php:1078 mod/photos.php:1608 #: mod/photos.php:1081 mod/photos.php:1611
msgid "View Photo" msgid "View Photo"
msgstr "" msgstr ""
#: mod/photos.php:1115 #: mod/photos.php:1118
msgid "Permission denied. Access to this item may be restricted." msgid "Permission denied. Access to this item may be restricted."
msgstr "" msgstr ""
#: mod/photos.php:1117 #: mod/photos.php:1120
msgid "Photo not available" msgid "Photo not available"
msgstr "" msgstr ""
#: mod/photos.php:1127 #: mod/photos.php:1130
msgid "Do you really want to delete this photo?" msgid "Do you really want to delete this photo?"
msgstr "" msgstr ""
#: mod/photos.php:1128 mod/photos.php:1328 #: mod/photos.php:1131 mod/photos.php:1331
msgid "Delete Photo" msgid "Delete Photo"
msgstr "" msgstr ""
#: mod/photos.php:1219 #: mod/photos.php:1222
msgid "View photo" msgid "View photo"
msgstr "" msgstr ""
#: mod/photos.php:1221 #: mod/photos.php:1224
msgid "Edit photo" msgid "Edit photo"
msgstr "" msgstr ""
#: mod/photos.php:1222 #: mod/photos.php:1225
msgid "Delete photo" msgid "Delete photo"
msgstr "" msgstr ""
#: mod/photos.php:1223 #: mod/photos.php:1226
msgid "Use as profile photo" msgid "Use as profile photo"
msgstr "" msgstr ""
#: mod/photos.php:1230 #: mod/photos.php:1233
msgid "Private Photo" msgid "Private Photo"
msgstr "" msgstr ""
#: mod/photos.php:1236 #: mod/photos.php:1239
msgid "View Full Size" msgid "View Full Size"
msgstr "" msgstr ""
#: mod/photos.php:1296 #: mod/photos.php:1299
msgid "Tags: " msgid "Tags: "
msgstr "" msgstr ""
#: mod/photos.php:1299 #: mod/photos.php:1302
msgid "[Select tags to remove]" msgid "[Select tags to remove]"
msgstr "" msgstr ""
#: mod/photos.php:1314 #: mod/photos.php:1317
msgid "New album name" msgid "New album name"
msgstr "" msgstr ""
#: mod/photos.php:1315 #: mod/photos.php:1318
msgid "Caption" msgid "Caption"
msgstr "" msgstr ""
#: mod/photos.php:1316 #: mod/photos.php:1319
msgid "Add a Tag" msgid "Add a Tag"
msgstr "" msgstr ""
#: mod/photos.php:1316 #: mod/photos.php:1319
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "" msgstr ""
#: mod/photos.php:1317 #: mod/photos.php:1320
msgid "Do not rotate" msgid "Do not rotate"
msgstr "" msgstr ""
#: mod/photos.php:1318 #: mod/photos.php:1321
msgid "Rotate CW (right)" msgid "Rotate CW (right)"
msgstr "" msgstr ""
#: mod/photos.php:1319 #: mod/photos.php:1322
msgid "Rotate CCW (left)" msgid "Rotate CCW (left)"
msgstr "" msgstr ""
#: mod/photos.php:1365 mod/photos.php:1421 mod/photos.php:1495 #: mod/photos.php:1368 mod/photos.php:1424 mod/photos.php:1498
#: src/Module/Contact.php:1046 src/Module/Item/Compose.php:148 #: src/Module/Contact.php:1046 src/Module/Item/Compose.php:148
#: src/Object/Post.php:959 #: src/Object/Post.php:959
msgid "This is you" msgid "This is you"
msgstr "" msgstr ""
#: mod/photos.php:1367 mod/photos.php:1423 mod/photos.php:1497 #: mod/photos.php:1370 mod/photos.php:1426 mod/photos.php:1500
#: src/Object/Post.php:495 src/Object/Post.php:961 #: src/Object/Post.php:495 src/Object/Post.php:961
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: mod/photos.php:1518 src/Object/Post.php:348 #: mod/photos.php:1521 src/Object/Post.php:348
msgid "Like" msgid "Like"
msgstr "" msgstr ""
#: mod/photos.php:1519 src/Object/Post.php:348 #: mod/photos.php:1522 src/Object/Post.php:348
msgid "I like this (toggle)" msgid "I like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1520 src/Object/Post.php:349 #: mod/photos.php:1523 src/Object/Post.php:349
msgid "Dislike" msgid "Dislike"
msgstr "" msgstr ""
#: mod/photos.php:1522 src/Object/Post.php:349 #: mod/photos.php:1525 src/Object/Post.php:349
msgid "I don't like this (toggle)" msgid "I don't like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1544 #: mod/photos.php:1547
msgid "Map" msgid "Map"
msgstr "" msgstr ""
#: mod/photos.php:1614 mod/videos.php:243 #: mod/photos.php:1617 mod/videos.php:243
msgid "View Album" msgid "View Album"
msgstr "" msgstr ""
@ -3404,8 +3404,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:1177 src/Model/Item.php:3139 #: src/Content/Text/BBCode.php:1177 src/Model/Item.php:3141
#: src/Model/Item.php:3145 src/Model/Item.php:3146 #: src/Model/Item.php:3147 src/Model/Item.php:3148
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -4641,11 +4641,11 @@ msgstr ""
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3104 #: src/Model/Item.php:3106
msgid "bytes" msgid "bytes"
msgstr "" msgstr ""
#: src/Model/Item.php:3133 src/Model/Item.php:3134 #: src/Model/Item.php:3135 src/Model/Item.php:3136
msgid "View on separate page" msgid "View on separate page"
msgstr "" msgstr ""
@ -4653,6 +4653,76 @@ msgstr ""
msgid "[no subject]" msgid "[no subject]"
msgstr "" msgstr ""
#: src/Model/Notification.php:233
#, php-format
msgid "%1$s liked your comment %2$s"
msgstr ""
#: src/Model/Notification.php:236
#, php-format
msgid "%1$s liked your post %2$s"
msgstr ""
#: src/Model/Notification.php:243
#, php-format
msgid "%1$s disliked your comment %2$s"
msgstr ""
#: src/Model/Notification.php:246
#, php-format
msgid "%1$s disliked your post %2$s"
msgstr ""
#: src/Model/Notification.php:253
#, php-format
msgid "%1$s shared your comment %2$s"
msgstr ""
#: src/Model/Notification.php:256
#, php-format
msgid "%1$s shared your post %2$s"
msgstr ""
#: src/Model/Notification.php:263
#, php-format
msgid "%1$s tagged you on %2$s"
msgstr ""
#: src/Model/Notification.php:267
#, php-format
msgid "%1$s replied to you on %2$s"
msgstr ""
#: src/Model/Notification.php:271
#, php-format
msgid "%1$s commented in your thread %2$s"
msgstr ""
#: src/Model/Notification.php:275
#, php-format
msgid "%1$s commented on your comment %2$s"
msgstr ""
#: src/Model/Notification.php:279
#, php-format
msgid "%1$s commented in the thread %2$s"
msgstr ""
#: src/Model/Notification.php:287
#, php-format
msgid "%1$s commented on your thread %2$s"
msgstr ""
#: src/Model/Notification.php:292
#, php-format
msgid "%1$s shared the post %2$s"
msgstr ""
#: src/Model/Notification.php:294
#, php-format
msgid "%1$s shared a post"
msgstr ""
#: src/Model/Profile.php:346 src/Module/Profile/Profile.php:256 #: src/Model/Profile.php:346 src/Module/Profile/Profile.php:256
#: src/Module/Profile/Profile.php:258 #: src/Module/Profile/Profile.php:258
msgid "Edit profile" msgid "Edit profile"
@ -8948,29 +9018,29 @@ msgstr ""
msgid "Your registration is pending approval by the site owner." msgid "Your registration is pending approval by the site owner."
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:58 #: src/Module/RemoteFollow.php:62
msgid "Profile unavailable." msgid "Profile unavailable."
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:64 #: src/Module/RemoteFollow.php:68
msgid "Invalid locator" msgid "Invalid locator"
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:71 #: src/Module/RemoteFollow.php:75
msgid "The provided profile link doesn't seem to be valid" msgid "The provided profile link doesn't seem to be valid"
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:76 #: src/Module/RemoteFollow.php:80
msgid "" msgid ""
"Remote subscription can't be done for your network. Please subscribe " "Remote subscription can't be done for your network. Please subscribe "
"directly on your system." "directly on your system."
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:106 #: src/Module/RemoteFollow.php:110
msgid "Friend/Connection Request" msgid "Friend/Connection Request"
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:107 #: src/Module/RemoteFollow.php:111
#, php-format #, php-format
msgid "" msgid ""
"Enter your Webfinger address (user@domain.tld) or profile URL here. If this " "Enter your Webfinger address (user@domain.tld) or profile URL here. If this "
@ -8978,14 +9048,14 @@ msgid ""
"or <strong>%s</strong> directly on your system." "or <strong>%s</strong> directly on your system."
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:108 #: src/Module/RemoteFollow.php:112
#, php-format #, php-format
msgid "" msgid ""
"If you are not yet a member of the free social web, <a href=\"%s\">follow " "If you are not yet a member of the free social web, <a href=\"%s\">follow "
"this link to find a public Friendica node and join us today</a>." "this link to find a public Friendica node and join us today</a>."
msgstr "" msgstr ""
#: src/Module/RemoteFollow.php:109 #: src/Module/RemoteFollow.php:113
msgid "Your Webfinger address or profile URL:" msgid "Your Webfinger address or profile URL:"
msgstr "" msgstr ""
@ -10553,11 +10623,11 @@ msgstr ""
msgid "(no subject)" msgid "(no subject)"
msgstr "" msgstr ""
#: src/Worker/PushSubscription.php:100 #: src/Worker/PushSubscription.php:103
msgid "Notification from Friendica" msgid "Notification from Friendica"
msgstr "" msgstr ""
#: src/Worker/PushSubscription.php:101 #: src/Worker/PushSubscription.php:104
msgid "Empty Post" msgid "Empty Post"
msgstr "" msgstr ""