Merge remote-tracking branch 'upstream/develop' into user-contact

This commit is contained in:
Michael 2021-09-25 18:34:55 +00:00
commit 3fddf3807a
12 changed files with 157 additions and 60 deletions

View File

@ -15,6 +15,22 @@ steps:
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: Integrity checks
steps:
- name: Check database version
image: alpine
commands:
- export DBSTRUCTURE_VERSION="$(sed -rn "s/.*'DB_UPDATE_VERSION', ([0-9]+).*/\1/p" static/dbstructure.config.php)"
- export DATABASE_VERSION="$(sed -rn 's/.*DB_UPDATE_VERSION ([0-9]+).*/\1/p' database.sql)"
- echo "Database $DATABASE_VERSION - DB-Structure $DBSTRUCTURE_VERSION"
- if [[ "$DBSTRUCTURE_VERSION" != "$DATABASE_VERSION" ]]; then
echo "Database version mismatch.";
exit 1;
fi
---
kind: pipeline
type: docker
name: php7.3-lint name: php7.3-lint
steps: steps:

View File

@ -1,10 +1,60 @@
Version 2021.09 (unreleased) Version 2021.12 (unreleased)
Version 2021.09 (2021-09-25)
Friendica Core Friendica Core
Simplified the proxy mechanism. The proxy cache directory (/proxy) can now be removed [annando] Updates to the translation DE, FR, HU, RU [translation teams]
DFRN is now always handled with the Diaspora transport layer. The legacy DFRN transport layer is removed [annando] Updates to the documentation [foss-, nupplaphil]
Legacy OAuth server is removed [annando] General code cleanup [annando, MrPetovan, nupplaphil]
Scheduled posts are now possible [annando] Unification of setting label wordings towards activating something [heluecht]
The minimal PHP version in the composer is increased to version 7.2 [annando] Enhanced the proxy mechanism [annando]
Enhanced the desktop notifications [annando]
Enhanced the Mastodon compatible API [annando]
Enhanced the UI to follow new contacts [MrPetovan]
Enhanced remote AP follow of new contacts [annando]
Enhanced the installer [tobiasd]
Enhanced the handling of attachments by the addon hooks [MrPetovan]
Enhanced the federation with PeerTube [MrPetovan]
Enhanced the federation with Diaspora* [annando]
Enhanced the federation with Mastodon [MrPetovan, realkinetix]
Enhanced the interaction with items in various places [annando]
Enhanced the storage back-end handling [nupplaphil]
Enhanced the handling of zmg BBCode elements [annando]
Enhanced the display of logs in the admin panel [fabrixxm]
Fixed a bug in the L10n functions not showing plural forms [annando]
Fixed a bug in following IMAP accounts [annando]
Fixed a bug preventing photos to be deleted [annando]
Fixed a bug preventing the display of the accounts avatar [annando]
Fixed a bug preventing following accounts from profiles visited [annando]
Removed the legacy DFRN transport layer, DFRN is now always using the Diaspora* transport layer [annando]
Removed the legacy OAuth server [annando]
Bumped the minimal PHP version to 7.2
Added user option to control how postings are shortened [annando]
Added Persian to the possible detected languages of a postings [MrPetovan]
Added Matrix account profile field [annando]
Added scheduled postings [annando]
Added transmission of push subscriptions [annando]
Added the possibility to put the config files in a different directory [nupplaphil]
Friendica Addons
Updates to the translation JA, ZH CN [translation teams]
advancedcontentfilter
allow filtering by attachments [MrPetovan]
blockbot
some good guys and bad guys added [annando]
irc
switch from freenode to libera.chat [tobiasd]
langfilter
improved performance [annando]
nitter
handle mobile links as well [tobiasd]
improve settings [tobiasd]
rendertime
rename "Parser" to "session" [annando]
Closed Issues
6101, 8038, 9378, 9723, 9871, 10262, 10491, 10502, 10514, 10558,
10568, 10587, 10603, 10617, 10640, 10651, 10672, 10692, 10698,
10699, 10705
Version 2021.07 (2021-07-04) Version 2021.07 (2021-07-04)
Friendica Core Friendica Core
@ -17,7 +67,7 @@ Version 2021.07 (2021-07-04)
Enhanced the possibilities to download the calendar [annando] Enhanced the possibilities to download the calendar [annando]
Enhanced the Vagrant development box setup [fabrixxm] Enhanced the Vagrant development box setup [fabrixxm]
Enhanced the console commands [fabrixxm, mexon] Enhanced the console commands [fabrixxm, mexon]
Enhances the support of PHP8 [nupplaphil, MrPetovan] Enhanced the support of PHP8 [nupplaphil, MrPetovan]
Enhanced the link detection [annando] Enhanced the link detection [annando]
Enhanced the worker task display in the admin panel [tobiasd] Enhanced the worker task display in the admin panel [tobiasd]
Enhanced the installation wizard [tobiasd] Enhanced the installation wizard [tobiasd]

View File

@ -1 +1 @@
2021.09-rc 2021.12-dev

View File

@ -38,7 +38,7 @@ use Friendica\Util\DateTimeFormat;
define('FRIENDICA_PLATFORM', 'Friendica'); define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'Siberian Iris'); define('FRIENDICA_CODENAME', 'Siberian Iris');
define('FRIENDICA_VERSION', '2021.09-rc'); define('FRIENDICA_VERSION', '2021.12-dev');
define('DFRN_PROTOCOL_VERSION', '2.23'); define('DFRN_PROTOCOL_VERSION', '2.23');
define('NEW_TABLE_STRUCTURE_VERSION', 1288); define('NEW_TABLE_STRUCTURE_VERSION', 1288);

View File

@ -312,7 +312,7 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
. "'; </script>\r\n"; . "'; </script>\r\n";
} }
} elseif ($mode === 'profile') { } elseif ($mode === 'profile') {
$items = conversation_add_children($items, false, $order, $uid); $items = conversation_add_children($items, false, $order, local_user());
if (!$update) { if (!$update) {
$tab = 'posts'; $tab = 'posts';
@ -400,7 +400,7 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
$formSecurityToken = BaseModule::getFormSecurityToken('contact_action'); $formSecurityToken = BaseModule::getFormSecurityToken('contact_action');
if (!empty($items)) { if (!empty($items)) {
if (in_array($mode, ['community', 'contacts'])) { if (in_array($mode, ['community', 'contacts', 'profile'])) {
$writable = true; $writable = true;
} else { } else {
$writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], Protocol::FEDERATED); $writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], Protocol::FEDERATED);

View File

@ -44,10 +44,16 @@ class ContactBlock
* @hook contact_block_end (contacts=>array, output=>string) * @hook contact_block_end (contacts=>array, output=>string)
* @return string * @return string
*/ */
public static function getHTML(array $profile) public static function getHTML(array $profile, int $visitor_uid = null)
{ {
$o = ''; $o = '';
if (is_null($visitor_uid) || ($visitor_uid == $profile['uid'])) {
$contact_uid = $profile['uid'];
} else {
$contact_uid = 0;
}
$shown = DI::pConfig()->get($profile['uid'], 'system', 'display_friend_count', 24); $shown = DI::pConfig()->get($profile['uid'], 'system', 'display_friend_count', 24);
if ($shown == 0) { if ($shown == 0) {
return $o; return $o;
@ -82,7 +88,7 @@ class ContactBlock
$rel = [Contact::FOLLOWER, Contact::FRIEND]; $rel = [Contact::FOLLOWER, Contact::FRIEND];
} }
$contact_ids_stmt = DBA::select('contact', ['id'], [ $personal_contacts = DBA::selectToArray('contact', ['uri-id'], [
'uid' => $profile['uid'], 'uid' => $profile['uid'],
'self' => false, 'self' => false,
'blocked' => false, 'blocked' => false,
@ -93,13 +99,10 @@ class ContactBlock
'network' => Protocol::FEDERATED, 'network' => Protocol::FEDERATED,
], ['limit' => $shown]); ], ['limit' => $shown]);
if (DBA::isResult($contact_ids_stmt)) { $contact_uriids = array_column($personal_contacts, 'uri-id');
$contact_ids = [];
while($contact = DBA::fetch($contact_ids_stmt)) {
$contact_ids[] = $contact["id"];
}
$contacts_stmt = DBA::select('contact', ['id', 'uid', 'addr', 'url', 'name', 'thumb', 'avatar', 'network'], ['id' => $contact_ids]); if (!empty($contact_uriids)) {
$contacts_stmt = DBA::select('contact', ['id', 'uid', 'addr', 'url', 'name', 'thumb', 'avatar', 'network'], ['uri-id' => $contact_uriids, 'uid' => $contact_uid]);
if (DBA::isResult($contacts_stmt)) { if (DBA::isResult($contacts_stmt)) {
$contacts_title = DI::l10n()->tt('%d Contact', '%d Contacts', $total); $contacts_title = DI::l10n()->tt('%d Contact', '%d Contacts', $total);
@ -113,8 +116,6 @@ class ContactBlock
DBA::close($contacts_stmt); DBA::close($contacts_stmt);
} }
DBA::close($contact_ids_stmt);
} }
$tpl = Renderer::getMarkupTemplate('widget/contacts.tpl'); $tpl = Renderer::getMarkupTemplate('widget/contacts.tpl');

View File

@ -406,7 +406,7 @@ class Profile
} }
if (!$block && $show_contacts) { if (!$block && $show_contacts) {
$contact_block = ContactBlock::getHTML($profile); $contact_block = ContactBlock::getHTML($profile, local_user());
if (is_array($profile) && !$profile['hide-friends']) { if (is_array($profile) && !$profile['hide-friends']) {
$contact_count = DBA::count('contact', [ $contact_count = DBA::count('contact', [

View File

@ -80,7 +80,7 @@ class Thread
break; break;
case 'profile': case 'profile':
$this->profile_owner = $a->getProfileOwner(); $this->profile_owner = $a->getProfileOwner();
$this->writable = Security::canWriteToUserWall($this->profile_owner); $this->writable = Security::canWriteToUserWall($this->profile_owner) || $writable;
break; break;
case 'display': case 'display':
$this->profile_owner = $a->getProfileOwner(); $this->profile_owner = $a->getProfileOwner();

View File

@ -165,7 +165,7 @@ class JsonLD
} }
catch (Exception $e) { catch (Exception $e) {
$compacted = false; $compacted = false;
Logger::error('compacting error', ['line' => $e->getLine(), 'message' => $e->getMessage()]); Logger::notice('compacting error', ['line' => $e->getLine(), 'exception' => $e]);
} }
$json = json_decode(json_encode($compacted, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), true); $json = json_decode(json_encode($compacted, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), true);

View File

@ -1116,7 +1116,11 @@ class ParseUrl
} }
$content = JsonLD::fetchElement($jsonld, 'image', 'url', '@type', 'ImageObject'); $content = JsonLD::fetchElement($jsonld, 'image', 'url', '@type', 'ImageObject');
if (!empty($content)) { if (!empty($content) && !is_string($content)) {
Logger::notice('Unexpected return value for the author image', ['content' => $content]);
}
if (!empty($content) && is_string($content)) {
$jsonldinfo['author_img'] = trim($content); $jsonldinfo['author_img'] = trim($content);
} }

View File

@ -25,7 +25,7 @@ msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-10 00:27+0000\n" "POT-Creation-Date: 2021-09-10 00:27+0000\n"
"PO-Revision-Date: 2021-09-11 07:34+0000\n" "PO-Revision-Date: 2021-09-22 05:47+0000\n"
"Last-Translator: Alexander An <ravnina@gmail.com>\n" "Last-Translator: Alexander An <ravnina@gmail.com>\n"
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -174,7 +174,7 @@ msgstr ""
#: include/conversation.php:680 #: include/conversation.php:680
#, php-format #, php-format
msgid "%s is participating in this thread." msgid "%s is participating in this thread."
msgstr "%s участвует в этой ветке." msgstr "%s участвует в этом обсуждении"
#: include/conversation.php:683 #: include/conversation.php:683
msgid "Stored" msgid "Stored"
@ -204,7 +204,7 @@ msgstr ""
#: include/conversation.php:844 view/theme/frio/theme.php:323 #: include/conversation.php:844 view/theme/frio/theme.php:323
msgid "Follow Thread" msgid "Follow Thread"
msgstr "Подписаться на тему" msgstr "Подписаться на обсуждение"
#: include/conversation.php:845 src/Model/Contact.php:1050 #: include/conversation.php:845 src/Model/Contact.php:1050
msgid "View Status" msgid "View Status"
@ -481,7 +481,7 @@ msgstr "Категории (список через запятую)"
#: include/conversation.php:1143 src/Module/Item/Compose.php:172 #: include/conversation.php:1143 src/Module/Item/Compose.php:172
msgid "Scheduled at" msgid "Scheduled at"
msgstr "" msgstr "Запланировано на"
#: include/conversation.php:1147 mod/editpost.php:108 #: include/conversation.php:1147 mod/editpost.php:108
msgid "Permission settings" msgid "Permission settings"
@ -4636,7 +4636,7 @@ msgstr ""
#: src/Model/Notification.php:189 #: src/Model/Notification.php:189
#, php-format #, php-format
msgid "%1$s had started following you" msgid "%1$s had started following you"
msgstr "" msgstr "%1$s подписались на вас"
#: src/Model/Notification.php:259 #: src/Model/Notification.php:259
#, php-format #, php-format
@ -4681,7 +4681,7 @@ msgstr ""
#: src/Model/Notification.php:297 #: src/Model/Notification.php:297
#, php-format #, php-format
msgid "%1$s commented in your thread %2$s" msgid "%1$s commented in your thread %2$s"
msgstr "" msgstr "%1$s ответил в вашем обсуждении %2$s"
#: src/Model/Notification.php:301 #: src/Model/Notification.php:301
#, php-format #, php-format
@ -4691,27 +4691,27 @@ msgstr ""
#: src/Model/Notification.php:307 #: src/Model/Notification.php:307
#, php-format #, php-format
msgid "%1$s commented in their thread %2$s" msgid "%1$s commented in their thread %2$s"
msgstr "" msgstr "%1$s ответил в своём обсуждении %2$s"
#: src/Model/Notification.php:309 #: src/Model/Notification.php:309
#, php-format #, php-format
msgid "%1$s commented in their thread" msgid "%1$s commented in their thread"
msgstr "" msgstr "%1$s ответил в своём обсуждении"
#: src/Model/Notification.php:311 #: src/Model/Notification.php:311
#, php-format #, php-format
msgid "%1$s commented in the thread %2$s from %3$s" msgid "%1$s commented in the thread %2$s from %3$s"
msgstr "" msgstr "%1$s ответил в обсуждении %2$s от %3$s"
#: src/Model/Notification.php:313 #: src/Model/Notification.php:313
#, php-format #, php-format
msgid "%1$s commented in the thread from %3$s" msgid "%1$s commented in the thread from %3$s"
msgstr "" msgstr "%1$s ответил в обсуждении от %3$s"
#: src/Model/Notification.php:318 #: src/Model/Notification.php:318
#, php-format #, php-format
msgid "%1$s commented on your thread %2$s" msgid "%1$s commented on your thread %2$s"
msgstr "" msgstr "%1$s ответил в вашем обсуждении %2$s"
#: src/Model/Notification.php:323 #: src/Model/Notification.php:323
#, php-format #, php-format
@ -7057,16 +7057,16 @@ msgstr ""
#: src/Module/Api/Mastodon/Statuses/Bookmark.php:51 #: src/Module/Api/Mastodon/Statuses/Bookmark.php:51
msgid "Only starting posts can be bookmarked" msgid "Only starting posts can be bookmarked"
msgstr "" msgstr "Только заглавные записи могут быть добавлены в закладки"
#: src/Module/Api/Mastodon/Statuses/Mute.php:50 #: src/Module/Api/Mastodon/Statuses/Mute.php:50
msgid "Only starting posts can be muted" msgid "Only starting posts can be muted"
msgstr "" msgstr "Только заглавные записи можно заглушить"
#: src/Module/Api/Mastodon/Statuses/Pin.php:50 #: src/Module/Api/Mastodon/Statuses/Pin.php:50
#: src/Module/Api/Mastodon/Statuses/Unpin.php:50 #: src/Module/Api/Mastodon/Statuses/Unpin.php:50
msgid "Only starting posts can be pinned" msgid "Only starting posts can be pinned"
msgstr "" msgstr "Только заглавные записи можно закрепить"
#: src/Module/Api/Mastodon/Statuses/Reblog.php:53 #: src/Module/Api/Mastodon/Statuses/Reblog.php:53
#, php-format #, php-format
@ -7218,11 +7218,11 @@ msgstr "Только вы можете это видеть"
#: src/Module/BaseProfile.php:115 src/Module/Profile/Schedule.php:82 #: src/Module/BaseProfile.php:115 src/Module/Profile/Schedule.php:82
msgid "Scheduled Posts" msgid "Scheduled Posts"
msgstr "" msgstr "Запланированные записи"
#: src/Module/BaseProfile.php:118 #: src/Module/BaseProfile.php:118
msgid "Posts that are scheduled for publishing" msgid "Posts that are scheduled for publishing"
msgstr "" msgstr "Записи, публикация которых запланирована"
#: src/Module/BaseProfile.php:137 src/Module/BaseProfile.php:140 #: src/Module/BaseProfile.php:137 src/Module/BaseProfile.php:140
msgid "Tips for New Members" msgid "Tips for New Members"
@ -7589,7 +7589,7 @@ msgstr "Пакетные действия"
#: src/Module/Contact.php:886 #: src/Module/Contact.php:886
msgid "Conversations started by this contact" msgid "Conversations started by this contact"
msgstr "" msgstr "Диалоги этого контакта"
#: src/Module/Contact.php:891 #: src/Module/Contact.php:891
msgid "Posts and Comments" msgid "Posts and Comments"
@ -8902,7 +8902,7 @@ msgstr "Комментарии %s"
#: src/Module/Profile/Schedule.php:84 #: src/Module/Profile/Schedule.php:84
msgid "Scheduled" msgid "Scheduled"
msgstr "" msgstr "Запланировано"
#: src/Module/Profile/Schedule.php:85 #: src/Module/Profile/Schedule.php:85
msgid "Content" msgid "Content"
@ -9402,11 +9402,11 @@ msgstr "Автоматически подгружать новые записи,
#: src/Module/Settings/Display.php:215 #: src/Module/Settings/Display.php:215
msgid "Enable Smart Threading" msgid "Enable Smart Threading"
msgstr "" msgstr "Включить умное ветвление обсуждений"
#: src/Module/Settings/Display.php:215 #: src/Module/Settings/Display.php:215
msgid "Enable the automatic suppression of extraneous thread indentation." msgid "Enable the automatic suppression of extraneous thread indentation."
msgstr "" msgstr "Включить автоматическое удаление излишних отступов в ветках обсуждений."
#: src/Module/Settings/Display.php:216 #: src/Module/Settings/Display.php:216
msgid "Display the Dislike feature" msgid "Display the Dislike feature"
@ -10263,7 +10263,7 @@ msgstr "Редактировать"
#: src/Object/Post.php:214 #: src/Object/Post.php:214
msgid "Pinned item" msgid "Pinned item"
msgstr "" msgstr "Закреплённая запись"
#: src/Object/Post.php:218 #: src/Object/Post.php:218
msgid "Delete globally" msgid "Delete globally"
@ -10296,11 +10296,11 @@ msgstr "Возможно"
#: src/Object/Post.php:303 #: src/Object/Post.php:303
msgid "Ignore thread" msgid "Ignore thread"
msgstr "Игнорировать тему" msgstr "Игнорировать обсуждение"
#: src/Object/Post.php:304 #: src/Object/Post.php:304
msgid "Unignore thread" msgid "Unignore thread"
msgstr "Не игнорировать тему" msgstr "Не игнорировать обсуждение"
#: src/Object/Post.php:305 #: src/Object/Post.php:305
msgid "Toggle ignore status" msgid "Toggle ignore status"
@ -10308,31 +10308,31 @@ msgstr "Переключить игнорирование"
#: src/Object/Post.php:315 #: src/Object/Post.php:315
msgid "Add star" msgid "Add star"
msgstr "" msgstr "Добавить в Избранное"
#: src/Object/Post.php:316 #: src/Object/Post.php:316
msgid "Remove star" msgid "Remove star"
msgstr "" msgstr "Убрать из Избранного"
#: src/Object/Post.php:317 #: src/Object/Post.php:317
msgid "Toggle star status" msgid "Toggle star status"
msgstr "" msgstr "Добавить/убрать из Избранного"
#: src/Object/Post.php:328 #: src/Object/Post.php:328
msgid "Pin" msgid "Pin"
msgstr "" msgstr "Закрепить"
#: src/Object/Post.php:329 #: src/Object/Post.php:329
msgid "Unpin" msgid "Unpin"
msgstr "" msgstr "Открепить"
#: src/Object/Post.php:330 #: src/Object/Post.php:330
msgid "Toggle pin status" msgid "Toggle pin status"
msgstr "" msgstr "Закрепить/открепить"
#: src/Object/Post.php:333 #: src/Object/Post.php:333
msgid "Pinned" msgid "Pinned"
msgstr "" msgstr "Закреплено"
#: src/Object/Post.php:338 #: src/Object/Post.php:338
msgid "Add tag" msgid "Add tag"
@ -10755,7 +10755,7 @@ msgstr ""
#: view/theme/frio/config.php:166 #: view/theme/frio/config.php:166
msgid "Pink" msgid "Pink"
msgstr "" msgstr "Розовый"
#: view/theme/frio/config.php:167 #: view/theme/frio/config.php:167
msgid "Copy or paste schemestring" msgid "Copy or paste schemestring"

View File

@ -40,10 +40,10 @@ $a->strings["You are following %s."] = "Вы подписаны на %s.";
$a->strings["Tagged"] = "Отмечено"; $a->strings["Tagged"] = "Отмечено";
$a->strings["%s reshared this."] = "%s поделился этим."; $a->strings["%s reshared this."] = "%s поделился этим.";
$a->strings["Reshared"] = "Репост"; $a->strings["Reshared"] = "Репост";
$a->strings["%s is participating in this thread."] = "%s участвует в этой ветке."; $a->strings["%s is participating in this thread."] = "%s участвует в этом обсуждении";
$a->strings["Relayed"] = "Ретранслировано"; $a->strings["Relayed"] = "Ретранслировано";
$a->strings["Fetched"] = "Загружено"; $a->strings["Fetched"] = "Загружено";
$a->strings["Follow Thread"] = "Подписаться на тему"; $a->strings["Follow Thread"] = "Подписаться на обсуждение";
$a->strings["View Status"] = "Просмотреть статус"; $a->strings["View Status"] = "Просмотреть статус";
$a->strings["View Profile"] = "Просмотреть профиль"; $a->strings["View Profile"] = "Просмотреть профиль";
$a->strings["View Photos"] = "Просмотреть фото"; $a->strings["View Photos"] = "Просмотреть фото";
@ -100,6 +100,7 @@ $a->strings["Clear browser location"] = "Очистить местонахожд
$a->strings["clear location"] = "убрать местонахождение"; $a->strings["clear location"] = "убрать местонахождение";
$a->strings["Set title"] = "Установить заголовок"; $a->strings["Set title"] = "Установить заголовок";
$a->strings["Categories (comma-separated list)"] = "Категории (список через запятую)"; $a->strings["Categories (comma-separated list)"] = "Категории (список через запятую)";
$a->strings["Scheduled at"] = "Запланировано на";
$a->strings["Permission settings"] = "Настройки разрешений"; $a->strings["Permission settings"] = "Настройки разрешений";
$a->strings["Permissions"] = "Разрешения"; $a->strings["Permissions"] = "Разрешения";
$a->strings["Public post"] = "Публичное сообщение"; $a->strings["Public post"] = "Публичное сообщение";
@ -975,6 +976,13 @@ $a->strings["Content warning: %s"] = "Предупреждение о конте
$a->strings["bytes"] = "байт"; $a->strings["bytes"] = "байт";
$a->strings["View on separate page"] = "Посмотреть в отдельной вкладке"; $a->strings["View on separate page"] = "Посмотреть в отдельной вкладке";
$a->strings["[no subject]"] = "[без темы]"; $a->strings["[no subject]"] = "[без темы]";
$a->strings["%1\$s had started following you"] = "%1\$s подписались на вас";
$a->strings["%1\$s commented in your thread %2\$s"] = "%1\$s ответил в вашем обсуждении %2\$s";
$a->strings["%1\$s commented in their thread %2\$s"] = "%1\$s ответил в своём обсуждении %2\$s";
$a->strings["%1\$s commented in their thread"] = "%1\$s ответил в своём обсуждении";
$a->strings["%1\$s commented in the thread %2\$s from %3\$s"] = "%1\$s ответил в обсуждении %2\$s от %3\$s";
$a->strings["%1\$s commented in the thread from %3\$s"] = "%1\$s ответил в обсуждении от %3\$s";
$a->strings["%1\$s commented on your thread %2\$s"] = "%1\$s ответил в вашем обсуждении %2\$s";
$a->strings["Edit profile"] = "Редактировать профиль"; $a->strings["Edit profile"] = "Редактировать профиль";
$a->strings["Change profile photo"] = "Изменить фото профиля"; $a->strings["Change profile photo"] = "Изменить фото профиля";
$a->strings["Homepage:"] = "Домашняя страничка:"; $a->strings["Homepage:"] = "Домашняя страничка:";
@ -1405,6 +1413,9 @@ $a->strings["Request date"] = "Запрос даты";
$a->strings["No registrations."] = "Нет регистраций."; $a->strings["No registrations."] = "Нет регистраций.";
$a->strings["Note from the user"] = "Сообщение от пользователя"; $a->strings["Note from the user"] = "Сообщение от пользователя";
$a->strings["Deny"] = "Отклонить"; $a->strings["Deny"] = "Отклонить";
$a->strings["Only starting posts can be bookmarked"] = "Только заглавные записи могут быть добавлены в закладки";
$a->strings["Only starting posts can be muted"] = "Только заглавные записи можно заглушить";
$a->strings["Only starting posts can be pinned"] = "Только заглавные записи можно закрепить";
$a->strings["Contact not found"] = "Контакт не найден"; $a->strings["Contact not found"] = "Контакт не найден";
$a->strings["Profile not found"] = "Профиль не найден"; $a->strings["Profile not found"] = "Профиль не найден";
$a->strings["No installed applications."] = "Нет установленных приложений."; $a->strings["No installed applications."] = "Нет установленных приложений.";
@ -1427,6 +1438,8 @@ $a->strings["Diagnostics"] = "Диагностика";
$a->strings["User registrations waiting for confirmation"] = "Регистрации пользователей, ожидающие подтверждения"; $a->strings["User registrations waiting for confirmation"] = "Регистрации пользователей, ожидающие подтверждения";
$a->strings["Profile Details"] = "Информация о вас"; $a->strings["Profile Details"] = "Информация о вас";
$a->strings["Only You Can See This"] = "Только вы можете это видеть"; $a->strings["Only You Can See This"] = "Только вы можете это видеть";
$a->strings["Scheduled Posts"] = "Запланированные записи";
$a->strings["Posts that are scheduled for publishing"] = "Записи, публикация которых запланирована";
$a->strings["Tips for New Members"] = "Советы для новых участников"; $a->strings["Tips for New Members"] = "Советы для новых участников";
$a->strings["People Search - %s"] = "Поиск по людям - %s"; $a->strings["People Search - %s"] = "Поиск по людям - %s";
$a->strings["Forum Search - %s"] = "Поиск по форумам - %s"; $a->strings["Forum Search - %s"] = "Поиск по форумам - %s";
@ -1510,6 +1523,7 @@ $a->strings["Search your contacts"] = "Поиск ваших контактов"
$a->strings["Results for: %s"] = "Результаты для: %s"; $a->strings["Results for: %s"] = "Результаты для: %s";
$a->strings["Update"] = "Обновление"; $a->strings["Update"] = "Обновление";
$a->strings["Batch Actions"] = "Пакетные действия"; $a->strings["Batch Actions"] = "Пакетные действия";
$a->strings["Conversations started by this contact"] = "Диалоги этого контакта";
$a->strings["Posts and Comments"] = "Записи и комментарии"; $a->strings["Posts and Comments"] = "Записи и комментарии";
$a->strings["View all known contacts"] = "Показать все известные контакты"; $a->strings["View all known contacts"] = "Показать все известные контакты";
$a->strings["Advanced Contact Settings"] = "Дополнительные Настройки Контакта"; $a->strings["Advanced Contact Settings"] = "Дополнительные Настройки Контакта";
@ -1764,6 +1778,7 @@ $a->strings["View as"] = "Посмотреть как";
$a->strings["%s's timeline"] = "Лента %s"; $a->strings["%s's timeline"] = "Лента %s";
$a->strings["%s's posts"] = "Записи %s"; $a->strings["%s's posts"] = "Записи %s";
$a->strings["%s's comments"] = "Комментарии %s"; $a->strings["%s's comments"] = "Комментарии %s";
$a->strings["Scheduled"] = "Запланировано";
$a->strings["Only parent users can create additional accounts."] = "Только основные пользователи могут создавать дополнительные учётные записи."; $a->strings["Only parent users can create additional accounts."] = "Только основные пользователи могут создавать дополнительные учётные записи.";
$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Если вы не знакомы с OpenID, пожалуйста, оставьте это поле пустым и заполните остальные элементы."; $a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Если вы не знакомы с OpenID, пожалуйста, оставьте это поле пустым и заполните остальные элементы.";
$a->strings["Your OpenID (optional): "] = "Ваш OpenID (необязательно):"; $a->strings["Your OpenID (optional): "] = "Ваш OpenID (необязательно):";
@ -1858,6 +1873,8 @@ $a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Минимум
$a->strings["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."] = "Автообновление может загружать новые записи в начало ленты, что может изменить положение прокрутки и помешать чтению, если вы находитесь не в начале страницы."; $a->strings["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."] = "Автообновление может загружать новые записи в начало ленты, что может изменить положение прокрутки и помешать чтению, если вы находитесь не в начале страницы.";
$a->strings["Infinite scroll"] = "Бесконечная прокрутка"; $a->strings["Infinite scroll"] = "Бесконечная прокрутка";
$a->strings["Automatic fetch new items when reaching the page end."] = "Автоматически подгружать новые записи, когда вы оказываетесь в конце страницы."; $a->strings["Automatic fetch new items when reaching the page end."] = "Автоматически подгружать новые записи, когда вы оказываетесь в конце страницы.";
$a->strings["Enable Smart Threading"] = "Включить умное ветвление обсуждений";
$a->strings["Enable the automatic suppression of extraneous thread indentation."] = "Включить автоматическое удаление излишних отступов в ветках обсуждений.";
$a->strings["Beginning of week:"] = "Начало недели:"; $a->strings["Beginning of week:"] = "Начало недели:";
$a->strings["Profile Name is required."] = "Необходимо имя профиля."; $a->strings["Profile Name is required."] = "Необходимо имя профиля.";
$a->strings["Profile couldn't be updated."] = "Профиль не получилось обновить."; $a->strings["Profile couldn't be updated."] = "Профиль не получилось обновить.";
@ -1962,6 +1979,7 @@ $a->strings["%s posted an update."] = "%s отправил/а/ обновлен
$a->strings["This entry was edited"] = "Эта запись была отредактирована"; $a->strings["This entry was edited"] = "Эта запись была отредактирована";
$a->strings["Private Message"] = "Личное сообщение"; $a->strings["Private Message"] = "Личное сообщение";
$a->strings["Edit"] = "Редактировать"; $a->strings["Edit"] = "Редактировать";
$a->strings["Pinned item"] = "Закреплённая запись";
$a->strings["Delete globally"] = "Удалить везде"; $a->strings["Delete globally"] = "Удалить везде";
$a->strings["Remove locally"] = "Убрать для себя"; $a->strings["Remove locally"] = "Убрать для себя";
$a->strings["Block %s"] = "Заблокировать %s"; $a->strings["Block %s"] = "Заблокировать %s";
@ -1969,9 +1987,16 @@ $a->strings["Save to folder"] = "Сохранить в папку";
$a->strings["I will attend"] = "Я буду"; $a->strings["I will attend"] = "Я буду";
$a->strings["I will not attend"] = "Меня не будет"; $a->strings["I will not attend"] = "Меня не будет";
$a->strings["I might attend"] = "Возможно"; $a->strings["I might attend"] = "Возможно";
$a->strings["Ignore thread"] = "Игнорировать тему"; $a->strings["Ignore thread"] = "Игнорировать обсуждение";
$a->strings["Unignore thread"] = "Не игнорировать тему"; $a->strings["Unignore thread"] = "Не игнорировать обсуждение";
$a->strings["Toggle ignore status"] = "Переключить игнорирование"; $a->strings["Toggle ignore status"] = "Переключить игнорирование";
$a->strings["Add star"] = "Добавить в Избранное";
$a->strings["Remove star"] = "Убрать из Избранного";
$a->strings["Toggle star status"] = "Добавить/убрать из Избранного";
$a->strings["Pin"] = "Закрепить";
$a->strings["Unpin"] = "Открепить";
$a->strings["Toggle pin status"] = "Закрепить/открепить";
$a->strings["Pinned"] = "Закреплено";
$a->strings["Add tag"] = "Добавить тег"; $a->strings["Add tag"] = "Добавить тег";
$a->strings["Quote share this"] = "Поделиться с комментарием"; $a->strings["Quote share this"] = "Поделиться с комментарием";
$a->strings["Quote Share"] = "Цитировать"; $a->strings["Quote Share"] = "Цитировать";
@ -2034,3 +2059,4 @@ $a->strings["minutes"] = "мин.";
$a->strings["second"] = "секунда"; $a->strings["second"] = "секунда";
$a->strings["seconds"] = "сек."; $a->strings["seconds"] = "сек.";
$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s назад"; $a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s назад";
$a->strings["Pink"] = "Розовый";