Configurar un Sitio Multilingüe
Los autores escriben, y los visitantes leen, en tantos idiomas como actives. Esta guía recorre el paso de un site de un solo idioma a la publicación completa multilingüe: activar los idiomas, estructurar las URLs, escribir cada locale, y traducir eficientemente donde el tooling puede ayudar.
Setup único
- Fija los idiomas: Settings → General → Active Languages, una lista separada por comas de códigos de dos letras (opcionalmente regionales, como
zh-cn). Guarda la lista antes de tocar nada más. Cada entrada se valida (código en minúsculas, sufijo opcional); una lista vacía hace fallback aen. - Elige el idioma por defecto: el idioma de fallback usado cuando falta una traducción, el ancla de la homepage, y el target de hreflang
x-default. Siempre debe estar presente en la lista; si tu guardado envía uno que no, se ajusta al primer código listado. - Deja que el modo de URL se asiente: bajo Settings → Permalinks el Language URL Mode se re-deriva cuando la cantidad de idiomas cambia:
- un idioma → sin segmento de URL;
- múltiples idiomas → modo path (
/en/…,/es/…); - el modo subdominio es tu propia elección y se queda así hasta que lo cambies; cada idioma se sirve entonces desde un subdominio como
es.example.com.
Cada directorio de output es por idioma, así que un cambio en la cantidad de idiomas remodela el layout de archivos en el siguiente build; rara vez necesitas tocar el modo a mano, pero vale la pena revisarlo después de un guardado si estás viendo prefixes /en/ inesperados (ve también la página de troubleshooting de Redirects & 404s).
- Los feeds y los menús necesitan datos por idioma. Los elementos de menú son por idioma (cada idioma tiene sus propios menús de header/footer); el prefix de URL del blog y el título del índice del blog aceptan overrides por idioma; las URLs se sirven bajo
/{lang}/…en modo path.
Escribir en dos o más idiomas
Fija el idioma por elemento. Cada página, post, bloque, snippet y elemento de nav tiene un dropdown de idioma (todos los elementos vienen de esa lista). Cada idioma es una fila; traducir una página significa guardar una fila duplicada en otro idioma, enlazada por la maquinaria de traducción.
Los slugs se emparejan con el idioma: dos páginas que comparten un slug pueden coexistir en dos idiomas sin conflictos, y ambas se enlazan en el output de hreflang.
Helpers eficientes y útiles:
- Crea traducciones en masa: clona un elemento existente hacia los idiomas faltantes desde la matriz Tools → Translations, de una sola vez.
- Usa las integraciones de AI: los helpers de traducción de templates toman el registro original, lo copian y aplican las traducciones de título/cuerpo que les proporciones, así que solo escribes el contenido de idioma.
- Decide dónde van los formularios: con páginas por idioma, los formularios públicos aplican al idioma en el cual estén embebidos en el cuerpo. Los formularios son language-neutral (funcionan igual en todos los idiomas).
Cómo se organiza el site construido
En modo path cada idioma ordena su output bajo su propio directorio: /en, /es; con páginas/posts bajo su prefix de blog, por idioma; páginas de categoría, feeds, sitemap, robots o search-index creados por idioma. Los menús y shares (de los content types de arriba) llevan el idioma de sus elementos. Los alternates de hreflang se generan entre idiomas con la entrada x-default apuntando a la página correspondiente del idioma por defecto.
El modo air-gap no cambia por sí mismo la planificación de URLs; lo que importa es el modo de URL: los sites de un solo idioma usan una raíz sin subtree por idioma, y los sites monolingües no generan enlaces hreflang en absoluto.
Mantenimiento
- Traducciones faltantes: la pantalla Tools → Translations es el dashboard. Matriza cada elemento traducido por idioma (y detecta los formularios, según la definición de la herramienta). Completa los elementos faltantes cuando estés listo.
- Los bloques sin traducir hacen fallback a la versión del idioma por defecto en la página construida; así las páginas nunca se ven rotas porque un bloque falte en un idioma. Traduce a medida que el texto esté listo.
- Borrar un idioma de la lista requiere limpiar su contenido; cualquier página/post/bloque remanente retiene el guardado y te dice los conteos.
Una cautela sobre los idiomas que van atrás
La mayoría de los sites multilingües crecen de forma desigual: un idioma arranca con menús y un par de páginas mientras el resto del contenido alcanza. Dos comportamientos verificados te ayudan a planear:
- Los enlaces hreflang por elemento solo aparecen cuando el idioma destino realmente tiene una versión de ese elemento, así que las traducciones incompletas no mandarán visitantes a 404s.
- El contenido del idioma por defecto es el modelo: el fallback del idioma faltante lo sirve, y los helpers de traducción parten de él.