i18n: several <option> elements and aria-labels are not wired through data-i18n (Send Key, TTS voice, Insights period, Kanban bulk status)
Author: YularzhiCreated Sep 15, 2026Updated Sep 17, 2026
Labelsbuguxsprint-candidate
applyLocaleToDOM() stamps textContent on any element carrying
data-i18n, including <option>, but a number of selects in
static/index.html are still plain-text and therefore always render in
English even when the UI language is not English:
#kanbanBulkStatus(sidebar bulk-action select): options Status / Ready / Blocked / Done / Archived,aria-label="Bulk status"#insightsPeriod: options «7 days», «30 days», «90 days», «365 days»#settingsSendKey: options «Enter (Shift+Enter for newline)», «Ctrl+Enter …», «Shift+Enter …»#settingsTtsVoice: option «Default system voice» — this one is also re-rendered instatic/panels.jswith hardcoded innerHTML; both call sites need the same key.
The fix is purely additive data-i18n / data-i18n-aria-label attributes
on those elements plus a handful of new locale keys.
I verified that data-i18n on <option> works (option text re-stamps
with the rest of the page), so this is a small mechanical patch — happy
to submit a PR.
Source: nesquena/hermes-webui