feat(i18n): Spanish localization (phase 4)
CI / Lint e auditorias (push) Successful in 1m31s
CI / Trivy (dependências e segredos) (push) Successful in 10s
CI / Imagem Docker (linux/arm64) (push) Successful in 2m23s

Complete implementation of Spanish (es-419) language support:
- Canonical catalogs and data: messages/es.json, data/es/**, lib/data/es/**, public/exemplos/es/**
- Canonical slugs: /es/series, /es/catalogo, /es/comparacion, /es/componentes, /es/diagnostico, /es/frameworks, /es/glosario, /es/selector, /es/acerca
- Dedicated search index at /api/busca/es with Spanish accent normalization
- Strict exclusion of book references in Spanish routes and catalogs
- Language selector and root negotiation with es active (ENABLED_LOCALES = ['pt', 'en', 'es'])
- Extended verification suite: check-i18n, smoke-imagem and verifica-vazamentos

Co-Authored-By: Antigravity <noreply@google.com>
This commit is contained in:
Lucas RayanandAntigravity committed 2026-11-01 19:50:20 -03:00
1 parent 0940814522
commit 660b28c09d
72 files changed
+17848 -947

No files matched your search

+2 -2
View File
@@ -3,12 +3,12 @@ import { construirIndiceBusca } from "@/lib/searchIndex";
export const dynamic = "force-static";
export function generateStaticParams() {
return [{ locale: "pt" }, { locale: "en" }];
return [{ locale: "pt" }, { locale: "en" }, { locale: "es" }];
}
export async function GET(request, { params }) {
const { locale } = await params;
const loc = locale === "en" ? "en" : "pt";
const loc = locale === "en" ? "en" : locale === "es" ? "es" : "pt";
return Response.json(construirIndiceBusca(loc), {
headers: {
"Cache-Control": "no-cache, no-store, must-revalidate",