Skip to content

Localize the account flows into EN, TR, DE, ES, FR, PT (?lang, cookie, Accept-Language) - #48

Merged
AlxcBTW merged 8 commits into
mainfrom
night/web-i18n
Oct 28, 2026
Merged

AlxcBTW merged 8 commits into
mainfrom
night/web-i18n

Conversation

@AlxcBTW

@AlxcBTW AlxcBTW commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

The account flows speak the launcher's six languages (EN, TR, DE, ES, FR, PT).

  • Language choice: an explicit ?lang= (the launcher will pass its own), then a lang cookie (set when ?lang= is given), then Accept-Language, English otherwise. Decided in src/proxy.ts, handed to the render in a header; no language in the path.
  • Idiom: next-intl 4 without locale routing (src/i18n/), messages in apps/web/messages/<lang>/{common,auth,account}.json, ICU plurals and rich text, server-rendered; each route group gets only its own area ((auth), (account), /u). <html lang> follows.
  • Covered: sign in, sign up, e-mail code, device link, join page, the account area (overview, profile, privacy incl. Played with recently and Appear offline, security and passkeys, connections, data export and deletion, notifications, friends, trophies, compare, level) and the public profile /u/{handle}; page titles and descriptions; API error texts (useDescribeError).
  • Words: reused from the launcher's strings where the same thing is said (informal tone as there).
  • Guards: messages.test.ts fails when a language lacks a key or has different ICU placeholders; proxy.test.ts covers the weighing and keeps the "no sessions in the proxy" rule (the only cookie it touches is lang).
  • Left English: marketing pages (home, download, compatibility), legal texts, error and 404 screens, text that comes from the cloud (e.g. its lockout wording), user text.
  • Needs a native read-through: the deletion and export texts in tr/de/es/fr/pt.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@AlxcBTW
AlxcBTW merged commit 9c8861a into main Oct 28, 2026
4 checks passed
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