Files
flxn-app/CLAUDE.md
T
yohlo 0a7b5fa00f
CI/CD Pipeline / Build and Push PocketBase Docker Image (push) Successful in 8s
CI/CD Pipeline / i18n Catalog Check (push) Failing after 10s
CI/CD Pipeline / Build and Push App Docker Image (push) Skipped
CI/CD Pipeline / Deploy to Kubernetes (push) Skipped
i18n
2026-08-08 15:29:40 -07:00

1.0 KiB

FLXN

i18n (Lingui v6) — applies to every user-facing string

Any change that adds, edits, or removes user-visible text must follow the i18n skill (.claude/skills/i18n/SKILL.md): wrap with context-bound Lingui macros, then bun run extract, translate new entries in every non-en locale, and bun run i18n:check. Adding a language: use the add-language skill.

Hard rules (full detail in the skill):

  • Only Trans/Plural/useLingui from @lingui/react/macro and msg from @lingui/core/macro. Never global t/plural/select from core/macro (SSR locale bleed).
  • useLingui() at top level of components/hooks only; add t/i18n to memo dep arrays.
  • Never hand-edit msgids or src/locales/en/messages.po (generated).
  • vite.config.ts babel plugin order (lingui before react-compiler) is load-bearing.
  • LinguiProvider stays ABOVE AuthProvider in providers.tsx (localized query hooks call useLingui), and __root's head() must never read match/context (circular route-type inference breaks beforeLoad typing).