Replace bare — and generic None in selectors with descriptive None (reason) labels

All optional entity selectors now use the format "None (description)" with
i18n keys instead of hardcoded "—" or bare "None". Added common.none_no_cspt,
common.none_no_input, common.none_own_speed keys to all 3 locales. Updated
frontend context with the convention.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-16 17:46:37 +03:00
parent bbe42ee0a2
commit a4a0e39b9b
7 changed files with 38 additions and 16 deletions

View File

@@ -55,6 +55,19 @@ Add hint text to both `en.json` and `ru.json` locale files using a `.hint` suffi
Do **not** add placeholder options like `-- Select something --`. Populate the `<select>` with real options only and let the first one be selected by default.
### Empty/None option format
When a selector has an optional entity (e.g., sync clock, processing template, brightness source), the empty option must use the format `None (<description>)` where the description explains what happens when nothing is selected. Use i18n keys, never hardcoded `—` or bare `None`.
Examples:
- `None (no processing template)``t('common.none_no_cspt')`
- `None (no input source)``t('common.none_no_input')`
- `None (use own speed)``t('common.none_own_speed')`
- `None (full brightness)``t('color_strip.composite.brightness.none')`
- `None (device brightness)``t('targets.brightness_vs.none')`
For `EntitySelect` with `allowNone: true`, pass the same i18n string as `noneLabel`.
### Enhanced selectors (IconSelect & EntitySelect)
Plain `<select>` dropdowns should be enhanced with visual selectors depending on the data type: