Contenido del curso
Haciendo tu proyecto más rápido
Consumiendo datos de manera eficiente
Escalabilidad y personalización
- 10

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

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

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

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

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

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

Integración de Sentry para Monitoreo de Errores en Next.js
12:47 min
Características Adicionales y Herramientas
- 17

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

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

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

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

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

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

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

Migración y Optimización de Páginas con Next.js
01:59 min
Internacionalización en NextJS: Middleware y Rutas Dinámicas
Resumen
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.