Files
notify-bridge/frontend/src/lib/i18n/ru.json
T
alexei.dolgolyov 734e5c9340 feat: UX improvements — secure webhooks, locale fixes, dynamic languages, UI polish
- Remove top paginator from dashboard events, keep only bottom
- Fix test message locale: pass UI locale to email/matrix bot tests
- Convert webhook auth mode from text input to icon grid selector
- Generate secure UUID tokens for webhook URLs instead of sequential IDs
- Move Recent Payloads into per-provider expandable container (lazy-loaded)
- Make template config languages dynamic via app settings instead of hardcoded
- Change default dev port to 5175
2026-04-11 02:14:15 +03:00

1131 lines
64 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"app": {
"name": "Notify Bridge",
"tagline": "Уведомления о сервисах"
},
"nav": {
"dashboard": "Главная",
"providers": "Провайдеры",
"notificationTrackers": "Трекеры увед.",
"trackingConfigs": "Отслеживание",
"templateConfigs": "Шаблоны",
"telegramBots": "Боты",
"targets": "Получатели",
"commandConfigs": "Конф. команд",
"commandTrackers": "Трекеры команд",
"cmdTemplateConfigs": "Шаблоны команд",
"users": "Пользователи",
"settings": "Настройки",
"backup": "Бэкап",
"logout": "Выход",
"notification": "Уведомления",
"commands": "Команды",
"bots": "Боты",
"trackers": "Трекеры",
"configs": "Настройки",
"templates": "Шаблоны",
"telegram": "Telegram",
"email": "Email",
"matrix": "Matrix",
"common": "Общие",
"targetTelegram": "Telegram",
"targetWebhook": "Webhook",
"targetEmail": "Email",
"targetDiscord": "Discord",
"targetSlack": "Slack",
"targetNtfy": "ntfy",
"targetMatrix": "Matrix",
"targetBroadcast": "Рассылка",
"automation": "Автоматизация",
"actions": "Действия",
"more": "Ещё"
},
"auth": {
"signIn": "Войти",
"signInTitle": "Вход в аккаунт",
"signingIn": "Вход...",
"username": "Имя пользователя",
"password": "Пароль",
"confirmPassword": "Подтвердите пароль",
"setupTitle": "Добро пожаловать",
"setupDescription": "Создайте учётную запись администратора",
"createAccount": "Создать аккаунт",
"creatingAccount": "Создание...",
"passwordMismatch": "Пароли не совпадают",
"passwordTooShort": "Пароль должен быть не менее 8 символов",
"or": "или",
"loginFailed": "Ошибка входа",
"setupFailed": "Ошибка настройки"
},
"dashboard": {
"title": "Главная",
"description": "Обзор настроек Notify Bridge",
"providers": "Провайдеры",
"activeTrackers": "Активные трекеры",
"targets": "Получатели",
"recentEvents": "События",
"chart": "График событий",
"noEvents": "Событий пока нет. Создайте трекер для отслеживания.",
"loading": "Загрузка...",
"justNow": "только что",
"minutesAgo": "{n} мин назад",
"hoursAgo": "{n} ч назад",
"daysAgo": "{n} д назад",
"assetsAdded": "добавлены файлы",
"assetsRemoved": "удалены файлы",
"collectionRenamed": "альбом переименован",
"collectionDeleted": "альбом удалён",
"sharingChanged": "изменение доступа",
"searchEvents": "Поиск событий...",
"allEvents": "Все события",
"filterAssetsAdded": "Добавление файлов",
"filterAssetsRemoved": "Удаление файлов",
"filterRenamed": "Переименование",
"filterDeleted": "Удаление",
"filterSharingChanged": "Изменение доступа",
"allProviders": "Все провайдеры",
"newestFirst": "Сначала новые",
"oldestFirst": "Сначала старые",
"loadingEvents": "Загрузка событий...",
"asset": "файл",
"assets": "файлов",
"eventActivity": "Активность событий",
"last14days": "Последние 14 дней",
"event": "событие",
"events": "событий",
"noChartData": "Нет данных о событиях"
},
"providers": {
"title": "Провайдеры",
"description": "Управление подключениями к сервисам",
"addProvider": "Добавить провайдер",
"cancel": "Отмена",
"type": "Тип провайдера",
"name": "Название",
"url": "URL провайдера",
"urlPlaceholder": "http://provider:2283",
"apiKey": "API ключ",
"apiKeyKeep": "API ключ (оставьте пустым, чтобы сохранить текущий)",
"connecting": "Подключение...",
"noProviders": "Провайдеры не настроены.",
"delete": "Удалить",
"confirmDelete": "Удалить этот провайдер?",
"online": "В сети",
"offline": "Не в сети",
"checking": "Проверка...",
"typeImmich": "Immich",
"typeGitea": "Gitea",
"typePlanka": "Planka",
"typeScheduler": "Планировщик",
"typeNut": "NUT (ИБП)",
"typeGooglePhotos": "Google Фото",
"typeWebhook": "Универсальный вебхук",
"loadError": "Не удалось загрузить провайдеры.",
"externalDomain": "Внешний домен",
"optional": "необязательно",
"urlApiKeyRequired": "URL и API ключ обязательны",
"externalDomainHint": "Публичный URL для ссылок в уведомлениях. По умолчанию используется URL сервера.",
"webhookSecret": "Секрет вебхука",
"webhookSecretKeep": "Секрет вебхука (оставьте пустым для сохранения текущего)",
"webhookSecretHint": "Общий секрет для проверки HMAC-SHA256 подписи. Укажите тот же секрет в настройках вебхука Gitea.",
"plankaWebhookSecretHint": "Bearer-токен для аутентификации вебхуков. Укажите тот же токен как WEBHOOK_ACCESS_TOKEN в Planka.",
"plankaApiKeyHint": "Необязательно. Нужен для проверки подключения и получения списка досок.",
"plankaWebhookUrlHint": "Укажите этот URL в конфигурации Planka (относительно хоста bridge).",
"authMode": "Режим аутентификации",
"authModeHint": "Выберите hmac_sha256, bearer_token или none",
"authNone": "Без аутентификации",
"authBearer": "Bearer Token",
"authHmac": "HMAC-SHA256",
"genericWebhookSecretHint": "Секрет для HMAC-SHA256 или Bearer token аутентификации. Оставьте пустым для режима без аутентификации.",
"maxStoredPayloads": "Макс. сохранённых запросов",
"maxStoredPayloadsHint": "Количество сохраняемых запросов для отладки (0 = отключено, макс. 100)",
"webhookSecretRequired": "Секрет вебхука обязателен",
"apiToken": "API токен",
"apiTokenHint": "Необязательно. Нужен для проверки подключения и получения списка репозиториев.",
"webhookUrl": "URL вебхука",
"webhookUrlHint": "Укажите этот URL в настройках вебхука Gitea (относительно хоста bridge).",
"nutHost": "Хост NUT-сервера",
"nutHostPlaceholder": "192.168.1.100 или ups.local",
"nutPort": "Порт NUT-сервера",
"nutUsername": "Имя пользователя",
"nutPassword": "Пароль",
"nutUsernameHint": "Необязательно — только если upsd требует аутентификации",
"nutPasswordHint": "Необязательно — пароль пользователя upsd",
"gpClientId": "OAuth Client ID",
"gpClientSecret": "OAuth Client Secret",
"gpClientSecretKeep": "OAuth Client Secret (оставьте пустым для сохранения текущего)",
"gpRefreshToken": "Refresh Token",
"gpRefreshTokenKeep": "Refresh Token (оставьте пустым для сохранения текущего)",
"gpRefreshTokenHint": "Получите через Google OAuth Playground (developers.google.com/oauthplayground) с областью Photos Library API.",
"gpAllFieldsRequired": "Client ID, Client Secret и Refresh Token обязательны",
"storePayloads": "Сохранять входящие данные",
"storePayloadsHint": "Сохранять тела недавних вебхук-запросов для отладки",
"maxStoredPayloads": "Макс. сохранённых запросов",
"maxStoredPayloadsHint": "Количество сохраняемых запросов (1-100)",
"testAndSave": "Проверить и сохранить",
"saveWithoutTest": "Сохранить без проверки",
"selectType": "Выберите тип провайдера",
"testFailed": "Ошибка проверки подключения"
},
"webhookLogs": {
"title": "Последние запросы",
"empty": "Записей пока нет",
"clear": "Очистить историю",
"confirmClear": "Очистить все сохранённые запросы для этого провайдера?",
"statusMatched": "Совпадение",
"statusUnmatched": "Не совпало",
"statusError": "Ошибка",
"headers": "Заголовки",
"body": "Тело запроса",
"extractedFields": "Извлечённые поля",
"errorMessage": "Ошибка",
"cleared": "История запросов очищена"
},
"notificationTracker": {
"title": "Трекеры уведомлений",
"description": "Отслеживание изменений в альбомах",
"newTracker": "Новый трекер",
"cancel": "Отмена",
"name": "Название",
"namePlaceholder": "Трекер семейных фото",
"server": "Провайдер",
"selectServer": "Выберите провайдер...",
"albums": "Альбомы",
"selectAlbums": "Выберите альбомы...",
"repositories": "Репозитории",
"selectRepositories": "Выберите репозитории...",
"boards": "Доски",
"selectBoards": "Выберите доски...",
"upsDevices": "ИБП устройства",
"selectUpsDevices": "Выберите ИБП...",
"eventTypes": "Типы событий",
"notificationTargets": "Получатели уведомлений",
"scanInterval": "Интервал проверки (секунды)",
"scheduleType": "Расписание",
"intervalMode": "Интервал",
"cronMode": "Cron выражение",
"cronExpression": "Cron выражение",
"cronHint": "Стандартный 5-полевой cron: минута час день месяц день_недели. Пример: 0 9 * * 1-5 (будни в 9:00)",
"customVariables": "Пользовательские переменные",
"customVariablesHint": "Определите пары ключ-значение, доступные в шаблонах как {{ ключ }}.",
"addVariable": "Добавить переменную",
"createTracker": "Создать трекер",
"noTrackers": "Трекеров пока нет. Сначала добавьте провайдер, затем создайте трекер.",
"active": "Активен",
"paused": "Приостановлен",
"pause": "Пауза",
"resume": "Возобновить",
"delete": "Удалить",
"confirmDelete": "Удалить этот трекер?",
"albums_count": "альбом(ов)",
"repos_count": "репозиторий(ев)",
"boards_count": "доска(ок)",
"devices_count": "устройство(в)",
"collections_count": "коллекция(й)",
"every": "каждые",
"trackImages": "Отслеживать фото",
"trackVideos": "Отслеживать видео",
"favoritesOnly": "Только избранные",
"includePeople": "Включать людей в уведомления",
"includeAssetDetails": "Включать детали файлов",
"maxAssetsToShow": "Макс. файлов в уведомлении",
"sortBy": "Сортировка",
"sortOrder": "Порядок",
"sortNone": "Исходный порядок",
"sortDate": "Дата",
"sortRating": "Рейтинг",
"sortName": "Имя",
"sortRandom": "Случайный",
"ascending": "По возрастанию",
"descending": "По убыванию",
"quietHoursStart": "Тихие часы начало",
"quietHoursEnd": "Тихие часы конец",
"batchDuration": "Длительность пакета (секунды)",
"defaultTrackingConfig": "Конфигурация отслеживания по умолчанию",
"defaultTemplateConfig": "Шаблон уведомлений по умолчанию",
"linkedTargets": "получатели",
"noLinkedTargets": "Нет привязанных получателей. Добавьте получателя ниже.",
"addTarget": "Добавить получателя",
"selectTarget": "Выберите получателя...",
"alreadyLinked": "Уже привязан",
"testBasic": "Отправить тестовое сообщение",
"testPeriodic": "Тест периодической сводки",
"testScheduled": "Тест запланированных фото",
"testMemory": "Тест воспоминаний",
"checkingLinks": "Проверка ссылок...",
"missingLinksTitle": "Альбомы без публичных ссылок",
"missingLinksDesc": "У следующих альбомов нет публичных ссылок. Без ссылок получатели уведомлений не смогут просматривать фото.",
"expired": "Истёк",
"passwordProtected": "Защищён паролем",
"noLink": "Нет ссылки",
"saveWithoutLinks": "Сохранить без ссылок",
"createLinks": "Создать {count} ссылку(и)",
"linksNote": "Вы также можете создать ссылки вручную в Immich.",
"createdLinks": "Создано публичных ссылок: {count}"
},
"templates": {
"title": "Шаблоны",
"description": "Шаблоны сообщений Jinja2 для уведомлений",
"newTemplate": "Новый шаблон",
"cancel": "Отмена",
"name": "Название",
"body": "Текст шаблона (Jinja2)",
"variables": "Переменные",
"preview": "Предпросмотр",
"edit": "Редактировать",
"delete": "Удалить",
"confirmDelete": "Удалить этот шаблон?",
"create": "Создать шаблон",
"update": "Обновить шаблон",
"noTemplates": "Шаблонов пока нет. Без шаблона будет использован шаблон по умолчанию.",
"eventType": "Тип события",
"allEvents": "Все события",
"assetsAdded": "Добавлены файлы",
"assetsRemoved": "Удалены файлы",
"albumRenamed": "Альбом переименован",
"albumDeleted": "Альбом удалён"
},
"targets": {
"title": "Получатели",
"description": "Адреса доставки уведомлений",
"descTelegram": "Чаты Telegram для доставки уведомлений",
"descWebhook": "HTTP вебхуки для доставки уведомлений",
"descEmail": "Email-адреса для доставки уведомлений",
"descDiscord": "Вебхуки каналов Discord для уведомлений",
"descSlack": "Вебхуки каналов Slack для уведомлений",
"descNtfy": "Топики ntfy для push-уведомлений",
"descMatrix": "Комнаты Matrix для доставки уведомлений",
"descBroadcast": "Отправка сразу в несколько целей",
"childTargets": "цель(ей)",
"selectChildTargets": "Выберите дочерние цели",
"noChildTargets": "Дочерние цели не настроены.",
"noChildTargetsAvailable": "Сначала создайте другие цели, затем добавьте их сюда.",
"addTarget": "Добавить получателя",
"cancel": "Отмена",
"type": "Тип",
"name": "Название",
"namePlaceholder": "Мои уведомления",
"botToken": "Токен бота",
"chatId": "ID чата",
"webhookUrl": "URL вебхука",
"create": "Добавить",
"test": "Тест",
"delete": "Удалить",
"confirmDelete": "Удалить этого получателя?",
"noTargets": "Получатели уведомлений не настроены.",
"testSent": "Тестовое уведомление отправлено!",
"aiCaptions": "Включить AI подписи",
"telegramSettings": "Настройки Telegram",
"maxMedia": "Макс. медиафайлов",
"maxGroupSize": "Макс. размер группы",
"chunkDelay": "Задержка между группами (мс)",
"maxAssetSize": "Макс. размер файла (МБ)",
"videoWarning": "Предупреждение о размере видео",
"disableUrlPreview": "Отключить превью ссылок",
"sendLargeAsDocuments": "Отправлять большие фото как документы",
"chatAction": "Действие в чате",
"chatActionNone": "Нет (без действия)",
"chatActionTyping": "Печатает",
"chatActionUploadPhoto": "Загрузка фото",
"chatActionUploadVideo": "Загрузка видео",
"chatActionUploadDoc": "Загрузка документа",
"chatActionRecordVideo": "Запись видео",
"chatActionRecordVoice": "Запись голоса",
"typeTelegram": "Telegram",
"typeWebhook": "Вебхук",
"overrideUsername": "Переопределить имя бота",
"ntfyServer": "URL сервера ntfy",
"ntfyTopic": "Тема",
"ntfyToken": "Токен авторизации",
"ntfyTokenPlaceholder": "Необязательно (для защищённых тем)",
"selectEmailBot": "Выберите Email бот",
"selectMatrixBot": "Выберите Matrix бот",
"recipientEmail": "Email получателя",
"matrixRoomId": "ID комнаты",
"receivers": "Получатели",
"noReceivers": "Нет получателей",
"alreadyAdded": "уже добавлен",
"addReceiver": "Добавить получателя",
"receiverAdded": "Получатель добавлен",
"receiverDeleted": "Получатель удалён",
"receiverUpdated": "Получатель обновлён",
"confirmDeleteReceiver": "Удалить этого получателя?",
"receiverEnabled": "Получатель включён",
"receiverDisabled": "Получатель отключён"
},
"users": {
"title": "Пользователи",
"description": "Управление аккаунтами (только админ)",
"addUser": "Добавить пользователя",
"cancel": "Отмена",
"username": "Имя пользователя",
"password": "Пароль",
"role": "Роль",
"roleUser": "Пользователь",
"roleAdmin": "Администратор",
"create": "Создать",
"delete": "Удалить",
"confirmDelete": "Удалить этого пользователя?",
"joined": "зарегистрирован",
"noUsers": "Пользователи не найдены"
},
"telegramBot": {
"title": "Telegram боты",
"description": "Регистрация и управление Telegram ботами",
"addBot": "Добавить бота",
"name": "Отображаемое имя",
"namePlaceholder": "Бот семейных уведомлений",
"token": "Токен бота",
"tokenPlaceholder": "123456:ABC-DEF...",
"noBots": "Ботов пока нет.",
"chats": "Чаты",
"noChats": "Чатов не найдено. Сначала отправьте сообщение боту.",
"refreshChats": "Обновить",
"selectBot": "Выберите бота",
"selectChat": "Выберите чат",
"private": "Личный",
"group": "Группа",
"supergroup": "Супергруппа",
"channel": "Канал",
"confirmDelete": "Удалить этого бота?",
"commands": "Команды",
"enabledCommands": "Включённые команды",
"defaultCount": "Кол-во по умолчанию",
"responseMode": "Режим ответа",
"modeMedia": "Медиа (файлы)",
"modeText": "Только текст",
"botLocale": "Язык бота",
"rateLimits": "Ограничения частоты",
"rateSearch": "Кулдаун поиска",
"rateFind": "Кулдаун поиска файлов",
"rateDefault": "Кулдаун по умолчанию",
"noCommandsForProvider": "Этот тип провайдера не поддерживает команды бота.",
"syncCommands": "Синхр. команды",
"discoverChats": "Обнаружить чаты из Telegram",
"clickToCopy": "Нажмите, чтобы скопировать ID чата",
"chatsDiscovered": "Чаты обнаружены",
"chatDeleted": "Чат удалён",
"chatName": "Имя",
"chatType": "Тип",
"chatLang": "Язык",
"langOverride": "Переопр.",
"cmds": "Команды",
"commandsToggle": "Включить/выключить команды для этого чата",
"chatId": "ID чата",
"languageUpdated": "Язык чата обновлён",
"cmdLocale": "Язык бота",
"searchCooldown": "Кулдаун поиска (с)",
"saveConfig": "Сохранить настройки",
"commandsSynced": "Команды синхронизированы с Telegram",
"registerWebhook": "Зарегистрировать вебхук",
"unregisterWebhook": "Удалить вебхук",
"webhookRegistered": "Вебхук зарегистрирован",
"webhookUnregistered": "Вебхук удалён",
"updateMode": "Режим обновлений",
"polling": "Опрос",
"webhook": "Вебхук",
"webhookStatus": "Статус вебхука",
"webhookActive": "Вебхук активен",
"webhookNotSet": "Вебхук не установлен",
"webhookVerified": "Вебхук проверен",
"webhookError": "Последняя ошибка",
"pendingUpdates": "ожидающих обновлений",
"pollingActive": "Опрос активен",
"telegramSettings": "Настройки Telegram",
"externalUrl": "Внешний URL",
"externalUrlHint": "Публичный URL этого экземпляра Notify Bridge. Необходим для режима вебхука.",
"webhookSecret": "Секрет вебхука",
"webhookSecretHint": "Секретный токен для проверки запросов вебхука от Telegram (необязательно)",
"cacheTtl": "TTL кэша медиа (часы)",
"cacheTtlHint": "Сколько хранить кэш Telegram file_id перед повторной загрузкой (по умолчанию: 48ч)",
"settingsSaved": "Настройки сохранены",
"noExternalDomain": "Внешний URL домена не настроен",
"saveFailed": "Не удалось сохранить бота",
"webhookFailed": "Не удалось зарегистрировать webhook"
},
"trackingConfig": {
"title": "Конфигурации отслеживания",
"description": "Определите, на какие события и файлы реагировать",
"newConfig": "Новая конфигурация",
"name": "Название",
"namePlaceholder": "Основное отслеживание",
"noConfigs": "Конфигураций отслеживания пока нет.",
"unknownProviderType": "Неизвестный тип провайдера",
"eventTracking": "Отслеживание событий",
"assetsAdded": "Добавлены файлы",
"assetsRemoved": "Удалены файлы",
"albumRenamed": "Альбом переименован",
"albumDeleted": "Альбом удалён",
"sharingChanged": "Изменение доступа",
"push": "Push",
"issueOpened": "Задача создана",
"issueClosed": "Задача закрыта",
"issueCommented": "Комментарий к задаче",
"prOpened": "PR создан",
"prClosed": "PR закрыт",
"prMerged": "PR влит",
"prCommented": "Комментарий к PR",
"releasePublished": "Релиз опубликован",
"cardCreated": "Карточка создана",
"cardUpdated": "Карточка обновлена",
"cardMoved": "Карточка перемещена",
"cardDeleted": "Карточка удалена",
"cardCommented": "Комментарий к карточке",
"commentUpdated": "Комментарий обновлён",
"boardCreated": "Доска создана",
"boardUpdated": "Доска обновлена",
"boardDeleted": "Доска удалена",
"listCreated": "Список создан",
"listUpdated": "Список обновлён",
"listDeleted": "Список удалён",
"attachmentCreated": "Вложение добавлено",
"cardLabelAdded": "Метка добавлена",
"taskCompleted": "Задача завершена",
"upsOnline": "ИБП на сети (питание восстановлено)",
"upsOnBattery": "ИБП на батарее",
"upsLowBattery": "Низкий заряд батареи",
"upsBatteryRestored": "Заряд восстановлен",
"upsCommsLost": "Связь потеряна",
"upsCommsRestored": "Связь восстановлена",
"upsReplaceBattery": "Замена батареи",
"upsOverload": "Перегрузка ИБП",
"scheduledMessage": "Запланированное сообщение",
"webhookReceived": "Вебхук получен",
"trackImages": "Фото",
"trackVideos": "Видео",
"favoritesOnly": "Только избранные",
"assetDisplay": "Отображение файлов",
"includePeople": "Включать людей",
"includeDetails": "Включать детали",
"maxAssets": "Макс. файлов",
"sortBy": "Сортировка",
"sortOrder": "Порядок",
"periodicSummary": "Периодическая сводка",
"enabled": "Включено",
"intervalDays": "Интервал (дни)",
"startDate": "Дата начала",
"times": "Время (ЧЧ:ММ)",
"scheduledAssets": "Запланированные фото",
"albumMode": "Режим альбомов",
"limit": "Лимит",
"assetType": "Тип файлов",
"minRating": "Мин. рейтинг",
"memoryMode": "Воспоминания (В этот день)",
"memorySource": "Источник воспоминаний",
"memorySourceAlbums": "Сканировать альбомы",
"memorySourceNative": "Встроенные воспоминания Immich",
"test": "Тест",
"confirmDelete": "Удалить эту конфигурацию отслеживания?",
"sortNone": "Нет",
"sortDate": "Дата",
"sortRating": "Рейтинг",
"sortName": "Имя",
"orderDesc": "По убыванию",
"orderAsc": "По возрастанию",
"albumModePerAlbum": "По альбомам",
"albumModeCombined": "Объединённый",
"albumModeRandom": "Случайный",
"assetTypeAll": "Все",
"assetTypePhoto": "Фото",
"assetTypeVideo": "Видео",
"periodic": "периодический",
"scheduled": "запланированный",
"memory": "воспоминания",
"added": "добавление",
"removed": "удаление",
"renamed": "переименование",
"deleted": "удалён",
"providerType": "Тип провайдера",
"sortRandom": "Случайный"
},
"templateConfig": {
"title": "Конфигурации шаблонов",
"description": "Определите формат уведомлений",
"providerType": "Тип сервис-провайдера",
"newConfig": "Новая конфигурация",
"name": "Название",
"namePlaceholder": "По умолчанию RU",
"descriptionPlaceholder": "напр. Русские шаблоны для семейных уведомлений",
"noConfigs": "Конфигураций шаблонов пока нет.",
"eventMessages": "Сообщения о событиях",
"assetsAdded": "Добавлены файлы",
"assetsRemoved": "Удалены файлы",
"albumRenamed": "Альбом переименован",
"albumDeleted": "Альбом удалён",
"sharingChanged": "Изменение доступа",
"assetFormatting": "Форматирование файлов",
"imageTemplate": "Шаблон фото",
"videoTemplate": "Шаблон видео",
"assetsWrapper": "Обёртка списка",
"moreMessage": "Сообщение \"ещё\"",
"peopleFormat": "Формат людей",
"dateLocation": "Дата и место",
"dateFormat": "Формат даты и времени",
"dateOnlyFormat": "Формат даты",
"commonDate": "Общая дата",
"uniqueDate": "Дата файла",
"locationFormat": "Формат места",
"commonLocation": "Общее место",
"uniqueLocation": "Место файла",
"favoriteIndicator": "Индикатор избранного",
"scheduledMessages": "Запланированные сообщения",
"periodicSummary": "Периодическая сводка",
"periodicAlbum": "Элемент альбома",
"scheduledAssets": "Запланированные фото",
"memoryMode": "Воспоминания",
"settings": "Настройки",
"previewAs": "Предпросмотр как",
"preview": "Предпросмотр",
"variables": "Переменные",
"assetFields": "Поля файла (в {% for asset in added_assets %})",
"albumFields": "Поля альбома (в {% for album in albums %})",
"confirmDelete": "Удалить эту конфигурацию шаблона?",
"invalidFormat": "Некорректная строка формата",
"filterSlots": "Фильтр слотов...",
"slots": "слотов"
},
"templateVars": {
"message_assets_added": {
"description": "Уведомление о добавлении файлов в альбом"
},
"message_assets_removed": {
"description": "Уведомление об удалении файлов из альбома"
},
"message_album_renamed": {
"description": "Уведомление о переименовании альбома"
},
"message_album_deleted": {
"description": "Уведомление об удалении альбома"
},
"periodic_summary_message": {
"description": "Периодическая сводка альбомов (планировщик не реализован)"
},
"scheduled_assets_message": {
"description": "Запланированная подборка фото (планировщик не реализован)"
},
"memory_mode_message": {
"description": "«В этот день» — воспоминания (планировщик не реализован)"
},
"album_id": "ID альбома (UUID)",
"album_name": "Название альбома",
"album_url": "Публичная ссылка (пусто, если не расшарен)",
"added_count": "Количество добавленных файлов",
"removed_count": "Количество удалённых файлов",
"change_type": "Тип изменения (assets_added, assets_removed, album_renamed, album_deleted)",
"people": "Обнаруженные люди (список, {{ people | join(', ') }})",
"added_assets": "Список файлов ({% for asset in added_assets %})",
"removed_assets": "Список ID удалённых файлов (строки)",
"shared": "Общий альбом (boolean)",
"target_type": "Тип получателя: telegram, webhook, email, discord, slack, ntfy или matrix",
"has_videos": "Содержат ли добавленные файлы видео (boolean)",
"has_photos": "Содержат ли добавленные файлы фото (boolean)",
"old_name": "Прежнее название альбома (при переименовании)",
"new_name": "Новое название альбома (при переименовании)",
"old_shared": "Был ли общим до переименования (boolean)",
"new_shared": "Является ли общим после переименования (boolean)",
"albums": "Список альбомов ({% for album in albums %})",
"assets": "Список файлов ({% for asset in assets %})",
"date": "Текущая дата",
"asset_id": "ID файла (UUID)",
"asset_filename": "Имя файла",
"asset_type": "IMAGE или VIDEO",
"asset_created_at": "Дата создания (ISO 8601)",
"asset_owner": "Имя владельца",
"asset_owner_id": "ID владельца",
"asset_description": "Описание (EXIF или пользовательское)",
"asset_people": "Люди на этом файле (список)",
"asset_is_favorite": "В избранном (boolean)",
"asset_rating": "Рейтинг (1-5 или null)",
"asset_latitude": "GPS широта (float или null)",
"asset_longitude": "GPS долгота (float или null)",
"asset_city": "Город",
"asset_state": "Регион",
"asset_country": "Страна",
"asset_url": "Ссылка для просмотра (если расшарен)",
"asset_download_url": "Ссылка для скачивания (если расшарен)",
"asset_photo_url": "URL превью (только фото, если расшарен)",
"asset_playback_url": "URL видео (только видео, если расшарен)",
"album_name_field": "Название альбома (в списке альбомов)",
"album_asset_count": "Всего файлов в альбоме",
"album_url_field": "Ссылка на альбом",
"album_shared": "Общий альбом"
},
"settings": {
"title": "Настройки",
"description": "Глобальные настройки приложения",
"general": "Общие",
"externalUrl": "Внешний URL",
"externalUrlHint": "Публичный URL этого экземпляра Notify Bridge (напр. https://notify.example.com)",
"telegram": "Telegram",
"webhookSecret": "Секрет вебхука",
"webhookSecretHint": "Секретный токен для проверки запросов вебхука от Telegram",
"cacheTtl": "TTL кэша медиа (часы)",
"cacheTtlHint": "Сколько хранить кэш Telegram file_id перед повторной загрузкой",
"locales": "Языки шаблонов",
"supportedLocales": "Поддерживаемые локали",
"supportedLocalesHint": "Коды локалей через запятую для редактирования шаблонов (например en,ru,de,fr)",
"saved": "Настройки сохранены"
},
"hints": {
"periodicSummary": "Отправляет плановую сводку по всем отслеживаемым альбомам в указанное время. Подходит для ежедневных/еженедельных дайджестов.",
"scheduledAssets": "Отправляет случайные или выбранные фото из альбомов по расписанию. Как ежедневная подборка фото.",
"memoryMode": "\"В этот день\" — отправляет фото, сделанные в этот день в прошлые годы. Ностальгические воспоминания.",
"memorySource": "Альбомы: сканирует отслеживаемые альбомы по дате. Встроенные: использует воспоминания Immich (вся библиотека, с фильтрацией по альбомам).",
"favoritesOnly": "Включать только ассеты, отмеченные как избранные.",
"maxAssets": "Максимальное количество ассетов в одном уведомлении.",
"periodicStartDate": "Опорная дата для расчёта интервалов. Сводки отправляются каждые N дней от этой даты.",
"times": "Время отправки уведомлений в формате ЧЧ:ММ. Для нескольких значений через запятую: 09:00,18:00",
"albumMode": "По альбому: отдельное уведомление для каждого. Объединённый: одно уведомление со всеми. Случайный: выбирается один альбом.",
"minRating": "Включать только ассеты с рейтингом не ниже указанного (0 = без фильтра).",
"eventMessages": "Шаблоны уведомлений о событиях в реальном времени. Используйте {переменные} для динамического контента.",
"assetFormatting": "Форматирование отдельных ассетов в сообщениях уведомлений.",
"dateLocation": "Форматирование даты и местоположения. Использует синтаксис strftime для дат.",
"scheduledMessages": "Шаблоны для периодических сводок, подборок фото и воспоминаний «В этот день».",
"aiCaptions": "Использовать Claude AI для генерации описания уведомления вместо шаблона.",
"maxMedia": "Максимальное количество фото/видео в одном уведомлении (0 = только текст).",
"groupSize": "Медиагруппы Telegram содержат 2-10 элементов. Большие пакеты разбиваются на части.",
"chunkDelay": "Задержка в миллисекундах между отправкой порций медиа. Предотвращает ограничение Telegram.",
"maxAssetSize": "Пропускать файлы больше указанного размера в МБ. Лимит Telegram — 50 МБ.",
"trackingConfig": "Управляет тем, какие события вызывают уведомления и как фильтруются ассеты.",
"templateConfig": "Управляет форматом сообщений. Используются шаблоны по умолчанию, если не задано.",
"scanInterval": "Как часто опрашивать провайдер на предмет изменений (в секундах). Меньше = быстрее обнаружение, но больше запросов к API.",
"batchDuration": "Время накопления изменений перед отправкой уведомлений. 0 = отправлять сразу.",
"defaultTrackingConfig": "Применяется ко всем привязанным получателям, если не переопределено.",
"defaultTemplateConfig": "Применяется ко всем привязанным получателям, если не переопределено.",
"defaultCount": "Сколько результатов возвращать, если пользователь не указал количество (1-20).",
"responseMode": "Медиа: отправка фото. Текст: только имена файлов/ссылки. Медиа-режим использует больше трафика.",
"botLocale": "Язык описаний команд в меню Telegram и ответов бота.",
"rateLimits": "Кулдаун в секундах между использованиями команд в каждом чате. 0 = без ограничений."
},
"matrixBot": {
"title": "Matrix боты",
"description": "Подключения к Matrix серверам для уведомлений в комнаты",
"addBot": "Добавить Matrix бот",
"name": "Название",
"namePlaceholder": "Бот для дома",
"homeserverUrl": "URL сервера",
"accessToken": "Токен доступа",
"tokenPlaceholder": "syt_...",
"tokenUnchanged": "(без изменений)",
"displayName": "Отображаемое имя",
"testConnection": "Проверить подключение",
"noBots": "Matrix ботов пока нет.",
"confirmDelete": "Удалить этот Matrix бот?",
"operationFailed": "Операция не удалась"
},
"emailBot": {
"title": "Email боты",
"description": "SMTP отправители для уведомлений по email",
"addBot": "Добавить Email бот",
"name": "Название",
"namePlaceholder": "Семейные уведомления",
"email": "Email отправителя",
"smtpHost": "SMTP сервер",
"smtpPort": "Порт",
"smtpUsername": "Имя пользователя",
"smtpUsernamePlaceholder": "Как email или пароль приложения",
"smtpPassword": "Пароль",
"passwordUnchanged": "(без изменений)",
"useTls": "Использовать TLS/SSL",
"testConnection": "Отправить тестовое письмо",
"noBots": "Email ботов пока нет.",
"confirmDelete": "Удалить этот email бот?",
"operationFailed": "Операция не удалась"
},
"cmdTemplateConfig": {
"title": "Шаблоны команд",
"description": "Настройте ответы команд с помощью Jinja2 шаблонов",
"newConfig": "Новый шаблон",
"name": "Название",
"namePlaceholder": "Команды Immich по умолчанию",
"descriptionPlaceholder": "Например, пользовательские форматы ответов",
"noConfigs": "Шаблонов команд пока нет.",
"confirmDelete": "Удалить этот шаблон команд?",
"commandResponses": "Ответы команд",
"commandResponsesHint": "Оставьте слот пустым, чтобы использовать ответ по умолчанию."
},
"commandConfig": {
"title": "Конфигурации команд",
"description": "Настройки команд для взаимодействия с Telegram-ботами",
"newConfig": "Новая конфигурация",
"name": "Название",
"namePlaceholder": "Команды по умолчанию",
"providerType": "Тип провайдера",
"enabledCommands": "Включённые команды",
"locale": "Язык",
"responseMode": "Режим ответа",
"modeMedia": "Медиа (файлы)",
"modeText": "Только текст",
"defaultCount": "Кол-во по умолчанию",
"rateLimits": "Ограничения частоты",
"searchCooldown": "Кулдаун поиска (с)",
"defaultCooldown": "Кулдаун по умолчанию (с)",
"noConfigs": "Конфигураций команд пока нет.",
"confirmDelete": "Удалить эту конфигурацию команд?",
"commands": "команд",
"responseTemplate": "Шаблон ответов",
"noTemplate": "По умолчанию (встроенный)"
},
"commandTracker": {
"title": "Трекеры команд",
"description": "Управление трекерами команд и их слушателями",
"newTracker": "Новый трекер",
"name": "Название",
"namePlaceholder": "Семейные команды",
"provider": "Провайдер",
"selectProvider": "Выберите провайдер...",
"commandConfig": "Конфигурация команд",
"selectCommandConfig": "Выберите конфигурацию...",
"listeners": "Слушатели",
"addListener": "Добавить слушателя",
"removeListener": "Удалить",
"noTrackers": "Трекеров команд пока нет.",
"confirmDelete": "Удалить этот трекер команд?",
"enabled": "Включён",
"disabled": "Отключён",
"noListeners": "Нет подключённых слушателей.",
"selectBot": "Выберите бота...",
"listenerType": "telegram_bot"
},
"snackbar": {
"showDetails": "Показать детали",
"hideDetails": "Скрыть детали"
},
"snack": {
"providerSaved": "Провайдер сохранён",
"providerDeleted": "Провайдер удалён",
"trackerCreated": "Трекер создан",
"trackerUpdated": "Трекер обновлён",
"trackerDeleted": "Трекер удалён",
"trackerPaused": "Трекер приостановлен",
"trackerResumed": "Трекер возобновлён",
"targetSaved": "Цель сохранена",
"targetDeleted": "Цель удалена",
"targetTestSent": "Тестовое уведомление отправлено",
"templateSaved": "Шаблон сохранён",
"templateDeleted": "Шаблон удалён",
"trackingConfigSaved": "Конфигурация сохранена",
"trackingConfigDeleted": "Конфигурация удалена",
"botRegistered": "Бот зарегистрирован",
"botDeleted": "Бот удалён",
"userCreated": "Пользователь создан",
"userDeleted": "Пользователь удалён",
"passwordChanged": "Пароль изменён",
"copied": "Скопировано",
"genericError": "Что-то пошло не так",
"commandsSaved": "Конфигурация команд сохранена",
"commandsSynced": "Команды синхронизированы с Telegram",
"targetLinked": "Получатель привязан",
"targetUnlinked": "Получатель отвязан",
"botUpdated": "Бот обновлён",
"commandConfigSaved": "Конфигурация команд сохранена",
"commandConfigDeleted": "Конфигурация команд удалена",
"commandTrackerCreated": "Трекер команд создан",
"commandTrackerUpdated": "Трекер команд обновлён",
"commandTrackerDeleted": "Трекер команд удалён",
"commandTrackerEnabled": "Трекер команд включён",
"commandTrackerDisabled": "Трекер команд отключён",
"listenerAdded": "Слушатель добавлен",
"listenerRemoved": "Слушатель удалён",
"cmdTemplateSaved": "Шаблон команд сохранён",
"cmdTemplateDeleted": "Шаблон команд удалён",
"emailBotCreated": "Email бот создан",
"emailBotUpdated": "Email бот обновлён",
"emailBotDeleted": "Email бот удалён",
"emailBotTestSent": "Тестовое письмо отправлено",
"matrixBotCreated": "Matrix бот создан",
"matrixBotUpdated": "Matrix бот обновлён",
"matrixBotDeleted": "Matrix бот удалён",
"matrixBotTestOk": "Подключение к Matrix проверено"
},
"common": {
"loading": "Загрузка...",
"save": "Сохранить",
"cancel": "Отмена",
"delete": "Удалить",
"clone": "Копировать",
"edit": "Редактировать",
"description": "Описание",
"close": "Закрыть",
"confirm": "Подтвердить",
"error": "Ошибка",
"success": "Успешно",
"none": "Нет",
"noneDefault": "Нет (по умолчанию)",
"loadError": "Не удалось загрузить данные",
"headersInvalid": "Невалидный JSON",
"language": "Язык",
"theme": "Тема",
"apiDocs": "API Docs",
"light": "Светлая",
"dark": "Тёмная",
"system": "Системная",
"test": "Тест",
"create": "Создать",
"changePassword": "Сменить пароль",
"currentPassword": "Текущий пароль",
"newPassword": "Новый пароль",
"passwordChanged": "Пароль успешно изменён",
"expand": "Развернуть",
"collapse": "Свернуть",
"syntaxError": "Ошибка синтаксиса",
"undefinedVar": "Неизвестная переменная",
"line": "строка",
"enable": "Включить",
"disable": "Выключить",
"add": "Добавить",
"filterByName": "Фильтр по имени...",
"allTypes": "Все типы",
"allProviders": "Все провайдеры",
"noFilterResults": "Нет элементов, соответствующих фильтру.",
"redirecting": "Перенаправление...",
"noMatches": "Ничего не найдено",
"saveFailed": "Не удалось сохранить",
"loadFailed": "Не удалось загрузить данные",
"dismiss": "Закрыть",
"systemSuffix": " (Системный)",
"search": "Поиск...",
"nSelected": "{0} выбрано",
"unknown": "Неизвестно"
},
"templateSlot": {
"message_assets_added": "Новые файлы добавлены в альбом",
"message_assets_removed": "Файлы удалены из альбома",
"message_collection_renamed": "Альбом переименован",
"message_collection_deleted": "Альбом удалён",
"message_sharing_changed": "Статус общего доступа изменён",
"periodic_summary_message": "Периодическая сводка альбома",
"scheduled_assets_message": "Запланированная отправка файлов",
"memory_mode_message": "Воспоминания «В этот день»",
"message_push": "Код отправлен в репозиторий",
"message_issue_opened": "Issue открыт",
"message_issue_closed": "Issue закрыт",
"message_issue_commented": "Комментарий к issue",
"message_pr_opened": "Pull request открыт",
"message_pr_closed": "Pull request закрыт",
"message_pr_merged": "Pull request слит",
"message_pr_commented": "Комментарий к pull request",
"message_release_published": "Релиз опубликован",
"message_scheduled_message": "Запланированное сообщение",
"message_card_created": "Карточка создана",
"message_card_updated": "Карточка обновлена",
"message_card_moved": "Карточка перемещена",
"message_card_deleted": "Карточка удалена",
"message_card_commented": "Комментарий к карточке",
"message_comment_updated": "Комментарий обновлён",
"message_board_created": "Доска создана",
"message_board_updated": "Доска обновлена",
"message_board_deleted": "Доска удалена",
"message_list_created": "Список создан",
"message_list_updated": "Список обновлён",
"message_list_deleted": "Список удалён",
"message_attachment_created": "Вложение добавлено",
"message_card_label_added": "Метка добавлена к карточке",
"message_task_completed": "Задача выполнена",
"message_ups_online": "ИБП на сетевом питании",
"message_ups_on_battery": "ИБП перешёл на батарею",
"message_ups_low_battery": "Батарея критически разряжена",
"message_ups_battery_restored": "Заряд батареи восстановлен",
"message_ups_comms_lost": "Связь с ИБП потеряна",
"message_ups_comms_restored": "Связь с ИБП восстановлена",
"message_ups_replace_battery": "Батарея требует замены",
"message_ups_overload": "ИБП перегружен"
},
"gridDesc": {
"authNone": "Аутентификация не требуется",
"authBearer": "Проверка запросов по Bearer-токену",
"authHmac": "Проверка подписи через HMAC-SHA256",
"sortNone": "Без сортировки",
"sortDate": "По дате создания",
"sortRating": "По рейтингу",
"sortName": "По имени файла",
"sortRandom": "Случайный порядок",
"orderDesc": "Сначала новые или высокие",
"orderAsc": "Сначала старые или низкие",
"albumModePerAlbum": "Отдельное сообщение для каждого альбома",
"albumModeCombined": "Все альбомы в одном сообщении",
"albumModeRandom": "Случайный альбом",
"assetTypeAll": "Фото и видео",
"assetTypePhoto": "Только фото",
"assetTypeVideo": "Только видео",
"memorySourceAlbums": "Поиск совпадений в отслеживаемых альбомах",
"memorySourceNative": "Использовать API воспоминаний Immich",
"localeEn": "Английский интерфейс",
"localeRu": "Русский интерфейс",
"modeMedia": "Отправка файлов фото/видео",
"modeText": "Только имена файлов и ссылки",
"allEvents": "Показать все типы событий",
"assetsAdded": "Новые файлы добавлены в альбом",
"assetsRemoved": "Файлы удалены из альбома",
"renamed": "Альбом переименован",
"deleted": "Альбом удалён",
"sharingChanged": "Изменён доступ к альбому",
"newestFirst": "Сначала новые события",
"oldestFirst": "Сначала старые события",
"chatActionNone": "Индикатор не показывается",
"chatActionTyping": "Показать «печатает...»",
"chatActionUploadPhoto": "Показать «отправляет фото...»",
"chatActionUploadVideo": "Показать «отправляет видео...»",
"chatActionUploadDoc": "Показать «отправляет документ...»",
"chatActionRecordVideo": "Показать «записывает видео...»",
"chatActionRecordVoice": "Показать «записывает голос...»",
"previewTelegram": "Предпросмотр в формате Telegram HTML",
"previewWebhook": "Предпросмотр как текст",
"previewEmail": "Предпросмотр в формате Email HTML",
"previewDiscord": "Предпросмотр в формате Discord",
"previewSlack": "Предпросмотр в формате Slack",
"previewNtfy": "Предпросмотр уведомления ntfy",
"previewMatrix": "Предпросмотр в формате Matrix HTML",
"providerImmich": "Фотосервер для самостоятельного размещения",
"providerGitea": "Git-сервер для самостоятельного размещения",
"providerPlanka": "Канбан-доска для самостоятельного размещения",
"providerScheduler": "Запланированные сообщения по расписанию",
"providerNut": "Мониторинг ИБП через NUT",
"providerGooglePhotos": "Альбомы и общие библиотеки Google Фото",
"providerWebhook": "Приём событий через HTTP POST"
},
"webhookLogs": {
"title": "Последние запросы",
"empty": "Записей пока нет",
"clear": "Очистить историю",
"confirmClear": "Очистить все сохранённые запросы для этого провайдера?",
"statusMatched": "Совпадение",
"statusUnmatched": "Не совпало",
"statusError": "Ошибка",
"headers": "Заголовки",
"body": "Тело запроса",
"extractedFields": "Извлечённые поля",
"errorMessage": "Ошибка",
"cleared": "История запросов очищена"
},
"error": {
"notFound": "Страница не найдена",
"goHome": "На главную"
},
"searchPalette": {
"placeholder": "Поиск объектов...",
"noResults": "Ничего не найдено",
"typeToSearch": "Начните вводить для поиска",
"navigate": "навигация",
"open": "открыть",
"close": "закрыть"
},
"actions": {
"title": "Действия",
"description": "Запланированные операции над внешними сервисами",
"addAction": "Добавить действие",
"noActions": "Действия ещё не настроены.",
"provider": "Провайдер",
"selectProvider": "Выберите провайдер...",
"actionType": "Тип действия",
"name": "Название",
"schedule": "Расписание",
"interval": "Интервал",
"seconds": "секунд",
"cronHint": "Стандартное cron-выражение (напр. 0 3 * * * — ежедневно в 3:00)",
"enabled": "Включено",
"rules": "правил",
"addRule": "Добавить правило",
"ruleName": "Название правила",
"ruleNamePlaceholder": "напр. Алиса → Семейный альбом",
"unnamedRule": "Без названия",
"noRules": "Правил пока нет. Добавьте правило, чтобы определить, что делает это действие.",
"on": "ВКЛ",
"off": "ВЫКЛ",
"criteria": "Критерии",
"persons": "Люди",
"addPerson": "Добавить человека...",
"excludePersons": "Исключить людей",
"addExcludePerson": "Добавить человека для исключения...",
"searchQuery": "Умный поиск",
"searchQueryPlaceholder": "напр. закат, пляж, день рождения...",
"assetType": "Тип файла",
"dateFrom": "С даты",
"dateTo": "По дату",
"favoritesOnly": "Только избранное",
"targetAlbum": "Целевой альбом",
"selectAlbum": "Альбом",
"selectAlbumPlaceholder": "Выберите альбом",
"albumId": "ID альбома",
"createAlbumIfMissing": "Создать альбом, если не существует",
"newAlbumName": "Название нового альбома",
"execute": "Выполнить",
"dryRun": "Пробный запуск",
"history": "История",
"affected": "затронуто",
"executeResult": "Действие выполнено: затронуто {affected} объектов",
"dryRunResult": "Пробный запуск: было бы затронуто {affected} объектов",
"saved": "Действие сохранено",
"deleted": "Действие удалено",
"ruleSaved": "Правило сохранено",
"ruleDeleted": "Правило удалено",
"confirmDelete": "Вы уверены, что хотите удалить это действие? Все правила и история выполнений будут потеряны.",
"loadError": "Не удалось загрузить действия",
"noExecutions": "Выполнений пока нет.",
"triggerManual": "вручную",
"triggerDryRun": "пробный",
"triggerScheduled": "по расписанию"
},
"backup": {
"title": "Резервное копирование",
"description": "Экспорт и импорт конфигурации, настройка автоматических бэкапов",
"export": "Экспорт конфигурации",
"exportDescription": "Скачать конфигурацию в формате JSON. Выберите категории для включения.",
"import": "Импорт конфигурации",
"importDescription": "Загрузить ранее экспортированный файл бэкапа для восстановления.",
"categories": "Категории",
"selectAll": "Выбрать все",
"deselectAll": "Снять все",
"catProviders": "Провайдеры",
"catTelegramBots": "Telegram боты",
"catMatrixBots": "Matrix боты",
"catEmailBots": "Email боты",
"catTargets": "Цели",
"catTrackingConfigs": "Конфиги отслеживания",
"catTemplateConfigs": "Конфиги шаблонов",
"catCommandConfigs": "Конфиги команд",
"catCommandTemplateConfigs": "Шаблоны команд",
"catNotificationTrackers": "Трекеры уведомлений",
"catCommandTrackers": "Трекеры команд",
"catActions": "Действия",
"catAppSettings": "Настройки приложения",
"secretsMode": "Секреты",
"secretsExclude": "Исключить секреты (безопасно)",
"secretsMasked": "Маскировать секреты (для проверки)",
"secretsInclude": "Включить секреты (открытый текст)",
"secretsWarningExport": "Внимание: файл экспорта будет содержать конфиденциальные данные (API-ключи, токены, пароли) в открытом виде.",
"exportBtn": "Экспорт",
"exportSuccess": "Конфигурация экспортирована",
"validateBtn": "Проверить",
"validating": "Проверка...",
"validationPassed": "Проверка пройдена",
"validationFailed": "Проверка не пройдена",
"entities": "Сущности",
"conflictMode": "Разрешение конфликтов",
"conflictSkip": "Пропустить существующие (оставить текущие)",
"conflictRename": "Переименовать дубликаты (добавить суффикс)",
"conflictOverwrite": "Перезаписать существующие (заменить)",
"importBtn": "Импорт",
"importing": "Импорт...",
"importSuccess": "Конфигурация импортирована",
"importResults": "Результаты импорта",
"resultCreated": "Создано",
"resultSkipped": "Пропущено",
"resultOverwritten": "Перезаписано",
"resultErrors": "Ошибки",
"confirmExportTitle": "Экспорт с секретами?",
"confirmExportMessage": "Экспортированный файл будет содержать все секреты (API-ключи, токены ботов, пароли) в открытом виде. Используйте только для безопасной передачи.",
"confirmImportTitle": "Импортировать конфигурацию?",
"confirmImportMessage": "Это создаст новые сущности в базе данных. Убедитесь, что файл бэкапа прошёл проверку.",
"scheduled": "Автоматические бэкапы",
"enableScheduled": "Включить автоматическое резервное копирование",
"interval": "Интервал",
"hours": "часов",
"retention": "Хранить последних",
"scheduleSaved": "Расписание бэкапов сохранено",
"savedFiles": "Сохранённые бэкапы",
"noFiles": "Файлов бэкапа пока нет.",
"download": "Скачать",
"fileDeleted": "Файл бэкапа удалён"
}
}