No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
1 Hrs
30 Min
7 Seg

Rutas Internacionalizadas en páginas dinámicas con getStaticPath()

5/12
Recursos

¿Cómo manejar la internacionalización en páginas dinámicas con Next.js?

La internacionalización es una necesidad creciente en el desarrollo web moderno, permitiendo a las aplicaciones comunicarse con usuarios de diferentes idiomas y culturas. En esta guía, exploraremos cómo gestionar la internacionalización en páginas dinámicas con Next.js, asegurando que nuestra API se conecte correctamente y que las páginas apropiadas se generen para cada idioma o locale. Aprenderemos a ajustar get static paths y get static probs para incluir múltiples idiomas, utilizando TypeScript y herramientas adicionales como Lodash.

¿Qué son las páginas dinámicas y cómo gestionarlas en Next.js?

Las páginas dinámicas son aquellas que se generan en función de parámetros variables, como podrían ser entradas de usuario o datos de una API. En Next.js, la gestión de estos parámetros se realiza a través de get static paths. Esta función especifica qué páginas dinámicas o rutas deben generarse de forma estática durante el build.

  • Es importante especificar cada ruta para cada idioma que queremos soportar.
  • Next.js nos permite incluir y excluir páginas según el locale, dando flexibilidad a nuestra aplicación.

¿Cómo configurar international locales en Next.js?

Al añadir soporte para múltiples idiomas en una aplicación Next.js, debemos ajustar la configuración para incluir todos los locales deseados. Estos son pasos clave que se deben seguir:

  1. Configura tu archivo de configuración para incluir los locales.
  2. Asegúrate de que cada función que utilice get static paths y get static props incluya parámetros de locale.
  3. Utiliza TypeScript para garantizar que las configuraciones de locale estén correctamente tipadas y detecta posibles errores tempranamente.

¿Cómo implementar los ajustes necesarios en TypeScript?

En TypeScript, al manejar configuración de locale, podría parecer desconocido para el compilador. Por ejemplo, sin configuraciones adecuadas, locale podría ser interpretado como indefinido. Para solucionarlo:

  • Añade una verificación para levantar un error si locale es undefined, indicando un fallo en la configuración del archivo.
  • TypeScript luego identificará correctamente locale como un string.

¿Cómo utilizar Lodash para simplificar la gestión de múltiples locales?

Lodash es una biblioteca JavaScript extremadamente útil para trabajar con arrays y objetos complejos. En nuestro caso, utilizamos su función flatMap para gestionar estructuras de datos más complejas cuando generamos varias páginas para cada idioma:

import flatMap from 'lodash/flatMap';

const locales = ['en', 'es']; // Ejemplo de locales disponibles

const paths = flatMap(entries, entry => {
  return locales.map(locale => ({
    params: { slug: entry.slug },
    locale,
  }));
});

Esta función toma una matriz de datos de entrada y genera rutas para cada combinación de entry y locale, estructurándolo en un solo nivel de profundidad.

¿Qué ajustes adicionales necesitamos en get static props?

La función get static props debe modificarse para pasar el locale actual a cualquier API que esté trayendo contenido localizado. Esto asegura que los datos devueltos estén en el idioma correcto:

  1. Incluye el locale como parte de los parámetros enviados con la solicitud de API.
  2. Asegúrate de que el contenido devuelto sea coherente con el locale especificado.

¿Cómo probar y verificar la implementación de locales?

Después de ajustar tus páginas y aplicaciones para la internacionalización, es vital verificarlas en un navegador:

  • Verifica que no hay errores y que las páginas se renderizan correctamente para cada idioma.
  • Prueba diferentes rutas y asegúrate de que el contenido y los textos cambian según el locale.

Reflexión: ¿Cómo detectar automáticamente el locale del usuario?

Por último, un aspecto a considerar es cómo detectar automáticamente el locale del usuario. Esto podría mejorarse al determinar automáticamente las preferencias de idioma basadas en configuraciones del navegador o direcciones IP. A medida que avanzas, reflexiona cómo podrías implementar detecciones automáticas para proporcionar a los usuarios una experiencia más intuitiva y localizada desde el momento en que visitan el sitio por primera vez.

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En lugar de usar el flatMap de lodash se puede usar el método flatMap de los arrays:

const paths: PathType[] = slugs
  .map((slug) => ({ params: { slug } }))
  .flatMap((path) => locales.map((locale) => ({ locale, ...path })))

Probablemente lo comenten en la siguiente clase, pero se me ocurre que para obtener las preferencias de lenguaje del usuario podemos acceder a:

navigator.language
// "es-MX"