82e400ddcd
Chat language: - Added language_code field to TelegramChat model + migration - Saved from message.from.language_code on webhook/polling - Displayed as badge on bot chat cards and target receiver items - Resolved from DB in target API response (works for existing receivers) - Shown in chat picker dropdown (desc includes language) EntitySelect improvements: - Tracker-target link selector shows all targets, already-linked ones appear disabled with "Already linked" hint - Receiver chat picker shows already-added chats as disabled Dev scripts: - scripts/restart-backend.sh and restart-frontend.sh - Updated .claude/docs/dev-servers.md to reference scripts
770 lines
42 KiB
JSON
770 lines
42 KiB
JSON
{
|
||
"app": {
|
||
"name": "Notify Bridge",
|
||
"tagline": "Уведомления о сервисах"
|
||
},
|
||
"nav": {
|
||
"dashboard": "Главная",
|
||
"providers": "Провайдеры",
|
||
"notificationTrackers": "Трекеры увед.",
|
||
"trackingConfigs": "Отслеживание",
|
||
"templateConfigs": "Шаблоны",
|
||
"telegramBots": "Боты",
|
||
"targets": "Получатели",
|
||
"commandConfigs": "Конф. команд",
|
||
"commandTrackers": "Трекеры команд",
|
||
"cmdTemplateConfigs": "Шаблоны команд",
|
||
"users": "Пользователи",
|
||
"settings": "Настройки",
|
||
"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"
|
||
},
|
||
"auth": {
|
||
"signIn": "Войти",
|
||
"signInTitle": "Вход в аккаунт",
|
||
"signingIn": "Вход...",
|
||
"username": "Имя пользователя",
|
||
"password": "Пароль",
|
||
"confirmPassword": "Подтвердите пароль",
|
||
"setupTitle": "Добро пожаловать",
|
||
"setupDescription": "Создайте учётную запись администратора",
|
||
"createAccount": "Создать аккаунт",
|
||
"creatingAccount": "Создание...",
|
||
"passwordMismatch": "Пароли не совпадают",
|
||
"passwordTooShort": "Пароль должен быть не менее 6 символов",
|
||
"or": "или"
|
||
},
|
||
"dashboard": {
|
||
"title": "Главная",
|
||
"description": "Обзор настроек Notify Bridge",
|
||
"providers": "Провайдеры",
|
||
"activeTrackers": "Активные трекеры",
|
||
"targets": "Получатели",
|
||
"recentEvents": "События",
|
||
"noEvents": "Событий пока нет. Создайте трекер для отслеживания.",
|
||
"loading": "Загрузка...",
|
||
"justNow": "только что",
|
||
"minutesAgo": "{n} мин назад",
|
||
"hoursAgo": "{n} ч назад",
|
||
"daysAgo": "{n} д назад",
|
||
"assetsAdded": "добавлены файлы",
|
||
"assetsRemoved": "удалены файлы",
|
||
"collectionRenamed": "альбом переименован",
|
||
"collectionDeleted": "альбом удалён",
|
||
"sharingChanged": "изменение доступа",
|
||
"searchEvents": "Поиск событий...",
|
||
"allEvents": "Все события",
|
||
"filterAssetsAdded": "Добавление файлов",
|
||
"filterAssetsRemoved": "Удаление файлов",
|
||
"filterRenamed": "Переименование",
|
||
"filterDeleted": "Удаление",
|
||
"filterSharingChanged": "Изменение доступа",
|
||
"allProviders": "Все провайдеры",
|
||
"newestFirst": "Сначала новые",
|
||
"oldestFirst": "Сначала старые",
|
||
"loadingEvents": "Загрузка событий...",
|
||
"asset": "файл",
|
||
"assets": "файлов",
|
||
"eventActivity": "Активность событий",
|
||
"last14days": "Последние 14 дней",
|
||
"event": "событие",
|
||
"events": "событий",
|
||
"noChartData": "Нет данных о событиях"
|
||
},
|
||
"providers": {
|
||
"title": "Провайдеры",
|
||
"description": "Управление подключениями к сервисам",
|
||
"addProvider": "Добавить провайдер",
|
||
"cancel": "Отмена",
|
||
"type": "Тип провайдера",
|
||
"name": "Название",
|
||
"url": "URL провайдера",
|
||
"urlPlaceholder": "http://provider:2283",
|
||
"apiKey": "API ключ",
|
||
"apiKeyKeep": "API ключ (оставьте пустым, чтобы сохранить текущий)",
|
||
"connecting": "Подключение...",
|
||
"noProviders": "Провайдеры не настроены.",
|
||
"delete": "Удалить",
|
||
"confirmDelete": "Удалить этот провайдер?",
|
||
"online": "В сети",
|
||
"offline": "Не в сети",
|
||
"checking": "Проверка...",
|
||
"typeImmich": "Immich",
|
||
"typeGitea": "Gitea",
|
||
"typeScheduler": "Планировщик",
|
||
"loadError": "Не удалось загрузить провайдеры.",
|
||
"externalDomain": "Внешний домен",
|
||
"optional": "необязательно",
|
||
"urlApiKeyRequired": "URL и API ключ обязательны",
|
||
"externalDomainHint": "Публичный URL для ссылок в уведомлениях. По умолчанию используется URL сервера.",
|
||
"webhookSecret": "Секрет вебхука",
|
||
"webhookSecretKeep": "Секрет вебхука (оставьте пустым для сохранения текущего)",
|
||
"webhookSecretHint": "Общий секрет для проверки HMAC-SHA256 подписи. Укажите тот же секрет в настройках вебхука Gitea.",
|
||
"webhookSecretRequired": "Секрет вебхука обязателен",
|
||
"apiToken": "API токен",
|
||
"apiTokenHint": "Необязательно. Нужен для проверки подключения и получения списка репозиториев.",
|
||
"webhookUrl": "URL вебхука",
|
||
"webhookUrlHint": "Укажите этот URL в настройках вебхука Gitea (относительно хоста bridge).",
|
||
"testAndSave": "Проверить и сохранить",
|
||
"saveWithoutTest": "Сохранить без проверки"
|
||
},
|
||
"notificationTracker": {
|
||
"title": "Трекеры уведомлений",
|
||
"description": "Отслеживание изменений в альбомах",
|
||
"newTracker": "Новый трекер",
|
||
"cancel": "Отмена",
|
||
"name": "Название",
|
||
"namePlaceholder": "Трекер семейных фото",
|
||
"server": "Провайдер",
|
||
"selectServer": "Выберите провайдер...",
|
||
"albums": "Альбомы",
|
||
"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": "альбом(ов)",
|
||
"every": "каждые",
|
||
"trackImages": "Отслеживать фото",
|
||
"trackVideos": "Отслеживать видео",
|
||
"favoritesOnly": "Только избранные",
|
||
"includePeople": "Включать людей в уведомления",
|
||
"includeAssetDetails": "Включать детали файлов",
|
||
"maxAssetsToShow": "Макс. файлов в уведомлении",
|
||
"sortBy": "Сортировка",
|
||
"sortOrder": "Порядок",
|
||
"sortNone": "Исходный порядок",
|
||
"sortDate": "Дата",
|
||
"sortRating": "Рейтинг",
|
||
"sortName": "Имя",
|
||
"sortRandom": "Случайный",
|
||
"ascending": "По возрастанию",
|
||
"descending": "По убыванию",
|
||
"quietHoursStart": "Тихие часы начало",
|
||
"quietHoursEnd": "Тихие часы конец",
|
||
"batchDuration": "Длительность пакета (секунды)",
|
||
"linkedTargets": "получатели",
|
||
"noLinkedTargets": "Нет привязанных получателей. Добавьте получателя ниже.",
|
||
"addTarget": "Добавить получателя",
|
||
"alreadyLinked": "Уже привязан",
|
||
"testBasic": "Отправить тестовое сообщение",
|
||
"testPeriodic": "Тест периодической сводки",
|
||
"testScheduled": "Тест запланированных фото",
|
||
"testMemory": "Тест воспоминаний",
|
||
"checkingLinks": "Проверка ссылок...",
|
||
"missingLinksTitle": "Альбомы без публичных ссылок",
|
||
"missingLinksDesc": "У следующих альбомов нет публичных ссылок. Без ссылок получатели уведомлений не смогут просматривать фото.",
|
||
"expired": "Истёк",
|
||
"passwordProtected": "Защищён паролем",
|
||
"noLink": "Нет ссылки",
|
||
"saveWithoutLinks": "Сохранить без ссылок",
|
||
"createLinks": "Создать {count} ссылку(и)",
|
||
"linksNote": "Вы также можете создать ссылки вручную в Immich."
|
||
},
|
||
"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 для доставки уведомлений",
|
||
"addTarget": "Добавить получателя",
|
||
"cancel": "Отмена",
|
||
"type": "Тип",
|
||
"name": "Название",
|
||
"namePlaceholder": "Мои уведомления",
|
||
"botToken": "Токен бота",
|
||
"chatId": "ID чата",
|
||
"webhookUrl": "URL вебхука",
|
||
"create": "Добавить",
|
||
"test": "Тест",
|
||
"delete": "Удалить",
|
||
"confirmDelete": "Удалить этого получателя?",
|
||
"noTargets": "Получатели уведомлений не настроены.",
|
||
"testSent": "Тестовое уведомление отправлено!",
|
||
"aiCaptions": "Включить AI подписи",
|
||
"telegramSettings": "Настройки Telegram",
|
||
"maxMedia": "Макс. медиафайлов",
|
||
"maxGroupSize": "Макс. размер группы",
|
||
"chunkDelay": "Задержка между группами (мс)",
|
||
"maxAssetSize": "Макс. размер файла (МБ)",
|
||
"videoWarning": "Предупреждение о размере видео",
|
||
"disableUrlPreview": "Отключить превью ссылок",
|
||
"sendLargeAsDocuments": "Отправлять большие фото как документы",
|
||
"chatAction": "Действие в чате",
|
||
"chatActionNone": "Нет (без действия)",
|
||
"chatActionTyping": "Печатает",
|
||
"chatActionUploadPhoto": "Загрузка фото",
|
||
"chatActionUploadVideo": "Загрузка видео",
|
||
"chatActionUploadDoc": "Загрузка документа",
|
||
"chatActionRecordVideo": "Запись видео",
|
||
"chatActionRecordVoice": "Запись голоса",
|
||
"typeTelegram": "Telegram",
|
||
"typeWebhook": "Вебхук",
|
||
"overrideUsername": "Переопределить имя бота",
|
||
"ntfyServer": "URL сервера ntfy",
|
||
"ntfyTopic": "Тема",
|
||
"ntfyToken": "Токен авторизации",
|
||
"ntfyTokenPlaceholder": "Необязательно (для защищённых тем)",
|
||
"selectEmailBot": "Выберите Email бот",
|
||
"selectMatrixBot": "Выберите Matrix бот",
|
||
"recipientEmail": "Email получателя",
|
||
"matrixRoomId": "ID комнаты",
|
||
"receivers": "Получатели",
|
||
"noReceivers": "Нет получателей",
|
||
"alreadyAdded": "уже добавлен",
|
||
"addReceiver": "Добавить получателя",
|
||
"receiverAdded": "Получатель добавлен",
|
||
"receiverDeleted": "Получатель удалён",
|
||
"receiverUpdated": "Получатель обновлён",
|
||
"confirmDeleteReceiver": "Удалить этого получателя?",
|
||
"receiverEnabled": "Получатель включён",
|
||
"receiverDisabled": "Получатель отключён"
|
||
},
|
||
"users": {
|
||
"title": "Пользователи",
|
||
"description": "Управление аккаунтами (только админ)",
|
||
"addUser": "Добавить пользователя",
|
||
"cancel": "Отмена",
|
||
"username": "Имя пользователя",
|
||
"password": "Пароль",
|
||
"role": "Роль",
|
||
"roleUser": "Пользователь",
|
||
"roleAdmin": "Администратор",
|
||
"create": "Создать",
|
||
"delete": "Удалить",
|
||
"confirmDelete": "Удалить этого пользователя?",
|
||
"joined": "зарегистрирован",
|
||
"noUsers": "Пользователи не найдены"
|
||
},
|
||
"telegramBot": {
|
||
"title": "Telegram боты",
|
||
"description": "Регистрация и управление Telegram ботами",
|
||
"addBot": "Добавить бота",
|
||
"name": "Отображаемое имя",
|
||
"namePlaceholder": "Бот семейных уведомлений",
|
||
"token": "Токен бота",
|
||
"tokenPlaceholder": "123456:ABC-DEF...",
|
||
"noBots": "Ботов пока нет.",
|
||
"chats": "Чаты",
|
||
"noChats": "Чатов не найдено. Сначала отправьте сообщение боту.",
|
||
"refreshChats": "Обновить",
|
||
"selectBot": "Выберите бота",
|
||
"selectChat": "Выберите чат",
|
||
"private": "Личный",
|
||
"group": "Группа",
|
||
"supergroup": "Супергруппа",
|
||
"channel": "Канал",
|
||
"confirmDelete": "Удалить этого бота?",
|
||
"commands": "Команды",
|
||
"enabledCommands": "Включённые команды",
|
||
"defaultCount": "Кол-во по умолчанию",
|
||
"responseMode": "Режим ответа",
|
||
"modeMedia": "Медиа (файлы)",
|
||
"modeText": "Только текст",
|
||
"botLocale": "Язык бота",
|
||
"rateLimits": "Ограничения частоты",
|
||
"rateSearch": "Кулдаун поиска",
|
||
"rateFind": "Кулдаун поиска файлов",
|
||
"rateDefault": "Кулдаун по умолчанию",
|
||
"noCommandsForProvider": "Этот тип провайдера не поддерживает команды бота.",
|
||
"syncCommands": "Синхронизировать с Telegram",
|
||
"discoverChats": "Обнаружить чаты из Telegram",
|
||
"clickToCopy": "Нажмите, чтобы скопировать ID чата",
|
||
"chatsDiscovered": "Чаты обнаружены",
|
||
"chatDeleted": "Чат удалён",
|
||
"cmdLocale": "Язык бота",
|
||
"searchCooldown": "Кулдаун поиска (с)",
|
||
"saveConfig": "Сохранить настройки",
|
||
"commandsSynced": "Команды синхронизированы с Telegram",
|
||
"registerWebhook": "Зарегистрировать вебхук",
|
||
"unregisterWebhook": "Удалить вебхук",
|
||
"webhookRegistered": "Вебхук зарегистрирован",
|
||
"webhookUnregistered": "Вебхук удалён",
|
||
"updateMode": "Режим обновлений",
|
||
"polling": "Опрос",
|
||
"webhook": "Вебхук",
|
||
"webhookStatus": "Статус вебхука",
|
||
"webhookActive": "Вебхук активен",
|
||
"webhookNotSet": "Вебхук не установлен",
|
||
"webhookVerified": "Вебхук проверен",
|
||
"webhookError": "Последняя ошибка",
|
||
"pendingUpdates": "ожидающих обновлений",
|
||
"pollingActive": "Опрос активен",
|
||
"telegramSettings": "Настройки Telegram",
|
||
"externalUrl": "Внешний URL",
|
||
"externalUrlHint": "Публичный URL этого экземпляра Notify Bridge. Необходим для режима вебхука.",
|
||
"webhookSecret": "Секрет вебхука",
|
||
"webhookSecretHint": "Секретный токен для проверки запросов вебхука от Telegram (необязательно)",
|
||
"cacheTtl": "TTL кэша медиа (часы)",
|
||
"cacheTtlHint": "Сколько хранить кэш Telegram file_id перед повторной загрузкой (по умолчанию: 48ч)",
|
||
"settingsSaved": "Настройки сохранены",
|
||
"noExternalDomain": "Внешний URL домена не настроен"
|
||
},
|
||
"trackingConfig": {
|
||
"title": "Конфигурации отслеживания",
|
||
"description": "Определите, на какие события и файлы реагировать",
|
||
"newConfig": "Новая конфигурация",
|
||
"name": "Название",
|
||
"namePlaceholder": "Основное отслеживание",
|
||
"noConfigs": "Конфигураций отслеживания пока нет.",
|
||
"eventTracking": "Отслеживание событий",
|
||
"assetsAdded": "Добавлены файлы",
|
||
"assetsRemoved": "Удалены файлы",
|
||
"albumRenamed": "Альбом переименован",
|
||
"albumDeleted": "Альбом удалён",
|
||
"sharingChanged": "Изменение доступа",
|
||
"push": "Push",
|
||
"issueOpened": "Задача создана",
|
||
"issueClosed": "Задача закрыта",
|
||
"issueCommented": "Комментарий к задаче",
|
||
"prOpened": "PR создан",
|
||
"prClosed": "PR закрыт",
|
||
"prMerged": "PR влит",
|
||
"prCommented": "Комментарий к PR",
|
||
"releasePublished": "Релиз опубликован",
|
||
"scheduledMessage": "Запланированное сообщение",
|
||
"trackImages": "Фото",
|
||
"trackVideos": "Видео",
|
||
"favoritesOnly": "Только избранные",
|
||
"assetDisplay": "Отображение файлов",
|
||
"includePeople": "Включать людей",
|
||
"includeDetails": "Включать детали",
|
||
"maxAssets": "Макс. файлов",
|
||
"sortBy": "Сортировка",
|
||
"sortOrder": "Порядок",
|
||
"periodicSummary": "Периодическая сводка",
|
||
"enabled": "Включено",
|
||
"intervalDays": "Интервал (дни)",
|
||
"startDate": "Дата начала",
|
||
"times": "Время (ЧЧ:ММ)",
|
||
"scheduledAssets": "Запланированные фото",
|
||
"albumMode": "Режим альбомов",
|
||
"limit": "Лимит",
|
||
"assetType": "Тип файлов",
|
||
"minRating": "Мин. рейтинг",
|
||
"memoryMode": "Воспоминания (В этот день)",
|
||
"memorySource": "Источник воспоминаний",
|
||
"memorySourceAlbums": "Сканировать альбомы",
|
||
"memorySourceNative": "Встроенные воспоминания Immich",
|
||
"test": "Тест",
|
||
"confirmDelete": "Удалить эту конфигурацию отслеживания?",
|
||
"sortNone": "Нет",
|
||
"sortDate": "Дата",
|
||
"sortRating": "Рейтинг",
|
||
"sortName": "Имя",
|
||
"orderDesc": "По убыванию",
|
||
"orderAsc": "По возрастанию",
|
||
"albumModePerAlbum": "По альбомам",
|
||
"albumModeCombined": "Объединённый",
|
||
"albumModeRandom": "Случайный",
|
||
"assetTypeAll": "Все",
|
||
"assetTypePhoto": "Фото",
|
||
"assetTypeVideo": "Видео",
|
||
"periodic": "периодический",
|
||
"scheduled": "запланированный",
|
||
"memory": "воспоминания",
|
||
"added": "добавление",
|
||
"removed": "удаление",
|
||
"renamed": "переименование",
|
||
"deleted": "удалён",
|
||
"providerType": "Тип провайдера",
|
||
"sortRandom": "Случайный"
|
||
},
|
||
"templateConfig": {
|
||
"title": "Конфигурации шаблонов",
|
||
"description": "Определите формат уведомлений",
|
||
"providerType": "Тип сервис-провайдера",
|
||
"newConfig": "Новая конфигурация",
|
||
"name": "Название",
|
||
"namePlaceholder": "По умолчанию RU",
|
||
"descriptionPlaceholder": "напр. Русские шаблоны для семейных уведомлений",
|
||
"noConfigs": "Конфигураций шаблонов пока нет.",
|
||
"eventMessages": "Сообщения о событиях",
|
||
"assetsAdded": "Добавлены файлы",
|
||
"assetsRemoved": "Удалены файлы",
|
||
"albumRenamed": "Альбом переименован",
|
||
"albumDeleted": "Альбом удалён",
|
||
"sharingChanged": "Изменение доступа",
|
||
"assetFormatting": "Форматирование файлов",
|
||
"imageTemplate": "Шаблон фото",
|
||
"videoTemplate": "Шаблон видео",
|
||
"assetsWrapper": "Обёртка списка",
|
||
"moreMessage": "Сообщение \"ещё\"",
|
||
"peopleFormat": "Формат людей",
|
||
"dateLocation": "Дата и место",
|
||
"dateFormat": "Формат даты и времени",
|
||
"dateOnlyFormat": "Формат даты",
|
||
"commonDate": "Общая дата",
|
||
"uniqueDate": "Дата файла",
|
||
"locationFormat": "Формат места",
|
||
"commonLocation": "Общее место",
|
||
"uniqueLocation": "Место файла",
|
||
"favoriteIndicator": "Индикатор избранного",
|
||
"scheduledMessages": "Запланированные сообщения",
|
||
"periodicSummary": "Периодическая сводка",
|
||
"periodicAlbum": "Элемент альбома",
|
||
"scheduledAssets": "Запланированные фото",
|
||
"memoryMode": "Воспоминания",
|
||
"settings": "Настройки",
|
||
"previewAs": "Предпросмотр как",
|
||
"preview": "Предпросмотр",
|
||
"variables": "Переменные",
|
||
"assetFields": "Поля файла (в {% for asset in added_assets %})",
|
||
"albumFields": "Поля альбома (в {% for album in albums %})",
|
||
"confirmDelete": "Удалить эту конфигурацию шаблона?",
|
||
"invalidFormat": "Некорректная строка формата"
|
||
},
|
||
"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'",
|
||
"has_videos": "Содержат ли добавленные файлы видео (boolean)",
|
||
"has_photos": "Содержат ли добавленные файлы фото (boolean)",
|
||
"old_name": "Прежнее название альбома (при переименовании)",
|
||
"new_name": "Новое название альбома (при переименовании)",
|
||
"old_shared": "Был ли общим до переименования (boolean)",
|
||
"new_shared": "Является ли общим после переименования (boolean)",
|
||
"albums": "Список альбомов ({% for album in albums %})",
|
||
"assets": "Список файлов ({% for asset in assets %})",
|
||
"date": "Текущая дата",
|
||
"asset_id": "ID файла (UUID)",
|
||
"asset_filename": "Имя файла",
|
||
"asset_type": "IMAGE или VIDEO",
|
||
"asset_created_at": "Дата создания (ISO 8601)",
|
||
"asset_owner": "Имя владельца",
|
||
"asset_owner_id": "ID владельца",
|
||
"asset_description": "Описание (EXIF или пользовательское)",
|
||
"asset_people": "Люди на этом файле (список)",
|
||
"asset_is_favorite": "В избранном (boolean)",
|
||
"asset_rating": "Рейтинг (1-5 или null)",
|
||
"asset_latitude": "GPS широта (float или null)",
|
||
"asset_longitude": "GPS долгота (float или null)",
|
||
"asset_city": "Город",
|
||
"asset_state": "Регион",
|
||
"asset_country": "Страна",
|
||
"asset_url": "Ссылка для просмотра (если расшарен)",
|
||
"asset_download_url": "Ссылка для скачивания (если расшарен)",
|
||
"asset_photo_url": "URL превью (только фото, если расшарен)",
|
||
"asset_playback_url": "URL видео (только видео, если расшарен)",
|
||
"album_name_field": "Название альбома (в списке альбомов)",
|
||
"album_asset_count": "Всего файлов в альбоме",
|
||
"album_url_field": "Ссылка на альбом",
|
||
"album_shared": "Общий альбом"
|
||
},
|
||
"settings": {
|
||
"title": "Настройки",
|
||
"description": "Глобальные настройки приложения",
|
||
"general": "Общие",
|
||
"externalUrl": "Внешний URL",
|
||
"externalUrlHint": "Публичный URL этого экземпляра Notify Bridge (напр. https://notify.example.com)",
|
||
"telegram": "Telegram",
|
||
"webhookSecret": "Секрет вебхука",
|
||
"webhookSecretHint": "Секретный токен для проверки запросов вебхука от Telegram",
|
||
"cacheTtl": "TTL кэша медиа (часы)",
|
||
"cacheTtlHint": "Сколько хранить кэш Telegram file_id перед повторной загрузкой",
|
||
"saved": "Настройки сохранены"
|
||
},
|
||
"hints": {
|
||
"periodicSummary": "Отправляет плановую сводку по всем отслеживаемым альбомам в указанное время. Подходит для ежедневных/еженедельных дайджестов.",
|
||
"scheduledAssets": "Отправляет случайные или выбранные фото из альбомов по расписанию. Как ежедневная подборка фото.",
|
||
"memoryMode": "\"В этот день\" — отправляет фото, сделанные в этот день в прошлые годы. Ностальгические воспоминания.",
|
||
"memorySource": "Альбомы: сканирует отслеживаемые альбомы по дате. Встроенные: использует воспоминания Immich (вся библиотека, с фильтрацией по альбомам).",
|
||
"favoritesOnly": "Включать только ассеты, отмеченные как избранные.",
|
||
"maxAssets": "Максимальное количество ассетов в одном уведомлении.",
|
||
"periodicStartDate": "Опорная дата для расчёта интервалов. Сводки отправляются каждые N дней от этой даты.",
|
||
"times": "Время отправки уведомлений в формате ЧЧ:ММ. Для нескольких значений через запятую: 09:00,18:00",
|
||
"albumMode": "По альбому: отдельное уведомление для каждого. Объединённый: одно уведомление со всеми. Случайный: выбирается один альбом.",
|
||
"minRating": "Включать только ассеты с рейтингом не ниже указанного (0 = без фильтра).",
|
||
"eventMessages": "Шаблоны уведомлений о событиях в реальном времени. Используйте {переменные} для динамического контента.",
|
||
"assetFormatting": "Форматирование отдельных ассетов в сообщениях уведомлений.",
|
||
"dateLocation": "Форматирование даты и местоположения. Использует синтаксис strftime для дат.",
|
||
"scheduledMessages": "Шаблоны для периодических сводок, подборок фото и воспоминаний «В этот день».",
|
||
"aiCaptions": "Использовать Claude AI для генерации описания уведомления вместо шаблона.",
|
||
"maxMedia": "Максимальное количество фото/видео в одном уведомлении (0 = только текст).",
|
||
"groupSize": "Медиагруппы Telegram содержат 2-10 элементов. Большие пакеты разбиваются на части.",
|
||
"chunkDelay": "Задержка в миллисекундах между отправкой порций медиа. Предотвращает ограничение Telegram.",
|
||
"maxAssetSize": "Пропускать файлы больше указанного размера в МБ. Лимит Telegram — 50 МБ.",
|
||
"trackingConfig": "Управляет тем, какие события вызывают уведомления и как фильтруются ассеты.",
|
||
"templateConfig": "Управляет форматом сообщений. Используются шаблоны по умолчанию, если не задано.",
|
||
"scanInterval": "Как часто опрашивать провайдер на предмет изменений (в секундах). Меньше = быстрее обнаружение, но больше запросов к API.",
|
||
"batchDuration": "Время накопления изменений перед отправкой уведомлений. 0 = отправлять сразу.",
|
||
"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 бот?"
|
||
},
|
||
"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 бот?"
|
||
},
|
||
"cmdTemplateConfig": {
|
||
"title": "Шаблоны команд",
|
||
"description": "Настройте ответы команд с помощью Jinja2 шаблонов",
|
||
"newConfig": "Новый шаблон",
|
||
"name": "Название",
|
||
"namePlaceholder": "Команды Immich по умолчанию",
|
||
"descriptionPlaceholder": "Например, пользовательские форматы ответов",
|
||
"noConfigs": "Шаблонов команд пока нет.",
|
||
"confirmDelete": "Удалить этот шаблон команд?",
|
||
"commandResponses": "Ответы команд",
|
||
"commandResponsesHint": "Оставьте слот пустым, чтобы использовать ответ по умолчанию."
|
||
},
|
||
"commandConfig": {
|
||
"title": "Конфигурации команд",
|
||
"description": "Настройки команд для взаимодействия с Telegram-ботами",
|
||
"newConfig": "Новая конфигурация",
|
||
"name": "Название",
|
||
"namePlaceholder": "Команды по умолчанию",
|
||
"providerType": "Тип провайдера",
|
||
"enabledCommands": "Включённые команды",
|
||
"locale": "Язык",
|
||
"responseMode": "Режим ответа",
|
||
"modeMedia": "Медиа (файлы)",
|
||
"modeText": "Только текст",
|
||
"defaultCount": "Кол-во по умолчанию",
|
||
"rateLimits": "Ограничения частоты",
|
||
"searchCooldown": "Кулдаун поиска (с)",
|
||
"defaultCooldown": "Кулдаун по умолчанию (с)",
|
||
"noConfigs": "Конфигураций команд пока нет.",
|
||
"confirmDelete": "Удалить эту конфигурацию команд?",
|
||
"commands": "команд",
|
||
"responseTemplate": "Шаблон ответов",
|
||
"noTemplate": "По умолчанию (встроенный)"
|
||
},
|
||
"commandTracker": {
|
||
"title": "Трекеры команд",
|
||
"description": "Управление трекерами команд и их слушателями",
|
||
"newTracker": "Новый трекер",
|
||
"name": "Название",
|
||
"namePlaceholder": "Семейные команды",
|
||
"provider": "Провайдер",
|
||
"selectProvider": "Выберите провайдер...",
|
||
"commandConfig": "Конфигурация команд",
|
||
"selectCommandConfig": "Выберите конфигурацию...",
|
||
"listeners": "Слушатели",
|
||
"addListener": "Добавить слушателя",
|
||
"removeListener": "Удалить",
|
||
"noTrackers": "Трекеров команд пока нет.",
|
||
"confirmDelete": "Удалить этот трекер команд?",
|
||
"enabled": "Включён",
|
||
"disabled": "Отключён",
|
||
"noListeners": "Нет подключённых слушателей.",
|
||
"selectBot": "Выберите бота...",
|
||
"listenerType": "telegram_bot"
|
||
},
|
||
"snackbar": {
|
||
"showDetails": "Показать детали",
|
||
"hideDetails": "Скрыть детали"
|
||
},
|
||
"snack": {
|
||
"providerSaved": "Провайдер сохранён",
|
||
"providerDeleted": "Провайдер удалён",
|
||
"trackerCreated": "Трекер создан",
|
||
"trackerUpdated": "Трекер обновлён",
|
||
"trackerDeleted": "Трекер удалён",
|
||
"trackerPaused": "Трекер приостановлен",
|
||
"trackerResumed": "Трекер возобновлён",
|
||
"targetSaved": "Цель сохранена",
|
||
"targetDeleted": "Цель удалена",
|
||
"targetTestSent": "Тестовое уведомление отправлено",
|
||
"templateSaved": "Шаблон сохранён",
|
||
"templateDeleted": "Шаблон удалён",
|
||
"trackingConfigSaved": "Конфигурация сохранена",
|
||
"trackingConfigDeleted": "Конфигурация удалена",
|
||
"botRegistered": "Бот зарегистрирован",
|
||
"botDeleted": "Бот удалён",
|
||
"userCreated": "Пользователь создан",
|
||
"userDeleted": "Пользователь удалён",
|
||
"passwordChanged": "Пароль изменён",
|
||
"copied": "Скопировано",
|
||
"genericError": "Что-то пошло не так",
|
||
"commandsSaved": "Конфигурация команд сохранена",
|
||
"commandsSynced": "Команды синхронизированы с Telegram",
|
||
"targetLinked": "Получатель привязан",
|
||
"targetUnlinked": "Получатель отвязан",
|
||
"botUpdated": "Бот обновлён",
|
||
"commandConfigSaved": "Конфигурация команд сохранена",
|
||
"commandConfigDeleted": "Конфигурация команд удалена",
|
||
"commandTrackerCreated": "Трекер команд создан",
|
||
"commandTrackerUpdated": "Трекер команд обновлён",
|
||
"commandTrackerDeleted": "Трекер команд удалён",
|
||
"commandTrackerEnabled": "Трекер команд включён",
|
||
"commandTrackerDisabled": "Трекер команд отключён",
|
||
"listenerAdded": "Слушатель добавлен",
|
||
"listenerRemoved": "Слушатель удалён",
|
||
"cmdTemplateSaved": "Шаблон команд сохранён",
|
||
"cmdTemplateDeleted": "Шаблон команд удалён",
|
||
"emailBotCreated": "Email бот создан",
|
||
"emailBotUpdated": "Email бот обновлён",
|
||
"emailBotDeleted": "Email бот удалён",
|
||
"emailBotTestSent": "Тестовое письмо отправлено",
|
||
"matrixBotCreated": "Matrix бот создан",
|
||
"matrixBotUpdated": "Matrix бот обновлён",
|
||
"matrixBotDeleted": "Matrix бот удалён",
|
||
"matrixBotTestOk": "Подключение к Matrix проверено"
|
||
},
|
||
"common": {
|
||
"loading": "Загрузка...",
|
||
"save": "Сохранить",
|
||
"cancel": "Отмена",
|
||
"delete": "Удалить",
|
||
"clone": "Копировать",
|
||
"edit": "Редактировать",
|
||
"description": "Описание",
|
||
"close": "Закрыть",
|
||
"confirm": "Подтвердить",
|
||
"error": "Ошибка",
|
||
"success": "Успешно",
|
||
"none": "Нет",
|
||
"noneDefault": "Нет (по умолчанию)",
|
||
"loadError": "Не удалось загрузить данные",
|
||
"headersInvalid": "Невалидный JSON",
|
||
"language": "Язык",
|
||
"theme": "Тема",
|
||
"light": "Светлая",
|
||
"dark": "Тёмная",
|
||
"system": "Системная",
|
||
"test": "Тест",
|
||
"create": "Создать",
|
||
"changePassword": "Сменить пароль",
|
||
"currentPassword": "Текущий пароль",
|
||
"newPassword": "Новый пароль",
|
||
"passwordChanged": "Пароль успешно изменён",
|
||
"expand": "Развернуть",
|
||
"collapse": "Свернуть",
|
||
"syntaxError": "Ошибка синтаксиса",
|
||
"undefinedVar": "Неизвестная переменная",
|
||
"line": "строка",
|
||
"add": "Добавить",
|
||
"filterByName": "Фильтр по имени...",
|
||
"allTypes": "Все типы",
|
||
"allProviders": "Все провайдеры",
|
||
"noFilterResults": "Нет элементов, соответствующих фильтру."
|
||
},
|
||
"error": {
|
||
"notFound": "Страница не найдена",
|
||
"goHome": "На главную"
|
||
},
|
||
"searchPalette": {
|
||
"placeholder": "Поиск объектов...",
|
||
"noResults": "Ничего не найдено",
|
||
"typeToSearch": "Начните вводить для поиска",
|
||
"navigate": "навигация",
|
||
"open": "открыть",
|
||
"close": "закрыть"
|
||
}
|
||
} |