FieldOps/apps/operator-pwa/package.json
Pedro Gomes 35e7027881 localization support
O que mudou
Infra (por app):

i18n/locales.ts — lista de locales (pt, en), default pt, labels para o seletor
i18n/request.ts — lê o cookie NEXT_LOCALE, carrega as mensagens
messages/pt.json + messages/en.json — todas as strings extraídas
next.config.ts — envolvido com withNextIntl (operator-pwa: withPWA(withNextIntl(...)))
app/layout.tsx — <html lang={locale}> dinâmico, NextIntlClientProvider
app/language-switcher.tsx — seletor PT | EN (cookie + router.refresh())
23 ficheiros de UI atualizados — todos os textos visíveis agora usam t('...') ou getTranslations.

Datas no relatório passaram de toLocaleString('pt-PT') fixo para useFormatter() do next-intl — localizam-se automaticamente.

Plurais em ICU no sync-chip: {count, plural, one {# pedido...} other {# pedidos...}}.

Resultado dos testes:

pnpm test:e2e — 3/3 ✓
pnpm test:e2e:auth — 4/4 ✓
tsc --noEmit em ambas as apps — limpo ✓
Para adicionar uma língua futura: criar messages/<locale>.json + adicionar o locale a i18n/locales.ts em cada app. O seletor aparece automaticamente.
2026-05-30 16:46:07 +01:00

50 lines
1.4 KiB
JSON

{
"name": "@repo/operator-pwa",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "dotenv -e ../../.env -- next dev --port 3000",
"build": "dotenv -e ../../.env -- next build",
"start": "dotenv -e ../../.env -- next start --port 3000",
"lint": "next lint",
"typecheck": "tsc --noEmit",
"clean": "rimraf .next .turbo node_modules"
},
"dependencies": {
"@ducanh2912/next-pwa": "^10.2.9",
"@repo/api": "workspace:*",
"@repo/db": "workspace:*",
"@repo/domain": "workspace:*",
"@repo/ui": "workspace:*",
"@t3-oss/env-nextjs": "^0.11.1",
"@tanstack/react-query": "^5.62.10",
"@trpc/client": "^11.0.0",
"@trpc/react-query": "^11.0.0",
"@trpc/server": "^11.0.0",
"dexie": "^4.0.10",
"lucide-react": "^0.469.0",
"next": "15.3.9",
"next-auth": "5.0.0-beta.25",
"next-intl": "^4.13.0",
"pino": "^9.5.0",
"pino-pretty": "^11.3.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"superjson": "^2.2.2",
"zod": "^3.24.1"
},
"devDependencies": {
"@repo/config": "workspace:*",
"@types/node": "^22.10.2",
"@types/react": "^19.0.2",
"@types/react-dom": "^19.0.2",
"autoprefixer": "^10.4.20",
"dotenv-cli": "^8.0.0",
"postcss": "^8.4.49",
"rimraf": "^6.0.1",
"tailwindcss": "^3.4.17",
"typescript": "^5.7.2"
}
}