Documentación
docs

Internacionalización (i18n)

Soporte multi-idioma en Shipabase con next-intl: idiomas incluidos, detección automática y cómo añadir un nuevo idioma en tres pasos.

Shipabase incluye soporte multi-idioma con next-intl.

Idiomas incluidos

  • Inglés (en) — por defecto
  • Español (es)

Cómo funciona

  • Detección automática del idioma según la configuración del navegador
  • Selector manual de idioma en la navbar
  • Las traducciones viven en el directorio messages/ como archivos JSON planos

Usar traducciones en un componente

import { useTranslations } from 'next-intl';

export default function Hero() {
  const t = useTranslations('Hero');

  return <h1>{t('title')}</h1>;
}

Y en messages/es.json:

{
  "Hero": {
    "title": "Lanza tu SaaS en minutos"
  }
}

Textos de contenido

Los posts y páginas de docs (.mdx) no se traducen automáticamente: viven en un solo idioma en content/. Lo que sí pasa por messages/ es la UI alrededor del contenido — por ejemplo, el título del menú lateral de docs, que vive en el namespace contentNav:

{
  "contentNav": {
    "docs": "Documentación"
  }
}

Si activas el menú lateral para otro tipo de contenido (ver Contenido y SEO), añade su título en ese mismo namespace.

Añadir un nuevo idioma

  1. Crea messages/[locale].json (por ejemplo, messages/fr.json)
  2. Añade el locale a i18n/config.ts
  3. Copia la estructura de messages/en.json y traduce los valores

Para casos avanzados (plurales, fechas, formatos), consulta la documentación de next-intl.

Siguiente paso

Haz tuyo el boilerplate con la Personalización.