Summary
We have next-intl installed and configured, and an English message file (messages/en.json) with a basic set of keys. However, the vast majority of frontend strings are still hardcoded in components rather than using useTranslations() / t() calls.
Current state
next-intl is set up with locale routing (app/[locale]/)
- Only
messages/en.json exists — no other languages
- The message file covers a small subset of keys (common, auth, nav, ontology, class, property, collab, git, errors)
- Most component strings are hardcoded in English and do not use the translation functions
Work needed
- Audit components for hardcoded user-facing strings (buttons, labels, headings, tooltips, error messages, placeholders, etc.)
- Extract strings into
messages/en.json under appropriate namespaces, and replace hardcoded text with t() calls
- Add at least one additional locale to validate the full i18n pipeline end-to-end
- Add a language switcher UI component
Acceptance criteria
Summary
We have
next-intlinstalled and configured, and an English message file (messages/en.json) with a basic set of keys. However, the vast majority of frontend strings are still hardcoded in components rather than usinguseTranslations()/t()calls.Current state
next-intlis set up with locale routing (app/[locale]/)messages/en.jsonexists — no other languagesWork needed
messages/en.jsonunder appropriate namespaces, and replace hardcoded text witht()callsAcceptance criteria
messages/en.jsonwith clear namespacesmessages/it.json)next-intllocale detection and routing work correctly