Originally created by: kristofferR
Adds a dependency-free internationalization layer to the landing page (docs/index.html), live at https://kristofferr.github.io/Carrier/ after merge.
English, Vietnamese, Portuguese (BR), Spanish, French, Thai, Filipino, Polish, Norwegian, Arabic — chosen for Messenger's largest markets (Vietnam, Brazil, Mexico/LatAm, France, Thailand, the Philippines, Poland, the Nordics, Egypt/MENA).
docs/avatars/{locale}/.dir="rtl"); the app-window replica deliberately stays LTR like a real macOS screenshot, with bidi-aware text so Arabic content still reads right-to-left inside it.A language picker in the nav, navigator.language auto-detection (with pt→pt-BR, no→nb, tl→fil fallbacks) and localStorage persistence. Still a single self-contained file — locale dictionaries are inlined; only the per-locale avatar webps are separate assets. The notification simulation, OS/architecture-aware download selection, and all accessible names (language/theme/preview controls, nav landmarks, hero icon alt) re-localize on language change.
Ran five local crq preflight rounds; addressed every finding — architecture-specific download labels now reapply after locale changes, the notification-toast clone is translated per locale, the unread preview's timestamp localizes (including under reduced-motion), and all page-level aria-label/alt strings localize. A final confirmatory preflight could not complete (review service errors), so fleet auto-review is left enabled for this PR.
Originally posted by: kristofferR
@coderabbitai review
Originally posted by: coderabbitai[bot]
✅ Action performed
Review finished. > Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.Originally posted by: coderabbitai[bot]
✨ Finishing Touches
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests - [ ] Commit unit tests in branch `feat/landing-i18n`Comment
@coderabbitai helpto get the list of available commands.Related
Commit: [2fb509]
Ticket changed by: kristofferR