mastering-internationalization.md

Internacionalización de Sitios con Next.js: La Guía Definitiva

@Guilherme Rodriguesdate: 2024-02-25read: 1 min#next.js

Aprende cómo crear sitios multilingües (i18n) con Next.js App Router, garantizando un SEO perfecto para audiencias globales.

#¿Por Qué Internacionalizar?

En un mercado globalizado, limitar tu sitio a un solo idioma es dejar dinero sobre la mesa. Crear un sitio multilingüe permite alcanzar nuevos mercados y clientes.

Recientemente, refactoricé este portafolio para soportar Portugués, Inglés y Español. Aquí está cómo lo hice.

##1. Enrutamiento por Sub-ruta (Sub-path Routing)

La mejor estrategia para SEO es tener URLs dedicadas para cada idioma:

  • misitio.com/pt
  • misitio.com/en
  • misitio.com/es

Esto permite que Google indexe cada versión independientemente.

##2. Estructura de Carpetas en App Router

En Next.js 13+, usamos Carpetas Dinámicas ([lang]) para capturar el idioma en la URL:

src/app/[lang]/
  layout.tsx
  page.tsx (Home)
  about/
    page.tsx

##3. Diccionarios de Traducción

En lugar de codificar textos, creamos archivos JSON para cada idioma:

// en.json
{
  "welcome": "Welcome to my portfolio",
  "contact": "Contact Me"
}

Y una función de utilidad para cargar el diccionario correcto basado en el parámetro lang de la URL.

##4. Middleware para Redirección

Usamos un Middleware (ahora Proxy) para detectar el idioma preferido del navegador del usuario y redirigirlo automáticamente si accede a la raíz /.

##Conclusión

Internacionalizar un proyecto Next.js requiere planificación inicial, pero el resultado es una arquitectura escalable lista para el mundo.

¿Quieres expandir tu negocio al mercado internacional? Hablemos.

Guilherme Rodrigues
Full stack · Santa Maria/RS
export default GuilhermeRodrigues;

Desenvolvedor full stack em Santa Maria/RS. React, Next.js, TypeScript. Sistemas em produção com usuários reais.

— SITIO
— LEGAL
— CONTACTO
email ↗whatsapp ↗github ↗linkedin ↗
© 2026 Guilherme Rodrigues · v2.0.0construido con em Santa Maria/RS
mainutf-8tsx~//blog/mastering-internationalization
paleta: vscode-darkguilhermerodrigues.dev.brvivo