screentinker/frontend/js/views
ScreenTinker 8e7a093150 i18n: extract all strings, add 6 language translations, restructure i18n module
Session 1 of 2 of the i18n rollout.

- Split i18n module into per-language files under frontend/js/i18n/ so a
  translator can edit one language without touching the others.
- Add Portuguese (pt) and seed Hindi (hi). Hindi is intentionally a skeleton
  -- 0 keys, full English fallback -- because we have an active Indian user
  and would rather ship "no Hindi" than ship machine-quality Hindi that
  could read as unprofessional or get formality/gender register wrong.
- 183 keys, 100% parity across en/es/fr/de/pt; native review still
  recommended before publicizing as "fully supported".
- Add t(key, vars) variable substitution and tn(keyBase, n, vars) plural
  helper for _one/_other key pairs.
- setLanguage() now triggers a CustomEvent + HashChangeEvent so the
  existing hash router naturally re-renders the current view, plus a
  subscriber pattern for nav labels rendered once outside the router.
- Wire t() into 3 high-traffic views end-to-end: dashboard, login,
  content-library. Sidebar nav labels in app.js update on language change.
- The remaining 16 views still ship with hardcoded English; they will be
  wired in session 2. The t() lookup is robust against unwired views, so
  the dashboard works in 5 languages while clicking into e.g. Schedule
  still shows English. No regressions.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:25:22 -05:00
..
activity.js Security audit remediation: auth, IDOR, XSS, hardening 2026-04-11 22:48:07 -05:00
admin.js Mobile: fix modal and form control overflow 2026-04-21 18:48:51 -05:00
billing.js Security audit remediation: auth, IDOR, XSS, hardening 2026-04-11 22:48:07 -05:00
content-library.js i18n: extract all strings, add 6 language translations, restructure i18n module 2026-04-29 19:25:22 -05:00
dashboard.js i18n: extract all strings, add 6 language translations, restructure i18n module 2026-04-29 19:25:22 -05:00
designer.js Fix widget assignments, designer scaling, and cache strategy 2026-04-08 16:25:05 -05:00
device-detail.js Security: fix IDORs, XSS, rate limits, SSRF validation 2026-04-28 14:37:18 -05:00
help.js Initial open source release 2026-04-08 12:14:53 -05:00
kiosk.js Initial open source release 2026-04-08 12:14:53 -05:00
layout-editor.js Initial open source release 2026-04-08 12:14:53 -05:00
login.js i18n: extract all strings, add 6 language translations, restructure i18n module 2026-04-29 19:25:22 -05:00
onboarding.js Mobile: fix modal and form control overflow 2026-04-21 18:48:51 -05:00
playlists.js Mobile: fix modal and form control overflow 2026-04-21 18:48:51 -05:00
reports.js Mobile: horizontal-scroll tables + tab fade (Commit 4/4) 2026-04-21 15:56:01 -05:00
schedule.js Mobile: grid + layout reflow (Commit 2/4) 2026-04-21 15:50:56 -05:00
settings.js i18n: extract all strings, add 6 language translations, restructure i18n module 2026-04-29 19:25:22 -05:00
teams.js Mobile: fix modal and form control overflow 2026-04-21 18:48:51 -05:00
video-wall.js Security: fix IDORs, XSS, rate limits, SSRF validation 2026-04-28 14:37:18 -05:00
widgets.js Add directory board editor UI with content picker, category/entry management 2026-04-21 22:28:47 -05:00