Next.js: Internacionalización con Locales basados en URL

En este artículo explico el proceso de optimización del manejo de locales en una aplicación Next.js. La implementación inicial usaba cookies para determinar el idioma, lo que obligaba a renderizar de forma dinámica y afectaba negativamente al rendimiento y al SEO. Al migrar a un enrutamiento basado en locales, donde el idioma se incluye directamente en la ruta URL como por ejemplo /en/about o /ja/about, Next.js puede pre-renderizar rutas específicas por idioma en tiempo de compilación, recuperando así las ventajas de la generación estática y mejorando tiempos de carga y posicionamiento en buscadores.
1. Configuración de locales Crear un archivo central que defina los locales disponibles y el idioma por defecto simplifica la gestión y facilita añadir o eliminar idiomas en el futuro. Esta configuración unificada mejora la reutilización de código y reduce errores al referenciar idiomas en distintos módulos.
2. Estrategia de enrutamiento Incrustar el locale en la ruta permite que cada ruta por idioma sea estática y pre-renderizable. Es importante decidir si el prefijo de idioma aparece siempre, nunca o solo cuando es necesario, ya que esto afecta a la estructura de URLs y al SEO. Por ejemplo, mostrar /en/about y /ja/about trata cada par como páginas estáticas independientes, lo que hace las URLs compartibles y indexables por buscadores.
3. Navegación centralizada Crear helpers de navegación que respeten el enrutamiento por locales evita comportamientos inconsistentes al usar enlaces o navegación programática. Con helpers personalizados, componentes como Link o funciones de redirección aplican el locale correcto automáticamente.
4. Resolución de locale en servidor En el lado del servidor se debe resolver el locale correcto a partir de la request y cargar los ficheros de mensajes correspondientes. Es recomendable validar que el locale solicitado sea soportado y en caso contrario caer en el locale por defecto para evitar errores y servir contenido válido.
5. Layout raíz y generación estática En el layout raíz se indica a Next.js cuál es el locale actual para habilitar el pre-renderizado estático de cada variante lingüística. Generar parámetros estáticos por cada locale permite que el framework cree páginas SSG por idioma y que el HTML resultante incluya el atributo lang adecuado, mejorando accesibilidad y SEO.
6. Selector de idioma en cliente Implementar un conmutador de idioma que use el router para navegar a la misma ruta con otro locale proporciona una experiencia de usuario fluida. Al cambiar de idioma la URL se actualiza a la ruta correspondiente, por ejemplo de /en/about a /ja/about, lo que mantiene la coherencia de enlaces compartidos y marcadores.
7. Manejo de rutas inválidas Añadir una ruta catch all que capture peticiones que no coincidan con rutas válidas o con locales no soportados permite redirigir a una página de not found y mantener una navegación predecible y segura.
Conclusión Pasar de un sistema de locales basado en cookies a un enrutamiento basado en URL restaura la generación estática, mejora el rendimiento y potencia el SEO sin sacrificar la experiencia multilingüe. Esta estructura modular facilita añadir nuevos idiomas y mantiene el enrutamiento consistente en toda la aplicación.
En Q2BSTUDIO somos especialistas en desarrollo de software y aplicaciones a medida, y aplicamos buenas prácticas de internacionalización en proyectos que requieren escalabilidad y rendimiento. Ofrecemos servicios de creación de desarrollo de aplicaciones a medida y soluciones de inteligencia artificial para empresas, combinando experiencia en software a medida, inteligencia artificial, ciberseguridad y servicios cloud aws y azure. También implementamos servicios de inteligencia de negocio y Power BI para mejorar la toma de decisiones, y desarrollamos agentes IA y automatizaciones que aceleran procesos internos.
Si tu proyecto necesita una arquitectura multilingüe optimizada, mejor rendimiento y mejor posicionamiento, en Q2BSTUDIO podemos ayudarte con soluciones de software a medida, ciberseguridad, servicios cloud y analítica avanzada para llevar tu producto al siguiente nivel.
Comentarios