Apply IconSelect to all type selectors across the app

- Value source type (5 types, static icons)
- Device type (7 types, new wifi/usb icon paths + device icon map)
- Capture engine (dynamic from API, uses getEngineIcon)
- Audio engine (dynamic from API, new getAudioEngineIcon)
- Add i18n description keys for value source and device types
- Fix trigger button styling to match native input height

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 23:57:37 +03:00
parent d95eb683e1
commit b4d89e271d
9 changed files with 153 additions and 4 deletions

View File

@@ -120,6 +120,20 @@
"device.scan.selected": "Device selected",
"device.type": "Device Type:",
"device.type.hint": "Select the type of LED controller",
"device.type.wled": "WLED",
"device.type.wled.desc": "WiFi LED controller over HTTP/UDP",
"device.type.adalight": "Adalight",
"device.type.adalight.desc": "Serial LED protocol for Arduino",
"device.type.ambiled": "AmbiLED",
"device.type.ambiled.desc": "Serial protocol for AmbiLED devices",
"device.type.mqtt": "MQTT",
"device.type.mqtt.desc": "Publish LED data via MQTT broker",
"device.type.ws": "WebSocket",
"device.type.ws.desc": "Stream LED data to WebSocket clients",
"device.type.openrgb": "OpenRGB",
"device.type.openrgb.desc": "Control RGB peripherals via OpenRGB",
"device.type.mock": "Mock",
"device.type.mock.desc": "Virtual device for testing",
"device.serial_port": "Serial Port:",
"device.serial_port.hint": "Select the COM port of the Adalight device",
"device.serial_port.none": "No serial ports found",
@@ -999,10 +1013,15 @@
"value_source.type": "Type:",
"value_source.type.hint": "Static outputs a constant value. Animated cycles through a waveform. Audio reacts to sound input. Adaptive types adjust brightness automatically based on time of day or scene content.",
"value_source.type.static": "Static",
"value_source.type.static.desc": "Constant output value",
"value_source.type.animated": "Animated",
"value_source.type.animated.desc": "Cycles through a waveform",
"value_source.type.audio": "Audio",
"value_source.type.adaptive_time": "Adaptive (Time of Day)",
"value_source.type.audio.desc": "Reacts to sound input",
"value_source.type.adaptive_time": "Adaptive (Time)",
"value_source.type.adaptive_time.desc": "Adjusts by time of day",
"value_source.type.adaptive_scene": "Adaptive (Scene)",
"value_source.type.adaptive_scene.desc": "Adjusts by scene content",
"value_source.value": "Value:",
"value_source.value.hint": "Constant output value (0.0 = off, 1.0 = full brightness)",
"value_source.waveform": "Waveform:",

View File

@@ -120,6 +120,20 @@
"device.scan.selected": "Устройство выбрано",
"device.type": "Тип устройства:",
"device.type.hint": "Выберите тип LED контроллера",
"device.type.wled": "WLED",
"device.type.wled.desc": "WiFi LED контроллер по HTTP/UDP",
"device.type.adalight": "Adalight",
"device.type.adalight.desc": "Серийный протокол для Arduino",
"device.type.ambiled": "AmbiLED",
"device.type.ambiled.desc": "Серийный протокол AmbiLED",
"device.type.mqtt": "MQTT",
"device.type.mqtt.desc": "Отправка LED данных через MQTT брокер",
"device.type.ws": "WebSocket",
"device.type.ws.desc": "Стриминг LED данных через WebSocket",
"device.type.openrgb": "OpenRGB",
"device.type.openrgb.desc": "Управление RGB через OpenRGB",
"device.type.mock": "Mock",
"device.type.mock.desc": "Виртуальное устройство для тестов",
"device.serial_port": "Серийный порт:",
"device.serial_port.hint": "Выберите COM порт устройства Adalight",
"device.serial_port.none": "Серийные порты не найдены",
@@ -999,10 +1013,15 @@
"value_source.type": "Тип:",
"value_source.type.hint": "Статический выдаёт постоянное значение. Анимированный циклически меняет форму волны. Аудио реагирует на звук. Адаптивные типы автоматически подстраивают яркость по времени суток или содержимому сцены.",
"value_source.type.static": "Статический",
"value_source.type.static.desc": "Постоянное выходное значение",
"value_source.type.animated": "Анимированный",
"value_source.type.animated.desc": "Циклическая смена по форме волны",
"value_source.type.audio": "Аудио",
"value_source.type.adaptive_time": "Адаптивный (Время суток)",
"value_source.type.audio.desc": "Реагирует на звуковой сигнал",
"value_source.type.adaptive_time": "Адаптивный (Время)",
"value_source.type.adaptive_time.desc": "Подстройка по времени суток",
"value_source.type.adaptive_scene": "Адаптивный (Сцена)",
"value_source.type.adaptive_scene.desc": "Подстройка по содержимому сцены",
"value_source.value": "Значение:",
"value_source.value.hint": "Постоянное выходное значение (0.0 = выкл, 1.0 = полная яркость)",
"value_source.waveform": "Форма волны:",

View File

@@ -120,6 +120,20 @@
"device.scan.selected": "设备已选择",
"device.type": "设备类型:",
"device.type.hint": "选择 LED 控制器的类型",
"device.type.wled": "WLED",
"device.type.wled.desc": "通过HTTP/UDP控制的WiFi LED",
"device.type.adalight": "Adalight",
"device.type.adalight.desc": "Arduino串口LED协议",
"device.type.ambiled": "AmbiLED",
"device.type.ambiled.desc": "AmbiLED串口协议",
"device.type.mqtt": "MQTT",
"device.type.mqtt.desc": "通过MQTT代理发布LED数据",
"device.type.ws": "WebSocket",
"device.type.ws.desc": "通过WebSocket流式传输LED数据",
"device.type.openrgb": "OpenRGB",
"device.type.openrgb.desc": "通过OpenRGB控制RGB外设",
"device.type.mock": "Mock",
"device.type.mock.desc": "用于测试的虚拟设备",
"device.serial_port": "串口:",
"device.serial_port.hint": "选择 Adalight 设备的 COM 端口",
"device.serial_port.none": "未找到串口",
@@ -999,10 +1013,15 @@
"value_source.type": "类型:",
"value_source.type.hint": "静态输出固定值。动画循环波形。音频响应声音输入。自适应类型根据时间或场景内容自动调节亮度。",
"value_source.type.static": "静态",
"value_source.type.static.desc": "固定输出值",
"value_source.type.animated": "动画",
"value_source.type.animated.desc": "循环波形变化",
"value_source.type.audio": "音频",
"value_source.type.audio.desc": "响应声音输入",
"value_source.type.adaptive_time": "自适应(时间)",
"value_source.type.adaptive_time.desc": "按时间自动调节",
"value_source.type.adaptive_scene": "自适应(场景)",
"value_source.type.adaptive_scene.desc": "按场景内容调节",
"value_source.value": "值:",
"value_source.value.hint": "固定输出值0.0 = 关闭1.0 = 最大亮度)",
"value_source.waveform": "波形:",