diff --git a/client/strings/ru.json b/client/strings/ru.json
index d5ce9998f..221ca1f05 100644
--- a/client/strings/ru.json
+++ b/client/strings/ru.json
@@ -502,7 +502,7 @@
"LabelSetEbookAsPrimary": "Установить как основную",
"LabelSetEbookAsSupplementary": "Установить как дополнительную",
"LabelSettingsAudiobooksOnly": "Только аудиокниги",
- "LabelSettingsAudiobooksOnlyHelp": "Если включить эту настройку, файлы электронных книг будут игнорироваться, за исключением случаев, когда они находятся в папке с аудиокнигами, в этом случае они будут рассматриваться как дополнительные электронные книги.",
+ "LabelSettingsAudiobooksOnlyHelp": "Если включить эту настройку, файлы электронных книг будут игнорироваться, за исключением случаев, когда они находятся в папке с аудиокнигами, в этом случае они будут рассматриваться как дополнительные электронные книги",
"LabelSettingsBookshelfViewHelp": "Конструкция с деревянными полками",
"LabelSettingsChromecastSupport": "Поддержка Chromecast",
"LabelSettingsDateFormat": "Формат даты",
@@ -527,7 +527,7 @@
"LabelSettingsParseSubtitles": "Разбор подзаголовков",
"LabelSettingsParseSubtitlesHelp": "Извлечение подзаголовков из имен папок аудиокниг.
Подзаголовок должны быть отделен \" - \"
например \"Название Книги - Тут Подзаголовок\" подзаголовок будет \"Тут Подзаголовок\"",
"LabelSettingsPreferMatchedMetadata": "Предпочитать метаданные поиска",
- "LabelSettingsPreferMatchedMetadataHelp": "Данные поиска будут перезаписывать данные книг при использовании Быстрого Поиска. По умолчанию Быстрый Поиск будет использоваться только при отсутствии данных",
+ "LabelSettingsPreferMatchedMetadataHelp": "Данные поиска будут перезаписывать данные книг при использовании Быстрого Поиска. По умолчанию Быстрый Поиск будет использоваться только при отсутствии данных.",
"LabelSettingsSkipMatchingBooksWithASIN": "Пропускать Поиск книг у которых уже заполнен ASIN",
"LabelSettingsSkipMatchingBooksWithISBN": "Пропускать Поиск книг у которых уже заполнен ISBN",
"LabelSettingsSortingIgnorePrefixes": "Игнорировать префиксы при сортировке",
@@ -544,6 +544,7 @@
"LabelShareURL": "Общедоступный URL",
"LabelShowAll": "Показать все",
"LabelShowSeconds": "Отображать секунды",
+ "LabelShowSubtitles": "Показать субтитры",
"LabelSize": "Размер",
"LabelSleepTimer": "Таймер сна",
"LabelSlug": "Слизень",
@@ -574,12 +575,17 @@
"LabelTagsNotAccessibleToUser": "Теги не доступные для пользователя",
"LabelTasks": "Запущенные задачи",
"LabelTextEditorBulletedList": "Маркированный список",
+ "LabelTextEditorLink": "Связь",
"LabelTextEditorNumberedList": "Нумерованный список",
"LabelTextEditorUnlink": "Отсоединить",
"LabelTheme": "Тема",
"LabelThemeDark": "Темная",
"LabelThemeLight": "Светлая",
"LabelTimeBase": "Временная база",
+ "LabelTimeDurationXHours": "{0} часов",
+ "LabelTimeDurationXMinutes": "{0} минут",
+ "LabelTimeDurationXSeconds": "{0} секунд",
+ "LabelTimeInMinutes": "Время в минутах",
"LabelTimeListened": "Время прослушивания",
"LabelTimeListenedToday": "Время прослушивания сегодня",
"LabelTimeRemaining": "{0} осталось",
@@ -603,6 +609,7 @@
"LabelUnabridged": "Полное издание",
"LabelUndo": "Отменить",
"LabelUnknown": "Неизвестно",
+ "LabelUnknownPublishDate": "Дата публикации неизвестна",
"LabelUpdateCover": "Обновить обложку",
"LabelUpdateCoverHelp": "Позволяет перезаписывать существующие обложки для выбранных книг если будут найдены",
"LabelUpdateDetails": "Обновить подробности",
@@ -619,9 +626,12 @@
"LabelVersion": "Версия",
"LabelViewBookmarks": "Закладки",
"LabelViewChapters": "Главы",
+ "LabelViewPlayerSettings": "Просмотр настроек плеера",
"LabelViewQueue": "Очередь воспроизведения",
"LabelVolume": "Громкость",
"LabelWeekdaysToRun": "Дни недели для запуска",
+ "LabelXBooks": "{0} книг",
+ "LabelXItems": "{0} элементов",
"LabelYearReviewHide": "Скрыть итоги года",
"LabelYearReviewShow": "Итоги года",
"LabelYourAudiobookDuration": "Продолжительность Вашей книги",
@@ -631,6 +641,9 @@
"MessageAddToPlayerQueue": "Добавить в очередь проигрывателя",
"MessageAppriseDescription": "Для использования этой функции необходимо иметь запущенный экземпляр Apprise API или api которое обрабатывает те же самые запросы.
URL-адрес API Apprise должен быть полным URL-адресом для отправки уведомления, т.е., если API запущено по адресу http://192.168.1.1:8337 тогда нужно указать http://192.168.1.1:8337/notify.",
"MessageBackupsDescription": "Бэкап включает пользователей, прогресс пользователей, данные элементов библиотеки, настройки сервера и изображения хранящиеся в /metadata/items и /metadata/authors. Бэкапы НЕ сохраняют файлы из папок библиотек.",
+ "MessageBackupsLocationEditNote": "Примечание: Обновление местоположения резервной копии не приведет к перемещению или изменению существующих резервных копий",
+ "MessageBackupsLocationNoEditNote": "Примечание: Местоположение резервного копирования задается с помощью переменной среды и не может быть изменено здесь.",
+ "MessageBackupsLocationPathEmpty": "Путь к расположению резервной копии не может быть пустым",
"MessageBatchQuickMatchDescription": "Быстрый Поиск попытается добавить отсутствующие обложки и метаданные для выбранных элементов. Включите параметры ниже, чтобы разрешить Быстрому Поиску перезаписывать существующие обложки и/или метаданные.",
"MessageBookshelfNoCollections": "Вы еще не создали ни одной коллекции",
"MessageBookshelfNoRSSFeeds": "Нет открытых RSS-каналов",
@@ -645,16 +658,22 @@
"MessageCheckingCron": "Проверка cron...",
"MessageConfirmCloseFeed": "Вы уверены, что хотите закрыть этот канал?",
"MessageConfirmDeleteBackup": "Вы уверены, что хотите удалить бэкап для {0}?",
+ "MessageConfirmDeleteDevice": "Вы уверены, что хотите удалить устройство для чтения электронных книг \"{0}\"?",
"MessageConfirmDeleteFile": "Это удалит файл из Вашей файловой системы. Вы уверены?",
"MessageConfirmDeleteLibrary": "Вы уверены, что хотите навсегда удалить библиотеку \"{0}\"?",
"MessageConfirmDeleteLibraryItem": "Это приведет к удалению элемента библиотеки из базы данных и файловой системы. Вы уверены?",
"MessageConfirmDeleteLibraryItems": "Это приведет к удалению {0} элементов библиотеки из базы данных и файловой системы. Вы уверены?",
+ "MessageConfirmDeleteMetadataProvider": "Вы уверены, что хотите удалить пользовательский поставщик метаданных \"{0}\"?",
+ "MessageConfirmDeleteNotification": "Вы уверены, что хотите удалить это уведомление?",
"MessageConfirmDeleteSession": "Вы уверены, что хотите удалить этот сеанс?",
"MessageConfirmForceReScan": "Вы уверены, что хотите принудительно выполнить повторное сканирование?",
"MessageConfirmMarkAllEpisodesFinished": "Вы уверены, что хотите отметить все эпизоды как завершенные?",
"MessageConfirmMarkAllEpisodesNotFinished": "Вы уверены, что хотите отметить все эпизоды как не завершенные?",
+ "MessageConfirmMarkItemFinished": "Вы уверены, что хотите отметить «{0}» как завершенную?",
+ "MessageConfirmMarkItemNotFinished": "Вы уверены, что хотите отметить «{0}» как не завершенную?",
"MessageConfirmMarkSeriesFinished": "Вы уверены, что хотите отметить все книги этой серии как завершенные?",
"MessageConfirmMarkSeriesNotFinished": "Вы уверены, что хотите отметить все книги этой серии как не завершенные?",
+ "MessageConfirmNotificationTestTrigger": "Активировать это уведомление с тестовыми данными?",
"MessageConfirmPurgeCache": "Очистка кэша удалит весь каталог в /metadata/cache.
Вы уверены, что хотите удалить каталог кэша?",
"MessageConfirmPurgeItemsCache": "Очистка кэша элементов удалит весь каталог в /metadata/cache/items.
Вы уверены?",
"MessageConfirmQuickEmbed": "Предупреждение! Быстрое встраивание не позволяет создавать резервные копии аудиофайлов. Убедитесь, что у вас есть резервная копия аудиофайлов.
Хотите продолжить?",
@@ -673,9 +692,12 @@
"MessageConfirmRenameTag": "Вы уверены, что хотите переименовать тег \"{0}\" в \"{1}\" для всех элементов?",
"MessageConfirmRenameTagMergeNote": "Примечание: Этот тег уже существует, поэтому они будут объединены.",
"MessageConfirmRenameTagWarning": "Предупреждение! Похожий тег с другими начальными буквами уже существует \"{0}\".",
+ "MessageConfirmResetProgress": "Вы уверены, что хотите сбросить свой прогресс?",
"MessageConfirmSendEbookToDevice": "Вы уверены, что хотите отправить {0} e-книгу \"{1}\" на устройство \"{2}\"?",
+ "MessageConfirmUnlinkOpenId": "Вы уверены, что хотите отвязать этого пользователя от OpenID?",
"MessageDownloadingEpisode": "Эпизод скачивается",
"MessageDragFilesIntoTrackOrder": "Перетащите файлы для исправления порядка треков",
+ "MessageEmbedFailed": "Вставка не удалась!",
"MessageEmbedFinished": "Встраивание завершено!",
"MessageEpisodesQueuedForDownload": "{0} Эпизод(ов) запланировано для закачки",
"MessageEreaderDevices": "Чтобы обеспечить доставку электронных книг, вам может потребоваться добавить указанный выше адрес электронной почты в качестве действительного отправителя для каждого устройства, перечисленного ниже.",
@@ -707,6 +729,7 @@
"MessageNoCollections": "Нет коллекций",
"MessageNoCoversFound": "Обложек не найдено",
"MessageNoDescription": "Нет описания",
+ "MessageNoDevices": "Нет устройств",
"MessageNoDownloadsInProgress": "В настоящее время загрузка не выполняется",
"MessageNoDownloadsQueued": "Нет загрузок в очереди",
"MessageNoEpisodeMatchesFound": "Совпадения эпизодов не найдены",
@@ -729,10 +752,12 @@
"MessageNoUpdatesWereNecessary": "Обновления не требовались",
"MessageNoUserPlaylists": "У вас нет плейлистов",
"MessageNotYetImplemented": "Пока не реализовано",
+ "MessageOpmlPreviewNote": "Примечание: Это предварительный просмотр разобранного файла OPML. Фактическое название подкаста будет взято из RSS-канала.",
"MessageOr": "или",
"MessagePauseChapter": "Пауза воспроизведения главы",
"MessagePlayChapter": "Прослушать начало главы",
"MessagePlaylistCreateFromCollection": "Создать плейлист из коллекции",
+ "MessagePleaseWait": "Пожалуйста подождите...",
"MessagePodcastHasNoRSSFeedForMatching": "Подкаст не имеет URL-адреса RSS-канала, который можно использовать для поиска",
"MessageQuickMatchDescription": "Заполняет пустые детали элемента и обложку первым результатом поиска из «{0}». Не перезаписывает сведения, если не включен параметр сервера 'Предпочитать метаданные поиска'.",
"MessageRemoveChapter": "Удалить главу",
@@ -747,6 +772,9 @@
"MessageSelected": "{0} выбрано",
"MessageServerCouldNotBeReached": "Не удалось связаться с сервером",
"MessageSetChaptersFromTracksDescription": "Установка глав с использованием каждого аудиофайла в качестве главы и заголовка главы в качестве имени аудиофайла",
+ "MessageShareExpirationWillBe": "Срок действия истекает {0}",
+ "MessageShareExpiresIn": "Срок действия истекает через {0}",
+ "MessageShareURLWillBe": "URL-адрес общего доступа будет {0}",
"MessageStartPlaybackAtTime": "Начать воспроизведение для \"{0}\" с {1}?",
"MessageThinking": "Думаю...",
"MessageUploaderItemFailed": "Не удалось загрузить",
@@ -770,20 +798,48 @@
"PlaceholderNewPlaylist": "Новое название плейлиста",
"PlaceholderSearch": "Поиск...",
"PlaceholderSearchEpisode": "Поиск эпизода...",
+ "StatsAuthorsAdded": "авторов добавлено",
+ "StatsBooksAdded": "книг добавлено",
+ "StatsBooksAdditional": "Некоторые дополнения включают в себя…",
+ "StatsBooksFinished": "книг завершено",
+ "StatsBooksFinishedThisYear": "Некоторые книги закончены в этом году…",
+ "StatsBooksListenedTo": "книг прослушано",
+ "StatsCollectionGrewTo": "Ваша коллекция книг пополнилась…",
+ "StatsSessions": "сессий",
+ "StatsSpentListening": "потрачено на прослушивание",
+ "StatsTopAuthor": "ТОП АВТОР",
+ "StatsTopAuthors": "ТОП АВТОРОВ",
+ "StatsTopGenre": "ТОП ЖАНР",
+ "StatsTopGenres": "ТОП ЖАНРЫ",
+ "StatsTopMonth": "ЛУЧШИЙ МЕСЯЦ",
+ "StatsTopNarrator": "ТОП ЧТЕЦ",
+ "StatsTopNarrators": "ТОП ЧТЕЦЫ",
+ "StatsTotalDuration": "С общей продолжительностью…",
+ "StatsYearInReview": "ИТОГИ ГОДА",
"ToastAccountUpdateFailed": "Не удалось обновить учетную запись",
"ToastAccountUpdateSuccess": "Учетная запись обновлена",
+ "ToastAppriseUrlRequired": "Необходимо ввести URL-адрес Apprise",
"ToastAuthorImageRemoveSuccess": "Изображение автора удалено",
+ "ToastAuthorNotFound": "Автор \"{0}\" не найден",
+ "ToastAuthorRemoveSuccess": "Автор удален",
+ "ToastAuthorSearchNotFound": "Автор не найден",
"ToastAuthorUpdateFailed": "Не удалось обновить автора",
"ToastAuthorUpdateMerged": "Автор объединен",
"ToastAuthorUpdateSuccess": "Автор обновлен",
"ToastAuthorUpdateSuccessNoImageFound": "Автор обновлен (изображение не найдено)",
+ "ToastBackupAppliedSuccess": "Применена резервная копия",
"ToastBackupCreateFailed": "Не удалось создать бэкап",
"ToastBackupCreateSuccess": "Бэкап создан",
"ToastBackupDeleteFailed": "Не удалось удалить бэкап",
"ToastBackupDeleteSuccess": "Бэкап удален",
+ "ToastBackupInvalidMaxKeep": "Недопустимое количество резервных копий для хранения",
+ "ToastBackupInvalidMaxSize": "Недопустимый максимальный размер резервной копии",
+ "ToastBackupPathUpdateFailed": "Не удалось обновить путь к резервному копированию",
"ToastBackupRestoreFailed": "Не удалось восстановить из бэкапа",
"ToastBackupUploadFailed": "Не удалось загрузить бэкап",
"ToastBackupUploadSuccess": "Бэкап загружен",
+ "ToastBatchDeleteFailed": "Не удалось выполнить пакетное удаление",
+ "ToastBatchDeleteSuccess": "Успешное пакетное удаление",
"ToastBatchUpdateFailed": "Сбой пакетного обновления",
"ToastBatchUpdateSuccess": "Успешное пакетное обновление",
"ToastBookmarkCreateFailed": "Не удалось создать закладку",
@@ -795,21 +851,46 @@
"ToastCachePurgeSuccess": "Кэш успешно очищен",
"ToastChaptersHaveErrors": "Главы имеют ошибки",
"ToastChaptersMustHaveTitles": "Главы должны содержать названия",
+ "ToastChaptersRemoved": "Удалены главы",
+ "ToastCollectionItemsAddFailed": "Не удалось добавить элемент(ы) в коллекцию",
+ "ToastCollectionItemsAddSuccess": "Элемент(ы) добавлены в коллекцию",
"ToastCollectionItemsRemoveSuccess": "Элемент(ы), удалены из коллекции",
"ToastCollectionRemoveSuccess": "Коллекция удалена",
"ToastCollectionUpdateFailed": "Не удалось обновить коллекцию",
"ToastCollectionUpdateSuccess": "Коллекция обновлена",
+ "ToastCoverUpdateFailed": "Не удалось обновить обложку",
"ToastDeleteFileFailed": "Не удалось удалить файл",
"ToastDeleteFileSuccess": "Файл удален",
+ "ToastDeviceAddFailed": "Не удалось добавить устройство",
+ "ToastDeviceNameAlreadyExists": "Устройство для чтения электронных книг с таким именем уже существует",
+ "ToastDeviceTestEmailFailed": "Не удалось отправить тестовое электронное письмо",
+ "ToastDeviceTestEmailSuccess": "Тестовое письмо отправлено",
+ "ToastDeviceUpdateFailed": "Не удалось обновить устройство",
+ "ToastEmailSettingsUpdateFailed": "Не удалось обновить настройки электронной почты",
+ "ToastEmailSettingsUpdateSuccess": "Обновлены настройки электронной почты",
+ "ToastEncodeCancelFailed": "Не удалось отменить кодирование",
+ "ToastEncodeCancelSucces": "Кодирование отменено",
+ "ToastEpisodeDownloadQueueClearFailed": "Не удалось очистить очередь",
+ "ToastEpisodeDownloadQueueClearSuccess": "Очередь загрузки эпизода очищена",
+ "ToastErrorCannotShare": "Невозможно предоставить общий доступ на этом устройстве",
"ToastFailedToLoadData": "Не удалось загрузить данные",
+ "ToastFailedToShare": "Не удалось поделиться",
+ "ToastFailedToUpdateAccount": "Не удалось обновить учетную запись",
+ "ToastFailedToUpdateUser": "Не удалось обновить пользователя",
+ "ToastInvalidImageUrl": "Неверный URL изображения",
+ "ToastInvalidUrl": "Неверный URL",
"ToastItemCoverUpdateFailed": "Не удалось обновить обложку элемента",
"ToastItemCoverUpdateSuccess": "Обложка элемента обновлена",
+ "ToastItemDeletedFailed": "Не удалось удалить элемент",
+ "ToastItemDeletedSuccess": "Удаленный элемент",
"ToastItemDetailsUpdateFailed": "Не удалось обновить сведения об элементе",
"ToastItemDetailsUpdateSuccess": "Обновлены сведения об элементе",
"ToastItemMarkedAsFinishedFailed": "Не удалось пометить как Завершенный",
"ToastItemMarkedAsFinishedSuccess": "Элемент помечен как Завершенный",
"ToastItemMarkedAsNotFinishedFailed": "Не удалось пометить как Незавершенный",
"ToastItemMarkedAsNotFinishedSuccess": "Элемент помечен как Незавершенный",
+ "ToastItemUpdateFailed": "Не удалось обновить элемент",
+ "ToastItemUpdateSuccess": "Элемент обновлен",
"ToastLibraryCreateFailed": "Не удалось создать библиотеку",
"ToastLibraryCreateSuccess": "Библиотека \"{0}\" создана",
"ToastLibraryDeleteFailed": "Не удалось удалить библиотеку",
@@ -818,6 +899,25 @@
"ToastLibraryScanStarted": "Запущено сканирование библиотеки",
"ToastLibraryUpdateFailed": "Не удалось обновить библиотеку",
"ToastLibraryUpdateSuccess": "Библиотека \"{0}\" обновлена",
+ "ToastNameEmailRequired": "Имя и адрес электронной почты обязательны",
+ "ToastNameRequired": "Имя обязательно для заполнения",
+ "ToastNewUserCreatedFailed": "Не удалось создать учетную запись: \"{0}\"",
+ "ToastNewUserCreatedSuccess": "Новая учетная запись создана",
+ "ToastNewUserLibraryError": "Необходимо выбрать хотя бы одну библиотеку",
+ "ToastNewUserPasswordError": "Должен иметь пароль, только пользователь root может иметь пустой пароль",
+ "ToastNewUserTagError": "Необходимо выбрать хотя бы один тег",
+ "ToastNewUserUsernameError": "Введите имя пользователя",
+ "ToastNoUpdatesNecessary": "Обновления не требуются",
+ "ToastNotificationCreateFailed": "Не удалось создать уведомление",
+ "ToastNotificationDeleteFailed": "Не удалось удалить уведомление",
+ "ToastNotificationFailedMaximum": "Максимальное количество неудачных попыток должно быть >= 0",
+ "ToastNotificationQueueMaximum": "Максимальная очередь уведомлений должна быть >= 0",
+ "ToastNotificationSettingsUpdateFailed": "Не удалось обновить настройки уведомлений",
+ "ToastNotificationSettingsUpdateSuccess": "Обновлены настройки уведомлений",
+ "ToastNotificationTestTriggerFailed": "Не удалось активировать тестовое уведомление",
+ "ToastNotificationTestTriggerSuccess": "Сработавшее уведомление о тестировании",
+ "ToastNotificationUpdateFailed": "Не удалось обновить уведомление",
+ "ToastNotificationUpdateSuccess": "Уведомление обновлено",
"ToastPlaylistCreateFailed": "Не удалось создать плейлист",
"ToastPlaylistCreateSuccess": "Плейлист создан",
"ToastPlaylistRemoveSuccess": "Плейлист удален",
@@ -825,24 +925,52 @@
"ToastPlaylistUpdateSuccess": "Плейлист обновлен",
"ToastPodcastCreateFailed": "Не удалось создать подкаст",
"ToastPodcastCreateSuccess": "Подкаст успешно создан",
+ "ToastPodcastGetFeedFailed": "Не удалось получить ленту подкастов",
+ "ToastPodcastNoEpisodesInFeed": "В RSS-ленте эпизодов не найдено",
+ "ToastPodcastNoRssFeed": "В подкасте нет RSS-канала",
+ "ToastProviderCreatedFailed": "Не удалось добавить провайдера",
+ "ToastProviderCreatedSuccess": "Добавлен новый провайдер",
+ "ToastProviderNameAndUrlRequired": "Имя и URL обязательные",
+ "ToastProviderRemoveSuccess": "Провайдер удален",
"ToastRSSFeedCloseFailed": "Не удалось закрыть RSS-канал",
"ToastRSSFeedCloseSuccess": "RSS-канал закрыт",
+ "ToastRemoveFailed": "Не удалось удалить",
"ToastRemoveItemFromCollectionFailed": "Не удалось удалить элемент из коллекции",
"ToastRemoveItemFromCollectionSuccess": "Элемент удален из коллекции",
+ "ToastRemoveItemsWithIssuesFailed": "Не удалось удалить элементы библиотеки с проблемами",
+ "ToastRemoveItemsWithIssuesSuccess": "Удалены элементы библиотеки с проблемами",
+ "ToastRenameFailed": "Не удалось переименовать",
+ "ToastRescanFailed": "Ошибка повторного сканирования для {0}",
+ "ToastRescanRemoved": "Повторное сканирование завершено, элемент был удален",
+ "ToastRescanUpToDate": "Повторное сканирование завершено, элемент был актуализирован",
+ "ToastRescanUpdated": "Повторное сканирование завершено, элемент был обновлен",
+ "ToastScanFailed": "Не удалось просканировать элемент библиотеки",
+ "ToastSelectAtLeastOneUser": "Выберите хотя бы одного пользователя",
"ToastSendEbookToDeviceFailed": "Не удалось отправить e-книгу на устройство",
"ToastSendEbookToDeviceSuccess": "E-книга отправлена на устройство \"{0}\"",
"ToastSeriesUpdateFailed": "Не удалось обновить серию",
"ToastSeriesUpdateSuccess": "Успешное обновление серии",
"ToastServerSettingsUpdateFailed": "Не удалось обновить настройки сервера",
"ToastServerSettingsUpdateSuccess": "Обновлены настройки сервера",
+ "ToastSessionCloseFailed": "Не удалось закрыть сеанс",
"ToastSessionDeleteFailed": "Не удалось удалить сеанс",
"ToastSessionDeleteSuccess": "Сеанс удален",
+ "ToastSlugMustChange": "Slug содержит недопустимые символы",
+ "ToastSlugRequired": "Требуется Slug",
"ToastSocketConnected": "Сокет подключен",
"ToastSocketDisconnected": "Сокет отключен",
"ToastSocketFailedToConnect": "Не удалось подключить сокет",
"ToastSortingPrefixesEmptyError": "Должен быть хотя бы 1 префикс сортировки",
"ToastSortingPrefixesUpdateFailed": "Не удалось обновить префиксы сортировки",
"ToastSortingPrefixesUpdateSuccess": "Обновлены префиксы сортировки ({0} элементов)",
+ "ToastTitleRequired": "Название обязательно",
+ "ToastUnknownError": "Неизвестная ошибка",
+ "ToastUnlinkOpenIdFailed": "Не удалось отвязать пользователя от OpenID",
+ "ToastUnlinkOpenIdSuccess": "Пользователь отвязан от OpenID",
"ToastUserDeleteFailed": "Не удалось удалить пользователя",
- "ToastUserDeleteSuccess": "Пользователь удален"
+ "ToastUserDeleteSuccess": "Пользователь удален",
+ "ToastUserPasswordChangeSuccess": "Пароль успешно изменен",
+ "ToastUserPasswordMismatch": "Пароли не совпадают",
+ "ToastUserPasswordMustChange": "Новый пароль не может совпадать со старым паролем",
+ "ToastUserRootRequireName": "Необходимо ввести имя пользователя root"
}