OTE Reader's UI is currently hardcoded to Spanish: every string in index.html and app.js (buttons, labels, empty states, messages, the demo/settings bars, etc.) is written in Spanish, and <html lang="es"> / <ote-events lang="es"> are both fixed.
The embedded <ote-events> widget already supports lang="en" / lang="es" internally (see its Strings table in @opentechevents/embed), so the event-card chrome is ready for this — it's the reader's own UI strings that need to become translatable.
Scope
- Extract UI strings from
app.js/index.html into a translатable structure (e.g. a strings table keyed by language, similar to the embed widget's own STRINGS object).
- Add a language switcher (or respect
navigator.language with a manual override, persisted like the theme preference).
- Wire the chosen language into
<ote-events lang="..."> and <html lang="...">.
- Start with English as the second language, since that's what the embed widget already ships.
Out of scope
- Translating feed/event content — that's up to each community's own feed, not the reader shell.
Follow-up from the discussion in #1.
OTE Reader's UI is currently hardcoded to Spanish: every string in
index.htmlandapp.js(buttons, labels, empty states, messages, the demo/settings bars, etc.) is written in Spanish, and<html lang="es">/<ote-events lang="es">are both fixed.The embedded
<ote-events>widget already supportslang="en"/lang="es"internally (see itsStringstable in@opentechevents/embed), so the event-card chrome is ready for this — it's the reader's own UI strings that need to become translatable.Scope
app.js/index.htmlinto a translатable structure (e.g. a strings table keyed by language, similar to the embed widget's ownSTRINGSobject).navigator.languagewith a manual override, persisted like the theme preference).<ote-events lang="...">and<html lang="...">.Out of scope
Follow-up from the discussion in #1.