web-next: página 404 temática (not-found)

Añade una 404 con el markup del tema (main-page > middle-content >
body-content > title-content + body-box-content justified), dentro del
layout de [locale] (cabecera/vídeo/pie). Como el layout raíz es un segmento
dinámico ([locale]), se usa el patrón de next-intl: `[locale]/not-found.tsx`
+ catch-all `[locale]/[...rest]/page.tsx` que dispara notFound(). Bilingüe
(claves NotFound.title/message en es/en). Devuelve HTTP 404; las rutas
conocidas siguen 200.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-13 11:22:06 +00:00
parent a93527cef7
commit 4b78aa847a
4 changed files with 43 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
import { notFound } from 'next/navigation'
/**
* Catch-all de rutas inexistentes bajo un idioma: dispara notFound() para que
* se renderice la 404 temática (`[locale]/not-found.tsx`) dentro del layout.
*/
export default function CatchAllNotFound() {
notFound()
}
+26
View File
@@ -0,0 +1,26 @@
import { getTranslations } from 'next-intl/server'
/**
* 404 temática (dentro del layout de [locale] → cabecera/vídeo/pie + tema).
* Se muestra cuando se llama a notFound() dentro de un segmento de idioma,
* incluido el catch-all `[...rest]` para rutas inexistentes.
*/
export default async function NotFound() {
const t = await getTranslations('NotFound')
return (
<div className="main-page">
<div className="middle-content">
<div className="body-content">
<div className="title-content">
<h1>{t('title')}</h1>
</div>
<div className="box-content">
<div className="body-box-content justified">
<p>{t('message')}</p>
</div>
</div>
</div>
</div>
</div>
)
}
+4
View File
@@ -510,5 +510,9 @@
"backToStore": "Back to the store",
"orderNotFound": "Order not found or already processed.",
"genericError": "An error occurred. Please try again."
},
"NotFound": {
"title": "Page not found",
"message": "It looks like the page you are looking for doesn't exist or isn't available."
}
}
+4
View File
@@ -510,5 +510,9 @@
"backToStore": "Volver a la tienda",
"orderNotFound": "Orden no encontrada o ya procesada.",
"genericError": "Ha ocurrido un error. Inténtalo de nuevo."
},
"NotFound": {
"title": "Página no encontrada",
"message": "Parece que la página que estás buscando no existe o no se encuentra disponible."
}
}