diff --git a/js/src/i18n/ru.json b/js/src/i18n/ru.json
index 32e3ee89f..36c742f88 100644
--- a/js/src/i18n/ru.json
+++ b/js/src/i18n/ru.json
@@ -51,7 +51,7 @@
   "Close comments for all (except for admins)": "Закрыть комментарии для всех (кроме админов)",
   "Closed": "Закрыто",
   "Comment deleted": "Комментарий удален",
-  "Comment from @{username} reported": "Уведомление о проблеме с комментарием от @{username} отправлено",
+  "Comment from @{username} reported": "Жалоба на комментарий от @{username} отправлена",
   "Comments": "Комментарии",
   "Confirm my participation": "Подтвердите мое участие",
   "Confirm my particpation": "Подтвердите мое участие",
@@ -120,7 +120,7 @@
   "Event page settings": "Настройки страницы мероприятия",
   "Event to be confirmed": "Мероприятие должно быть подтверждено",
   "Event {eventTitle} deleted": "Мероприятие {eventTitle} удалено",
-  "Event {eventTitle} reported": "Сообщение о проблеме с мероприятием {eventTitle} отправлено",
+  "Event {eventTitle} reported": "Жалоба на мероприятие {eventTitle} отправлена",
   "Events": "Мероприятия",
   "Ex: mobilizon.fr": "Например: mobilizon.fr",
   "Explore": "Обзор",
@@ -199,22 +199,22 @@
   "New profile": "Новый профиль",
   "Next page": "Следующая страница",
   "No address defined": "Адрес не указан",
-  "No closed reports yet": "Пока нет закрыты отчётов",
+  "No closed reports yet": "Пока нет закрытых отчётов",
   "No comment": "Нет комментариев",
   "No comments yet": "Пока нет комментариев",
   "No end date": "Без даты окончания",
   "No events found": "Мероприятий не найдено",
-  "No group found": "Группы не найдены",
+  "No group found": "Группа не найдена",
   "No groups found": "Группы не найдены",
   "No instance follows your instance yet.": "Ни один узел еще не подписан на ваш узел.",
   "No instance to approve|Approve instance|Approve {number} instances": "Нет узлов для одобрения | Одобрить узел | Одобрить {number} узлов",
   "No instance to reject|Reject instance|Reject {number} instances": "Нет узлов для отклонения | Отклонить узел | Отклонить {number} узлов",
   "No instance to remove|Remove instance|Remove {number} instances": "Нет узлов для удаления | Удалить узел | Удалить {number} узлов",
   "No message": "Нет сообщений",
-  "No open reports yet": "Открытых отчётов пока нет",
+  "No open reports yet": "Пока нет открытых отчётов",
   "No participant to approve|Approve participant|Approve {number} participants": "Нет участников для одобрения | Принять участника | Принять {number} участников",
   "No participant to reject|Reject participant|Reject {number} participants": "Нет участников для отклонения | Отклонить участника | Отклонить {number} участников",
-  "No resolved reports yet": "Закрытых отчётов ещё нет",
+  "No resolved reports yet": "Решённых отчётов пока нет",
   "No results for \"{queryText}\"": "Нет результатов по запросу \"{queryText}\"",
   "Notes": "Примечания",
   "Number of places": "Количество мест",
@@ -227,7 +227,7 @@
   "Only accessible through link (private)": "Доступно только по ссылке (приватно)",
   "Only alphanumeric lowercased characters and underscores are supported.": "Допустимы только буквенно-цифровые символы нижнего регистра и подчеркивания.",
   "Open": "Открыть",
-  "Opened reports": "Открыть отчёты",
+  "Opened reports": "Открытые отчёты",
   "Or": "Или",
   "Organized": "Организованно",
   "Organized by {name}": "Организатор: {name}",
@@ -280,5 +280,101 @@
   "Reply": "Ответ",
   "Report": "Отчёт",
   "Report this comment": "Пожаловаться на этот комментарий",
-  "Report this event": "Пожаловаться на это мероприятие"
+  "Report this event": "Пожаловаться на это мероприятие",
+  "Reported": "Уведомлено",
+  "Reported by": "Сообщил",
+  "Reported by someone on {domain}": "Об этом сообщил пользователь из {domain}",
+  "Reported by {reporter}": "Сообщил {reporter}",
+  "Reported identity": "Идентификатор сообщившего",
+  "Reports": "Отчеты",
+  "Reset my password": "Сбросить пароль",
+  "Resolved": "Решено",
+  "Resource provided is not an URL": "Указанный ресурс не является URL-адресом",
+  "Role": "Роль",
+  "Save": "Сохранить",
+  "Save draft": "Сохранить черновик",
+  "Search": "Поиск",
+  "Search events, groups, etc.": "Искать мероприятия, группы и т. п.",
+  "Searching…": "Поиск…",
+  "Send email": "Отправить электронное письмо",
+  "Send the report": "Отправить отчёт",
+  "Set an URL to a page with your own terms.": "Установите URL-адрес на страницу с вашими собственными условиями.",
+  "Settings": "Настройки",
+  "Share this event": "Поделиться этим мероприятием",
+  "Show map": "Показать карту",
+  "Show remaining number of places": "Показать оставшееся количество мест",
+  "Show the time when the event begins": "Показать время начала мероприятия",
+  "Show the time when the event ends": "Показать время окончания мероприятия",
+  "Sign up": "Зарегистрироваться",
+  "Starts on…": "Начало…",
+  "Status": "Статус",
+  "Street": "Улица",
+  "Tentative: Will be confirmed later": "Предварительно: будет подтверждено позже",
+  "Terms": "Условия",
+  "The account's email address was changed. Check your emails to verify it.": "Почтовый адрес аккаунта был изменён. Проверьте свою электронную почту, чтобы убедиться в этом.",
+  "The actual number of participants may differ, as this event is hosted on another instance.": "Фактическое количество участников может отличаться, так как это мероприятие проводится на другом узле.",
+  "The content came from another server. Transfer an anonymous copy of the report?": "Контент пришел с другого сервера. Переслать анонимную копию отчета?",
+  "The draft event has been updated": "Черновик мероприятия обновлён",
+  "The event has been created as a draft": "Мероприятие было создано в виде черновика",
+  "The event has been published": "Мероприятие опубликовано",
+  "The event has been updated": "Мероприятие обновлено",
+  "The event has been updated and published": "Мероприятие обновлено и опубликовано",
+  "The event organiser has chosen to validate manually participations. Do you want to add a little note to explain why you want to participate to this event?": "Организатор мероприятия решил подтверждать участие вручную. Хотели бы вы добавить короткую заметку, объясняющую, почему вы хотите участвовать в этом мероприятии?",
+  "The event organizer didn't add any description.": "Организатор мероприятия не добавил описания.",
+  "The event organizer manually approves participations. Since you've chosen to participate without an account, please explain why you want to participate to this event.": "Организатор мероприятия утверждает участие вручную. Поскольку вы выбрали участие без учётной записи, объясните, почему вы хотите участвовать в этом мероприятии.",
+  "The event title will be ellipsed.": "Название этого мероприятие сокращено троеточием.",
+  "The page you're looking for doesn't exist.": "Страницы, которую вы ищете, не существует.",
+  "The password was successfully changed": "Пароль был успешно изменен",
+  "The report will be sent to the moderators of your instance. You can explain why you report this content below.": "Отчёт будет отправлен модераторам вашего узла. Вы можете объяснить причину своей жалобы ниже.",
+  "The {default_terms} will be used. They will be translated in the user's language.": "Будут использоваться {default_terms}. Они будут переведены на язык пользователя.",
+  "There are {participants} participants.": "Имеется {participants} участников.",
+  "There will be no way to recover your data.": "Восстановить ваши данные будет невозможно.",
+  "These events may interest you": "Эти мероприятия могут вас заинтересовать",
+  "This Mobilizon instance and this event organizer allows anonymous participations, but requires validation through email confirmation.": "Этот узел Mobilizon и этот организатор мероприятия допускают анонимное участие, но требуют подтверждения по электронной почте.",
+  "This information is saved only on your computer. Click for details": "Эта информация сохраняется только на вашем компьютере. Нажмите, чтобы узнать подробности",
+  "This instance isn't opened to registrations, but you can register on other instances.": "Этот узел не позволяет регистрироваться, но вы можете зарегистрироваться на других.",
+  "This is a demonstration site to test Mobilizon.": "Это демонстрационная площадка для тестирования Mobilizon.",
+  "This will delete / anonymize all content (events, comments, messages, participations…) created from this identity.": "Это приведет к удалению / анонимизации всего контента (событий, комментариев, сообщений, участия…), созданного с помощью этого идентификатора.",
+  "Title": "Заголовок",
+  "To confirm, type your event title \"{eventTitle}\"": "Для подтверждения введите название мероприятия \"{eventTitle}\"",
+  "To confirm, type your identity username \"{preferredUsername}\"": "Для подтверждения введите имя пользователя \"{preferredUsername}\" идентификатора",
+  "Transfer to {outsideDomain}": "Перенос в {outsideDomain}",
+  "Type": "Тип",
+  "URL": "URL-адрес",
+  "Unfortunately, this instance isn't opened to registrations": "К сожалению, регистрация на этом узле закрыта",
+  "Unfortunately, your participation request was rejected by the organizers.": "К сожалению, ваша заявка на участие была отклонена организаторами.",
+  "Unknown": "Неизвестный",
+  "Unknown actor": "Неизвестный актёр",
+  "Unknown error.": "Неизвестная ошибка.",
+  "Unsaved changes": "Несохранённые изменения",
+  "Upcoming": "Предстоящие",
+  "Update event {name}": "Обновить мероприятие {name}",
+  "Update my event": "Обновить моё мероприятие",
+  "Updated": "Обновлено",
+  "Use my location": "Использовать моё местоположение",
+  "Username": "Имя пользователя",
+  "Users": "Пользователи",
+  "View a reply": "|Посмотреть один ответ|Посмотреть {totalReplies} ответов",
+  "View event page": "Просмотреть страницу мероприятия",
+  "View everything": "Посмотреть всё",
+  "View page on {hostname} (in a new window)": "Просмотреть страницу на {hostname} (в новом окне)",
+  "Visible everywhere on the web (public)": "Видно во всем Интернете (публично)",
+  "Waiting for organization team approval.": "Ожидает одобрения организаторами.",
+  "Warning": "Предупреждение",
+  "We just sent an email to {email}": "Мы отправили электронное письмо на адрес {email}",
+  "We will redirect you to your instance in order to interact with this event": "Вы будете перенаправлены на свой узел, чтобы иметь возможность взаимодействовать с этим событием",
+  "Website / URL": "Веб-сайт / URL",
+  "Welcome back {username}!": "С возвращением, {username}!",
+  "Welcome back!": "С возвращением!",
+  "Welcome to Mobilizon, {username}!": "Добро пожаловать в Mobilizon, {username}!",
+  "Who can view this event and participate": "Кто может просматривать и участвовать в мероприятии",
+  "Write something…": "Напиши что-нибудь…",
+  "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 try another search term or drag and drop the marker on the map": "Вы можете попробовать другие критерии поиска или перетащить маркер на карту",
+  "You don't follow any instances yet.": "Вы пока не подписаны ни на один узел.",
+  "You have been disconnected": "Вы были отключены",
+  "You have cancelled your participation": "Вы отказались от участия",
+  "You have one event in {days} days.": "У вас нет мероприятий в течение {days} дней | У вас одно мероприятие в течении {days} дней | У вас {count} мероприятий в течении {days} дней"
 }