i18n-frontend
Installation
SKILL.md
i18n Frontend (web)
Copy visível sai de catálogos, não de strings concatenadas no JSX. Locale BCP 47 (pt-BR, en). Formate data/número/moeda com Intl (ou o wrapper da lib). Mobile: i18n-mobile. APIs: i18n-backend. Copy: website-copywriting. Desktop nativo egui: i18n-frontend não aplica — use Fluent/rust-i18n apontado em egui.
Preserve a lib já no repo. Não troque next-intl por react-i18next numa feature.
Regras inegociáveis
- Nenhuma string de UI hardcoded em código novo (
"Salvar","Welcome, " + name). - Chaves estáveis (
account.save), não a frase inglesa como única chave sem contexto para o tradutor. - ICU / plural / select (
{count, plural, one {# item} other {# items}}). Não façacount === 1na view. html lang+dir(rtlparaar,he, …) no documento.- Fallback explícito (ex.:
pt-BR→pt→en). Nunca tela com chave crua em produção. - Datas/números:
Intl.DateTimeFormat/NumberFormatcom o locale ativo. ISO na API; formatar na UI. - Pseudo-locale ou lint de chaves no CI (
t('missing')falha).