Rename profiles to automations across backend and frontend
Rename the "profiles" entity to "automations" throughout the entire codebase for clarity. Updates Python models, storage, API routes/schemas, engine, frontend JS modules, HTML templates, CSS classes, i18n keys (en/ru/zh), dashboard, tutorials, and command palette. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -220,10 +220,10 @@
|
||||
"calibration.tip.skip_leds_start": "Skip LEDs at the start of the strip — skipped LEDs stay off",
|
||||
"calibration.tip.skip_leds_end": "Skip LEDs at the end of the strip — skipped LEDs stay off",
|
||||
"tour.welcome": "Welcome to LED Grab! This quick tour will show you around the interface. Use arrow keys or buttons to navigate.",
|
||||
"tour.dashboard": "Dashboard — live overview of running targets, profiles, and device health at a glance.",
|
||||
"tour.dashboard": "Dashboard — live overview of running targets, automations, and device health at a glance.",
|
||||
"tour.targets": "Targets — add WLED devices, configure LED targets with capture settings and calibration.",
|
||||
"tour.sources": "Sources — manage capture templates, picture sources, audio sources, and color strips.",
|
||||
"tour.profiles": "Profiles — group targets and automate switching with time, audio, or value conditions.",
|
||||
"tour.automations": "Automations — automate scene switching with time, audio, or value conditions.",
|
||||
"tour.settings": "Settings — backup and restore configuration, manage auto-backups.",
|
||||
"tour.api": "API Docs — interactive REST API documentation powered by Swagger.",
|
||||
"tour.search": "Search — quickly find and navigate to any entity with Ctrl+K.",
|
||||
@@ -234,7 +234,7 @@
|
||||
"tour.dash.perf": "Performance — real-time FPS charts, latency metrics, and poll interval control.",
|
||||
"tour.dash.running": "Running targets — live streaming metrics and quick stop control.",
|
||||
"tour.dash.stopped": "Stopped targets — ready to start with one click.",
|
||||
"tour.dash.profiles": "Profiles — active profile status and quick enable/disable toggle.",
|
||||
"tour.dash.automations": "Automations — active automation status and quick enable/disable toggle.",
|
||||
"tour.tgt.led_tab": "LED tab — standard LED strip targets with device and color strip configuration.",
|
||||
"tour.tgt.devices": "Devices — your WLED controllers discovered on the network.",
|
||||
"tour.tgt.css": "Color Strips — define how screen regions map to LED segments.",
|
||||
@@ -245,10 +245,10 @@
|
||||
"tour.src.static": "Static Image — test your setup with image files instead of live capture.",
|
||||
"tour.src.processed": "Processed — apply post-processing effects like blur, brightness, or color correction.",
|
||||
"tour.src.audio": "Audio — analyze microphone or system audio for reactive LED effects.",
|
||||
"tour.src.value": "Value — numeric data sources used as conditions in profile automation.",
|
||||
"tour.prof.list": "Profiles — automate target control based on time, audio, or value conditions.",
|
||||
"tour.prof.add": "Click + to create a new profile with targets and activation conditions.",
|
||||
"tour.prof.card": "Each card shows profile status, conditions, and quick controls to edit or toggle.",
|
||||
"tour.src.value": "Value — numeric data sources used as conditions in automations.",
|
||||
"tour.auto.list": "Automations — automate scene activation based on time, audio, or value conditions.",
|
||||
"tour.auto.add": "Click + to create a new automation with conditions and a scene to activate.",
|
||||
"tour.auto.card": "Each card shows automation status, conditions, and quick controls to edit or toggle.",
|
||||
"calibration.tutorial.start": "Start tutorial",
|
||||
"calibration.overlay_toggle": "Overlay",
|
||||
"calibration.start_position": "Starting Position:",
|
||||
@@ -531,7 +531,7 @@
|
||||
"dashboard.device": "Device",
|
||||
"dashboard.stop_all": "Stop All",
|
||||
"dashboard.failed": "Failed to load dashboard",
|
||||
"dashboard.section.profiles": "Profiles",
|
||||
"dashboard.section.automations": "Automations",
|
||||
"dashboard.section.scenes": "Scene Presets",
|
||||
"dashboard.targets": "Targets",
|
||||
"dashboard.section.performance": "System Performance",
|
||||
@@ -541,83 +541,83 @@
|
||||
"dashboard.perf.unavailable": "unavailable",
|
||||
"dashboard.perf.color": "Chart color",
|
||||
"dashboard.poll_interval": "Refresh interval",
|
||||
"profiles.title": "Profiles",
|
||||
"profiles.empty": "No profiles configured. Create one to automate target activation.",
|
||||
"profiles.add": "Add Profile",
|
||||
"profiles.edit": "Edit Profile",
|
||||
"profiles.delete.confirm": "Delete profile \"{name}\"?",
|
||||
"profiles.name": "Name:",
|
||||
"profiles.name.hint": "A descriptive name for this profile",
|
||||
"profiles.enabled": "Enabled:",
|
||||
"profiles.enabled.hint": "Disabled profiles won't activate even when conditions are met",
|
||||
"profiles.condition_logic": "Condition Logic:",
|
||||
"profiles.condition_logic.hint": "How multiple conditions are combined: ANY (OR) or ALL (AND)",
|
||||
"profiles.condition_logic.or": "Any condition (OR)",
|
||||
"profiles.condition_logic.and": "All conditions (AND)",
|
||||
"profiles.conditions": "Conditions:",
|
||||
"profiles.conditions.hint": "Rules that determine when this profile activates",
|
||||
"profiles.conditions.add": "Add Condition",
|
||||
"profiles.conditions.empty": "No conditions — profile is always active when enabled",
|
||||
"profiles.condition.always": "Always",
|
||||
"profiles.condition.always.hint": "Profile activates immediately when enabled and stays active. Use this to auto-start targets on server startup.",
|
||||
"profiles.condition.application": "Application",
|
||||
"profiles.condition.application.apps": "Applications:",
|
||||
"profiles.condition.application.apps.hint": "Process names, one per line (e.g. firefox.exe)",
|
||||
"profiles.condition.application.browse": "Browse",
|
||||
"profiles.condition.application.search": "Filter processes...",
|
||||
"profiles.condition.application.no_processes": "No processes found",
|
||||
"profiles.condition.application.match_type": "Match Type:",
|
||||
"profiles.condition.application.match_type.hint": "How to detect the application",
|
||||
"profiles.condition.application.match_type.running": "Running",
|
||||
"profiles.condition.application.match_type.topmost": "Topmost (foreground)",
|
||||
"profiles.condition.application.match_type.topmost_fullscreen": "Topmost + Fullscreen",
|
||||
"profiles.condition.application.match_type.fullscreen": "Fullscreen",
|
||||
"profiles.condition.time_of_day": "Time of Day",
|
||||
"profiles.condition.time_of_day.start_time": "Start Time:",
|
||||
"profiles.condition.time_of_day.end_time": "End Time:",
|
||||
"profiles.condition.time_of_day.overnight_hint": "For overnight ranges (e.g. 22:00–06:00), set start time after end time.",
|
||||
"profiles.condition.system_idle": "System Idle",
|
||||
"profiles.condition.system_idle.idle_minutes": "Idle Timeout (minutes):",
|
||||
"profiles.condition.system_idle.mode": "Trigger Mode:",
|
||||
"profiles.condition.system_idle.when_idle": "When idle",
|
||||
"profiles.condition.system_idle.when_active": "When active",
|
||||
"profiles.condition.display_state": "Display State",
|
||||
"profiles.condition.display_state.state": "Monitor State:",
|
||||
"profiles.condition.display_state.on": "On",
|
||||
"profiles.condition.display_state.off": "Off (sleeping)",
|
||||
"profiles.condition.mqtt": "MQTT",
|
||||
"profiles.condition.mqtt.topic": "Topic:",
|
||||
"profiles.condition.mqtt.payload": "Payload:",
|
||||
"profiles.condition.mqtt.match_mode": "Match Mode:",
|
||||
"profiles.condition.mqtt.match_mode.exact": "Exact",
|
||||
"profiles.condition.mqtt.match_mode.contains": "Contains",
|
||||
"profiles.condition.mqtt.match_mode.regex": "Regex",
|
||||
"profiles.condition.mqtt.hint": "Activate when an MQTT topic receives a matching payload",
|
||||
"profiles.scene": "Scene:",
|
||||
"profiles.scene.hint": "Scene preset to activate when conditions are met",
|
||||
"profiles.scene.search_placeholder": "Search scenes...",
|
||||
"profiles.scene.none_selected": "No scene",
|
||||
"profiles.scene.none_available": "No scenes available",
|
||||
"profiles.deactivation_mode": "Deactivation:",
|
||||
"profiles.deactivation_mode.hint": "What happens when conditions stop matching",
|
||||
"profiles.deactivation_mode.none": "None — keep current state",
|
||||
"profiles.deactivation_mode.revert": "Revert to previous state",
|
||||
"profiles.deactivation_mode.fallback_scene": "Activate fallback scene",
|
||||
"profiles.deactivation_scene": "Fallback Scene:",
|
||||
"profiles.deactivation_scene.hint": "Scene to activate when this profile deactivates",
|
||||
"profiles.status.active": "Active",
|
||||
"profiles.status.inactive": "Inactive",
|
||||
"profiles.status.disabled": "Disabled",
|
||||
"profiles.action.disable": "Disable",
|
||||
"profiles.last_activated": "Last activated",
|
||||
"profiles.logic.and": " AND ",
|
||||
"profiles.logic.or": " OR ",
|
||||
"profiles.logic.all": "ALL",
|
||||
"profiles.logic.any": "ANY",
|
||||
"profiles.updated": "Profile updated",
|
||||
"profiles.created": "Profile created",
|
||||
"profiles.deleted": "Profile deleted",
|
||||
"profiles.error.name_required": "Name is required",
|
||||
"automations.title": "Automations",
|
||||
"automations.empty": "No automations configured. Create one to automate scene activation.",
|
||||
"automations.add": "Add Automation",
|
||||
"automations.edit": "Edit Automation",
|
||||
"automations.delete.confirm": "Delete automation \"{name}\"?",
|
||||
"automations.name": "Name:",
|
||||
"automations.name.hint": "A descriptive name for this automation",
|
||||
"automations.enabled": "Enabled:",
|
||||
"automations.enabled.hint": "Disabled automations won't activate even when conditions are met",
|
||||
"automations.condition_logic": "Condition Logic:",
|
||||
"automations.condition_logic.hint": "How multiple conditions are combined: ANY (OR) or ALL (AND)",
|
||||
"automations.condition_logic.or": "Any condition (OR)",
|
||||
"automations.condition_logic.and": "All conditions (AND)",
|
||||
"automations.conditions": "Conditions:",
|
||||
"automations.conditions.hint": "Rules that determine when this automation activates",
|
||||
"automations.conditions.add": "Add Condition",
|
||||
"automations.conditions.empty": "No conditions — automation is always active when enabled",
|
||||
"automations.condition.always": "Always",
|
||||
"automations.condition.always.hint": "Automation activates immediately when enabled and stays active. Use this to auto-start scenes on server startup.",
|
||||
"automations.condition.application": "Application",
|
||||
"automations.condition.application.apps": "Applications:",
|
||||
"automations.condition.application.apps.hint": "Process names, one per line (e.g. firefox.exe)",
|
||||
"automations.condition.application.browse": "Browse",
|
||||
"automations.condition.application.search": "Filter processes...",
|
||||
"automations.condition.application.no_processes": "No processes found",
|
||||
"automations.condition.application.match_type": "Match Type:",
|
||||
"automations.condition.application.match_type.hint": "How to detect the application",
|
||||
"automations.condition.application.match_type.running": "Running",
|
||||
"automations.condition.application.match_type.topmost": "Topmost (foreground)",
|
||||
"automations.condition.application.match_type.topmost_fullscreen": "Topmost + Fullscreen",
|
||||
"automations.condition.application.match_type.fullscreen": "Fullscreen",
|
||||
"automations.condition.time_of_day": "Time of Day",
|
||||
"automations.condition.time_of_day.start_time": "Start Time:",
|
||||
"automations.condition.time_of_day.end_time": "End Time:",
|
||||
"automations.condition.time_of_day.overnight_hint": "For overnight ranges (e.g. 22:00–06:00), set start time after end time.",
|
||||
"automations.condition.system_idle": "System Idle",
|
||||
"automations.condition.system_idle.idle_minutes": "Idle Timeout (minutes):",
|
||||
"automations.condition.system_idle.mode": "Trigger Mode:",
|
||||
"automations.condition.system_idle.when_idle": "When idle",
|
||||
"automations.condition.system_idle.when_active": "When active",
|
||||
"automations.condition.display_state": "Display State",
|
||||
"automations.condition.display_state.state": "Monitor State:",
|
||||
"automations.condition.display_state.on": "On",
|
||||
"automations.condition.display_state.off": "Off (sleeping)",
|
||||
"automations.condition.mqtt": "MQTT",
|
||||
"automations.condition.mqtt.topic": "Topic:",
|
||||
"automations.condition.mqtt.payload": "Payload:",
|
||||
"automations.condition.mqtt.match_mode": "Match Mode:",
|
||||
"automations.condition.mqtt.match_mode.exact": "Exact",
|
||||
"automations.condition.mqtt.match_mode.contains": "Contains",
|
||||
"automations.condition.mqtt.match_mode.regex": "Regex",
|
||||
"automations.condition.mqtt.hint": "Activate when an MQTT topic receives a matching payload",
|
||||
"automations.scene": "Scene:",
|
||||
"automations.scene.hint": "Scene preset to activate when conditions are met",
|
||||
"automations.scene.search_placeholder": "Search scenes...",
|
||||
"automations.scene.none_selected": "No scene",
|
||||
"automations.scene.none_available": "No scenes available",
|
||||
"automations.deactivation_mode": "Deactivation:",
|
||||
"automations.deactivation_mode.hint": "What happens when conditions stop matching",
|
||||
"automations.deactivation_mode.none": "None — keep current state",
|
||||
"automations.deactivation_mode.revert": "Revert to previous state",
|
||||
"automations.deactivation_mode.fallback_scene": "Activate fallback scene",
|
||||
"automations.deactivation_scene": "Fallback Scene:",
|
||||
"automations.deactivation_scene.hint": "Scene to activate when this automation deactivates",
|
||||
"automations.status.active": "Active",
|
||||
"automations.status.inactive": "Inactive",
|
||||
"automations.status.disabled": "Disabled",
|
||||
"automations.action.disable": "Disable",
|
||||
"automations.last_activated": "Last activated",
|
||||
"automations.logic.and": " AND ",
|
||||
"automations.logic.or": " OR ",
|
||||
"automations.logic.all": "ALL",
|
||||
"automations.logic.any": "ANY",
|
||||
"automations.updated": "Automation updated",
|
||||
"automations.created": "Automation created",
|
||||
"automations.deleted": "Automation deleted",
|
||||
"automations.error.name_required": "Name is required",
|
||||
"scenes.title": "Scenes",
|
||||
"scenes.add": "Capture Scene",
|
||||
"scenes.edit": "Edit Scene",
|
||||
@@ -633,7 +633,7 @@
|
||||
"scenes.delete": "Delete scene",
|
||||
"scenes.targets_count": "targets",
|
||||
"scenes.devices_count": "devices",
|
||||
"scenes.profiles_count": "profiles",
|
||||
"scenes.automations_count": "automations",
|
||||
"scenes.captured": "Scene captured",
|
||||
"scenes.updated": "Scene updated",
|
||||
"scenes.activated": "Scene activated",
|
||||
@@ -1016,7 +1016,7 @@
|
||||
"search.group.targets": "LED Targets",
|
||||
"search.group.kc_targets": "Key Colors Targets",
|
||||
"search.group.css": "Color Strip Sources",
|
||||
"search.group.profiles": "Profiles",
|
||||
"search.group.automations": "Automations",
|
||||
"search.group.streams": "Picture Streams",
|
||||
"search.group.capture_templates": "Capture Templates",
|
||||
"search.group.pp_templates": "Post-Processing Templates",
|
||||
@@ -1025,7 +1025,7 @@
|
||||
"search.group.value": "Value Sources",
|
||||
"search.group.scenes": "Scene Presets",
|
||||
"settings.backup.label": "Backup Configuration",
|
||||
"settings.backup.hint": "Download all configuration (devices, targets, streams, templates, profiles) as a single JSON file.",
|
||||
"settings.backup.hint": "Download all configuration (devices, targets, streams, templates, automations) as a single JSON file.",
|
||||
"settings.backup.button": "Download Backup",
|
||||
"settings.backup.success": "Backup downloaded successfully",
|
||||
"settings.backup.error": "Backup download failed",
|
||||
@@ -1074,7 +1074,7 @@
|
||||
"calibration.error.save_failed": "Failed to save calibration",
|
||||
"calibration.error.led_count_mismatch": "Total LEDs must equal the device LED count",
|
||||
"calibration.error.led_count_exceeded": "Calibrated LEDs exceed the total LED count",
|
||||
"dashboard.error.profile_toggle_failed": "Failed to toggle profile",
|
||||
"dashboard.error.automation_toggle_failed": "Failed to toggle automation",
|
||||
"dashboard.error.start_failed": "Failed to start processing",
|
||||
"dashboard.error.stop_failed": "Failed to stop processing",
|
||||
"dashboard.error.autostart_toggle_failed": "Failed to toggle auto-start",
|
||||
|
||||
@@ -220,10 +220,10 @@
|
||||
"calibration.tip.skip_leds_start": "Пропуск LED в начале ленты — пропущенные LED остаются выключенными",
|
||||
"calibration.tip.skip_leds_end": "Пропуск LED в конце ленты — пропущенные LED остаются выключенными",
|
||||
"tour.welcome": "Добро пожаловать в LED Grab! Этот краткий тур познакомит вас с интерфейсом. Используйте стрелки или кнопки для навигации.",
|
||||
"tour.dashboard": "Дашборд — обзор запущенных целей, профилей и состояния устройств.",
|
||||
"tour.dashboard": "Дашборд — обзор запущенных целей, автоматизаций и состояния устройств.",
|
||||
"tour.targets": "Цели — добавляйте WLED-устройства, настраивайте LED-цели с захватом и калибровкой.",
|
||||
"tour.sources": "Источники — управление шаблонами захвата, источниками изображений, звука и цветовых полос.",
|
||||
"tour.profiles": "Профили — группируйте цели и автоматизируйте переключение по расписанию, звуку или значениям.",
|
||||
"tour.automations": "Автоматизации — автоматизируйте переключение сцен по расписанию, звуку или значениям.",
|
||||
"tour.settings": "Настройки — резервное копирование и восстановление конфигурации.",
|
||||
"tour.api": "API Документация — интерактивная документация REST API на базе Swagger.",
|
||||
"tour.search": "Поиск — быстрый поиск и переход к любому объекту по Ctrl+K.",
|
||||
@@ -234,7 +234,7 @@
|
||||
"tour.dash.perf": "Производительность — графики FPS в реальном времени, метрики задержки и интервал опроса.",
|
||||
"tour.dash.running": "Запущенные цели — метрики стриминга и быстрая остановка.",
|
||||
"tour.dash.stopped": "Остановленные цели — готовы к запуску одним нажатием.",
|
||||
"tour.dash.profiles": "Профили — статус активных профилей и быстрое включение/выключение.",
|
||||
"tour.dash.automations": "Автоматизации — статус активных автоматизаций и быстрое включение/выключение.",
|
||||
"tour.tgt.led_tab": "LED — стандартные LED-цели с настройкой устройств и цветовых полос.",
|
||||
"tour.tgt.devices": "Устройства — ваши WLED-контроллеры, найденные в сети.",
|
||||
"tour.tgt.css": "Цветовые полосы — определите, как области экрана соответствуют сегментам LED.",
|
||||
@@ -245,10 +245,10 @@
|
||||
"tour.src.static": "Статичные изображения — тестируйте настройку с файлами изображений.",
|
||||
"tour.src.processed": "Обработка — применяйте эффекты: размытие, яркость, цветокоррекция.",
|
||||
"tour.src.audio": "Аудио — анализ микрофона или системного звука для реактивных LED-эффектов.",
|
||||
"tour.src.value": "Значения — числовые источники данных для условий автоматизации профилей.",
|
||||
"tour.prof.list": "Профили — автоматизируйте управление целями по времени, звуку или значениям.",
|
||||
"tour.prof.add": "Нажмите + для создания нового профиля с целями и условиями активации.",
|
||||
"tour.prof.card": "Каждая карточка показывает статус профиля, условия и кнопки управления.",
|
||||
"tour.src.value": "Значения — числовые источники данных для условий автоматизаций.",
|
||||
"tour.auto.list": "Автоматизации — автоматизируйте активацию сцен по времени, звуку или значениям.",
|
||||
"tour.auto.add": "Нажмите + для создания новой автоматизации с условиями и сценой для активации.",
|
||||
"tour.auto.card": "Каждая карточка показывает статус автоматизации, условия и кнопки управления.",
|
||||
"calibration.tutorial.start": "Начать обучение",
|
||||
"calibration.overlay_toggle": "Оверлей",
|
||||
"calibration.start_position": "Начальная Позиция:",
|
||||
@@ -531,7 +531,7 @@
|
||||
"dashboard.device": "Устройство",
|
||||
"dashboard.stop_all": "Остановить все",
|
||||
"dashboard.failed": "Не удалось загрузить обзор",
|
||||
"dashboard.section.profiles": "Профили",
|
||||
"dashboard.section.automations": "Автоматизации",
|
||||
"dashboard.section.scenes": "Пресеты сцен",
|
||||
"dashboard.targets": "Цели",
|
||||
"dashboard.section.performance": "Производительность системы",
|
||||
@@ -541,83 +541,83 @@
|
||||
"dashboard.perf.unavailable": "недоступно",
|
||||
"dashboard.perf.color": "Цвет графика",
|
||||
"dashboard.poll_interval": "Интервал обновления",
|
||||
"profiles.title": "Профили",
|
||||
"profiles.empty": "Профили не настроены. Создайте профиль для автоматизации целей.",
|
||||
"profiles.add": "Добавить профиль",
|
||||
"profiles.edit": "Редактировать профиль",
|
||||
"profiles.delete.confirm": "Удалить профиль \"{name}\"?",
|
||||
"profiles.name": "Название:",
|
||||
"profiles.name.hint": "Описательное имя для профиля",
|
||||
"profiles.enabled": "Включён:",
|
||||
"profiles.enabled.hint": "Отключённые профили не активируются даже при выполнении условий",
|
||||
"profiles.condition_logic": "Логика условий:",
|
||||
"profiles.condition_logic.hint": "Как объединяются несколько условий: ЛЮБОЕ (ИЛИ) или ВСЕ (И)",
|
||||
"profiles.condition_logic.or": "Любое условие (ИЛИ)",
|
||||
"profiles.condition_logic.and": "Все условия (И)",
|
||||
"profiles.conditions": "Условия:",
|
||||
"profiles.conditions.hint": "Правила, определяющие когда профиль активируется",
|
||||
"profiles.conditions.add": "Добавить условие",
|
||||
"profiles.conditions.empty": "Нет условий — профиль всегда активен когда включён",
|
||||
"profiles.condition.always": "Всегда",
|
||||
"profiles.condition.always.hint": "Профиль активируется сразу при включении и остаётся активным. Используйте для автозапуска целей при старте сервера.",
|
||||
"profiles.condition.application": "Приложение",
|
||||
"profiles.condition.application.apps": "Приложения:",
|
||||
"profiles.condition.application.apps.hint": "Имена процессов, по одному на строку (например firefox.exe)",
|
||||
"profiles.condition.application.browse": "Обзор",
|
||||
"profiles.condition.application.search": "Фильтр процессов...",
|
||||
"profiles.condition.application.no_processes": "Процессы не найдены",
|
||||
"profiles.condition.application.match_type": "Тип соответствия:",
|
||||
"profiles.condition.application.match_type.hint": "Как определять наличие приложения",
|
||||
"profiles.condition.application.match_type.running": "Запущено",
|
||||
"profiles.condition.application.match_type.topmost": "На переднем плане",
|
||||
"profiles.condition.application.match_type.topmost_fullscreen": "На переднем плане + Полный экран",
|
||||
"profiles.condition.application.match_type.fullscreen": "Полный экран",
|
||||
"profiles.condition.time_of_day": "Время суток",
|
||||
"profiles.condition.time_of_day.start_time": "Время начала:",
|
||||
"profiles.condition.time_of_day.end_time": "Время окончания:",
|
||||
"profiles.condition.time_of_day.overnight_hint": "Для ночных диапазонов (например 22:00–06:00) укажите время начала позже времени окончания.",
|
||||
"profiles.condition.system_idle": "Бездействие системы",
|
||||
"profiles.condition.system_idle.idle_minutes": "Тайм-аут бездействия (минуты):",
|
||||
"profiles.condition.system_idle.mode": "Режим срабатывания:",
|
||||
"profiles.condition.system_idle.when_idle": "При бездействии",
|
||||
"profiles.condition.system_idle.when_active": "При активности",
|
||||
"profiles.condition.display_state": "Состояние дисплея",
|
||||
"profiles.condition.display_state.state": "Состояние монитора:",
|
||||
"profiles.condition.display_state.on": "Включён",
|
||||
"profiles.condition.display_state.off": "Выключен (спящий режим)",
|
||||
"profiles.condition.mqtt": "MQTT",
|
||||
"profiles.condition.mqtt.topic": "Топик:",
|
||||
"profiles.condition.mqtt.payload": "Значение:",
|
||||
"profiles.condition.mqtt.match_mode": "Режим сравнения:",
|
||||
"profiles.condition.mqtt.match_mode.exact": "Точное совпадение",
|
||||
"profiles.condition.mqtt.match_mode.contains": "Содержит",
|
||||
"profiles.condition.mqtt.match_mode.regex": "Регулярное выражение",
|
||||
"profiles.condition.mqtt.hint": "Активировать при получении совпадающего значения по MQTT топику",
|
||||
"profiles.scene": "Сцена:",
|
||||
"profiles.scene.hint": "Пресет сцены для активации при выполнении условий",
|
||||
"profiles.scene.search_placeholder": "Поиск сцен...",
|
||||
"profiles.scene.none_selected": "Нет сцены",
|
||||
"profiles.scene.none_available": "Нет доступных сцен",
|
||||
"profiles.deactivation_mode": "Деактивация:",
|
||||
"profiles.deactivation_mode.hint": "Что происходит, когда условия перестают выполняться",
|
||||
"profiles.deactivation_mode.none": "Ничего — оставить текущее состояние",
|
||||
"profiles.deactivation_mode.revert": "Вернуть предыдущее состояние",
|
||||
"profiles.deactivation_mode.fallback_scene": "Активировать резервную сцену",
|
||||
"profiles.deactivation_scene": "Резервная сцена:",
|
||||
"profiles.deactivation_scene.hint": "Сцена для активации при деактивации профиля",
|
||||
"profiles.status.active": "Активен",
|
||||
"profiles.status.inactive": "Неактивен",
|
||||
"profiles.status.disabled": "Отключён",
|
||||
"profiles.action.disable": "Отключить",
|
||||
"profiles.last_activated": "Последняя активация",
|
||||
"profiles.logic.and": " И ",
|
||||
"profiles.logic.or": " ИЛИ ",
|
||||
"profiles.logic.all": "ВСЕ",
|
||||
"profiles.logic.any": "ЛЮБОЕ",
|
||||
"profiles.updated": "Профиль обновлён",
|
||||
"profiles.created": "Профиль создан",
|
||||
"profiles.deleted": "Профиль удалён",
|
||||
"profiles.error.name_required": "Введите название",
|
||||
"automations.title": "Автоматизации",
|
||||
"automations.empty": "Автоматизации не настроены. Создайте автоматизацию для автоматической активации сцен.",
|
||||
"automations.add": "Добавить автоматизацию",
|
||||
"automations.edit": "Редактировать автоматизацию",
|
||||
"automations.delete.confirm": "Удалить автоматизацию \"{name}\"?",
|
||||
"automations.name": "Название:",
|
||||
"automations.name.hint": "Описательное имя для автоматизации",
|
||||
"automations.enabled": "Включена:",
|
||||
"automations.enabled.hint": "Отключённые автоматизации не активируются даже при выполнении условий",
|
||||
"automations.condition_logic": "Логика условий:",
|
||||
"automations.condition_logic.hint": "Как объединяются несколько условий: ЛЮБОЕ (ИЛИ) или ВСЕ (И)",
|
||||
"automations.condition_logic.or": "Любое условие (ИЛИ)",
|
||||
"automations.condition_logic.and": "Все условия (И)",
|
||||
"automations.conditions": "Условия:",
|
||||
"automations.conditions.hint": "Правила, определяющие когда автоматизация активируется",
|
||||
"automations.conditions.add": "Добавить условие",
|
||||
"automations.conditions.empty": "Нет условий — автоматизация всегда активна когда включена",
|
||||
"automations.condition.always": "Всегда",
|
||||
"automations.condition.always.hint": "Автоматизация активируется сразу при включении и остаётся активной. Используйте для автозапуска сцен при старте сервера.",
|
||||
"automations.condition.application": "Приложение",
|
||||
"automations.condition.application.apps": "Приложения:",
|
||||
"automations.condition.application.apps.hint": "Имена процессов, по одному на строку (например firefox.exe)",
|
||||
"automations.condition.application.browse": "Обзор",
|
||||
"automations.condition.application.search": "Фильтр процессов...",
|
||||
"automations.condition.application.no_processes": "Процессы не найдены",
|
||||
"automations.condition.application.match_type": "Тип соответствия:",
|
||||
"automations.condition.application.match_type.hint": "Как определять наличие приложения",
|
||||
"automations.condition.application.match_type.running": "Запущено",
|
||||
"automations.condition.application.match_type.topmost": "На переднем плане",
|
||||
"automations.condition.application.match_type.topmost_fullscreen": "На переднем плане + Полный экран",
|
||||
"automations.condition.application.match_type.fullscreen": "Полный экран",
|
||||
"automations.condition.time_of_day": "Время суток",
|
||||
"automations.condition.time_of_day.start_time": "Время начала:",
|
||||
"automations.condition.time_of_day.end_time": "Время окончания:",
|
||||
"automations.condition.time_of_day.overnight_hint": "Для ночных диапазонов (например 22:00–06:00) укажите время начала позже времени окончания.",
|
||||
"automations.condition.system_idle": "Бездействие системы",
|
||||
"automations.condition.system_idle.idle_minutes": "Тайм-аут бездействия (минуты):",
|
||||
"automations.condition.system_idle.mode": "Режим срабатывания:",
|
||||
"automations.condition.system_idle.when_idle": "При бездействии",
|
||||
"automations.condition.system_idle.when_active": "При активности",
|
||||
"automations.condition.display_state": "Состояние дисплея",
|
||||
"automations.condition.display_state.state": "Состояние монитора:",
|
||||
"automations.condition.display_state.on": "Включён",
|
||||
"automations.condition.display_state.off": "Выключен (спящий режим)",
|
||||
"automations.condition.mqtt": "MQTT",
|
||||
"automations.condition.mqtt.topic": "Топик:",
|
||||
"automations.condition.mqtt.payload": "Значение:",
|
||||
"automations.condition.mqtt.match_mode": "Режим сравнения:",
|
||||
"automations.condition.mqtt.match_mode.exact": "Точное совпадение",
|
||||
"automations.condition.mqtt.match_mode.contains": "Содержит",
|
||||
"automations.condition.mqtt.match_mode.regex": "Регулярное выражение",
|
||||
"automations.condition.mqtt.hint": "Активировать при получении совпадающего значения по MQTT топику",
|
||||
"automations.scene": "Сцена:",
|
||||
"automations.scene.hint": "Пресет сцены для активации при выполнении условий",
|
||||
"automations.scene.search_placeholder": "Поиск сцен...",
|
||||
"automations.scene.none_selected": "Нет сцены",
|
||||
"automations.scene.none_available": "Нет доступных сцен",
|
||||
"automations.deactivation_mode": "Деактивация:",
|
||||
"automations.deactivation_mode.hint": "Что происходит, когда условия перестают выполняться",
|
||||
"automations.deactivation_mode.none": "Ничего — оставить текущее состояние",
|
||||
"automations.deactivation_mode.revert": "Вернуть предыдущее состояние",
|
||||
"automations.deactivation_mode.fallback_scene": "Активировать резервную сцену",
|
||||
"automations.deactivation_scene": "Резервная сцена:",
|
||||
"automations.deactivation_scene.hint": "Сцена для активации при деактивации автоматизации",
|
||||
"automations.status.active": "Активна",
|
||||
"automations.status.inactive": "Неактивна",
|
||||
"automations.status.disabled": "Отключена",
|
||||
"automations.action.disable": "Отключить",
|
||||
"automations.last_activated": "Последняя активация",
|
||||
"automations.logic.and": " И ",
|
||||
"automations.logic.or": " ИЛИ ",
|
||||
"automations.logic.all": "ВСЕ",
|
||||
"automations.logic.any": "ЛЮБОЕ",
|
||||
"automations.updated": "Автоматизация обновлена",
|
||||
"automations.created": "Автоматизация создана",
|
||||
"automations.deleted": "Автоматизация удалена",
|
||||
"automations.error.name_required": "Введите название",
|
||||
"scenes.title": "Сцены",
|
||||
"scenes.add": "Захватить сцену",
|
||||
"scenes.edit": "Редактировать сцену",
|
||||
@@ -633,7 +633,7 @@
|
||||
"scenes.delete": "Удалить сцену",
|
||||
"scenes.targets_count": "целей",
|
||||
"scenes.devices_count": "устройств",
|
||||
"scenes.profiles_count": "профилей",
|
||||
"scenes.automations_count": "автоматизаций",
|
||||
"scenes.captured": "Сцена захвачена",
|
||||
"scenes.updated": "Сцена обновлена",
|
||||
"scenes.activated": "Сцена активирована",
|
||||
@@ -1016,7 +1016,7 @@
|
||||
"search.group.targets": "LED-цели",
|
||||
"search.group.kc_targets": "Цели Key Colors",
|
||||
"search.group.css": "Источники цветных лент",
|
||||
"search.group.profiles": "Профили",
|
||||
"search.group.automations": "Автоматизации",
|
||||
"search.group.streams": "Потоки изображений",
|
||||
"search.group.capture_templates": "Шаблоны захвата",
|
||||
"search.group.pp_templates": "Шаблоны постобработки",
|
||||
@@ -1025,7 +1025,7 @@
|
||||
"search.group.value": "Источники значений",
|
||||
"search.group.scenes": "Пресеты сцен",
|
||||
"settings.backup.label": "Резервное копирование",
|
||||
"settings.backup.hint": "Скачать всю конфигурацию (устройства, цели, потоки, шаблоны, профили) в виде одного JSON-файла.",
|
||||
"settings.backup.hint": "Скачать всю конфигурацию (устройства, цели, потоки, шаблоны, автоматизации) в виде одного JSON-файла.",
|
||||
"settings.backup.button": "Скачать резервную копию",
|
||||
"settings.backup.success": "Резервная копия скачана",
|
||||
"settings.backup.error": "Ошибка скачивания резервной копии",
|
||||
@@ -1074,7 +1074,7 @@
|
||||
"calibration.error.save_failed": "Не удалось сохранить калибровку",
|
||||
"calibration.error.led_count_mismatch": "Общее количество LED должно совпадать с количеством LED устройства",
|
||||
"calibration.error.led_count_exceeded": "Калиброванных LED больше, чем общее количество LED",
|
||||
"dashboard.error.profile_toggle_failed": "Не удалось переключить профиль",
|
||||
"dashboard.error.automation_toggle_failed": "Не удалось переключить автоматизацию",
|
||||
"dashboard.error.start_failed": "Не удалось запустить обработку",
|
||||
"dashboard.error.stop_failed": "Не удалось остановить обработку",
|
||||
"dashboard.error.autostart_toggle_failed": "Не удалось переключить автозапуск",
|
||||
|
||||
@@ -220,10 +220,10 @@
|
||||
"calibration.tip.skip_leds_start": "跳过灯带起始端的 LED — 被跳过的 LED 保持关闭",
|
||||
"calibration.tip.skip_leds_end": "跳过灯带末尾端的 LED — 被跳过的 LED 保持关闭",
|
||||
"tour.welcome": "欢迎使用 LED Grab!快速导览将带您了解界面。使用方向键或按钮进行导航。",
|
||||
"tour.dashboard": "仪表盘 — 实时查看运行中的目标、配置文件和设备状态。",
|
||||
"tour.dashboard": "仪表盘 — 实时查看运行中的目标、自动化和设备状态。",
|
||||
"tour.targets": "目标 — 添加 WLED 设备,配置 LED 目标的捕获设置和校准。",
|
||||
"tour.sources": "来源 — 管理捕获模板、图片来源、音频来源和色带。",
|
||||
"tour.profiles": "配置文件 — 将目标分组,并通过时间、音频或数值条件自动切换。",
|
||||
"tour.automations": "自动化 — 通过时间、音频或数值条件自动切换场景。",
|
||||
"tour.settings": "设置 — 备份和恢复配置,管理自动备份。",
|
||||
"tour.api": "API 文档 — 基于 Swagger 的交互式 REST API 文档。",
|
||||
"tour.search": "搜索 — 使用 Ctrl+K 快速查找并导航到任意实体。",
|
||||
@@ -234,7 +234,7 @@
|
||||
"tour.dash.perf": "性能 — 实时 FPS 图表、延迟指标和轮询间隔控制。",
|
||||
"tour.dash.running": "运行中的目标 — 实时流媒体指标和快速停止控制。",
|
||||
"tour.dash.stopped": "已停止的目标 — 一键启动。",
|
||||
"tour.dash.profiles": "配置文件 — 活动配置文件状态和快速启用/禁用切换。",
|
||||
"tour.dash.automations": "自动化 — 活动自动化状态和快速启用/禁用切换。",
|
||||
"tour.tgt.led_tab": "LED 标签 — 标准 LED 灯带目标,包含设备和色带配置。",
|
||||
"tour.tgt.devices": "设备 — 在网络中发现的 WLED 控制器。",
|
||||
"tour.tgt.css": "色带 — 定义屏幕区域如何映射到 LED 段。",
|
||||
@@ -245,10 +245,10 @@
|
||||
"tour.src.static": "静态图片 — 使用图片文件测试您的设置。",
|
||||
"tour.src.processed": "处理 — 应用后处理效果,如模糊、亮度或色彩校正。",
|
||||
"tour.src.audio": "音频 — 分析麦克风或系统音频以实现响应式 LED 效果。",
|
||||
"tour.src.value": "数值 — 用于配置文件自动化条件的数字数据源。",
|
||||
"tour.prof.list": "配置文件 — 基于时间、音频或数值条件自动控制目标。",
|
||||
"tour.prof.add": "点击 + 创建包含目标和激活条件的新配置文件。",
|
||||
"tour.prof.card": "每张卡片显示配置文件状态、条件和快速编辑/切换控制。",
|
||||
"tour.src.value": "数值 — 用于自动化条件的数字数据源。",
|
||||
"tour.auto.list": "自动化 — 基于时间、音频或数值条件自动激活场景。",
|
||||
"tour.auto.add": "点击 + 创建包含条件和要激活场景的新自动化。",
|
||||
"tour.auto.card": "每张卡片显示自动化状态、条件和快速编辑/切换控制。",
|
||||
"calibration.tutorial.start": "开始教程",
|
||||
"calibration.overlay_toggle": "叠加层",
|
||||
"calibration.start_position": "起始位置:",
|
||||
@@ -531,7 +531,7 @@
|
||||
"dashboard.device": "设备",
|
||||
"dashboard.stop_all": "全部停止",
|
||||
"dashboard.failed": "加载仪表盘失败",
|
||||
"dashboard.section.profiles": "配置文件",
|
||||
"dashboard.section.automations": "自动化",
|
||||
"dashboard.section.scenes": "场景预设",
|
||||
"dashboard.targets": "目标",
|
||||
"dashboard.section.performance": "系统性能",
|
||||
@@ -541,83 +541,83 @@
|
||||
"dashboard.perf.unavailable": "不可用",
|
||||
"dashboard.perf.color": "图表颜色",
|
||||
"dashboard.poll_interval": "刷新间隔",
|
||||
"profiles.title": "配置文件",
|
||||
"profiles.empty": "尚未配置配置文件。创建一个以自动化目标激活。",
|
||||
"profiles.add": "添加配置文件",
|
||||
"profiles.edit": "编辑配置文件",
|
||||
"profiles.delete.confirm": "删除配置文件 \"{name}\"?",
|
||||
"profiles.name": "名称:",
|
||||
"profiles.name.hint": "此配置文件的描述性名称",
|
||||
"profiles.enabled": "启用:",
|
||||
"profiles.enabled.hint": "禁用的配置文件即使满足条件也不会激活",
|
||||
"profiles.condition_logic": "条件逻辑:",
|
||||
"profiles.condition_logic.hint": "多个条件的组合方式:任一(或)或 全部(与)",
|
||||
"profiles.condition_logic.or": "任一条件(或)",
|
||||
"profiles.condition_logic.and": "全部条件(与)",
|
||||
"profiles.conditions": "条件:",
|
||||
"profiles.conditions.hint": "决定此配置文件何时激活的规则",
|
||||
"profiles.conditions.add": "添加条件",
|
||||
"profiles.conditions.empty": "无条件 — 启用后配置文件始终处于活动状态",
|
||||
"profiles.condition.always": "始终",
|
||||
"profiles.condition.always.hint": "配置文件启用后立即激活并保持活动。用于服务器启动时自动启动目标。",
|
||||
"profiles.condition.application": "应用程序",
|
||||
"profiles.condition.application.apps": "应用程序:",
|
||||
"profiles.condition.application.apps.hint": "进程名,每行一个(例如 firefox.exe)",
|
||||
"profiles.condition.application.browse": "浏览",
|
||||
"profiles.condition.application.search": "筛选进程...",
|
||||
"profiles.condition.application.no_processes": "未找到进程",
|
||||
"profiles.condition.application.match_type": "匹配类型:",
|
||||
"profiles.condition.application.match_type.hint": "如何检测应用程序",
|
||||
"profiles.condition.application.match_type.running": "运行中",
|
||||
"profiles.condition.application.match_type.topmost": "最前(前台)",
|
||||
"profiles.condition.application.match_type.topmost_fullscreen": "最前 + 全屏",
|
||||
"profiles.condition.application.match_type.fullscreen": "全屏",
|
||||
"profiles.condition.time_of_day": "时段",
|
||||
"profiles.condition.time_of_day.start_time": "开始时间:",
|
||||
"profiles.condition.time_of_day.end_time": "结束时间:",
|
||||
"profiles.condition.time_of_day.overnight_hint": "跨夜时段(如 22:00–06:00),请将开始时间设为晚于结束时间。",
|
||||
"profiles.condition.system_idle": "系统空闲",
|
||||
"profiles.condition.system_idle.idle_minutes": "空闲超时(分钟):",
|
||||
"profiles.condition.system_idle.mode": "触发模式:",
|
||||
"profiles.condition.system_idle.when_idle": "空闲时",
|
||||
"profiles.condition.system_idle.when_active": "活跃时",
|
||||
"profiles.condition.display_state": "显示器状态",
|
||||
"profiles.condition.display_state.state": "显示器状态:",
|
||||
"profiles.condition.display_state.on": "开启",
|
||||
"profiles.condition.display_state.off": "关闭(休眠)",
|
||||
"profiles.condition.mqtt": "MQTT",
|
||||
"profiles.condition.mqtt.topic": "主题:",
|
||||
"profiles.condition.mqtt.payload": "消息内容:",
|
||||
"profiles.condition.mqtt.match_mode": "匹配模式:",
|
||||
"profiles.condition.mqtt.match_mode.exact": "精确匹配",
|
||||
"profiles.condition.mqtt.match_mode.contains": "包含",
|
||||
"profiles.condition.mqtt.match_mode.regex": "正则表达式",
|
||||
"profiles.condition.mqtt.hint": "当 MQTT 主题收到匹配的消息时激活",
|
||||
"profiles.scene": "场景:",
|
||||
"profiles.scene.hint": "条件满足时激活的场景预设",
|
||||
"profiles.scene.search_placeholder": "搜索场景...",
|
||||
"profiles.scene.none_selected": "无场景",
|
||||
"profiles.scene.none_available": "没有可用的场景",
|
||||
"profiles.deactivation_mode": "停用方式:",
|
||||
"profiles.deactivation_mode.hint": "条件不再满足时的行为",
|
||||
"profiles.deactivation_mode.none": "无 — 保持当前状态",
|
||||
"profiles.deactivation_mode.revert": "恢复到之前的状态",
|
||||
"profiles.deactivation_mode.fallback_scene": "激活备用场景",
|
||||
"profiles.deactivation_scene": "备用场景:",
|
||||
"profiles.deactivation_scene.hint": "配置文件停用时激活的场景",
|
||||
"profiles.status.active": "活动",
|
||||
"profiles.status.inactive": "非活动",
|
||||
"profiles.status.disabled": "已禁用",
|
||||
"profiles.action.disable": "禁用",
|
||||
"profiles.last_activated": "上次激活",
|
||||
"profiles.logic.and": " 与 ",
|
||||
"profiles.logic.or": " 或 ",
|
||||
"profiles.logic.all": "全部",
|
||||
"profiles.logic.any": "任一",
|
||||
"profiles.updated": "配置文件已更新",
|
||||
"profiles.created": "配置文件已创建",
|
||||
"profiles.deleted": "配置文件已删除",
|
||||
"profiles.error.name_required": "名称为必填项",
|
||||
"automations.title": "自动化",
|
||||
"automations.empty": "尚未配置自动化。创建一个以自动激活场景。",
|
||||
"automations.add": "添加自动化",
|
||||
"automations.edit": "编辑自动化",
|
||||
"automations.delete.confirm": "删除自动化 \"{name}\"?",
|
||||
"automations.name": "名称:",
|
||||
"automations.name.hint": "此自动化的描述性名称",
|
||||
"automations.enabled": "启用:",
|
||||
"automations.enabled.hint": "禁用的自动化即使满足条件也不会激活",
|
||||
"automations.condition_logic": "条件逻辑:",
|
||||
"automations.condition_logic.hint": "多个条件的组合方式:任一(或)或 全部(与)",
|
||||
"automations.condition_logic.or": "任一条件(或)",
|
||||
"automations.condition_logic.and": "全部条件(与)",
|
||||
"automations.conditions": "条件:",
|
||||
"automations.conditions.hint": "决定此自动化何时激活的规则",
|
||||
"automations.conditions.add": "添加条件",
|
||||
"automations.conditions.empty": "无条件 — 启用后自动化始终处于活动状态",
|
||||
"automations.condition.always": "始终",
|
||||
"automations.condition.always.hint": "自动化启用后立即激活并保持活动。用于服务器启动时自动激活场景。",
|
||||
"automations.condition.application": "应用程序",
|
||||
"automations.condition.application.apps": "应用程序:",
|
||||
"automations.condition.application.apps.hint": "进程名,每行一个(例如 firefox.exe)",
|
||||
"automations.condition.application.browse": "浏览",
|
||||
"automations.condition.application.search": "筛选进程...",
|
||||
"automations.condition.application.no_processes": "未找到进程",
|
||||
"automations.condition.application.match_type": "匹配类型:",
|
||||
"automations.condition.application.match_type.hint": "如何检测应用程序",
|
||||
"automations.condition.application.match_type.running": "运行中",
|
||||
"automations.condition.application.match_type.topmost": "最前(前台)",
|
||||
"automations.condition.application.match_type.topmost_fullscreen": "最前 + 全屏",
|
||||
"automations.condition.application.match_type.fullscreen": "全屏",
|
||||
"automations.condition.time_of_day": "时段",
|
||||
"automations.condition.time_of_day.start_time": "开始时间:",
|
||||
"automations.condition.time_of_day.end_time": "结束时间:",
|
||||
"automations.condition.time_of_day.overnight_hint": "跨夜时段(如 22:00–06:00),请将开始时间设为晚于结束时间。",
|
||||
"automations.condition.system_idle": "系统空闲",
|
||||
"automations.condition.system_idle.idle_minutes": "空闲超时(分钟):",
|
||||
"automations.condition.system_idle.mode": "触发模式:",
|
||||
"automations.condition.system_idle.when_idle": "空闲时",
|
||||
"automations.condition.system_idle.when_active": "活跃时",
|
||||
"automations.condition.display_state": "显示器状态",
|
||||
"automations.condition.display_state.state": "显示器状态:",
|
||||
"automations.condition.display_state.on": "开启",
|
||||
"automations.condition.display_state.off": "关闭(休眠)",
|
||||
"automations.condition.mqtt": "MQTT",
|
||||
"automations.condition.mqtt.topic": "主题:",
|
||||
"automations.condition.mqtt.payload": "消息内容:",
|
||||
"automations.condition.mqtt.match_mode": "匹配模式:",
|
||||
"automations.condition.mqtt.match_mode.exact": "精确匹配",
|
||||
"automations.condition.mqtt.match_mode.contains": "包含",
|
||||
"automations.condition.mqtt.match_mode.regex": "正则表达式",
|
||||
"automations.condition.mqtt.hint": "当 MQTT 主题收到匹配的消息时激活",
|
||||
"automations.scene": "场景:",
|
||||
"automations.scene.hint": "条件满足时激活的场景预设",
|
||||
"automations.scene.search_placeholder": "搜索场景...",
|
||||
"automations.scene.none_selected": "无场景",
|
||||
"automations.scene.none_available": "没有可用的场景",
|
||||
"automations.deactivation_mode": "停用方式:",
|
||||
"automations.deactivation_mode.hint": "条件不再满足时的行为",
|
||||
"automations.deactivation_mode.none": "无 — 保持当前状态",
|
||||
"automations.deactivation_mode.revert": "恢复到之前的状态",
|
||||
"automations.deactivation_mode.fallback_scene": "激活备用场景",
|
||||
"automations.deactivation_scene": "备用场景:",
|
||||
"automations.deactivation_scene.hint": "自动化停用时激活的场景",
|
||||
"automations.status.active": "活动",
|
||||
"automations.status.inactive": "非活动",
|
||||
"automations.status.disabled": "已禁用",
|
||||
"automations.action.disable": "禁用",
|
||||
"automations.last_activated": "上次激活",
|
||||
"automations.logic.and": " 与 ",
|
||||
"automations.logic.or": " 或 ",
|
||||
"automations.logic.all": "全部",
|
||||
"automations.logic.any": "任一",
|
||||
"automations.updated": "自动化已更新",
|
||||
"automations.created": "自动化已创建",
|
||||
"automations.deleted": "自动化已删除",
|
||||
"automations.error.name_required": "名称为必填项",
|
||||
"scenes.title": "场景",
|
||||
"scenes.add": "捕获场景",
|
||||
"scenes.edit": "编辑场景",
|
||||
@@ -633,7 +633,7 @@
|
||||
"scenes.delete": "删除场景",
|
||||
"scenes.targets_count": "目标",
|
||||
"scenes.devices_count": "设备",
|
||||
"scenes.profiles_count": "配置",
|
||||
"scenes.automations_count": "自动化",
|
||||
"scenes.captured": "场景已捕获",
|
||||
"scenes.updated": "场景已更新",
|
||||
"scenes.activated": "场景已激活",
|
||||
@@ -1016,7 +1016,7 @@
|
||||
"search.group.targets": "LED 目标",
|
||||
"search.group.kc_targets": "关键颜色目标",
|
||||
"search.group.css": "色带源",
|
||||
"search.group.profiles": "配置文件",
|
||||
"search.group.automations": "自动化",
|
||||
"search.group.streams": "图片流",
|
||||
"search.group.capture_templates": "采集模板",
|
||||
"search.group.pp_templates": "后处理模板",
|
||||
@@ -1025,7 +1025,7 @@
|
||||
"search.group.value": "值源",
|
||||
"search.group.scenes": "场景预设",
|
||||
"settings.backup.label": "备份配置",
|
||||
"settings.backup.hint": "将所有配置(设备、目标、流、模板、配置文件)下载为单个 JSON 文件。",
|
||||
"settings.backup.hint": "将所有配置(设备、目标、流、模板、自动化)下载为单个 JSON 文件。",
|
||||
"settings.backup.button": "下载备份",
|
||||
"settings.backup.success": "备份下载成功",
|
||||
"settings.backup.error": "备份下载失败",
|
||||
@@ -1074,7 +1074,7 @@
|
||||
"calibration.error.save_failed": "保存校准失败",
|
||||
"calibration.error.led_count_mismatch": "LED总数必须等于设备LED数量",
|
||||
"calibration.error.led_count_exceeded": "校准的LED超过了LED总数",
|
||||
"dashboard.error.profile_toggle_failed": "切换配置文件失败",
|
||||
"dashboard.error.automation_toggle_failed": "切换自动化失败",
|
||||
"dashboard.error.start_failed": "启动处理失败",
|
||||
"dashboard.error.stop_failed": "停止处理失败",
|
||||
"dashboard.error.autostart_toggle_failed": "切换自动启动失败",
|
||||
|
||||
Reference in New Issue
Block a user