diff --git a/js/src/i18n/ru.json b/js/src/i18n/ru.json
index c078f609e..17d6811a0 100644
--- a/js/src/i18n/ru.json
+++ b/js/src/i18n/ru.json
@@ -14,12 +14,18 @@
"@{username}'s follow request was accepted": "Запрос на подписку от @{username} принят",
"@{username}'s follow request was rejected": "Запрос на подписку от @{username} отклонён",
"A cookie is a small file containing information that is sent to your computer when you visit a website. When you visit the site again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can configure your browser to refuse all cookies. However, this may result in some website features or services partially working. Local storage works the same way but allows you to store more data.": "Cookie - это небольшой файл, содержащий информацию, которая сохраняется на вашем компьютере при посещении веб-сайта. Когда вы снова посещаете эту страницу, cookie позволяет сайту распознавать ваш браузер. Cookie могут хранить настройки пользователя и другую информацию. Вы можете настроить свой браузер так, чтобы он не принимал файлы cookie. Однако это может привести к тому, что часть функционала веб-сайта не будет работать. Локальное хранилище работает так же, но позволяет хранить больше данных.",
+ "A discussion has been created or updated": "Обсуждение было создано или обновлено",
"A federated software": "Федеративное программное обеспечение",
+ "A member has been updated": "Участник обновлён",
+ "A member requested to join one of my groups": "Участник попросил присоединиться к одной из моих групп",
"A place for your code of conduct, rules or guidelines. You can use HTML tags.": "Тут можно разместить общие правила, положения или руководства. Вы можете использовать HTML-теги.",
"A place to explain who you are and the things that set your instance apart. You can use HTML tags.": "Тут можно подробно описать кто вы и что делает этот узел особенным. Вы можете использовать HTML-теги.",
"A place to publish something to the whole world, your community or just your group members.": "Место для публикации чего-либо для всего мира, вашего сообщества или только участников вашей группы.",
"A place to store links to documents or resources of any type.": "Место для хранения ссылок на документы или ресурсы любого типа.",
+ "A post has been published": "Пост был опубликован",
+ "A post has been updated": "Пост был обновлён",
"A practical tool": "Удобный инструмент",
+ "A resource has been created or updated": "Ресурс был создан или обновлён",
"A short tagline for your instance homepage. Defaults to \"Gather ⋅ Organize ⋅ Mobilize\"": "Короткий слоган для домашней страницы вашего узла. По умолчанию: \"Собирать ⋅ Организовывать ⋅ Мобилизовывать\"",
"A user-friendly, emancipatory and ethical tool for gathering, organising, and mobilising.": "Удобный, свободный и этичный инструмент для объединения, организации и мобилизации.",
"A validation email was sent to {email}": "Письмо с подтверждением было отправлено на адрес {email}",
@@ -37,6 +43,7 @@
"Accessible through link": "Доступно по ссылке",
"Account": "Учётная запись",
"Actions": "Действия",
+ "Activate browser notification": "Активировать уведомления в браузере",
"Activated": "Активирован",
"Active": "Активный",
"Activity": "Активность",
@@ -64,6 +71,13 @@
"Allow registrations": "Разрешить регистрацию",
"An error has occured. Sorry about that. You may try to reload the page.": "Произошла ошибка. Приносим вам тысячу извинений. Вы можете попробовать перезагрузить страницу.",
"An ethical alternative": "Этичная альтернатива",
+ "An event I'm going to has been updated": "Мероприятие, на которое я собираюсь, обновлено",
+ "An event I'm going to has posted an announcement": "О мероприятии, на которое я собираюсь, было опубликовано объявление",
+ "An event I'm organizing has a new comment": "У мероприятия, которое я организую, есть новый комментарий",
+ "An event I'm organizing has a new participation": "В мероприятии, которое я организую, появился новый участник",
+ "An event I'm organizing has a new pending participation": "В мероприятии, которое я организую, ожидается новый участник",
+ "An event from one of my groups has been published": "Опубликовано мероприятие одной из моих групп",
+ "An event from one of my groups has been updated or deleted": "Мероприятие одной из моих групп было обновлено или удалено",
"An instance is an installed version of the Mobilizon software running on a server. An instance can be run by anyone using the {mobilizon_software} or other federated apps, aka the “fediverse”. This instance's name is {instance_name}. Mobilizon is a federated network of multiple instances (just like email servers), users registered on different instances may communicate even though they didn't register on the same instance.": "Узел - это программное обеспечение Mobilizon, установленное на сервере. Узел может быть запущен кем угодно, использующим {mobilizon_software} или другие федеративные приложения, называемые «Федиверзум». Имя этого узла - {instance_name}. Mobilizon - это федеративная сеть, состоящая из нескольких узлов (как почтовые серверы). Пользователи могут свободно общаться друг с другом, даже если они зарегистрированы на разных узлах.",
"An “application programming interface” or “API” is a communication protocol that allows software components to communicate with each other. The Mobilizon API, for example, can allow third-party software tools to communicate with Mobilizon instances to carry out certain actions, such as posting events on your behalf, automatically and remotely.": "Интерфейс прикладного программирования» или «API» - это протокол связи, который позволяет программным компонентам взаимодействовать друг с другом. Например, API Mobilizon позволяет стороннему программному обеспечению взаимодействовать с узлами Mobilizon для выполнения определенных действий, таких как автоматическая публикация мероприятий от вашего имени.",
"And {number} comments": "И {number} комментариев",
@@ -94,6 +108,7 @@
"Before you can login, you need to click on the link inside it to validate your account.": "Перед тем как войти в систему, вы должны перейти по указанной в письме ссылке, чтобы подтвердить свою учетную запись.",
"Begins on": "Начало",
"Bold": "Жирный",
+ "Browser notifications": "Уведомления в браузере",
"By @{group}": "Из @{group}",
"By @{username}": "От @{username}",
"By others": "Другими",
@@ -147,6 +162,7 @@
"Create a new group": "Создать новую группу",
"Create a new identity": "Создать новый идентификатор",
"Create a new list": "Создать новый список",
+ "Create a new profile": "Создать новый профиль",
"Create a pad": "Создать документ",
"Create a videoconference": "Создать видеоконференцию",
"Create an account": "Создать учётную запись",
@@ -216,6 +232,7 @@
"Duplicate": "Копировать",
"Edit": "Редактировать",
"Edit post": "Редактировать пост",
+ "Edit profile {profile}": "Редактировать профиль {profile}",
"Edited {ago}": "Изменено {ago}",
"Eg: Stockholm, Dance, Chess…": "Например: Москва, танцы, шахматы…",
"Either on the {instance} instance or on another instance.": "На узле {instance}, либо на другом.",
@@ -240,6 +257,7 @@
"Error while login with {provider}. Retry or login another way.": "Не удалось войти через {provider}. Повторите попытку или войдите другим способом.",
"Error while login with {provider}. This login provider doesn't exist.": "Не удалось войти через {provider}. Такого провайдера аутентификации не существует.",
"Error while reporting group {groupTitle}": "Ошибка при отправке отчёта о группе {groupTitle}",
+ "Error while suspending group": "Ошибка при блокировке группы",
"Error while validating account": "Ошибка подтверждения учётной записи",
"Error while validating participation request": "Произошла ошибка при проверке заявки на участие",
"Ethical alternative to Facebook events, groups and pages, Mobilizon is a tool designed to serve you. Period.": "Mobilizon - это этичная альтернатива мероприятиям, группам и страницам Facebook. Это инструмент, созданный для вас. И точка.",
@@ -284,13 +302,16 @@
"Gather ⋅ Organize ⋅ Mobilize": "Объединять ⋅ Организовывать ⋅ Мобилизовывать",
"General": "Общая",
"General information": "Общая информация",
+ "General settings": "Основные настройки",
"Getting location": "Получить местоположение",
"Getting there": "Как туда добраться",
"Glossary": "Глоссарий",
"Go": "Идти",
"Go to the event page": "Перейти на страницу мероприятия",
+ "Group": "Группа",
"Group Followers": "Группа подписчиков",
"Group Members": "Участники группы",
+ "Group activity": "Групповая активность",
"Group address": "Адрес группы",
"Group display name": "Отображаемое имя группы",
"Group name": "Название группы",
@@ -316,8 +337,11 @@
"I participate": "Я участвую",
"I want to allow people to participate without an account.": "Я хочу разрешить участие людям без учетной записи.",
"I want to approve every participation request": "Я хочу одобрять каждую заявку на участие",
+ "I've been mentionned in a comment under an event": "Меня упомянули в комментарии под мероприятием",
+ "I've been mentionned in a group discussion": "Меня упомянули в групповом обсуждении",
"ICS feed for events": "ICS лента для мероприятий",
"ICS/WebCal Feed": "ICS/WebCal лента",
+ "Identities": "Идентификаторы",
"Identity {displayName} created": "Идентификатор {displayName} создан",
"Identity {displayName} deleted": "Идентификатор {displayName} удалён",
"Identity {displayName} updated": "Идентификатор {displayName} обновлён",
@@ -349,6 +373,7 @@
"Instances": "Узлы",
"Instances following you": "Узлы, подписанные на вас",
"Instances you follow": "Узлы, на которые вы подписаны",
+ "Interact with a remote content": "Взаимодействовать с удаленным контентом",
"Invite a new member": "Пригласить нового участника",
"Invite member": "Пригласить участника",
"Invited": "Приглашён",
@@ -396,6 +421,7 @@
"Mark as resolved": "Отметить как решённое",
"Member": "Участник",
"Members": "Участники",
+ "Mentions": "Упоминания",
"Message": "Сообщение",
"Mobilizon": "Mobilizon",
"Mobilizon is a federated network. You can interact with this event from a different server.": "Mobilizon - это федеративная сеть. Вы можете взаимодействовать с этим мероприятием с другого сервера.",
@@ -412,6 +438,7 @@
"Moderator": "Модератор",
"Move": "Переместить",
"Move \"{resourceName}\"": "Переместить \"{resourceName}\"",
+ "Move resource to the root folder": "Переместить ресурс в корневую папку",
"Move resource to {folder}": "Переместить ресурс в {folder}",
"My account": "Моя учётная запись",
"My events": "Мои мероприятия",
@@ -441,6 +468,7 @@
"No events found": "Мероприятий не найдено",
"No follower matches the filters": "Ни один подписчик не соответствует критериям",
"No group found": "Группа не найдена",
+ "No group matches the filters": "Ни одна группа не соответствует фильтрам",
"No groups found": "Группы не найдены",
"No information": "Нет информации",
"No instance follows your instance yet.": "Ни один узел еще не подписан на ваш узел.",
@@ -449,14 +477,19 @@
"No instance to remove|Remove instance|Remove {number} instances": "Нет узлов для удаления | Удалить узел | Удалить {number} узлов",
"No languages found": "Язык не найден",
"No member matches the filters": "Ни один участник не соответствует критериям",
+ "No members found": "Участники не найдены",
+ "No memberships found": "Участники не найдены",
"No message": "Нет сообщений",
"No moderation logs yet": "Журналов модерования пока нет",
"No more activity to display.": "Больше нет действия для отображения.",
"No one is participating|One person participating|{going} people participating": "Никто не участвует|Один человек участвует|{going} человек участвуют",
"No open reports yet": "Пока нет открытых отчётов",
+ "No organized events found": "Организованных мероприятий не найдено",
+ "No organized events listed": "В списке нет организованных мероприятий",
"No participant matches the filters": "Ни один участник не соответствует критериям",
"No participant to approve|Approve participant|Approve {number} participants": "Нет участников для одобрения | Принять участника | Принять {number} участников",
"No participant to reject|Reject participant|Reject {number} participants": "Нет участников для отклонения | Отклонить участника | Отклонить {number} участников",
+ "No participations listed": "Не указано ни одного участия",
"No posts found": "Публикаций не найдено",
"No posts yet": "Публикаций пока нет",
"No profile matches the filters": "Ни один профиль не соответствует критериям",
@@ -475,8 +508,10 @@
"Nothing to see here": "Здесь ничего нет",
"Notification before the event": "Уведомление перед мероприятием",
"Notification on the day of the event": "Уведомление в день мероприятия",
+ "Notification settings": "Настройки уведомлений",
"Notifications": "Уведомления",
"Notifications for manually approved participations to an event": "Уведомления об участиях в мероприятиях, одобренных вручную",
+ "Notify participants": "Уведомить участников",
"Now, create your first profile:": "Теперь создайте свой первый профиль:",
"Number of places": "Количество мест",
"OK": "OK",
@@ -499,6 +534,7 @@
"Or": "Или",
"Organized": "Организованно",
"Organized by": "Организатор",
+ "Organized by you": "Организовано вами",
"Organized by {name}": "Организатор: {name}",
"Organizer": "Организатор",
"Organizer notifications": "Уведомления организатора",
@@ -509,6 +545,7 @@
"Otherwise this identity will just be removed from the group administrators.": "В противном случае этот идентификатор будет удалён у администраторов группы.",
"Page": "Страница",
"Page limited to my group (asks for auth)": "Страница предназначена только для моей группы (требуется авторизация)",
+ "Page not found": "Страница не найдена",
"Parent folder": "Родительская папка",
"Participant": "Участник",
"Participants": "Участники",
@@ -550,6 +587,7 @@
"Privacy policy": "Политика конфиденциальности",
"Private event": "Приватное мероприятие",
"Private feeds": "Приватная лента",
+ "Profile": "Профиль",
"Profile feeds": "Ленты профиля",
"Profiles": "Профили",
"Profiles and federation": "Профили и федерализация",
@@ -564,6 +602,7 @@
"Publication date": "Дата публикации",
"Publish": "Опубликовать",
"Published events with {comments} comments and {participations} confirmed participations": "Опубликованные мероприятия с {comments} комментариями и {participations} подтвержденными участниками",
+ "Push": "Push",
"RSS/Atom Feed": "RSS/Atom новостная лента",
"Radius": "Радиус",
"Recap every week": "Подводить итоги каждую неделю",
@@ -572,6 +611,7 @@
"Refresh profile": "Обновить профиль",
"Regenerate new links": "Восстановить новые ссылки",
"Region": "Область",
+ "Register": "Регистр",
"Register an account on {instanceName}!": "Зарегистрируйте аккаунт на {instanceName}!",
"Register on this instance": "Зарегистрируйтесь на этом узле",
"Registration is allowed, anyone can register.": "Регистрация разрешена, зарегистрироваться может любой желающий.",
@@ -622,13 +662,16 @@
"Select a radius": "Выберите радиус",
"Select a timezone": "Выберите часовой пояс",
"Select languages": "Выберите языки",
+ "Select the activities for which you wish to receive an email or a push notification.": "Выберите действия, для которых вы хотите получать электронные письма или push-уведомления.",
"Send email": "Отправить электронное письмо",
"Send the confirmation email again": "Отправьте письмо с подтверждением еще раз",
"Send the report": "Отправить отчёт",
"Set an URL to a page with your own privacy policy.": "Укажите URL-адрес страницы с вашей собственной политикой конфиденциальности.",
"Set an URL to a page with your own terms.": "Установите URL-адрес на страницу с вашими собственными условиями.",
"Settings": "Настройки",
+ "Share": "Поделиться",
"Share this event": "Поделиться этим мероприятием",
+ "Share this group": "Поделиться этой группой",
"Short bio": "Коротко о себе",
"Show map": "Показать карту",
"Show remaining number of places": "Показать оставшееся количество мест",
@@ -705,6 +748,7 @@
"This event has been cancelled.": "Это мероприятие было отменено.",
"This event is accessible only through it's link. Be careful where you post this link.": "Это мероприятие доступно только по ссылке. Будьте осторожны, когда публикуете её.",
"This group doesn't have a description yet.": "У этой группы ещё нет описания.",
+ "This group is accessible only through it's link. Be careful where you post this link.": "Эта группа доступна только по её ссылке. Будьте осторожны, когда размещаете эту ссылку.",
"This group is invite-only": "Эта группа только для приглашённых",
"This identifier is unique to your profile. It allows others to find you.": "Этот идентификатор уникален для вашего профиля. Он даёт возможность другим найти вас.",
"This identity is not a member of any group.": "Этот идентификатор не является членом какой-либо группы.",
@@ -732,6 +776,7 @@
"Today": "Сегодня",
"Tomorrow": "Завтра",
"Transfer to {outsideDomain}": "Перенос в {outsideDomain}",
+ "Triggered profile refreshment": "Запуск обновления профиля",
"Type": "Тип",
"Type or select a date…": "Введите или выберите дату…",
"URL": "URL-адрес",
@@ -751,6 +796,8 @@
"Unknown value for the openness setting.": "Неизвестное значение ограничений доступа.",
"Unsaved changes": "Несохранённые изменения",
"Unset group": "Отменить выбор группы",
+ "Unsubscribe to WebPush": "Отписаться от WebPush уведомлений",
+ "Unsubscribe to browser notifications": "Отписаться от уведомлений в браузере",
"Unsuspend": "Отменить приостановку",
"Upcoming": "Предстоящие",
"Upcoming events": "Предстоящие мероприятия",
@@ -763,6 +810,7 @@
"Uploaded media size": "Размер загруженного медиафайла",
"Use my location": "Использовать моё местоположение",
"User": "Пользователь",
+ "User settings": "Настройки пользователя",
"Username": "Имя пользователя",
"Users": "Пользователи",
"View a reply": "|Посмотреть один ответ|Посмотреть {totalReplies} ответов",
@@ -786,6 +834,7 @@
"We will redirect you to your instance in order to interact with this group": "Мы перенаправим вас на ваш узел, чтобы вы могли взаимодействовать с этой группой",
"We'll send you an email one hour before the event begins, to be sure you won't forget about it.": "Мы отправим вам электронное письмо за час до начала мероприятия, чтобы вы не забыли про него.",
"We'll use your timezone settings to send a recap of the morning of the event.": "Мы используем настройки вашего часового пояса, чтобы утром отправить вам напоминание о мероприятии.",
+ "WebPush": "WebPush уведомления",
"Website": "Веб-сайт",
"Website / URL": "Веб-сайт / URL",
"Welcome back {username}!": "С возвращением, {username}!",
@@ -806,12 +855,16 @@
"You archived the discussion {discussion}.": "Вы отправили {discussion} обсуждение в архив.",
"You are not an administrator for this group.": "Вы не являетесь администратором этой группы.",
"You are not part of any group.": "Вы не состоите ни в одной группе.",
+ "You are offline": "Вы не в сети",
"You are participating in this event anonymously": "Вы участвуете в этом мероприятии анонимно",
"You are participating in this event anonymously but didn't confirm participation": "Вы участвуете в этом мероприятии анонимно, но не подтвердили свое участие",
"You can add tags by hitting the Enter key or by adding a comma": "Вы можете добавлять тэги, нажимая клавишу Enter или разделяя слова запятой",
"You can pick your timezone into your preferences.": "Вы можете изменить часовой пояс по своему усмотрению.",
"You can try another search term or drag and drop the marker on the map": "Вы можете попробовать другие критерии поиска или перетащить маркер на карту",
"You can't change your password because you are registered through {provider}.": "Вы не можете изменить свой пароль, потому что вы зарегистрированы через {provider}.",
+ "You can't use notifications in this browser.": "Вы не можете использовать уведомления в этом браузере.",
+ "You can't use webpush in this browser.": "Вы не можете использовать webpush в этом браузере.",
+ "You changed your email or password": "Вы изменили свой адрес электронной почты или пароль",
"You created the discussion {discussion}.": "Вы создали обсуждение {discussion}.",
"You created the event {event}.": "Вы создали мероприятие {event}.",
"You created the folder {resource}.": "Вы создали папку {resource}.",
@@ -928,10 +981,13 @@
"{approved} / {total} seats": "{approved} / {total} мест",
"{available}/{capacity} available places": "Мест нет|{available}/{capacity} свободных мест",
"{count} km": "{count} км",
+ "{count} members": "Нет участников|Один участник|{count} участников",
"{count} participants": "Нет участников | Один участник | {count} участников",
"{count} requests waiting": "{count} ожидающих рассмотрения заявок",
"{count} team members": "{count} членов команды",
+ "{folder} - Resources": "{folder} - Ресурсы",
"{group} activity timeline": "История активности {group}",
+ "{group} events": "{group} мероприятия",
"{group}'s events": "Мероприятия {group}",
"{instanceName} is an instance of the {mobilizon} software.": "{instanceName} - это узел использующий ПО {mobilizon}.",
"{instanceName} is an instance of {mobilizon_link}, a free software built with the community.": "{instanceName} — это узел {mobilizon_link}, бесплатного программного обеспечения, созданного при участии сообщества.",
@@ -954,6 +1010,7 @@
"{moderator} suspended profile {profile}": "{moderator} заблокировал профиль {profile}",
"{nb} km": "{nb} км",
"{number} members": "{number} участников",
+ "{number} memberships": "{number} участников",
"{number} organized events": "Нет организованных мероприятий|Организованно одно мероприятие|Организованно {number} мероприятий",
"{number} participations": "Нет участников|Один участник|{number} участников",
"{number} posts": "Нет публикаций|Одна публикация|{number} публикаций",