Añadir gallego a nuestra propia web: lo que aprendimos haciendo i18n sin librerías

Hace unas semanas decidimos meter gallego en nuestra propia web, además de español e inglés. No fue por petición de ningún cliente ni por un plan de expansión: fue Marta, que lleva la parte comercial, la que un día me comentó que buena parte de quien nos escribe por LinkedIn es de Galicia, y que a alguno le había parecido raro ver la web solo en castellano y en inglés, nunca en su idioma. No fue una queja formal, fue un comentario de pasillo. Pero se quedó ahí dando vueltas.
Lo primero que decidimos fue no meter ningún paquete de i18n. Astro trae desde hace un par de versiones soporte de rutas con prefijo de idioma integrado, pero nosotros ya usábamos la Content Layer API con loader: glob para el blog y la FAQ, así que la solución más simple era añadir una subcarpeta por idioma dentro de cada colección (blog/es/, blog/en/, blog/gl/, y lo mismo en faq/). Mismo nombre de fichero en las tres carpetas para emparejar traducciones de la misma pieza. Nada de tabla de traducciones en base de datos ni de plugin de terceros.
Traducir no fue lo que más tiempo nos llevó. Lo hago yo directamente, sin pasar el texto por ninguna herramienta de traducción automática — el gallego lo hablo desde crío y se nota enseguida cuando una traducción viene de máquina, y no quiero que a un lector gallego le chirríe la lectura. Lo que sí costó fue separar el prefijo de idioma del slug real a la hora de generar rutas: getStaticPaths trabaja con entry.id, y en el blog ese id lleva pegados idioma, fecha y slug. Acabamos escribiendo una función aparte solo para partir esa cadena en sus tres piezas.
Y luego llegó la cagada, tonta pero que costó encontrar. Subimos un artículo sobre backups sin el prefijo es/ delante del nombre de fichero. Astro lo cargaba sin protestar, porque el schema de la colección no exige esa carpeta, así que el build pasaba limpio. Pero el artículo no aparecía ni en /blog, ni en /en/blog, ni en /gl/blog. Ningún error, ninguna advertencia en la consola, solo un artículo fantasma que existía en el repositorio y en ningún sitio del navegador. Lo detecté porque busqué el título en el propio buscador del sitio y no salió nada.
Desde entonces esa carpeta de idioma es de lo primero que reviso antes de hacer commit de contenido nuevo. Lo que todavía no tengo resuelto es qué hacer con las piezas antiguas: las voy traduciendo al gallego según encuentro hueco, no de golpe, así que durante un tiempo el selector de idioma en gallego va a mostrar bastantes menos artículos que en español o inglés. No sé si eso confunde más de lo que ayuda, o si total es mejor así, poco a poco, que forzar una traducción rápida de cuarenta piezas solo por quedar bien con el completismo.