Volver al blog
Ingeniería·12 de abril de 2026·5 min de lectura

Cuatro idiomas, un solo CMS: cómo hacemos que el i18n no resulte pesado

F
FrosthavenStudio

Clientes neerlandeses que quieren llegar a prospects españoles, empresas B2B alemanas que quieren abrir el Benelux: vemos la misma pregunta en distintas formas. La respuesta suele ser "tres o cuatro idiomas". Lo que rara vez se pregunta es "cómo hacemos que esto no resulte aburrido para el redactor de contenido".

Tres principios mantienen vivibles las webs en cuatro idiomas. Primero: un solo conjunto de keys, no un conjunto de archivos por idioma que se desincroniza. Los archivos JSON por locale de next-intl con estructura de keys idéntica dan un objetivo de validación que se puede comparar con diff. Validamos automáticamente en CI que todas las keys existen en todos los idiomas.

Segundo: el contenido en el CMS, no en el código. Para Frosthaven.co usamos archivos JSON porque es un site pequeño con copy estable. Para sites de clientes con ~100 páginas, Storyblok pasa a ser la única fuente de verdad. No por la funcionalidad (eso también lo hacen Sanity/Payload) sino por la interfaz multilingüe por diseño que los redactores entienden de inmediato.

Tercero: validación de que la traducción está completa. Un párrafo en español que no está rompe media página. Usamos un chequeo previo al despliegue que falla si un idioma está incompleto, y la URL de producción cae de vuelta al locale por defecto con un aviso.

SEO: etiquetas hreflang por par de locales, canonicals por locale, y sitemap.xml con xhtml:link-alternates. Google solo lo respeta tras varias semanas de crawling, así que planifícalo antes del lanzamiento, no después.

La parte más difícil sigue siendo una sola cosa: el tono de voz por idioma. Una web traducida literalmente se siente algorítmica. Para Frosthaven escribimos el copy en inglés del modo más directo, el español algo más cálido, el alemán más formal y el neerlandés más afilado. Se nota en los ritmos.

/ Deel dit /

X / TwitterLinkedInE-mail