be15463fd2
Introduce a third update_mode option alongside polling/webhook. 'none' disables both polling and webhook delivery — useful when another instance owns the listener or when the bot is send-only. Switching into 'none' now unschedules polling and unregisters any active webhook so Telegram stops delivering updates. New bots default to 'none' (safer when multiple bridges share a token). Existing bots upgraded from a pre-update_mode schema keep 'polling' so their behavior is unchanged.
1224 lines
72 KiB
JSON
1224 lines
72 KiB
JSON
{
|
||
"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": "Ошибка настройки",
|
||
"backendUnreachable": "Не удалось подключиться к серверу. Убедитесь, что он запущен, и повторите попытку."
|
||
},
|
||
"dashboard": {
|
||
"title": "Главная",
|
||
"description": "Обзор настроек Notify Bridge",
|
||
"providers": "Провайдеры",
|
||
"activeTrackers": "Активные трекеры",
|
||
"targets": "Получатели",
|
||
"recentEvents": "События",
|
||
"clearEvents": "Очистить",
|
||
"confirmClearEvents": "Удалить все записи журнала событий? Это действие нельзя отменить.",
|
||
"chart": "График событий",
|
||
"noEvents": "Событий пока нет. Создайте трекер для отслеживания.",
|
||
"loading": "Загрузка...",
|
||
"justNow": "только что",
|
||
"minutesAgo": "{n} мин назад",
|
||
"hoursAgo": "{n} ч назад",
|
||
"daysAgo": "{n} д назад",
|
||
"assetsAdded": "добавлены файлы",
|
||
"assetsRemoved": "удалены файлы",
|
||
"collectionRenamed": "альбом переименован",
|
||
"collectionDeleted": "альбом удалён",
|
||
"sharingChanged": "изменение доступа",
|
||
"scheduledMessage": "запланированное сообщение",
|
||
"actionSuccess": "действие выполнено",
|
||
"actionPartial": "действие частично",
|
||
"actionFailed": "действие провалено",
|
||
"searchEvents": "Поиск событий...",
|
||
"allEvents": "Все события",
|
||
"filterAssetsAdded": "Добавление файлов",
|
||
"filterAssetsRemoved": "Удаление файлов",
|
||
"filterRenamed": "Переименование",
|
||
"filterDeleted": "Удаление",
|
||
"filterSharingChanged": "Изменение доступа",
|
||
"filterActionSuccess": "Действие выполнено",
|
||
"filterActionPartial": "Действие частично",
|
||
"filterActionFailed": "Действие провалено",
|
||
"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": "Удалить",
|
||
"edit": "Редактировать пользователя",
|
||
"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": "Режим обновлений",
|
||
"none": "Откл.",
|
||
"noneActive": "Приём обновлений отключён",
|
||
"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",
|
||
"quietHours": "Тихие часы",
|
||
"quietHoursStart": "Начало",
|
||
"quietHoursEnd": "Конец",
|
||
"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 URL-кэша (часы)",
|
||
"cacheTtlHint": "Сколько хранить Telegram file_id, привязанные к URL (напр. публичные ссылки). 0 — отключить TTL. Кэш ассетов использует хэширование содержимого (thumbhash) и не зависит от этой настройки.",
|
||
"cacheMaxEntries": "Макс. записей в кэше",
|
||
"cacheMaxEntriesHint": "Верхний предел записей в каждом кэше (URL и ассеты). При превышении удаляются самые старые (LRU). По умолчанию 5000.",
|
||
"cacheStats": "Содержимое кэша",
|
||
"cacheStatsHint": "Показываемый размер — это суммарный объём медиа, который был изначально загружен в Telegram для закэшированных записей, т.е. приблизительный объём повторных загрузок, который экономит кэш. Сам файл кэша занимает лишь несколько КБ; медиа хранится на серверах Telegram.",
|
||
"cacheStatsUrl": "Кэш URL",
|
||
"cacheStatsAsset": "Кэш ассетов",
|
||
"cacheStatsEntries": "записей",
|
||
"cacheStatsEmpty": "пусто",
|
||
"cacheStatsOldest": "самая старая",
|
||
"cacheStatsNewest": "самая свежая",
|
||
"clearCache": "Очистить кэш медиа",
|
||
"clearCacheHint": "Удалить кэшированные Telegram file_id. При следующей отправке медиа будут загружены заново.",
|
||
"clearCacheConfirmTitle": "Очистить кэш Telegram?",
|
||
"clearCacheConfirm": "Это удалит все кэшированные Telegram file_id. Следующие уведомления будут повторно загружать медиа, что может занять больше времени и трафика.",
|
||
"clearCacheConfirmBtn": "Очистить кэш",
|
||
"clearCacheDone": "Кэш Telegram очищен",
|
||
"timezone": "Часовой пояс",
|
||
"timezoneHint": "Часовой пояс IANA (например UTC, Europe/Warsaw, America/New_York). Используется для интерпретации полей HH:MM, таких как тихие часы.",
|
||
"locales": "Языки шаблонов",
|
||
"supportedLocales": "Поддерживаемые локали",
|
||
"supportedLocalesHint": "Языки, доступные для редактирования шаблонов уведомлений и команд. Встроенные шаблоны поставляются для английского и русского; другие языки начинают с пустых.",
|
||
"logging": "Логирование",
|
||
"logLevel": "Уровень логов",
|
||
"logLevelHint": "Уровень логирования сервера. Поднимайте до DEBUG при отладке; оставляйте INFO в продакшене. WARNING/ERROR скрывают пошаговые строки по командам.",
|
||
"logFormat": "Формат логов",
|
||
"logFormatHint": "Формат вывода. 'text' — читаемый человеком; 'json' — по одному объекту в строке для агрегаторов (Loki, ELK). Смена требует перезапуска сервера.",
|
||
"logLevels": "Переопределения по модулям",
|
||
"logLevelsHint": "Пары 'модуль=УРОВЕНЬ' через запятую, чтобы приглушить шумные модули или углубиться в один. Пример: sqlalchemy.engine=WARNING,notify_bridge_core.notifications.telegram.client=DEBUG",
|
||
"saved": "Настройки сохранены"
|
||
},
|
||
"hints": {
|
||
"periodicSummary": "Отправляет плановую сводку по всем отслеживаемым альбомам в указанное время. Подходит для ежедневных/еженедельных дайджестов.",
|
||
"scheduledAssets": "Отправляет случайные или выбранные фото из альбомов по расписанию. Как ежедневная подборка фото.",
|
||
"memoryMode": "\"В этот день\" — отправляет фото, сделанные в этот день в прошлые годы. Ностальгические воспоминания.",
|
||
"memorySource": "Альбомы: сканирует отслеживаемые альбомы по дате. Встроенные: использует воспоминания Immich (вся библиотека, с фильтрацией по альбомам).",
|
||
"quietHours": "Подавляет все уведомления в указанном HH:MM окне (по часовому поясу приложения). Поддерживаются окна через полночь, например 22:00–07:00.",
|
||
"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",
|
||
"editScope": "Изменить область альбомов",
|
||
"scopeAll": "из маршрутизации уведомлений",
|
||
"albumsShort": "альбомов",
|
||
"scopeTitle": "Переопределение области альбомов для этого бота",
|
||
"scopeDescription": "По умолчанию команды этого бота видят только альбомы, уведомления которых приходят в его чаты (вычисляется из ваших трекеров уведомлений). Задайте явный список здесь, чтобы расширить или сузить этот набор для всех чатов данного бота.",
|
||
"scopeInherit": "Наследовать: вычислить из маршрутизации уведомлений",
|
||
"noCollections": "Нет доступных альбомов."
|
||
},
|
||
"snackbar": {
|
||
"showDetails": "Показать детали",
|
||
"hideDetails": "Скрыть детали"
|
||
},
|
||
"timezone": {
|
||
"searchPlaceholder": "Поиск по городам или IANA-кодам…",
|
||
"detect": "Определить",
|
||
"utc": "UTC",
|
||
"noMatches": "Нет совпадений"
|
||
},
|
||
"locales": {
|
||
"empty": "Языки не выбраны. Добавьте язык ниже, чтобы начать редактирование шаблонов.",
|
||
"add": "Добавить язык",
|
||
"searchPlaceholder": "Найти или ввести код (например de-CH)…",
|
||
"addCustom": "Добавить свой код",
|
||
"noSuggestions": "Ничего не найдено. Введите код локали (2–3 буквы).",
|
||
"primary": "Основной",
|
||
"shipped": "Встроенный",
|
||
"shippedHint": "Для этого языка есть встроенные шаблоны уведомлений и команд.",
|
||
"makePrimary": "Сделать основным",
|
||
"moveUp": "Выше",
|
||
"moveDown": "Ниже",
|
||
"remove": "Удалить",
|
||
"removeLast": "Должен быть хотя бы один язык",
|
||
"reorder": "Перетащите для изменения порядка",
|
||
"orderHint": "Первый язык используется как основной при отсутствии перевода. Перетаскивайте, чтобы изменить порядок."
|
||
},
|
||
"snack": {
|
||
"eventsCleared": "Очищено событий: {count}",
|
||
"providerSaved": "Провайдер сохранён",
|
||
"providerDeleted": "Провайдер удалён",
|
||
"trackerCreated": "Трекер создан",
|
||
"trackerUpdated": "Трекер обновлён",
|
||
"trackerDeleted": "Трекер удалён",
|
||
"trackerPaused": "Трекер приостановлен",
|
||
"trackerResumed": "Трекер возобновлён",
|
||
"targetSaved": "Цель сохранена",
|
||
"targetDeleted": "Цель удалена",
|
||
"targetTestSent": "Тестовое уведомление отправлено",
|
||
"templateSaved": "Шаблон сохранён",
|
||
"templateDeleted": "Шаблон удалён",
|
||
"trackingConfigSaved": "Конфигурация сохранена",
|
||
"trackingConfigDeleted": "Конфигурация удалена",
|
||
"botRegistered": "Бот зарегистрирован",
|
||
"botDeleted": "Бот удалён",
|
||
"userCreated": "Пользователь создан",
|
||
"userDeleted": "Пользователь удалён",
|
||
"userUpdated": "Пользователь обновлён",
|
||
"passwordChanged": "Пароль изменён",
|
||
"copied": "Скопировано",
|
||
"genericError": "Что-то пошло не так",
|
||
"commandsSaved": "Конфигурация команд сохранена",
|
||
"commandsSynced": "Команды синхронизированы с Telegram",
|
||
"targetLinked": "Получатель привязан",
|
||
"targetUnlinked": "Получатель отвязан",
|
||
"botUpdated": "Бот обновлён",
|
||
"commandConfigSaved": "Конфигурация команд сохранена",
|
||
"commandConfigDeleted": "Конфигурация команд удалена",
|
||
"commandTrackerCreated": "Трекер команд создан",
|
||
"commandTrackerUpdated": "Трекер команд обновлён",
|
||
"commandTrackerDeleted": "Трекер команд удалён",
|
||
"commandTrackerEnabled": "Трекер команд включён",
|
||
"commandTrackerDisabled": "Трекер команд отключён",
|
||
"listenerAdded": "Слушатель добавлен",
|
||
"listenerRemoved": "Слушатель удалён",
|
||
"listenerScopeSaved": "Область обновлена",
|
||
"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": "Подтвердить",
|
||
"cannotDelete": "Невозможно удалить",
|
||
"blockedByIntro": "На объект ссылаются:",
|
||
"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": "Изменён доступ к альбому",
|
||
"actionSuccess": "Запланированное действие выполнено",
|
||
"actionPartial": "Запланированное действие выполнено частично",
|
||
"actionFailed": "Запланированное действие провалено",
|
||
"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": "Интервал",
|
||
"cronMode": "Cron выражение",
|
||
"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": "Файл бэкапа удалён",
|
||
"createManual": "Создать бэкап",
|
||
"manualCreated": "Бэкап создан",
|
||
"pendingTitle": "Восстановление ожидает — перезапустите для применения",
|
||
"pendingBy": "Загружено пользователем {by}",
|
||
"pendingAt": "в {at}",
|
||
"pendingCancelled": "Ожидающее восстановление отменено",
|
||
"restorePrepared": "Восстановление подготовлено",
|
||
"restoreApplyPrompt": "Применить восстановление сейчас (бэкенд перезапустится) или позже при следующем штатном перезапуске?",
|
||
"applyLater": "Применить позже",
|
||
"restartNow": "Перезапустить сейчас",
|
||
"restartingTitle": "Перезапуск бэкенда…",
|
||
"restartingDescription": "Страница перезагрузится, как только сервер снова будет доступен."
|
||
}
|
||
} |