Skip to content

feat(i18n): auto-detect browser language with localStorage persistence (closes #29) — v2 rebase#51

Open
zqleslie wants to merge 1 commit into
davz7:mainfrom
zqleslie:feat/i18n-lang-detect-29-v2
Open

feat(i18n): auto-detect browser language with localStorage persistence (closes #29) — v2 rebase#51
zqleslie wants to merge 1 commit into
davz7:mainfrom
zqleslie:feat/i18n-lang-detect-29-v2

Conversation

@zqleslie
Copy link
Copy Markdown

Summary (v2 — clean rebase on latest main)

Auto-detects the user's browser language on init and persists manual language toggles in localStorage, so the app remembers the user's preference across sessions.

Replaces PR #50 which became dirty after main received new commits.

Changes

1. CreditRoot/src/i18n/index.js

  • Added i18next-browser-languagedetector via .use(LanguageDetector)
  • Removed hardcoded lng: 'es'
  • Configured detection:
    • order: ['localStorage', 'navigator'] — reads localStorage.getItem('ms-lang') first, falls back to navigator.language
    • lookupLocalStorage: 'ms-lang'
    • convertDetectedLanguage — if browser language starts with en, use en; otherwise default to es
  • fallbackLng stays es

2. CreditRoot/package.json

  • Added "i18next-browser-languagedetector": "^8.2.1" to dependencies

3. CreditRoot/src/components/layout/AppHeader.jsx

  • Updated toggleLang() to persist user choice: localStorage.setItem('ms-lang', next)

Acceptance Criteria (Issue #29)

  • On init, read localStorage.getItem('ms-lang') first
  • If absent, parse navigator.language — if starts with en, use en; else default es
  • When user toggles language in navbar, write to localStorage.setItem('ms-lang', lang)
  • fallbackLng stays es
  • Added i18next-browser-languagedetector to dependencies

Closes #29.

Replaces #50 (v2 clean rebase after main received new commits).

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.

Issue #4 — Auto-detect browser language and persist preference

1 participant