Add EntitySelect/IconSelect UI improvements across modals
- Portal IconSelect popups to document.body with position:fixed to prevent clipping by modal overflow-y:auto - Replace custom scene selectors in automation editor with EntitySelect command-palette pickers (main scene + fallback scene) - Add IconSelect grid for automation deactivation mode (none/revert/fallback) - Add IconSelect grid for automation condition type and match type - Replace mapped zone source dropdowns with EntitySelect pickers - Replace scene target selector with EntityPalette.pick() pattern - Remove effect palette preview bar from CSS editor - Remove sensitivity badge from audio color strip source cards - Clean up unused scene-selector CSS and scene-target-add-row CSS - Add locale keys for all new UI elements across en/ru/zh Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -624,10 +624,13 @@
|
||||
"automations.conditions.add": "添加条件",
|
||||
"automations.conditions.empty": "无条件 — 启用后自动化始终处于活动状态",
|
||||
"automations.condition.always": "始终",
|
||||
"automations.condition.always.desc": "始终活跃",
|
||||
"automations.condition.always.hint": "自动化启用后立即激活并保持活动。",
|
||||
"automations.condition.startup": "启动",
|
||||
"automations.condition.startup.desc": "服务器启动时",
|
||||
"automations.condition.startup.hint": "服务器启动时激活,启用期间保持活动。",
|
||||
"automations.condition.application": "应用程序",
|
||||
"automations.condition.application.desc": "应用运行/聚焦",
|
||||
"automations.condition.application.apps": "应用程序:",
|
||||
"automations.condition.application.apps.hint": "进程名,每行一个(例如 firefox.exe)",
|
||||
"automations.condition.application.browse": "浏览",
|
||||
@@ -636,23 +639,31 @@
|
||||
"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.running.desc": "进程活跃",
|
||||
"automations.condition.application.match_type.topmost": "最前",
|
||||
"automations.condition.application.match_type.topmost.desc": "前台窗口",
|
||||
"automations.condition.application.match_type.topmost_fullscreen": "最前 + 全屏",
|
||||
"automations.condition.application.match_type.topmost_fullscreen.desc": "前台 + 全屏",
|
||||
"automations.condition.application.match_type.fullscreen": "全屏",
|
||||
"automations.condition.application.match_type.fullscreen.desc": "任意全屏应用",
|
||||
"automations.condition.time_of_day": "时段",
|
||||
"automations.condition.time_of_day.desc": "时间范围",
|
||||
"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.desc": "空闲/活跃",
|
||||
"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.desc": "显示器开/关",
|
||||
"automations.condition.display_state.state": "显示器状态:",
|
||||
"automations.condition.display_state.on": "开启",
|
||||
"automations.condition.display_state.off": "关闭(休眠)",
|
||||
"automations.condition.mqtt": "MQTT",
|
||||
"automations.condition.mqtt.desc": "MQTT 消息",
|
||||
"automations.condition.mqtt.topic": "主题:",
|
||||
"automations.condition.mqtt.payload": "消息内容:",
|
||||
"automations.condition.mqtt.match_mode": "匹配模式:",
|
||||
@@ -661,6 +672,7 @@
|
||||
"automations.condition.mqtt.match_mode.regex": "正则表达式",
|
||||
"automations.condition.mqtt.hint": "当 MQTT 主题收到匹配的消息时激活",
|
||||
"automations.condition.webhook": "Webhook",
|
||||
"automations.condition.webhook.desc": "HTTP 回调",
|
||||
"automations.condition.webhook.hint": "通过外部服务的 HTTP 请求激活(Home Assistant、IFTTT、curl 等)",
|
||||
"automations.condition.webhook.url": "Webhook URL:",
|
||||
"automations.condition.webhook.copy": "复制",
|
||||
@@ -673,9 +685,12 @@
|
||||
"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_mode.none": "无",
|
||||
"automations.deactivation_mode.none.desc": "保持当前状态",
|
||||
"automations.deactivation_mode.revert": "恢复",
|
||||
"automations.deactivation_mode.revert.desc": "恢复到之前的状态",
|
||||
"automations.deactivation_mode.fallback_scene": "备用",
|
||||
"automations.deactivation_mode.fallback_scene.desc": "激活备用场景",
|
||||
"automations.deactivation_scene": "备用场景:",
|
||||
"automations.deactivation_scene.hint": "自动化停用时激活的场景",
|
||||
"automations.status.active": "活动",
|
||||
@@ -702,6 +717,8 @@
|
||||
"scenes.description.hint": "此场景功能的可选描述",
|
||||
"scenes.targets": "目标:",
|
||||
"scenes.targets.hint": "选择要包含在此场景快照中的目标",
|
||||
"scenes.targets.add": "添加目标",
|
||||
"scenes.targets.search_placeholder": "搜索目标...",
|
||||
"scenes.capture": "捕获",
|
||||
"scenes.activate": "激活场景",
|
||||
"scenes.recapture": "重新捕获当前状态",
|
||||
@@ -747,6 +764,9 @@
|
||||
"color_strip.interpolation.average": "平均",
|
||||
"color_strip.interpolation.median": "中位数",
|
||||
"color_strip.interpolation.dominant": "主色",
|
||||
"color_strip.interpolation.average.desc": "将所有采样像素混合为平滑颜色",
|
||||
"color_strip.interpolation.median.desc": "取中间颜色值,减少异常值",
|
||||
"color_strip.interpolation.dominant.desc": "使用样本中出现最频繁的颜色",
|
||||
"color_strip.smoothing": "平滑:",
|
||||
"color_strip.smoothing.hint": "帧间时间混合(0=无,1=完全)。减少闪烁。",
|
||||
"color_strip.frame_interpolation": "帧插值:",
|
||||
@@ -773,6 +793,8 @@
|
||||
"color_strip.type.hint": "图片源从屏幕采集推导 LED 颜色。静态颜色用单一颜色填充所有 LED。渐变在所有 LED 上分布颜色渐变。颜色循环平滑循环用户定义的颜色列表。组合将多个源作为混合图层叠加。音频响应从实时音频输入驱动 LED。API 输入通过 REST 或 WebSocket 从外部客户端接收原始 LED 颜色。",
|
||||
"color_strip.type.picture": "图片源",
|
||||
"color_strip.type.picture.desc": "从屏幕捕获获取颜色",
|
||||
"color_strip.type.picture_advanced": "多显示器",
|
||||
"color_strip.type.picture_advanced.desc": "跨显示器的线条校准",
|
||||
"color_strip.type.static": "静态颜色",
|
||||
"color_strip.type.static.desc": "单色填充",
|
||||
"color_strip.type.gradient": "渐变",
|
||||
@@ -910,6 +932,7 @@
|
||||
"color_strip.mapped.zone_end": "结束 LED",
|
||||
"color_strip.mapped.zone_reverse": "反转",
|
||||
"color_strip.mapped.zones_count": "个区域",
|
||||
"color_strip.mapped.select_source": "搜索源...",
|
||||
"color_strip.mapped.error.no_source": "每个区域必须选择一个源",
|
||||
"color_strip.audio.visualization": "可视化:",
|
||||
"color_strip.audio.visualization.hint": "音频数据如何渲染到 LED。",
|
||||
@@ -1197,6 +1220,29 @@
|
||||
"calibration.error.save_failed": "保存校准失败",
|
||||
"calibration.error.led_count_mismatch": "LED总数必须等于设备LED数量",
|
||||
"calibration.error.led_count_exceeded": "校准的LED超过了LED总数",
|
||||
"calibration.mode.simple": "简单",
|
||||
"calibration.mode.advanced": "高级",
|
||||
"calibration.switch_to_advanced": "切换到高级模式",
|
||||
"calibration.advanced.title": "高级校准",
|
||||
"calibration.advanced.switch_to_simple": "切换到简单模式",
|
||||
"calibration.advanced.lines_title": "线段",
|
||||
"calibration.advanced.canvas_hint": "拖动显示器重新排列。点击边缘选择线段。滚动缩放,拖动空白区域平移。",
|
||||
"calibration.advanced.reset_view": "重置视图",
|
||||
"calibration.advanced.line_properties": "线段属性",
|
||||
"calibration.advanced.picture_source": "来源:",
|
||||
"calibration.advanced.picture_source.hint": "此线段采样的图片来源(显示器)",
|
||||
"calibration.advanced.edge": "边缘:",
|
||||
"calibration.advanced.edge.hint": "从屏幕哪条边缘采样像素",
|
||||
"calibration.advanced.led_count": "LED数:",
|
||||
"calibration.advanced.led_count.hint": "映射到此线段的LED数量",
|
||||
"calibration.advanced.span_start": "起始位置:",
|
||||
"calibration.advanced.span_start.hint": "沿边缘开始采样的位置(0 = 起点,1 = 终点)。用于仅覆盖边缘的一部分。",
|
||||
"calibration.advanced.span_end": "结束位置:",
|
||||
"calibration.advanced.span_end.hint": "沿边缘结束采样的位置(0 = 起点,1 = 终点)。与起始位置一起定义活动区域。",
|
||||
"calibration.advanced.border_width": "深度(像素):",
|
||||
"calibration.advanced.border_width.hint": "从边缘向内采样多少像素。较大的值会捕获更多屏幕内部区域。",
|
||||
"calibration.advanced.reverse": "反转",
|
||||
"calibration.advanced.no_lines_warning": "请至少添加一条线段",
|
||||
"dashboard.error.automation_toggle_failed": "切换自动化失败",
|
||||
"dashboard.error.start_failed": "启动处理失败",
|
||||
"dashboard.error.stop_failed": "停止处理失败",
|
||||
|
||||
Reference in New Issue
Block a user