Internacionalización en NextJS: Middleware y Rutas Dinámicas
Clase 10 de 24 • Curso de Next.js Avanzado
Contenido del curso
- 10

Internacionalización en NextJS: Middleware y Rutas Dinámicas
11:19 - 11

Internacionalización en Next.js con Traducciones Dinámicas
14:47 - 12

Autenticación de Usuarios con Middleware en Next.js
08:36 - 13

Administración de Cookies con Next.js y JavaScript para Autenticación
15:40 - 14

Integración de Feature Flags en Next.js con LaunchDarkly
20:50 - 15

Manejo de Errores en Next.js: Server Actions y Páginas de Error
14:34 - 16

Integración de Sentry para Monitoreo de Errores en Next.js
12:47
- 17

Gestión del Caché en Next.js: Novedades y Estrategias Avanzadas
17:28 - 18

Seguridad en Next.js: Server Actions y Componentes React
08:35 - 19

Seguridad de Cookies y Encriptación en Aplicaciones Next.js
16:12 - 20

Optimización de Rendimiento en Next.js: Técnicas y Herramientas
17:16 - 21

Despliegue de Aplicaciones Next.js con Vercel y Docker
06:25 - 22

Despliegue de Next.js en Fly.io usando Docker y configuración de Postgres
20:30 - 23

Despliegue de Aplicaciones Next.js con Flyo y Docker
11:00 - 24

Migración y Optimización de Páginas con Next.js
01:59
La internacionalización en aplicaciones web es crucial para garantizar una experiencia fluida para usuarios de distintos idiomas. Aquí exploramos cómo implementar internacionalización desde cero en Next.js, utilizando middleware y JavaScript nativo, para redirigir usuarios según su idioma configurado sin depender de librerías externas.
¿Cómo interceptar y procesar solicitudes en Next.js con middleware?
- El middleware en Next.js permite interceptar solicitudes entre el cliente y el servidor.
- Podemos usar el objeto
request.nextUrlpara analizar la URL solicitada y tomar decisiones como redirecciones o bloqueos. - La lógica incluye:
- Ignorar solicitudes fuera de la subpágina destinada a la internacionalización (
/i18nen este caso). - Permitir el paso directo si la URL ya contiene un identificador de idioma soportado (e.g.,
/i18n/eso/i18n/en). - Redirigir solicitudes sin identificador de idioma al idioma más adecuado según la configuración del usuario.
- Ignorar solicitudes fuera de la subpágina destinada a la internacionalización (
¿Cómo determinar el idioma preferido del usuario?
- Usamos el encabezado HTTP
Accept-Language, que los navegadores envían indicando los idiomas preferidos del usuario. - Con la librería
negotiatoryformat.js, se pueden:- Extraer los idiomas aceptados por el navegador.
- Comparar con los idiomas soportados por la aplicación (
es,en). - Seleccionar el idioma por defecto (
es) en caso de que no haya coincidencias.
¿Cómo se estructura la lógica para redirecciones en el middleware?
-
Ignorar rutas irrelevantes:
- Verificar si la ruta solicitada comienza con
/i18n. - Si no, dejar que la solicitud continúe sin modificaciones.
- Verificar si la ruta solicitada comienza con
-
Permitir rutas con idioma configurado:
- Analizar si la URL contiene un idioma soportado.
- Si es positivo, permitir que la solicitud continúe.
-
Redirigir rutas sin idioma configurado:
- Determinar el idioma usando el encabezado
Accept-Language. - Modificar el
pathnamede la solicitud para incluir el idioma. - Realizar la redirección basada en esta nueva URL.
- Determinar el idioma usando el encabezado
¿Cómo probar la implementación?
- Cambiar el idioma preferido en las configuraciones del navegador.
- Acceder a la página raíz y verificar la redirección automática al idioma correspondiente.
- Probar con idiomas no soportados para asegurar que se asigna el idioma por defecto.