Introduce localStorage-backed card color assignment for all card types with a reusable wrapCard() helper that provides consistent card shell structure (top actions, bottom actions with color picker). Move color picker from top-right to bottom-right action bar. Add color reset button to clear card color back to default. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1117 lines
63 KiB
JSON
1117 lines
63 KiB
JSON
{
|
||
"app.title": "LED Grab",
|
||
"app.version": "版本:",
|
||
"app.api_docs": "API 文档",
|
||
"theme.toggle": "切换主题",
|
||
"accent.title": "主题色",
|
||
"accent.custom": "自定义",
|
||
"accent.reset": "重置",
|
||
"locale.change": "切换语言",
|
||
"auth.login": "登录",
|
||
"auth.logout": "退出",
|
||
"auth.authenticated": "● 已认证",
|
||
"auth.title": "登录 LED Grab",
|
||
"auth.message": "请输入 API 密钥以进行身份验证并访问 LED Grab。",
|
||
"auth.label": "API 密钥:",
|
||
"auth.placeholder": "输入您的 API 密钥...",
|
||
"auth.hint": "API 密钥将安全存储在浏览器的本地存储中。",
|
||
"auth.button.cancel": "取消",
|
||
"auth.button.login": "登录",
|
||
"auth.error.required": "请输入 API 密钥",
|
||
"auth.success": "登录成功!",
|
||
"auth.logout.confirm": "确定要退出登录吗?",
|
||
"auth.logout.success": "已成功退出",
|
||
"auth.please_login": "请先登录",
|
||
"auth.session_expired": "会话已过期或 API 密钥无效,请重新登录。",
|
||
"displays.title": "可用显示器",
|
||
"displays.layout": "显示器",
|
||
"displays.information": "显示器信息",
|
||
"displays.legend.primary": "主显示器",
|
||
"displays.legend.secondary": "副显示器",
|
||
"displays.badge.primary": "主",
|
||
"displays.badge.secondary": "副",
|
||
"displays.resolution": "分辨率:",
|
||
"displays.refresh_rate": "刷新率:",
|
||
"displays.position": "位置:",
|
||
"displays.index": "显示器序号:",
|
||
"displays.loading": "正在加载显示器...",
|
||
"displays.none": "没有可用的显示器",
|
||
"displays.failed": "加载显示器失败",
|
||
"displays.picker.title": "选择显示器",
|
||
"displays.picker.select": "选择显示器...",
|
||
"displays.picker.click_to_select": "点击选择此显示器",
|
||
"displays.picker.adb_connect": "连接 ADB 设备",
|
||
"displays.picker.adb_connect.placeholder": "IP 地址(例如 192.168.2.201)",
|
||
"displays.picker.adb_connect.button": "连接",
|
||
"displays.picker.adb_connect.success": "设备已连接",
|
||
"displays.picker.adb_connect.error": "连接设备失败",
|
||
"displays.picker.adb_disconnect": "断开连接",
|
||
"displays.picker.no_android": "未找到 Android 设备。请通过 USB 连接或在上方输入 IP 地址。",
|
||
"templates.title": "引擎模板",
|
||
"templates.description": "采集模板定义屏幕的采集方式。每个模板使用特定的采集引擎(MSS、DXcam、WGC)及自定义设置。将模板分配给设备以获得最佳性能。",
|
||
"templates.loading": "正在加载模板...",
|
||
"templates.empty": "尚未配置采集模板",
|
||
"templates.add": "添加引擎模板",
|
||
"templates.edit": "编辑引擎模板",
|
||
"templates.name": "模板名称:",
|
||
"templates.name.placeholder": "我的自定义模板",
|
||
"templates.description.label": "描述(可选):",
|
||
"templates.description.placeholder": "描述此模板...",
|
||
"templates.engine": "采集引擎:",
|
||
"templates.engine.hint": "选择要使用的屏幕采集技术",
|
||
"templates.engine.select": "选择引擎...",
|
||
"templates.engine.unavailable": "不可用",
|
||
"templates.engine.unavailable.hint": "此引擎在您的系统上不可用",
|
||
"templates.config": "配置",
|
||
"templates.config.show": "显示配置",
|
||
"templates.config.none": "无额外配置",
|
||
"templates.config.default": "默认",
|
||
"templates.created": "模板创建成功",
|
||
"templates.updated": "模板更新成功",
|
||
"templates.deleted": "模板删除成功",
|
||
"templates.delete.confirm": "确定要删除此模板吗?",
|
||
"templates.error.load": "加载模板失败",
|
||
"templates.error.engines": "加载引擎失败",
|
||
"templates.error.required": "请填写所有必填项",
|
||
"templates.error.delete": "删除模板失败",
|
||
"templates.test.title": "测试采集",
|
||
"templates.test.description": "保存前测试此模板,查看采集预览和性能指标。",
|
||
"templates.test.display": "显示器:",
|
||
"templates.test.display.select": "选择显示器...",
|
||
"templates.test.duration": "采集时长(秒):",
|
||
"templates.test.border_width": "边框宽度(像素):",
|
||
"templates.test.run": "运行",
|
||
"templates.test.running": "正在运行测试...",
|
||
"templates.test.results.preview": "全幅采集预览",
|
||
"templates.test.results.borders": "边框提取",
|
||
"templates.test.results.top": "上",
|
||
"templates.test.results.right": "右",
|
||
"templates.test.results.bottom": "下",
|
||
"templates.test.results.left": "左",
|
||
"templates.test.results.performance": "性能",
|
||
"templates.test.results.capture_time": "采集",
|
||
"templates.test.results.extraction_time": "提取",
|
||
"templates.test.results.total_time": "总计",
|
||
"templates.test.results.max_fps": "最大 FPS",
|
||
"templates.test.results.duration": "时长",
|
||
"templates.test.results.frame_count": "帧数",
|
||
"templates.test.results.actual_fps": "实际 FPS",
|
||
"templates.test.results.avg_capture_time": "平均采集",
|
||
"templates.test.error.no_engine": "请选择采集引擎",
|
||
"templates.test.error.no_display": "请选择显示器",
|
||
"templates.test.error.failed": "测试失败",
|
||
"devices.title": "设备",
|
||
"devices.add": "添加新设备",
|
||
"devices.loading": "正在加载设备...",
|
||
"devices.none": "尚未配置设备",
|
||
"devices.failed": "加载设备失败",
|
||
"devices.wled_config": "WLED 配置:",
|
||
"devices.wled_note": "使用以下方式配置您的 WLED 设备(效果、分段、颜色顺序、功率限制等):",
|
||
"devices.wled_link": "官方 WLED 应用",
|
||
"devices.wled_note_or": "或内置的",
|
||
"devices.wled_webui_link": "WLED Web UI",
|
||
"devices.wled_note_webui": "(在浏览器中打开设备 IP 地址)。",
|
||
"devices.wled_note2": "此控制器发送像素颜色数据并控制每个设备的亮度。",
|
||
"device.scan": "自动发现",
|
||
"device.scan.empty": "未找到设备",
|
||
"device.scan.error": "网络扫描失败",
|
||
"device.scan.already_added": "已添加",
|
||
"device.scan.selected": "设备已选择",
|
||
"device.type": "设备类型:",
|
||
"device.type.hint": "选择 LED 控制器的类型",
|
||
"device.serial_port": "串口:",
|
||
"device.serial_port.hint": "选择 Adalight 设备的 COM 端口",
|
||
"device.serial_port.none": "未找到串口",
|
||
"device.led_count_manual.hint": "灯带上的 LED 数量(必须与 Arduino 程序匹配)",
|
||
"device.baud_rate": "波特率:",
|
||
"device.baud_rate.hint": "串口通信速率。越高 FPS 越高,但需要与 Arduino 程序匹配。",
|
||
"device.led_type": "LED 类型:",
|
||
"device.led_type.hint": "RGB(3通道)或 RGBW(4通道,带独立白色)",
|
||
"device.send_latency": "发送延迟(毫秒):",
|
||
"device.send_latency.hint": "每帧模拟网络/串口延迟(毫秒)",
|
||
"device.mqtt_topic": "MQTT 主题:",
|
||
"device.mqtt_topic.hint": "用于发布像素数据的 MQTT 主题路径(例如 mqtt://ledgrab/device/name)",
|
||
"device.mqtt_topic.placeholder": "mqtt://ledgrab/device/客厅",
|
||
"device.ws_url": "连接 URL:",
|
||
"device.ws_url.hint": "客户端连接并接收 LED 数据的 WebSocket URL",
|
||
"device.url.hint": "设备的 IP 地址或主机名(例如 http://192.168.1.100)",
|
||
"device.name": "设备名称:",
|
||
"device.name.placeholder": "客厅电视",
|
||
"device.url": "地址:",
|
||
"device.url.placeholder": "http://192.168.1.100",
|
||
"device.led_count": "LED 数量:",
|
||
"device.led_count.hint": "设备中配置的 LED 数量",
|
||
"device.led_count.hint.auto": "从设备自动检测",
|
||
"device.button.add": "添加设备",
|
||
"device.button.start": "启动",
|
||
"device.button.stop": "停止",
|
||
"device.button.settings": "常规设置",
|
||
"device.button.capture_settings": "采集设置",
|
||
"device.button.calibrate": "校准",
|
||
"device.button.remove": "移除",
|
||
"device.button.webui": "打开设备 Web UI",
|
||
"device.button.power_off": "关闭",
|
||
"device.power.off_success": "设备已关闭",
|
||
"device.status.connected": "已连接",
|
||
"device.status.disconnected": "已断开",
|
||
"device.status.error": "错误",
|
||
"device.status.processing": "处理中",
|
||
"device.status.idle": "空闲",
|
||
"device.fps": "FPS:",
|
||
"device.display": "显示器:",
|
||
"device.remove.confirm": "确定要移除此设备吗?",
|
||
"device.added": "设备添加成功",
|
||
"device.removed": "设备移除成功",
|
||
"device.started": "处理已启动",
|
||
"device.stopped": "处理已停止",
|
||
"device.metrics.actual_fps": "实际 FPS",
|
||
"device.metrics.current_fps": "当前 FPS",
|
||
"device.metrics.target_fps": "目标 FPS",
|
||
"device.metrics.potential_fps": "潜在 FPS",
|
||
"device.metrics.frames": "帧数",
|
||
"device.metrics.frames_skipped": "已跳过",
|
||
"device.metrics.keepalive": "心跳",
|
||
"device.metrics.errors": "错误",
|
||
"device.metrics.uptime": "运行时长",
|
||
"device.metrics.timing": "管线时序:",
|
||
"device.metrics.device_fps": "设备刷新率",
|
||
"device.health.online": "在线",
|
||
"device.health.offline": "离线",
|
||
"device.health.streaming_unreachable": "流传输期间不可达",
|
||
"device.health.checking": "检测中...",
|
||
"device.tutorial.start": "开始教程",
|
||
"device.tip.metadata": "设备信息(LED 数量、类型、颜色通道)从设备自动检测",
|
||
"device.tip.brightness": "滑动调节设备亮度",
|
||
"device.tip.start": "启动或停止屏幕采集处理",
|
||
"device.tip.settings": "配置设备常规设置(名称、地址、健康检查)",
|
||
"device.tip.capture_settings": "配置采集设置(显示器、采集模板)",
|
||
"device.tip.calibrate": "校准 LED 位置、方向和覆盖范围",
|
||
"device.tip.webui": "打开设备内置的 Web 界面进行高级配置",
|
||
"device.tip.add": "点击此处添加新的 LED 设备",
|
||
"settings.title": "设置",
|
||
"settings.general.title": "常规设置",
|
||
"settings.capture.title": "采集设置",
|
||
"settings.capture.saved": "采集设置已更新",
|
||
"settings.capture.failed": "保存采集设置失败",
|
||
"settings.brightness": "亮度:",
|
||
"settings.brightness.hint": "此设备的全局亮度(0-100%)",
|
||
"settings.url.hint": "设备的 IP 地址或主机名",
|
||
"settings.display_index": "显示器:",
|
||
"settings.display_index.hint": "为此设备采集哪个屏幕",
|
||
"settings.fps": "目标 FPS:",
|
||
"settings.fps.hint": "目标帧率(10-90)",
|
||
"settings.capture_template": "引擎模板:",
|
||
"settings.capture_template.hint": "此设备的屏幕采集引擎和配置",
|
||
"settings.button.cancel": "取消",
|
||
"settings.health_interval": "健康检查间隔(秒):",
|
||
"settings.health_interval.hint": "检查设备状态的频率(5-600秒)",
|
||
"settings.auto_shutdown": "自动恢复:",
|
||
"settings.auto_shutdown.hint": "当目标停止或服务器关闭时恢复设备到空闲状态",
|
||
"settings.button.save": "保存更改",
|
||
"settings.saved": "设置保存成功",
|
||
"settings.failed": "保存设置失败",
|
||
"calibration.title": "LED 校准",
|
||
"calibration.tip.led_count": "输入每条边的 LED 数量",
|
||
"calibration.tip.start_corner": "点击角落设置起始位置",
|
||
"calibration.tip.direction": "切换灯带方向(顺时针/逆时针)",
|
||
"calibration.tip.offset": "设置 LED 偏移 — 从 LED 0 到起始角落的距离",
|
||
"calibration.tip.span": "拖动绿色条调整覆盖范围",
|
||
"calibration.tip.test": "点击边缘切换测试 LED",
|
||
"calibration.tip.overlay": "切换屏幕叠加层以查看显示器上的 LED 位置和编号",
|
||
"calibration.tip.toggle_inputs": "点击 LED 总数切换边缘输入",
|
||
"calibration.tip.border_width": "从屏幕边缘采样多少像素来确定 LED 颜色",
|
||
"calibration.tip.skip_leds_start": "跳过灯带起始端的 LED — 被跳过的 LED 保持关闭",
|
||
"calibration.tip.skip_leds_end": "跳过灯带末尾端的 LED — 被跳过的 LED 保持关闭",
|
||
"tour.welcome": "欢迎使用 LED Grab!快速导览将带您了解界面。使用方向键或按钮进行导航。",
|
||
"tour.dashboard": "仪表盘 — 实时查看运行中的目标、自动化和设备状态。",
|
||
"tour.targets": "目标 — 添加 WLED 设备,配置 LED 目标的捕获设置和校准。",
|
||
"tour.sources": "来源 — 管理捕获模板、图片来源、音频来源和色带。",
|
||
"tour.automations": "自动化 — 通过时间、音频或数值条件自动切换场景。",
|
||
"tour.settings": "设置 — 备份和恢复配置,管理自动备份。",
|
||
"tour.api": "API 文档 — 基于 Swagger 的交互式 REST API 文档。",
|
||
"tour.search": "搜索 — 使用 Ctrl+K 快速查找并导航到任意实体。",
|
||
"tour.theme": "主题 — 在深色和浅色模式之间切换。",
|
||
"tour.accent": "主题色 — 自定义界面的强调颜色。",
|
||
"tour.language": "语言 — 选择您偏好的界面语言。",
|
||
"tour.restart": "重新开始导览",
|
||
"tour.dash.perf": "性能 — 实时 FPS 图表、延迟指标和轮询间隔控制。",
|
||
"tour.dash.running": "运行中的目标 — 实时流媒体指标和快速停止控制。",
|
||
"tour.dash.stopped": "已停止的目标 — 一键启动。",
|
||
"tour.dash.automations": "自动化 — 活动自动化状态和快速启用/禁用切换。",
|
||
"tour.tgt.led_tab": "LED 标签 — 标准 LED 灯带目标,包含设备和色带配置。",
|
||
"tour.tgt.devices": "设备 — 在网络中发现的 LED 控制器。",
|
||
"tour.tgt.css": "色带 — 定义屏幕区域如何映射到 LED 段。",
|
||
"tour.tgt.targets": "LED 目标 — 将设备、色带和捕获源组合进行流式传输。",
|
||
"tour.tgt.kc_tab": "Key Colors — 使用颜色匹配代替像素映射的替代目标类型。",
|
||
"tour.src.raw": "原始 — 来自显示器的实时屏幕捕获源。",
|
||
"tour.src.templates": "捕获模板 — 可复用的捕获配置(分辨率、FPS、裁剪)。",
|
||
"tour.src.static": "静态图片 — 使用图片文件测试您的设置。",
|
||
"tour.src.processed": "处理 — 应用后处理效果,如模糊、亮度或色彩校正。",
|
||
"tour.src.audio": "音频 — 分析麦克风或系统音频以实现响应式 LED 效果。",
|
||
"tour.src.value": "数值 — 用于自动化条件的数字数据源。",
|
||
"tour.auto.list": "自动化 — 基于时间、音频或数值条件自动激活场景。",
|
||
"tour.auto.add": "点击 + 创建包含条件和要激活场景的新自动化。",
|
||
"tour.auto.card": "每张卡片显示自动化状态、条件和快速编辑/切换控制。",
|
||
"tour.auto.scenes_list": "场景 — 保存的系统状态,自动化可以激活或您可以手动应用。",
|
||
"tour.auto.scenes_add": "点击 + 将当前系统状态捕获为新的场景预设。",
|
||
"tour.auto.scenes_card": "每个场景卡片显示目标/设备数量。点击编辑、重新捕获或激活。",
|
||
"calibration.tutorial.start": "开始教程",
|
||
"calibration.overlay_toggle": "叠加层",
|
||
"calibration.start_position": "起始位置:",
|
||
"calibration.position.bottom_left": "左下",
|
||
"calibration.position.bottom_right": "右下",
|
||
"calibration.position.top_left": "左上",
|
||
"calibration.position.top_right": "右上",
|
||
"calibration.direction": "方向:",
|
||
"calibration.direction.clockwise": "顺时针",
|
||
"calibration.direction.counterclockwise": "逆时针",
|
||
"calibration.leds.top": "顶部 LED:",
|
||
"calibration.leds.right": "右侧 LED:",
|
||
"calibration.leds.bottom": "底部 LED:",
|
||
"calibration.leds.left": "左侧 LED:",
|
||
"calibration.offset": "LED 偏移:",
|
||
"calibration.offset.hint": "从物理 LED 0 到起始角落的距离(沿灯带方向)",
|
||
"calibration.skip_start": "跳过 LED(起始):",
|
||
"calibration.skip_start.hint": "灯带起始端关闭的 LED 数量(0 = 无)",
|
||
"calibration.skip_end": "跳过 LED(末尾):",
|
||
"calibration.skip_end.hint": "灯带末尾端关闭的 LED 数量(0 = 无)",
|
||
"calibration.border_width": "边框(像素):",
|
||
"calibration.border_width.hint": "从屏幕边缘采样多少像素来确定 LED 颜色(1-100)",
|
||
"calibration.button.cancel": "取消",
|
||
"calibration.button.save": "保存",
|
||
"calibration.saved": "校准保存成功",
|
||
"calibration.failed": "保存校准失败",
|
||
"server.healthy": "服务器在线",
|
||
"server.offline": "服务器离线",
|
||
"error.unauthorized": "未授权 - 请先登录",
|
||
"error.network": "网络错误",
|
||
"error.unknown": "发生错误",
|
||
"modal.discard_changes": "有未保存的更改。是否放弃?",
|
||
"confirm.title": "确认操作",
|
||
"confirm.yes": "是",
|
||
"confirm.no": "否",
|
||
"common.loading": "加载中...",
|
||
"common.delete": "删除",
|
||
"common.edit": "编辑",
|
||
"common.clone": "克隆",
|
||
"section.filter.placeholder": "筛选...",
|
||
"section.filter.reset": "清除筛选",
|
||
"section.expand_all": "全部展开",
|
||
"section.collapse_all": "全部折叠",
|
||
"streams.title": "源",
|
||
"streams.description": "源定义采集管线。原始源使用采集模板从显示器采集。处理源对另一个源应用后处理。将源分配给设备。",
|
||
"streams.group.raw": "屏幕采集",
|
||
"streams.group.processed": "已处理",
|
||
"streams.group.audio": "音频",
|
||
"streams.section.streams": "源",
|
||
"streams.add": "添加源",
|
||
"streams.add.raw": "添加屏幕采集",
|
||
"streams.add.processed": "添加处理源",
|
||
"streams.edit": "编辑源",
|
||
"streams.edit.raw": "编辑屏幕采集",
|
||
"streams.edit.processed": "编辑处理源",
|
||
"streams.name": "源名称:",
|
||
"streams.name.placeholder": "我的源",
|
||
"streams.type": "类型:",
|
||
"streams.type.raw": "屏幕采集",
|
||
"streams.type.processed": "已处理",
|
||
"streams.display": "显示器:",
|
||
"streams.display.hint": "采集哪个屏幕",
|
||
"streams.capture_template": "引擎模板:",
|
||
"streams.capture_template.hint": "定义屏幕采集方式的引擎模板",
|
||
"streams.target_fps": "目标 FPS:",
|
||
"streams.target_fps.hint": "采集的目标帧率(1-90)",
|
||
"streams.source": "源:",
|
||
"streams.source.hint": "要应用处理滤镜的源",
|
||
"streams.pp_template": "滤镜模板:",
|
||
"streams.pp_template.hint": "要应用到源的滤镜模板",
|
||
"streams.description_label": "描述(可选):",
|
||
"streams.description_placeholder": "描述此源...",
|
||
"streams.created": "源创建成功",
|
||
"streams.updated": "源更新成功",
|
||
"streams.deleted": "源删除成功",
|
||
"streams.delete.confirm": "确定要删除此源吗?",
|
||
"streams.error.load": "加载源失败",
|
||
"streams.error.required": "请填写所有必填项",
|
||
"streams.error.delete": "删除源失败",
|
||
"streams.test.title": "测试源",
|
||
"streams.test.run": "运行",
|
||
"streams.test.running": "正在测试源...",
|
||
"streams.test.duration": "采集时长(秒):",
|
||
"streams.test.error.failed": "源测试失败",
|
||
"postprocessing.title": "滤镜模板",
|
||
"postprocessing.description": "处理模板定义图像滤镜和色彩校正。将它们分配给处理图片源以实现跨设备的一致后处理。",
|
||
"postprocessing.add": "添加滤镜模板",
|
||
"postprocessing.edit": "编辑滤镜模板",
|
||
"postprocessing.name": "模板名称:",
|
||
"postprocessing.name.placeholder": "我的滤镜模板",
|
||
"filters.select_type": "选择滤镜类型...",
|
||
"filters.add": "添加滤镜",
|
||
"filters.remove": "移除",
|
||
"filters.move_up": "上移",
|
||
"filters.move_down": "下移",
|
||
"filters.empty": "尚未添加滤镜。使用下方选择器添加滤镜。",
|
||
"filters.brightness": "亮度",
|
||
"filters.saturation": "饱和度",
|
||
"filters.gamma": "伽马",
|
||
"filters.downscaler": "缩小",
|
||
"filters.pixelate": "像素化",
|
||
"filters.auto_crop": "自动裁剪",
|
||
"filters.flip": "翻转",
|
||
"filters.color_correction": "色彩校正",
|
||
"filters.filter_template": "滤镜模板",
|
||
"postprocessing.description_label": "描述(可选):",
|
||
"postprocessing.description_placeholder": "描述此模板...",
|
||
"postprocessing.created": "模板创建成功",
|
||
"postprocessing.updated": "模板更新成功",
|
||
"postprocessing.deleted": "模板删除成功",
|
||
"postprocessing.delete.confirm": "确定要删除此滤镜模板吗?",
|
||
"postprocessing.error.load": "加载处理模板失败",
|
||
"postprocessing.error.required": "请填写所有必填项",
|
||
"postprocessing.error.delete": "删除处理模板失败",
|
||
"postprocessing.config.show": "显示设置",
|
||
"postprocessing.test.title": "测试滤镜模板",
|
||
"postprocessing.test.source_stream": "源:",
|
||
"postprocessing.test.running": "正在测试处理模板...",
|
||
"postprocessing.test.error.no_stream": "请选择一个源",
|
||
"postprocessing.test.error.failed": "处理模板测试失败",
|
||
"device.button.stream_selector": "源设置",
|
||
"device.stream_settings.title": "源设置",
|
||
"device.stream_selector.label": "源:",
|
||
"device.stream_selector.hint": "选择一个源来定义此设备采集和处理的内容",
|
||
"device.stream_selector.none": "-- 未分配源 --",
|
||
"device.stream_selector.saved": "源设置已更新",
|
||
"device.stream_settings.border_width": "边框宽度(像素):",
|
||
"device.stream_settings.border_width_hint": "从屏幕边缘采样多少像素来确定 LED 颜色(1-100)",
|
||
"device.stream_settings.interpolation": "插值模式:",
|
||
"device.stream_settings.interpolation.average": "平均",
|
||
"device.stream_settings.interpolation.median": "中位数",
|
||
"device.stream_settings.interpolation.dominant": "主色",
|
||
"device.stream_settings.interpolation_hint": "如何从采样像素计算 LED 颜色",
|
||
"device.stream_settings.smoothing": "平滑:",
|
||
"device.stream_settings.smoothing_hint": "帧间时间混合(0=无,1=完全)。减少闪烁。",
|
||
"device.tip.stream_selector": "为此设备配置图片源和 LED 投影设置",
|
||
"streams.group.static_image": "静态图片",
|
||
"streams.add.static_image": "添加静态图片源",
|
||
"streams.edit.static_image": "编辑静态图片源",
|
||
"streams.type.static_image": "静态图片",
|
||
"streams.image_source": "图片源:",
|
||
"streams.image_source.placeholder": "https://example.com/image.jpg 或 C:\\path\\to\\image.png",
|
||
"streams.image_source.hint": "输入图片的 URL(http/https)或本地文件路径",
|
||
"streams.validate_image.validating": "正在验证...",
|
||
"streams.validate_image.valid": "图片可访问",
|
||
"streams.validate_image.invalid": "图片不可访问",
|
||
"targets.title": "目标",
|
||
"targets.description": "目标将色带源桥接到输出设备。每个目标引用一个设备和一个色带源。",
|
||
"targets.subtab.wled": "LED",
|
||
"targets.subtab.led": "LED",
|
||
"targets.section.devices": "设备",
|
||
"targets.section.color_strips": "色带源",
|
||
"targets.section.targets": "目标",
|
||
"targets.section.specific_settings": "特定设置",
|
||
"targets.add": "添加目标",
|
||
"targets.edit": "编辑目标",
|
||
"targets.loading": "正在加载目标...",
|
||
"targets.none": "尚未配置目标",
|
||
"targets.failed": "加载目标失败",
|
||
"targets.name": "目标名称:",
|
||
"targets.name.placeholder": "我的目标",
|
||
"targets.device": "设备:",
|
||
"targets.device.hint": "选择要发送数据的 LED 设备",
|
||
"targets.device.none": "-- 选择设备 --",
|
||
"targets.color_strip_source": "色带源:",
|
||
"targets.color_strip_source.hint": "选择为此目标提供 LED 颜色的色带源",
|
||
"targets.no_css": "无源",
|
||
"targets.source": "源:",
|
||
"targets.source.hint": "要采集和处理的图片源",
|
||
"targets.source.none": "-- 未分配源 --",
|
||
"targets.fps": "目标 FPS:",
|
||
"targets.fps.hint": "采集和 LED 更新的目标帧率(1-90)",
|
||
"targets.fps.rec": "硬件最大 ≈ {fps} fps({leds} 个 LED)",
|
||
"targets.border_width": "边框宽度(像素):",
|
||
"targets.border_width.hint": "从屏幕边缘采样多少像素来确定 LED 颜色(1-100)",
|
||
"targets.interpolation": "插值模式:",
|
||
"targets.interpolation.hint": "如何从采样像素计算 LED 颜色",
|
||
"targets.interpolation.average": "平均",
|
||
"targets.interpolation.median": "中位数",
|
||
"targets.interpolation.dominant": "主色",
|
||
"targets.smoothing": "平滑:",
|
||
"targets.smoothing.hint": "帧间时间混合(0=无,1=完全)。减少闪烁。",
|
||
"targets.keepalive_interval": "心跳间隔:",
|
||
"targets.keepalive_interval.hint": "源静态时重新发送最后一帧的频率,保持设备在活动模式(0.5-5.0秒)",
|
||
"targets.created": "目标创建成功",
|
||
"targets.updated": "目标更新成功",
|
||
"targets.deleted": "目标删除成功",
|
||
"targets.delete.confirm": "确定要删除此目标吗?",
|
||
"targets.error.load": "加载目标失败",
|
||
"targets.error.required": "请填写所有必填项",
|
||
"targets.error.name_required": "请输入目标名称",
|
||
"targets.error.delete": "删除目标失败",
|
||
"targets.button.start": "启动",
|
||
"targets.button.stop": "停止",
|
||
"targets.status.processing": "处理中",
|
||
"targets.status.idle": "空闲",
|
||
"targets.status.error": "错误",
|
||
"targets.metrics.actual_fps": "实际 FPS",
|
||
"targets.metrics.target_fps": "目标 FPS",
|
||
"targets.metrics.frames": "帧数",
|
||
"targets.metrics.errors": "错误",
|
||
"targets.subtab.key_colors": "关键颜色",
|
||
"targets.section.key_colors": "关键颜色目标",
|
||
"kc.add": "添加关键颜色目标",
|
||
"kc.edit": "编辑关键颜色目标",
|
||
"kc.name": "目标名称:",
|
||
"kc.name.placeholder": "我的关键颜色目标",
|
||
"kc.source": "图片源:",
|
||
"kc.source.hint": "从哪个图片源提取颜色",
|
||
"kc.source.none": "-- 未分配源 --",
|
||
"kc.fps": "提取 FPS:",
|
||
"kc.fps.hint": "每秒提取颜色的次数(1-60)",
|
||
"kc.interpolation": "颜色模式:",
|
||
"kc.interpolation.hint": "如何从每个矩形中的像素计算关键颜色",
|
||
"kc.interpolation.average": "平均",
|
||
"kc.interpolation.median": "中位数",
|
||
"kc.interpolation.dominant": "主色",
|
||
"kc.smoothing": "平滑:",
|
||
"kc.smoothing.hint": "提取间的时间混合(0=无,1=完全)",
|
||
"kc.pattern_template": "图案模板:",
|
||
"kc.pattern_template.hint": "选择用于颜色提取的矩形图案",
|
||
"kc.pattern_template.none": "-- 选择图案模板 --",
|
||
"kc.brightness_vs": "亮度源:",
|
||
"kc.brightness_vs.hint": "可选的值源,每帧动态控制亮度(与手动亮度滑块相乘)",
|
||
"kc.brightness_vs.none": "无(仅手动亮度)",
|
||
"kc.created": "关键颜色目标创建成功",
|
||
"kc.updated": "关键颜色目标更新成功",
|
||
"kc.deleted": "关键颜色目标删除成功",
|
||
"kc.delete.confirm": "确定要删除此关键颜色目标吗?",
|
||
"kc.error.no_pattern": "请选择图案模板",
|
||
"kc.error.required": "请填写所有必填项",
|
||
"kc.colors.none": "尚未提取颜色",
|
||
"kc.test": "测试",
|
||
"kc.test.error": "测试失败",
|
||
"targets.section.pattern_templates": "图案模板",
|
||
"pattern.add": "添加图案模板",
|
||
"pattern.edit": "编辑图案模板",
|
||
"pattern.name": "模板名称:",
|
||
"pattern.name.placeholder": "我的图案模板",
|
||
"pattern.description_label": "描述(可选):",
|
||
"pattern.description_placeholder": "描述此图案...",
|
||
"pattern.rectangles": "矩形",
|
||
"pattern.rect.name": "名称",
|
||
"pattern.rect.x": "X",
|
||
"pattern.rect.y": "Y",
|
||
"pattern.rect.width": "宽",
|
||
"pattern.rect.height": "高",
|
||
"pattern.rect.add": "添加矩形",
|
||
"pattern.rect.remove": "移除",
|
||
"pattern.rect.empty": "尚未定义矩形。请至少添加一个矩形。",
|
||
"pattern.created": "图案模板创建成功",
|
||
"pattern.updated": "图案模板更新成功",
|
||
"pattern.deleted": "图案模板删除成功",
|
||
"pattern.delete.confirm": "确定要删除此图案模板吗?",
|
||
"pattern.delete.referenced": "无法删除:此模板正被目标引用",
|
||
"pattern.error.required": "请填写所有必填项",
|
||
"pattern.visual_editor": "可视编辑器",
|
||
"pattern.capture_bg": "采集背景",
|
||
"pattern.source_for_bg": "背景源:",
|
||
"pattern.source_for_bg.none": "-- 选择源 --",
|
||
"pattern.delete_selected": "删除选中",
|
||
"pattern.name.hint": "此矩形布局的描述性名称",
|
||
"pattern.description.hint": "关于此图案使用位置或方式的可选说明",
|
||
"pattern.visual_editor.hint": "点击 + 按钮添加矩形。拖动边缘调整大小,拖动内部移动位置。",
|
||
"pattern.rectangles.hint": "用精确坐标(0.0 到 1.0)微调矩形位置和大小",
|
||
"overlay.button.show": "显示叠加层可视化",
|
||
"overlay.button.hide": "隐藏叠加层可视化",
|
||
"overlay.started": "叠加层可视化已启动",
|
||
"overlay.stopped": "叠加层可视化已停止",
|
||
"overlay.error.start": "启动叠加层失败",
|
||
"overlay.error.stop": "停止叠加层失败",
|
||
"dashboard.title": "仪表盘",
|
||
"dashboard.section.targets": "目标",
|
||
"dashboard.section.running": "运行中",
|
||
"dashboard.section.stopped": "已停止",
|
||
"dashboard.no_targets": "尚未配置目标",
|
||
"dashboard.uptime": "运行时长",
|
||
"dashboard.fps": "FPS",
|
||
"dashboard.errors": "错误",
|
||
"dashboard.device": "设备",
|
||
"dashboard.stop_all": "全部停止",
|
||
"dashboard.failed": "加载仪表盘失败",
|
||
"dashboard.section.automations": "自动化",
|
||
"dashboard.section.scenes": "场景预设",
|
||
"dashboard.targets": "目标",
|
||
"dashboard.section.performance": "系统性能",
|
||
"dashboard.perf.cpu": "CPU",
|
||
"dashboard.perf.ram": "内存",
|
||
"dashboard.perf.gpu": "GPU",
|
||
"dashboard.perf.unavailable": "不可用",
|
||
"dashboard.perf.color": "图表颜色",
|
||
"dashboard.poll_interval": "刷新间隔",
|
||
"automations.title": "自动化",
|
||
"automations.empty": "尚未配置自动化。创建一个以自动激活场景。",
|
||
"automations.add": "添加自动化",
|
||
"automations.edit": "编辑自动化",
|
||
"automations.delete.confirm": "删除自动化 \"{name}\"?",
|
||
"automations.name": "名称:",
|
||
"automations.name.hint": "此自动化的描述性名称",
|
||
"automations.name.placeholder": "我的自动化",
|
||
"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": "编辑场景",
|
||
"scenes.name": "名称:",
|
||
"scenes.name.hint": "此场景预设的描述性名称",
|
||
"scenes.name.placeholder": "我的场景",
|
||
"scenes.description": "描述:",
|
||
"scenes.description.hint": "此场景功能的可选描述",
|
||
"scenes.color": "卡片颜色:",
|
||
"scenes.color.hint": "仪表盘上场景卡片的强调色",
|
||
"scenes.targets": "目标:",
|
||
"scenes.targets.hint": "选择要包含在此场景快照中的目标",
|
||
"scenes.capture": "捕获",
|
||
"scenes.activate": "激活场景",
|
||
"scenes.recapture": "重新捕获当前状态",
|
||
"scenes.delete": "删除场景",
|
||
"scenes.targets_count": "目标",
|
||
"scenes.captured": "场景已捕获",
|
||
"scenes.updated": "场景已更新",
|
||
"scenes.activated": "场景已激活",
|
||
"scenes.activated_partial": "场景部分激活",
|
||
"scenes.errors": "错误",
|
||
"scenes.recaptured": "场景已重新捕获",
|
||
"scenes.deleted": "场景已删除",
|
||
"scenes.recapture_confirm": "将当前状态重新捕获到\"{name}\"中?",
|
||
"scenes.delete_confirm": "删除场景\"{name}\"?",
|
||
"scenes.error.name_required": "名称为必填项",
|
||
"scenes.error.save_failed": "保存场景失败",
|
||
"scenes.error.activate_failed": "激活场景失败",
|
||
"scenes.error.recapture_failed": "重新捕获场景失败",
|
||
"scenes.error.delete_failed": "删除场景失败",
|
||
"autostart.title": "自动启动目标",
|
||
"autostart.toggle.enabled": "自动启动已启用",
|
||
"autostart.toggle.disabled": "自动启动已禁用",
|
||
"autostart.goto_target": "跳转到目标",
|
||
"time.hours_minutes": "{h}时 {m}分",
|
||
"time.minutes_seconds": "{m}分 {s}秒",
|
||
"time.seconds": "{s}秒",
|
||
"dashboard.type.led": "LED",
|
||
"dashboard.type.kc": "关键颜色",
|
||
"aria.close": "关闭",
|
||
"aria.save": "保存",
|
||
"aria.cancel": "取消",
|
||
"aria.previous": "上一个",
|
||
"aria.next": "下一个",
|
||
"aria.hint": "显示提示",
|
||
"color_strip.add": "添加色带源",
|
||
"color_strip.edit": "编辑色带源",
|
||
"color_strip.name": "名称:",
|
||
"color_strip.name.placeholder": "墙壁灯带",
|
||
"color_strip.picture_source": "图片源:",
|
||
"color_strip.picture_source.hint": "用作 LED 颜色计算输入的屏幕采集源",
|
||
"color_strip.fps": "目标 FPS:",
|
||
"color_strip.fps.hint": "LED 颜色更新的目标帧率(10-90)",
|
||
"color_strip.interpolation": "颜色模式:",
|
||
"color_strip.interpolation.hint": "如何从采样的边框像素计算 LED 颜色",
|
||
"color_strip.interpolation.average": "平均",
|
||
"color_strip.interpolation.median": "中位数",
|
||
"color_strip.interpolation.dominant": "主色",
|
||
"color_strip.smoothing": "平滑:",
|
||
"color_strip.smoothing.hint": "帧间时间混合(0=无,1=完全)。减少闪烁。",
|
||
"color_strip.frame_interpolation": "帧插值:",
|
||
"color_strip.frame_interpolation.hint": "在连续采集帧之间混合,以在采集速率较低时仍以完整目标 FPS 输出。减少慢速环境过渡时的可见阶梯效应。",
|
||
"color_strip.color_corrections": "色彩校正",
|
||
"color_strip.brightness": "亮度:",
|
||
"color_strip.brightness.hint": "输出亮度倍数(0=关闭,1=不变,2=加倍)。在颜色提取后应用。",
|
||
"color_strip.saturation": "饱和度:",
|
||
"color_strip.saturation.hint": "颜色饱和度(0=灰度,1=不变,2=双倍饱和度)",
|
||
"color_strip.gamma": "伽马:",
|
||
"color_strip.gamma.hint": "伽马校正(1=无,<1=更亮的中间调,>1=更暗的中间调)",
|
||
"color_strip.test_device": "测试设备:",
|
||
"color_strip.test_device.hint": "选择一个设备,在点击边缘切换时发送测试像素",
|
||
"color_strip.leds": "LED 数量",
|
||
"color_strip.led_count": "LED 数量:",
|
||
"color_strip.led_count.hint": "物理灯带上的 LED 总数。屏幕源:0 = 从校准自动获取(未映射到边缘的额外 LED 将为黑色)。静态颜色:设置为与设备 LED 数量匹配。",
|
||
"color_strip.created": "色带源已创建",
|
||
"color_strip.updated": "色带源已更新",
|
||
"color_strip.deleted": "色带源已删除",
|
||
"color_strip.delete.confirm": "确定要删除此色带源吗?",
|
||
"color_strip.delete.referenced": "无法删除:此源正在被目标使用",
|
||
"color_strip.error.name_required": "请输入名称",
|
||
"color_strip.type": "类型:",
|
||
"color_strip.type.hint": "图片源从屏幕采集推导 LED 颜色。静态颜色用单一颜色填充所有 LED。渐变在所有 LED 上分布颜色渐变。颜色循环平滑循环用户定义的颜色列表。组合将多个源作为混合图层叠加。音频响应从实时音频输入驱动 LED。API 输入通过 REST 或 WebSocket 从外部客户端接收原始 LED 颜色。",
|
||
"color_strip.type.picture": "图片源",
|
||
"color_strip.type.static": "静态颜色",
|
||
"color_strip.type.gradient": "渐变",
|
||
"color_strip.type.color_cycle": "颜色循环",
|
||
"color_strip.static_color": "颜色:",
|
||
"color_strip.static_color.hint": "将发送到灯带上所有 LED 的纯色。",
|
||
"color_strip.gradient.preview": "渐变:",
|
||
"color_strip.gradient.preview.hint": "可视预览。点击下方标记轨道添加色标。拖动标记重新定位。",
|
||
"color_strip.gradient.stops": "色标:",
|
||
"color_strip.gradient.stops.hint": "每个色标在相对位置定义一种颜色(0.0 = 起始,1.0 = 结束)。↔ 按钮添加右侧颜色以在该色标处创建硬边。",
|
||
"color_strip.gradient.stops_count": "个色标",
|
||
"color_strip.gradient.add_stop": "+ 添加色标",
|
||
"color_strip.gradient.position": "位置(0.0-1.0)",
|
||
"color_strip.gradient.bidir.hint": "在此色标右侧添加第二种颜色以在渐变中创建硬边。",
|
||
"color_strip.gradient.min_stops": "渐变至少需要 2 个色标",
|
||
"color_strip.gradient.preset": "预设:",
|
||
"color_strip.gradient.preset.hint": "加载预定义的渐变调色板。选择预设将替换当前色标。",
|
||
"color_strip.gradient.preset.custom": "— 自定义 —",
|
||
"color_strip.gradient.preset.rainbow": "彩虹",
|
||
"color_strip.gradient.preset.sunset": "日落",
|
||
"color_strip.gradient.preset.ocean": "海洋",
|
||
"color_strip.gradient.preset.forest": "森林",
|
||
"color_strip.gradient.preset.fire": "火焰",
|
||
"color_strip.gradient.preset.lava": "熔岩",
|
||
"color_strip.gradient.preset.aurora": "极光",
|
||
"color_strip.gradient.preset.ice": "冰",
|
||
"color_strip.gradient.preset.warm": "暖色",
|
||
"color_strip.gradient.preset.cool": "冷色",
|
||
"color_strip.gradient.preset.neon": "霓虹",
|
||
"color_strip.gradient.preset.pastel": "柔和",
|
||
"color_strip.animation": "动画",
|
||
"color_strip.animation.type": "效果:",
|
||
"color_strip.animation.type.hint": "要应用的动画效果。",
|
||
"color_strip.animation.type.none": "无(无动画效果)",
|
||
"color_strip.animation.type.none.desc": "静态颜色,无动画",
|
||
"color_strip.animation.type.breathing": "呼吸",
|
||
"color_strip.animation.type.breathing.desc": "平滑的亮度渐入渐出",
|
||
"color_strip.animation.type.color_cycle": "颜色循环",
|
||
"color_strip.animation.type.gradient_shift": "渐变移动",
|
||
"color_strip.animation.type.gradient_shift.desc": "渐变沿灯带滑动",
|
||
"color_strip.animation.type.wave": "波浪",
|
||
"color_strip.animation.type.wave.desc": "沿灯带移动的正弦亮度波",
|
||
"color_strip.animation.type.strobe": "频闪",
|
||
"color_strip.animation.type.strobe.desc": "快速开/关闪烁",
|
||
"color_strip.animation.type.sparkle": "闪烁",
|
||
"color_strip.animation.type.sparkle.desc": "随机 LED 短暂闪亮",
|
||
"color_strip.animation.type.pulse": "脉冲",
|
||
"color_strip.animation.type.pulse.desc": "快速衰减的尖锐亮度脉冲",
|
||
"color_strip.animation.type.candle": "烛光",
|
||
"color_strip.animation.type.candle.desc": "温暖的类似蜡烛的闪烁光芒",
|
||
"color_strip.animation.type.rainbow_fade": "彩虹渐变",
|
||
"color_strip.animation.type.rainbow_fade.desc": "循环整个色相光谱",
|
||
"color_strip.animation.speed": "速度:",
|
||
"color_strip.animation.speed.hint": "动画速度倍数。1.0 ≈ 呼吸效果每秒一个循环;更高值循环更快。",
|
||
"color_strip.color_cycle.colors": "颜色:",
|
||
"color_strip.color_cycle.colors.hint": "平滑循环的颜色列表。至少需要 2 种。默认为全彩虹光谱。",
|
||
"color_strip.color_cycle.add_color": "+ 添加颜色",
|
||
"color_strip.color_cycle.speed": "速度:",
|
||
"color_strip.color_cycle.speed.hint": "循环速度倍数。1.0 ≈ 每 20 秒一个完整循环;更高值循环更快。",
|
||
"color_strip.color_cycle.min_colors": "颜色循环至少需要 2 种颜色",
|
||
"color_strip.type.effect": "效果",
|
||
"color_strip.type.effect.hint": "实时生成的程序化 LED 效果(火焰、流星、等离子、噪声、极光)。",
|
||
"color_strip.type.composite": "组合",
|
||
"color_strip.type.composite.hint": "将多个色带源作为图层叠加,支持混合模式和不透明度。",
|
||
"color_strip.type.mapped": "映射",
|
||
"color_strip.type.mapped.hint": "将不同色带源分配到不同 LED 范围(区域)。与组合的图层混合不同,映射将源并排放置。",
|
||
"color_strip.type.audio": "音频响应",
|
||
"color_strip.type.audio.hint": "LED 颜色由实时音频输入驱动 — 系统音频或麦克风。",
|
||
"color_strip.type.api_input": "API 输入",
|
||
"color_strip.type.api_input.hint": "通过 REST POST 或 WebSocket 从外部客户端接收原始 LED 颜色数组。用于与自定义软件、家庭自动化或任何能发送 HTTP 请求的系统集成。",
|
||
"color_strip.api_input.fallback_color": "备用颜色:",
|
||
"color_strip.api_input.fallback_color.hint": "超时未收到数据时显示的颜色。启动时和连接丢失后 LED 将显示此颜色。",
|
||
"color_strip.api_input.timeout": "超时(秒):",
|
||
"color_strip.api_input.timeout.hint": "等待新颜色数据多长时间后恢复为备用颜色。设为 0 表示永不超时。",
|
||
"color_strip.api_input.endpoints": "推送端点:",
|
||
"color_strip.api_input.endpoints.hint": "使用这些 URL 从外部应用程序推送 LED 颜色数据。REST 接受 JSON,WebSocket 接受 JSON 和原始二进制帧。",
|
||
"color_strip.api_input.save_first": "请先保存源以查看推送端点 URL。",
|
||
"color_strip.composite.layers": "图层:",
|
||
"color_strip.composite.layers.hint": "叠加多个色带源。第一个图层在底部,最后一个在顶部。每个图层可以有自己的混合模式和不透明度。",
|
||
"color_strip.composite.add_layer": "+ 添加图层",
|
||
"color_strip.composite.source": "源",
|
||
"color_strip.composite.blend_mode": "混合",
|
||
"color_strip.composite.blend_mode.normal": "正常",
|
||
"color_strip.composite.blend_mode.add": "叠加",
|
||
"color_strip.composite.blend_mode.multiply": "正片叠底",
|
||
"color_strip.composite.blend_mode.screen": "滤色",
|
||
"color_strip.composite.opacity": "不透明度",
|
||
"color_strip.composite.enabled": "启用",
|
||
"color_strip.composite.error.min_layers": "至少需要 1 个图层",
|
||
"color_strip.composite.error.no_source": "每个图层必须选择一个源",
|
||
"color_strip.composite.layers_count": "个图层",
|
||
"color_strip.mapped.zones": "区域:",
|
||
"color_strip.mapped.zones.hint": "每个区域将色带源映射到特定 LED 范围。区域并排放置 — 区域之间的间隙保持黑色。",
|
||
"color_strip.mapped.add_zone": "+ 添加区域",
|
||
"color_strip.mapped.zone_source": "源",
|
||
"color_strip.mapped.zone_start": "起始 LED",
|
||
"color_strip.mapped.zone_end": "结束 LED",
|
||
"color_strip.mapped.zone_reverse": "反转",
|
||
"color_strip.mapped.zones_count": "个区域",
|
||
"color_strip.mapped.error.no_source": "每个区域必须选择一个源",
|
||
"color_strip.audio.visualization": "可视化:",
|
||
"color_strip.audio.visualization.hint": "音频数据如何渲染到 LED。",
|
||
"color_strip.audio.viz.spectrum": "频谱分析",
|
||
"color_strip.audio.viz.beat_pulse": "节拍脉冲",
|
||
"color_strip.audio.viz.vu_meter": "VU 表",
|
||
"color_strip.audio.source": "音频源:",
|
||
"color_strip.audio.source.hint": "此可视化的音频源。可以是多声道(设备)或单声道(单通道)源。在源标签页中创建和管理音频源。",
|
||
"color_strip.audio.sensitivity": "灵敏度:",
|
||
"color_strip.audio.sensitivity.hint": "音频电平的增益倍数。更高值使 LED 对较安静的声音也有反应。",
|
||
"color_strip.audio.smoothing": "平滑:",
|
||
"color_strip.audio.smoothing.hint": "帧间时间平滑。更高值产生更平滑但反应较慢的视觉效果。",
|
||
"color_strip.audio.palette": "调色板:",
|
||
"color_strip.audio.palette.hint": "用于频谱条或节拍脉冲着色的调色板。",
|
||
"color_strip.audio.color": "基础颜色:",
|
||
"color_strip.audio.color.hint": "VU 表条的低电平颜色。",
|
||
"color_strip.audio.color_peak": "峰值颜色:",
|
||
"color_strip.audio.color_peak.hint": "VU 表条顶部的高电平颜色。",
|
||
"color_strip.audio.mirror": "镜像:",
|
||
"color_strip.audio.mirror.hint": "从中心向外镜像频谱:低音在中间,高音在两端。",
|
||
"color_strip.effect.type": "效果类型:",
|
||
"color_strip.effect.type.hint": "选择程序化算法。",
|
||
"color_strip.effect.fire": "火焰",
|
||
"color_strip.effect.fire.desc": "模拟带热量扩散的上升火焰的元胞自动机",
|
||
"color_strip.effect.meteor": "流星",
|
||
"color_strip.effect.meteor.desc": "明亮头部沿灯带移动,带指数衰减的尾迹",
|
||
"color_strip.effect.plasma": "等离子",
|
||
"color_strip.effect.plasma.desc": "映射到调色板的重叠正弦波 — 经典演示场景效果",
|
||
"color_strip.effect.noise": "噪声",
|
||
"color_strip.effect.noise.desc": "滚动的分形值噪声映射到调色板",
|
||
"color_strip.effect.aurora": "极光",
|
||
"color_strip.effect.aurora.desc": "漂移和混合的分层噪声带 — 北极光风格",
|
||
"color_strip.effect.speed": "速度:",
|
||
"color_strip.effect.speed.hint": "效果动画的速度倍数(0.1 = 非常慢,10.0 = 非常快)。",
|
||
"color_strip.effect.palette": "调色板:",
|
||
"color_strip.effect.palette.hint": "用于将效果值映射到 RGB 颜色的调色板。",
|
||
"color_strip.effect.color": "流星颜色:",
|
||
"color_strip.effect.color.hint": "流星效果的头部颜色。",
|
||
"color_strip.effect.intensity": "强度:",
|
||
"color_strip.effect.intensity.hint": "效果强度 — 控制火花率(火焰)、尾迹衰减(流星)或亮度范围(极光)。",
|
||
"color_strip.effect.scale": "比例:",
|
||
"color_strip.effect.scale.hint": "空间比例 — 波频率(等离子)、缩放级别(噪声)或带宽(极光)。",
|
||
"color_strip.effect.mirror": "镜像:",
|
||
"color_strip.effect.mirror.hint": "反弹模式 — 流星在灯带末端反转方向而不是循环。",
|
||
"color_strip.palette.fire": "火焰",
|
||
"color_strip.palette.ocean": "海洋",
|
||
"color_strip.palette.lava": "熔岩",
|
||
"color_strip.palette.forest": "森林",
|
||
"color_strip.palette.rainbow": "彩虹",
|
||
"color_strip.palette.aurora": "极光",
|
||
"color_strip.palette.sunset": "日落",
|
||
"color_strip.palette.ice": "冰",
|
||
"audio_source.title": "音频源",
|
||
"audio_source.group.multichannel": "多声道",
|
||
"audio_source.group.mono": "单声道",
|
||
"audio_source.add": "添加音频源",
|
||
"audio_source.add.multichannel": "添加多声道源",
|
||
"audio_source.add.mono": "添加单声道源",
|
||
"audio_source.edit": "编辑音频源",
|
||
"audio_source.edit.multichannel": "编辑多声道源",
|
||
"audio_source.edit.mono": "编辑单声道源",
|
||
"audio_source.name": "名称:",
|
||
"audio_source.name.placeholder": "系统音频",
|
||
"audio_source.name.hint": "此音频源的描述性名称",
|
||
"audio_source.type": "类型:",
|
||
"audio_source.type.hint": "多声道从物理音频设备采集所有通道。单声道从多声道源提取单个通道。",
|
||
"audio_source.type.multichannel": "多声道",
|
||
"audio_source.type.mono": "单声道",
|
||
"audio_source.device": "音频设备:",
|
||
"audio_source.device.hint": "音频输入源。回环设备采集系统音频输出;输入设备采集麦克风或线路输入。",
|
||
"audio_source.parent": "父源:",
|
||
"audio_source.parent.hint": "要从中提取通道的多声道源",
|
||
"audio_source.channel": "通道:",
|
||
"audio_source.channel.hint": "从多声道源提取哪个音频通道",
|
||
"audio_source.channel.mono": "单声道(左+右混合)",
|
||
"audio_source.channel.left": "左",
|
||
"audio_source.channel.right": "右",
|
||
"audio_source.description": "描述(可选):",
|
||
"audio_source.description.placeholder": "描述此音频源...",
|
||
"audio_source.description.hint": "关于此音频源的可选说明",
|
||
"audio_source.created": "音频源已创建",
|
||
"audio_source.updated": "音频源已更新",
|
||
"audio_source.deleted": "音频源已删除",
|
||
"audio_source.delete.confirm": "确定要删除此音频源吗?",
|
||
"audio_source.error.name_required": "请输入名称",
|
||
"audio_source.audio_template": "音频模板:",
|
||
"audio_source.audio_template.hint": "定义此设备使用哪个引擎和设置的音频采集模板",
|
||
"audio_source.test": "测试",
|
||
"audio_source.test.title": "测试音频源",
|
||
"audio_source.test.rms": "RMS",
|
||
"audio_source.test.peak": "峰值",
|
||
"audio_source.test.beat": "节拍",
|
||
"audio_source.test.connecting": "连接中...",
|
||
"audio_source.test.error": "音频测试失败",
|
||
"audio_template.test": "测试",
|
||
"audio_template.test.title": "测试音频模板",
|
||
"audio_template.test.device": "音频设备:",
|
||
"audio_template.test.device.hint": "选择测试期间要采集的音频设备",
|
||
"audio_template.test.run": "运行",
|
||
"audio_template.title": "音频模板",
|
||
"audio_template.add": "添加音频模板",
|
||
"audio_template.edit": "编辑音频模板",
|
||
"audio_template.name": "模板名称:",
|
||
"audio_template.name.placeholder": "我的音频模板",
|
||
"audio_template.description.label": "描述(可选):",
|
||
"audio_template.description.placeholder": "描述此模板...",
|
||
"audio_template.engine": "音频引擎:",
|
||
"audio_template.engine.hint": "选择要使用的音频采集后端。WASAPI 仅限 Windows 并支持回环。Sounddevice 支持跨平台。",
|
||
"audio_template.engine.unavailable": "不可用",
|
||
"audio_template.engine.unavailable.hint": "此引擎在您的系统上不可用",
|
||
"audio_template.config": "配置",
|
||
"audio_template.config.show": "显示配置",
|
||
"audio_template.created": "音频模板已创建",
|
||
"audio_template.updated": "音频模板已更新",
|
||
"audio_template.deleted": "音频模板已删除",
|
||
"audio_template.delete.confirm": "确定要删除此音频模板吗?",
|
||
"audio_template.error.load": "加载音频模板失败",
|
||
"audio_template.error.engines": "加载音频引擎失败",
|
||
"audio_template.error.required": "请填写所有必填项",
|
||
"audio_template.error.delete": "删除音频模板失败",
|
||
"streams.group.value": "值源",
|
||
"value_source.group.title": "值源",
|
||
"value_source.add": "添加值源",
|
||
"value_source.edit": "编辑值源",
|
||
"value_source.name": "名称:",
|
||
"value_source.name.placeholder": "亮度脉冲",
|
||
"value_source.name.hint": "此值源的描述性名称",
|
||
"value_source.type": "类型:",
|
||
"value_source.type.hint": "静态输出固定值。动画循环波形。音频响应声音输入。自适应类型根据时间或场景内容自动调节亮度。",
|
||
"value_source.type.static": "静态",
|
||
"value_source.type.animated": "动画",
|
||
"value_source.type.audio": "音频",
|
||
"value_source.type.adaptive_time": "自适应(时间)",
|
||
"value_source.type.adaptive_scene": "自适应(场景)",
|
||
"value_source.value": "值:",
|
||
"value_source.value.hint": "固定输出值(0.0 = 关闭,1.0 = 最大亮度)",
|
||
"value_source.waveform": "波形:",
|
||
"value_source.waveform.hint": "亮度动画循环的形状",
|
||
"value_source.waveform.sine": "正弦",
|
||
"value_source.waveform.triangle": "三角",
|
||
"value_source.waveform.square": "方波",
|
||
"value_source.waveform.sawtooth": "锯齿",
|
||
"value_source.speed": "速度(周期/分):",
|
||
"value_source.speed.hint": "每分钟周期数 — 波形重复的速度(1 = 非常慢,120 = 非常快)",
|
||
"value_source.min_value": "最小值:",
|
||
"value_source.min_value.hint": "波形周期的最小输出",
|
||
"value_source.max_value": "最大值:",
|
||
"value_source.max_value.hint": "波形周期的最大输出",
|
||
"value_source.audio_source": "音频源:",
|
||
"value_source.audio_source.hint": "要读取音频电平的音频源(多声道或单声道)",
|
||
"value_source.mode": "模式:",
|
||
"value_source.mode.hint": "RMS 测量平均音量。峰值跟踪最响的时刻。节拍在节奏上触发。",
|
||
"value_source.mode.rms": "RMS(音量)",
|
||
"value_source.mode.peak": "峰值",
|
||
"value_source.mode.beat": "节拍",
|
||
"value_source.auto_gain": "自动增益:",
|
||
"value_source.auto_gain.hint": "自动归一化音频电平,使输出使用完整范围,无论输入音量大小",
|
||
"value_source.auto_gain.enable": "启用自动增益",
|
||
"value_source.sensitivity": "灵敏度:",
|
||
"value_source.sensitivity.hint": "音频信号的增益倍数(越高反应越灵敏)",
|
||
"value_source.smoothing": "平滑:",
|
||
"value_source.smoothing.hint": "时间平滑(0 = 即时响应,1 = 非常平滑/缓慢)",
|
||
"value_source.audio_min_value": "最小值:",
|
||
"value_source.audio_min_value.hint": "音频静默时的输出(例如 0.3 = 30% 亮度下限)",
|
||
"value_source.audio_max_value": "最大值:",
|
||
"value_source.audio_max_value.hint": "最大音频电平时的输出",
|
||
"value_source.schedule": "计划:",
|
||
"value_source.schedule.hint": "定义至少 2 个时间点。亮度在各点之间线性插值,午夜循环。",
|
||
"value_source.schedule.add": "+ 添加时间点",
|
||
"value_source.schedule.points": "个时间点",
|
||
"value_source.picture_source": "图片源:",
|
||
"value_source.picture_source.hint": "将分析其帧以获取平均亮度的图片源。",
|
||
"value_source.scene_behavior": "行为:",
|
||
"value_source.scene_behavior.hint": "互补:暗场景 = 高亮度(适合环境背光)。匹配:亮场景 = 高亮度。",
|
||
"value_source.scene_behavior.complement": "互补(暗 → 亮)",
|
||
"value_source.scene_behavior.match": "匹配(亮 → 亮)",
|
||
"value_source.adaptive_min_value": "最小值:",
|
||
"value_source.adaptive_min_value.hint": "最小输出亮度",
|
||
"value_source.adaptive_max_value": "最大值:",
|
||
"value_source.adaptive_max_value.hint": "最大输出亮度",
|
||
"value_source.error.schedule_min": "计划至少需要 2 个时间点",
|
||
"value_source.description": "描述(可选):",
|
||
"value_source.description.placeholder": "描述此值源...",
|
||
"value_source.description.hint": "关于此值源的可选说明",
|
||
"value_source.created": "值源已创建",
|
||
"value_source.updated": "值源已更新",
|
||
"value_source.deleted": "值源已删除",
|
||
"value_source.delete.confirm": "确定要删除此值源吗?",
|
||
"value_source.error.name_required": "请输入名称",
|
||
"value_source.test": "测试",
|
||
"value_source.test.title": "测试值源",
|
||
"value_source.test.connecting": "连接中...",
|
||
"value_source.test.error": "连接失败",
|
||
"value_source.test.current": "当前",
|
||
"value_source.test.min": "最小",
|
||
"value_source.test.max": "最大",
|
||
"test.frames": "帧数",
|
||
"test.fps": "帧率",
|
||
"test.avg_capture": "平均",
|
||
"targets.brightness_vs": "亮度源:",
|
||
"targets.brightness_vs.hint": "可选的值源,每帧动态控制亮度(覆盖设备亮度)",
|
||
"targets.brightness_vs.none": "无(设备亮度)",
|
||
"targets.min_brightness_threshold": "最低亮度阈值:",
|
||
"targets.min_brightness_threshold.hint": "当有效输出亮度(像素亮度 × 设备/源亮度)低于此值时,LED完全关闭(0 = 禁用)",
|
||
"targets.adaptive_fps": "自适应FPS:",
|
||
"targets.adaptive_fps.hint": "当设备无响应时自动降低发送速率,稳定后逐步恢复。推荐用于信号较弱的WiFi设备。",
|
||
"targets.protocol": "协议:",
|
||
"targets.protocol.hint": "DDP通过快速UDP发送像素(推荐)。HTTP使用JSON API——较慢但可靠,限制约500个LED。",
|
||
"targets.protocol.serial": "串口",
|
||
"search.open": "搜索 (Ctrl+K)",
|
||
"search.placeholder": "搜索实体... (Ctrl+K)",
|
||
"search.loading": "加载中...",
|
||
"search.no_results": "未找到结果",
|
||
"search.group.devices": "设备",
|
||
"search.group.targets": "LED 目标",
|
||
"search.group.kc_targets": "关键颜色目标",
|
||
"search.group.css": "色带源",
|
||
"search.group.automations": "自动化",
|
||
"search.group.streams": "图片流",
|
||
"search.group.capture_templates": "采集模板",
|
||
"search.group.pp_templates": "后处理模板",
|
||
"search.group.pattern_templates": "图案模板",
|
||
"search.group.audio": "音频源",
|
||
"search.group.value": "值源",
|
||
"search.group.scenes": "场景预设",
|
||
"settings.backup.label": "备份配置",
|
||
"settings.backup.hint": "将所有配置(设备、目标、流、模板、自动化)下载为单个 JSON 文件。",
|
||
"settings.backup.button": "下载备份",
|
||
"settings.backup.success": "备份下载成功",
|
||
"settings.backup.error": "备份下载失败",
|
||
"settings.restore.label": "恢复配置",
|
||
"settings.restore.hint": "上传之前下载的备份文件以替换所有配置。服务器将自动重启。",
|
||
"settings.restore.button": "从备份恢复",
|
||
"settings.restore.confirm": "这将替换所有配置并重启服务器。确定继续吗?",
|
||
"settings.restore.success": "配置已恢复",
|
||
"settings.restore.error": "恢复失败",
|
||
"settings.restore.restarting": "服务器正在重启...",
|
||
"settings.restore.restart_timeout": "服务器未响应。请手动刷新页面。",
|
||
"settings.button.close": "关闭",
|
||
"settings.auto_backup.label": "自动备份",
|
||
"settings.auto_backup.hint": "自动定期创建所有配置的备份。当达到最大数量时,旧备份会被自动清理。",
|
||
"settings.auto_backup.enable": "启用自动备份",
|
||
"settings.auto_backup.interval_label": "间隔",
|
||
"settings.auto_backup.max_label": "最大备份数",
|
||
"settings.auto_backup.save": "保存设置",
|
||
"settings.auto_backup.saved": "自动备份设置已保存",
|
||
"settings.auto_backup.save_error": "保存自动备份设置失败",
|
||
"settings.auto_backup.last_backup": "上次备份",
|
||
"settings.auto_backup.never": "从未",
|
||
"settings.saved_backups.label": "已保存的备份",
|
||
"settings.saved_backups.hint": "存储在服务器上的自动备份文件。下载到本地保存,或删除以释放空间。",
|
||
"settings.saved_backups.empty": "没有已保存的备份",
|
||
"settings.saved_backups.restore": "恢复",
|
||
"settings.saved_backups.download": "下载",
|
||
"settings.saved_backups.delete": "删除",
|
||
"settings.saved_backups.delete_confirm": "删除此备份文件?",
|
||
"settings.saved_backups.delete_error": "删除备份失败",
|
||
"device.error.power_off_failed": "关闭设备失败",
|
||
"device.removed": "设备已移除",
|
||
"device.error.remove_failed": "移除设备失败",
|
||
"device.error.settings_load_failed": "加载设备设置失败",
|
||
"device.error.brightness": "更新亮度失败",
|
||
"device.error.required": "请填写所有字段",
|
||
"device.error.update": "更新设备失败",
|
||
"device.error.save": "保存设置失败",
|
||
"device_discovery.error.fill_all_fields": "请填写所有字段",
|
||
"device_discovery.added": "设备添加成功",
|
||
"device_discovery.error.add_failed": "添加设备失败",
|
||
"calibration.error.load_failed": "加载校准失败",
|
||
"calibration.error.css_load_failed": "加载色带源失败",
|
||
"calibration.error.test_toggle_failed": "切换测试边缘失败",
|
||
"calibration.saved": "校准已保存",
|
||
"calibration.error.save_failed": "保存校准失败",
|
||
"calibration.error.led_count_mismatch": "LED总数必须等于设备LED数量",
|
||
"calibration.error.led_count_exceeded": "校准的LED超过了LED总数",
|
||
"dashboard.error.automation_toggle_failed": "切换自动化失败",
|
||
"dashboard.error.start_failed": "启动处理失败",
|
||
"dashboard.error.stop_failed": "停止处理失败",
|
||
"dashboard.error.autostart_toggle_failed": "切换自动启动失败",
|
||
"dashboard.error.stop_all": "停止所有目标失败",
|
||
"target.error.editor_open_failed": "打开目标编辑器失败",
|
||
"target.error.start_failed": "启动目标失败",
|
||
"target.error.stop_failed": "停止目标失败",
|
||
"target.error.clone_failed": "克隆目标失败",
|
||
"target.error.autostart_toggle_failed": "切换自动启动失败",
|
||
"target.error.delete_failed": "删除目标失败",
|
||
"audio_source.error.load": "加载音频源失败",
|
||
"audio_template.error.clone_failed": "克隆音频模板失败",
|
||
"value_source.error.load": "加载数值源失败",
|
||
"color_strip.error.editor_open_failed": "打开色带编辑器失败",
|
||
"color_strip.error.clone_failed": "克隆色带源失败",
|
||
"color_strip.error.delete_failed": "删除色带源失败",
|
||
"pattern.error.editor_open_failed": "打开图案模板编辑器失败",
|
||
"pattern.error.clone_failed": "克隆图案模板失败",
|
||
"pattern.error.delete_failed": "删除图案模板失败",
|
||
"pattern.error.capture_bg_failed": "捕获背景失败",
|
||
"stream.error.clone_picture_failed": "克隆图片源失败",
|
||
"stream.error.clone_capture_failed": "克隆捕获模板失败",
|
||
"stream.error.clone_pp_failed": "克隆后处理模板失败",
|
||
"kc_target.error.editor_open_failed": "打开关键颜色编辑器失败",
|
||
"kc_target.error.clone_failed": "克隆关键颜色目标失败",
|
||
"kc_target.error.delete_failed": "删除关键颜色目标失败",
|
||
"theme.switched.dark": "已切换到深色主题",
|
||
"theme.switched.light": "已切换到浅色主题",
|
||
"accent.color.updated": "强调色已更新",
|
||
"search.footer": "↑↓ 导航 · Enter 选择 · Esc 关闭"
|
||
}
|