{ "app": { "name": "Notify Bridge", "tagline": "Уведомления о сервисах" }, "crumbs": { "routingNotification": "Маршрутизация · Уведомления", "routingCommands": "Маршрутизация · Команды", "routingTargets": "Маршрутизация · Цели", "routingAutomation": "Маршрутизация · Автоматизация", "operatorsBots": "Операторы · Боты", "systemAccess": "Система · Доступ", "systemConfiguration": "Система · Настройки", "systemMaintenance": "Система · Обслуживание", "serviceConnections": "Сервис · Подключения" }, "nav": { "sectionOverview": "Обзор", "sectionRouting": "Маршрутизация", "sectionOperators": "Операторы", "sectionSystem": "Система", "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": "действие провалено", "commandHandled": "команда обработана", "commandRateLimited": "ограничение частоты", "commandFailed": "команда упала", "autoRefreshTitle": "Интервал авто-обновления списка событий", "refreshOff": "Выкл", "refresh10s": "10с", "refresh30s": "30с", "refresh60s": "1м", "refresh5m": "5м", "searchEvents": "Поиск событий...", "allEvents": "Все события", "filterAssetsAdded": "Добавление файлов", "filterAssetsRemoved": "Удаление файлов", "filterRenamed": "Переименование", "filterDeleted": "Удаление", "filterSharingChanged": "Изменение доступа", "filterActionSuccess": "Действие выполнено", "filterActionPartial": "Действие частично", "filterActionFailed": "Действие провалено", "filterCommandHandled": "Команда обработана", "filterCommandRateLimited": "Ограничение частоты", "filterCommandFailed": "Команда упала", "allProviders": "Все провайдеры", "newestFirst": "Сначала новые", "oldestFirst": "Сначала старые", "loadingEvents": "Загрузка событий...", "heldUntil": "ожидает до", "deferredTitle": "Тихий режим задержал уведомление; оно будет отправлено после окончания окна.", "deliveredLate": "доставлено позже", "deliveredLateTitle": "Уведомление отправлено после окончания тихих часов.", "deferredThenDropped": "отброшено после задержки", "deferredThenDroppedTitle": "Задержано тихими часами, затем отброшено — цель или связь были удалены до окончания окна.", "deferredThenFailed": "ошибка после задержки", "suppressedQuietHours": "подавлено (тихие часы)", "suppressedNondeferrableTitle": "Событие по расписанию подавлено тихими часами. Запланированные/периодические/воспоминания отбрасываются, а не откладываются.", "asset": "файл", "assets": "файлов", "eventActivity": "Активность событий", "last14days": "Последние 14 дней", "event": "событие", "events": "событий", "noChartData": "Нет данных о событиях", "live": "В эфире", "attention": "Внимание", "heroPrefix": "Сегодня", "heroEmphasis": "всё", "heroSuffix": "идёт по плану.", "heroSummary": "{providers} провайдеров на связи, {armed} из {total} трекеров активны, {throughput} событий доставлено в {targets} каналов за сутки.", "throughput24h": "пропускная способность · 24ч", "eventsShort": "событий", "armedShort": "активны", "providersShort": "провайдеров", "targetsShort": "каналов", "trackersShort": "трекеров", "streamTitle": "Поток", "streamEmphasis": "сигналов", "eventsLabel": "событий", "onWatchTitle": "На", "onWatchEmphasis": "слежении", "noProviders": "Пока нет провайдеров.", "addProvider": "Добавить", "addProviderHint": "Подключите сервис, чтобы начать слежение", "pulseTitle": "Пульс", "pulseEmphasis": "· 14 дней", "pulseSub": "События по дням", "wiresTitle": "Активные", "wiresEmphasis": "линии", "wiresSub": "маршрутов", "composeTitle": "Выберите источник, выберите канал.", "composeEmphasis": "Свяжите.", "composeSub": "Проведите путь от провайдера → трекер → шаблон → цель. Или вставьте webhook URL — остальное мы определим сами.", "viewTrackers": "К трекерам", "newTracker": "Новый трекер", "eventsTotal": "Событий" }, "events": { "detailTitle": "Детали события", "bot": "Бот", "chat": "Чат", "issuer": "Отправитель", "commandTracker": "Командный трекер", "tracker": "Трекер", "action": "Действие", "provider": "Провайдер", "assetsCount": "Файлов", "openProvider": "Открыть провайдера", "openBot": "Открыть бота", "openCommandTracker": "Открыть командный трекер", "openAction": "Открыть действие", "openTracker": "Открыть трекер", "rawDetails": "Сырые данные", "lifecycle": { "heldTitle": "Задержано тихими часами", "heldUntil": "Будет отправлено в", "heldFor": "Задержано на", "heldHint": "Уведомления в тихие часы ждут окончания окна. Пары добавление/удаление отменяются автоматически.", "inPrefix": "через", "deliveredLateTitle": "Доставлено после тихих часов", "originalEvent": "Исходное событие", "droppedTitle": "Отброшено после задержки", "failedTitle": "Ошибка после задержки", "reason": "Причина", "suppressedTitle": "Подавлено тихими часами", "suppressedHint": "Запланированные, периодические и воспоминания привязаны ко времени — они отбрасываются, а не откладываются, чтобы «доброе утро» не пришло днём." } }, "providers": { "title": "Сервисные", "titleEmphasis": "провайдеры", "description": "Подключения к внешним сервисам и вебхукам. Каждый провайдер кормит трекеры событиями, которые рассылаются по вашим каналам.", "typeSingular": "тип", "typePlural": "типов", "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. Полный URL показывается, если в настройках задан внешний адрес; иначе путь указан относительно хоста bridge.", "webhookUrlCopyTitle": "Нажмите, чтобы скопировать", "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": { "titleEmphasis": "трекеры", "armed": "активны", "paused": "на паузе", "title": "Трекеры уведомлений", "description": "Отслеживание изменений в альбомах", "newTracker": "Новый трекер", "cancel": "Отмена", "name": "Название", "namePlaceholder": "Трекер семейных фото", "server": "Провайдер", "selectServer": "Выберите провайдер...", "albums": "Альбомы", "selectAlbums": "Выберите альбомы...", "repositories": "Репозитории", "selectRepositories": "Выберите репозитории...", "userAllowlist": "Только от пользователей", "userBlocklist": "Исключить пользователей", "selectUsers": "Выберите пользователей...", "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": "Тихие часы конец", "adaptiveMaxSkip": "Предел адаптивного опроса", "adaptiveMaxSkipPlaceholder": "Выкл. (пусто или 0)", "defaultTrackingConfig": "Конфигурация отслеживания по умолчанию", "defaultTemplateConfig": "Шаблон уведомлений по умолчанию", "linkedTargets": "получатели", "noLinkedTargets": "Нет привязанных получателей. Добавьте получателя ниже.", "addTarget": "Добавить получателя", "selectTarget": "Выберите получателя...", "alreadyLinked": "Уже привязан", "testBasic": "Отправить тестовое сообщение", "testPeriodic": "Тест периодической сводки", "testScheduled": "Тест запланированных фото", "testMemory": "Тест воспоминаний", "testDisabledHint": "Сначала включите эту функцию в привязанной конфигурации отслеживания.", "checkingLinks": "Проверка ссылок...", "featureDiscovery": "Периодические сводки, запланированные подборки, воспоминания и тихие часы настраиваются в привязанной конфигурации отслеживания.", "openTrackingConfig": "Открыть конфигурацию отслеживания", "openTemplateConfig": "Открыть конфигурацию шаблона", "linkReplace": "Пересоздать", "linkReplacing": "Пересоздание...", "linkReplaceFailed": "Не удалось пересоздать ссылку для «{name}»", "linkPasswordProtectedNote": "Получатели в Telegram не смогут открыть защищённую паролем ссылку без пароля. Снимите пароль в Immich или пересоздайте ссылку.", "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": { "titleEmphasis": "канал", "titleEmphasisAll": "каналы", "receiver": "получатель", "receivers": "получателей", "channelsCount": "каналов", "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": "Получатель отключён", "groupNoBot": "Без привязки к боту", "groupDirect": "Прямая доставка", "groupBotMissing": "Неизвестный бот", "target": "получатель", "targetsLower": "получателей", "openBot": "Открыть бота" }, "users": { "titleEmphasis": "и доступ", "countLabel": "пользователей", "title": "Пользователи", "description": "Управление аккаунтами (только админ)", "you": "вы", "addUser": "Добавить пользователя", "cancel": "Отмена", "username": "Имя пользователя", "password": "Пароль", "role": "Роль", "roleUser": "Пользователь", "roleAdmin": "Администратор", "create": "Создать", "delete": "Удалить", "edit": "Редактировать пользователя", "confirmDelete": "Удалить этого пользователя?", "joined": "зарегистрирован", "noUsers": "Пользователи не найдены" }, "telegramBot": { "titleEmphasis": "telegram", "countLabel": "ботов", "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", "discoveringChats": "Поиск чатов…", "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": { "titleEmphasis": "конфигурации", "countLabel": "конфигураций", "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": "Случайный", "timesInlineHelp": "ЧЧ:ММ, через запятую", "invalidTimeList": "Используйте формат ЧЧ:ММ, например 09:00 или 09:00, 18:30", "previewTemplate": "Предпросмотр шаблона", "previewSampleNote": "Отрисовано на демо-данных, не на ваших реальных фото. Показан шаблон по умолчанию.", "editTemplate": "Редактировать шаблон", "quietHoursZero": "Тихий период 0 минут — скорректируйте время", "nextDay": "след. день" }, "templateConfig": { "titleEmphasis": "шаблоны", "countLabel": "шаблонов", "title": "Конфигурации шаблонов", "description": "Определите формат уведомлений", "language": "Язык", "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": "слотов", "resetToDefault": "Сбросить к умолчанию", "resetAllToDefaults": "Сбросить все к умолчаниям", "resetSlotConfirm": "Заменить шаблон этого слота ({locale}) на исходный по умолчанию? Ваши правки будут потеряны.", "resetAllConfirm": "Заменить шаблоны всех слотов ({locale}) на исходные по умолчанию? Все ваши правки для {locale} будут потеряны.", "resetNoDefault": "Для этого слота нет шаблона по умолчанию.", "resetApplied": "Сброшено к умолчанию (ещё не сохранено — нажмите «Сохранить»)", "deepLinkNoConfig": "Не найдено конфигурации шаблонов для этого провайдера. Сначала создайте её." }, "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": { "titleEmphasis": "параметры", "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": "Настройки сохранены", "identity": "Идентификация", "identityHeadline": "Как этот сервер представляется ботам, вебхукам и получателям", "telegramHeadline": "Аутентификация вебхуков и настройка медиакэша", "loggingHeadline": "Подробность, формат вывода и переопределения по модулям", "heroNoUrl": "Внешний URL не задан", "heroNoLocales": "нет локалей", "copy": "Копировать", "urlCopied": "URL скопирован", "openExternal": "Открыть", "show": "Показать", "hide": "Скрыть", "secretSet": "Задан", "secretUnset": "Не настроен", "cacheConfig": "Кэш", "cacheTtlShort": "TTL", "cacheMaxShort": "Макс. записей", "cacheMaxFootnote": "на корзину (LRU)", "hoursShort": "ч", "entriesShort": "макс", "ttlNoExpiry": "без срока", "cacheCapacity": "Заполненность кэша", "cacheCapacityCap": "из {n}", "logModulePlaceholder": "путь.модуля", "addOverride": "Добавить", "removeOverride": "Удалить", "editAsText": "Редактировать как текст", "editAsChips": "Редактировать как чипы", "logPreviewLabel": "АКТИВНО", "unsavedChanges": "Несохранённые изменения", "unsaved": "НЕ СОХРАНЕНО", "changedOne": "Изменена 1 настройка", "changedMany": "Изменено настроек: {n}", "discard": "Отменить", "saveChanges": "Сохранить", "release": { "eyebrow": "Релизы", "headline": "Следите за обновлениями", "provider": "Источник", "providerHint": "Где искать новые версии. Сейчас доступен только Gitea; GitHub появится позже.", "comingSoon": "Скоро", "disabled": "Отключено", "repository": "Репозиторий", "repositoryHint": "URL публичного репозитория и owner/name (например, alexei.dolgolyov/notify-bridge).", "options": "Опции", "includePrereleases": "Учитывать пре-релизы", "prereleasesHint": "Если выключено, кандидаты в релизы и бета-версии игнорируются, даже если они новее установленной.", "interval": "Интервал проверки", "intervalHint": "Как часто фоновая задача опрашивает источник. Ручная проверка всегда доступна.", "intervalRange": "1–168 ч", "hoursUnit": "ч", "testConnection": "Проверить связь", "checkNow": "Проверить сейчас", "checkDone": "Проверка релизов завершена", "checkFailed": "Не удалось проверить релизы", "testOk": "Источник доступен", "testFailed": "Источник недоступен", "testFound": "Найдена версия", "viewRelease": "Открыть релиз v{v}", "statusUpToDate": "Актуальная версия", "statusUpdate": "Доступно обновление", "statusDisabled": "Проверка релизов отключена", "statusError": "Ошибка последней проверки", "statusUnknown": "Ещё не проверялось", "heroAvailable": "доступна", "updateAvailableTooltip": "Доступна версия v{v} — открыть Настройки", "lastChecked": "Последняя проверка", "never": "никогда", "justNow": "только что", "minutesAgo": "{n} мин назад", "hoursAgo": "{n} ч назад", "daysAgo": "{n} д назад", "error": { "disabled": "Проверка релизов отключена", "misconfigured": "Источник настроен не полностью", "provider_changed": "Источник изменён — ожидание следующей проверки", "no_release_found": "Подходящий релиз на источнике не найден", "network_error": "Источник недоступен", "http_error": "Источник вернул ошибку", "parse_error": "Не удалось разобрать ответ источника", "unsafe_url": "URL отклонён проверкой безопасности", "not_implemented": "Источник пока не реализован", "unknown_error": "Неизвестная ошибка", "error": "Ошибка последней проверки" } } }, "hints": { "periodicSummary": "Отправляет плановую сводку по всем отслеживаемым альбомам в указанное время. Подходит для ежедневных/еженедельных дайджестов.", "scheduledAssets": "Отправляет случайные или выбранные фото из альбомов по расписанию. Как ежедневная подборка фото.", "memoryMode": "\"В этот день\" — отправляет фото, сделанные в этот день в прошлые годы. Ностальгические воспоминания.", "memorySource": "Альбомы: сканирует отслеживаемые альбомы по дате. Встроенные: использует воспоминания Immich (вся библиотека, с фильтрацией по альбомам).", "quietHours": "Подавляет все уведомления в указанном HH:MM окне (по часовому поясу приложения). Поддерживаются окна через полночь, например 22:00–07:00.", "favoritesOnly": "Включать только ассеты, отмеченные как избранные.", "maxAssets": "Максимальное количество ассетов в одном уведомлении.", "periodicStartDate": "Опорная дата в часовом поясе приложения. Первая сводка отправится в ближайшее заданное время ЧЧ:ММ, начиная с этой даты, затем каждые N дней.", "intervalDays": "Период между сводками в днях. 1 = ежедневно, 7 = еженедельно.", "times": "Время отправки уведомлений в формате ЧЧ:ММ. Для нескольких значений через запятую: 09:00,18:00", "albumMode": "По альбому: отдельное уведомление для каждого. Объединённый: одно уведомление со всеми. Случайный: выбирается один альбом.", "scheduledAlbumMode": "Как альбомы группируются в запланированных отправках. По умолчанию: По альбому (одно уведомление на каждый отслеживаемый альбом).", "memoryAlbumMode": "Как альбомы группируются в воспоминаниях. По умолчанию: Объединённый (одно уведомление со всеми совпадениями из всех альбомов).", "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.", "adaptiveMaxSkip": "Снижает частоту опроса, когда отслеживание простаивает — уменьшает нагрузку на сервер-источник. Оставьте пустым или 0, чтобы уведомления приходили без задержки: каждый тик выполняется с заданным интервалом. Значение 2 позволит замедлять опрос до 2× после ~5 мин простоя, а 4 — до 4× после ~15 мин. Любая активность сразу возвращает базовую частоту.", "defaultTrackingConfig": "Применяется ко всем привязанным получателям, если не переопределено.", "defaultTemplateConfig": "Применяется ко всем привязанным получателям, если не переопределено.", "defaultCount": "Сколько результатов возвращать, если пользователь не указал количество (1-20).", "responseMode": "Медиа: отправка фото. Текст: только имена файлов/ссылки. Медиа-режим использует больше трафика.", "botLocale": "Язык описаний команд в меню Telegram и ответов бота.", "rateLimits": "Кулдаун в секундах между использованиями команд в каждом чате. 0 = без ограничений.", "commandResponses": "Шаблоны ответов на каждую /команду. Используйте {переменные} для динамических данных.", "commandErrors": "Резервные сообщения, когда команда не может выполниться (превышен лимит) или ничего не возвращает.", "commandDescriptions": "Короткие подписи в меню команд Telegram, которые показываются рядом с каждой /командой.", "commandUsage": "Примеры вызовов, отображаемые в /help, чтобы показать пользователям как вызывать каждую команду." }, "matrixBot": { "titleEmphasis": "matrix", "countLabel": "ботов", "title": "Matrix боты", "description": "Подключения к Matrix серверам для уведомлений в комнаты", "addBot": "Добавить Matrix бот", "name": "Название", "namePlaceholder": "Бот для дома", "homeserverUrl": "URL сервера", "accessToken": "Токен доступа", "tokenPlaceholder": "syt_...", "tokenUnchanged": "(без изменений)", "displayName": "Отображаемое имя", "testConnection": "Проверить подключение", "noBots": "Matrix ботов пока нет.", "confirmDelete": "Удалить этот Matrix бот?", "operationFailed": "Операция не удалась" }, "emailBot": { "titleEmphasis": "email", "countLabel": "учётных записей", "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": { "titleEmphasis": "шаблоны", "countLabel": "шаблонов", "title": "Шаблоны команд", "description": "Настройте ответы команд с помощью Jinja2 шаблонов", "newConfig": "Новый шаблон", "name": "Название", "namePlaceholder": "Команды Immich по умолчанию", "descriptionPlaceholder": "Например, пользовательские форматы ответов", "noConfigs": "Шаблонов команд пока нет.", "confirmDelete": "Удалить этот шаблон команд?", "commandResponses": "Ответы команд", "commandErrors": "Сообщения об ошибках", "commandDescriptions": "Описания команд", "commandUsage": "Примеры использования" }, "commandConfig": { "titleEmphasis": "конфигурации", "countLabel": "конфигураций", "title": "Конфигурации команд", "noCommandsForProvider": "Для этого типа провайдера нет доступных команд.", "description": "Настройки команд для взаимодействия с Telegram-ботами", "newConfig": "Новая конфигурация", "name": "Название", "namePlaceholder": "Команды по умолчанию", "providerType": "Тип провайдера", "enabledCommands": "Включённые команды", "locale": "Язык", "responseMode": "Режим ответа", "modeMedia": "Медиа (файлы)", "modeText": "Только текст", "defaultCount": "Кол-во по умолчанию", "rateLimits": "Ограничения частоты", "searchCooldown": "Кулдаун поиска (с)", "defaultCooldown": "Кулдаун по умолчанию (с)", "noConfigs": "Конфигураций команд пока нет.", "confirmDelete": "Удалить эту конфигурацию команд?", "commands": "команд", "responseTemplate": "Шаблон ответов", "noTemplate": "По умолчанию (встроенный)" }, "commandTracker": { "titleEmphasis": "трекеры", "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": { "label": "язык", "labelPlural": "языков", "empty": "Языки не выбраны. Добавьте язык ниже, чтобы начать редактирование шаблонов.", "add": "Добавить язык", "searchPlaceholder": "Найти или ввести код (например de-CH)…", "customPlaceholder": "или 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": "Закрыть", "hide": "Скрыть", "show": "Показать", "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": "Русский интерфейс", "logLevelDebug": "Подробный — каждый шаг", "logLevelInfo": "По умолчанию — ключевые события", "logLevelWarning": "Только предупреждения и ошибки", "logLevelError": "Только ошибки — самый тихий", "logFormatText": "Читаемый человеком текст", "logFormatJson": "Один JSON-объект на строку", "modeMedia": "Отправка файлов фото/видео", "modeText": "Только имена файлов и ссылки", "allEvents": "Показать все типы событий", "assetsAdded": "Новые файлы добавлены в альбом", "assetsRemoved": "Файлы удалены из альбома", "renamed": "Альбом переименован", "deleted": "Альбом удалён", "sharingChanged": "Изменён доступ к альбому", "actionSuccess": "Запланированное действие выполнено", "actionPartial": "Запланированное действие выполнено частично", "actionFailed": "Запланированное действие провалено", "commandHandled": "Команда бота обработана", "commandRateLimited": "Команда бота ограничена по частоте", "commandFailed": "Команда бота вызвала ошибку", "refreshOff": "Автообновление выключено", "refresh10s": "Обновлять каждые 10 секунд", "refresh30s": "Обновлять каждые 30 секунд", "refresh60s": "Обновлять каждую минуту", "refresh5m": "Обновлять каждые 5 минут", "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": { "titleEmphasis": "автоматизации", "countLabel": "действий", "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": { "titleEmphasis": "и восстановление", "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": "Страница перезагрузится, как только сервер снова будет доступен.", "countLabel": "бэкапов", "scheduleOn": "Авто · каждые {h}ч", "scheduleOff": "Авто-бэкап выключен", "lastBackup": "Последний {ago}", "never": "ещё нет бэкапов", "totalSize": "всего {size}", "dropZone": "Перетащите JSON-бэкап сюда или нажмите для выбора", "dropZoneActive": "Отпустите для загрузки", "changeFile": "Сменить файл", "catGroupIdentity": "Идентичность и маршрутизация", "catGroupNotif": "Уведомления", "catGroupCmd": "Команды", "catGroupSystem": "Система", "stepCategories": "Что включить", "stepSecrets": "Обработка секретов", "stepDownload": "Скачать", "stepFile": "Выберите файл", "stepValidate": "Проверить содержимое", "stepConflict": "При конфликте", "stepApply": "Применить", "tagScheduled": "по расписанию", "tagManual": "вручную", "tagSecrets": "с секретами", "validateFirst": "Сначала проверьте файл, чтобы включить импорт" } }