Skip to content

feat(i18n): multi-language support (en/ja/de/es) - #1159

Merged
JamieRuderman merged 7 commits into
mainfrom
i18n/consolidated
Jul 29, 2026
Merged

feat(i18n): multi-language support (en/ja/de/es)#1159
JamieRuderman merged 7 commits into
mainfrom
i18n/consolidated

Conversation

@JamieRuderman

Copy link
Copy Markdown
Member

Consolidates the entire i18n effort — previously an 8-PR stack (#1147, #1152#1158) — into one PR against main. Same tree state as the tip of that stack, plus the Codex review fixes and admin de-internationalization. Squashed here for reviewability; the old stack PRs are closed in favor of this.

What's included

  • Infrastructure: shared i18next instance (frontend/src/i18n), en bundled + ja/de/es lazy code-split, TS key-typing, CLDR plurals, parity-check CI script.
  • Language preference: system default (follows OS via navigator.language), per-account override synced via attributes.$remoteit.language, Electron main-process sync.
  • Picker UI on the Profile page, grouped with Email Language.
  • App-wide string extraction to en/ja/de/es (ja/de/es machine-seeded, pending professional review).
  • Electron main (tray/menus/dialogs) + dates/durations localization.
  • Codex review fixes (from fix(i18n): address Codex review findings #1158): startup locale for signed-out screens, translated dialog buttons, locale-ordered relative dates, empty-label guard, networkName id-scoping, reactive labels via App-level useTranslation.

Admin pages kept English (internal-only)

  • 13 pre-existing admin files rolled back to their pre-i18n state.
  • The new admin-notices feature (added on this branch) stays functional but renders English (catalog keys removed → inline English defaults).
  • Base Attribute getter gained a translate flag; the 6 admin attribute subclasses set translate = false so their generic ids (created, license, …) no longer collide with the device columns.* catalog.
  • partnerStats* kept translated — it's partner-facing, not internal.

Verification

tsc clean · production build clean (locale chunks code-split) · i18n parity check passes (4 locales × 3 namespaces).

Machine-seeded ja/de/es across this surface should get a professional linguistic pass before production; admin* is out of scope for that review.

@JamieRuderman

Copy link
Copy Markdown
Member Author

@codex review

@aws-amplify-us-west-1

Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-1159.d20k671nqqv4kl.amplifyapp.com

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9666c26b6c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread frontend/src/routers/Router.tsx
Comment thread frontend/src/models/ui.ts
Comment thread frontend/src/components/AnnouncementBanner.tsx
Comment thread frontend/src/components/JobAttributes.tsx Outdated
# Conflicts:
#	frontend/src/pages/AdminNoticesPage/AdminNoticeDetailPanel.tsx
#	frontend/src/pages/AdminNoticesPage/AdminNoticeForm.tsx
#	frontend/src/pages/AdminNoticesPage/AdminNoticesListPage.tsx
#	frontend/src/pages/AdminNoticesPage/adminNoticeAttributes.tsx
#	package-lock.json
@JamieRuderman
JamieRuderman merged commit cb581e5 into main Jul 29, 2026
8 checks passed
@JamieRuderman
JamieRuderman deleted the i18n/consolidated branch July 29, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant