Skip to content
Studeia Docs

Multi-language: 4 locales, localized AI and dates

Studeia runs in 4 languages (pt-BR, en-US, es-ES, fr-FR) via next-intl: localized UI, API error messages, locale-aware dates and per-locale LLM prompts.

2026-05-31 4 min
Resposta curta

Studeia runs in 4 languages — Portuguese (pt-BR, the reference), English (en-US), Spanish (es-ES) and French (fr-FR) — via next-intl. The full UI, ~1,900 translation keys, 100+ localized API routes, locale-aware date/number formatting and per-locale LLM prompts are all covered, with a CI script validating key parity across languages. Users switch language with a locale switcher; the AI tutor answers in the student's language.

Coverage

  • UI: the entire interface across all five portals is translated; no hardcoded UI strings — everything goes through next-intl t().
  • API: 100+ API routes return localized error messages via getApiTranslations(request).
  • Dates & numbers: formatted with the active locale via useLocale() (client) / getLocale() (server) — never a hardcoded pt-BR.
  • LLM prompts: PromptTemplate has a locale field; loadPrompt() resolves with a locale cascade, and the tutor injects a language rule for non-pt-BR locales.

Quality gate

A CI script (check-translations.ts) validates key parity, placeholder parity and detects empty/untranslated entries across the four locale files. pt-BR is the locale of record; other locales fall back to it if a key is missing.

Docs in 4 languages

The public documentation itself is published in all four locales — Spanish and French pages are LLM-assisted translations of the pt-BR/en-US sources and carry an "AI-assisted translation" badge.

See also

FAQ

Which languages does Studeia support?

Four: Portuguese (pt-BR, the reference locale), English (en-US), Spanish (es-ES) and French (fr-FR). The full UI, API error messages and date/number formatting are localized via next-intl, and users can switch language with a locale switcher.

Does the AI tutor answer in the student's language?

Yes. LLM prompts are loaded per locale (loadPrompt with a locale cascade), and for non-pt-BR locales the tutor injects an explicit language rule so the whole response stays in the student's language. Dates and numbers are formatted with the active locale, never a hardcoded one.

Veja tambem

Multi-language: 4 locales, localized AI and dates