Un blog que revisa sus propias traducciones
Este blog tiene 64 entradas en once idiomas: 704 filas y unos 2,2 millones de caracteres. No falta ninguna entrada en ningún idioma, una afirmación que solo significa algo si algo la impone.
Algo la impone. Antes de escribir una fila traducida, se compara con el original inglés, y una fila que no pasa no se escribe en absoluto — se informa y se deja para que la mire una persona.
Para qué sirve cada comprobación
Los mismos destinos de enlace. Una ruta interna no debe cambiar al traducirse: /privacy sigue siendo /privacy en todos los idiomas, y el prefijo de idioma se añade al componer la página. Un traductor — humano o no — que localiza servicialmente una ruta produce un enlace que no lleva a ninguna parte.
Los mismos marcadores. Algunas entradas llevan cifras que se sustituyen al construir la página, para que no envejezcan. Una traducción que pierde uno pierde una cifra; una que se inventa uno produce una llave en mitad de la frase.
El mismo recuento por etiqueta. No solo etiquetas equilibradas — el mismo número que en inglés. Esta es la comprobación que se gana su sitio: una fila de tabla perdida, un punto de lista tragado o un diagrama que falta son invisibles para cualquier otra prueba, porque el resultado sigue siendo HTML válido y se lee perfectamente.
Una longitud dentro de una banda. Entre la mitad y dos veces y media el inglés. Los idiomas difieren de verdad en longitud, así que la banda es ancha; lo que atrapa es una traducción que se detuvo a mitad de camino.
Lo que atrapó y lo que atrapó por error
Una captura real: una traducción francesa llegó con cuatro palabras destacadas donde el inglés tenía tres, porque una negación se había marcado en dos trozos. Nada parecía mal. El recuento sí.
Dos falsas alarmas, ambas el mismo día, ambas instructivas.
La primera: una entrada cita una línea de CSS, y el CSS termina en }}. La comprobación de llaves contaba cada {{ y cada }}, así que toda traducción de esa entrada suspendía sin que nada estuviera roto. Un }} sin un {{ no puede ser un marcador roto — los marcadores empiezan por {{ — así que ahora solo se cuenta el lado que abre.
La segunda: <rect/> y <path/> no tienen etiqueta de cierre, así que una prueba de equilibrio los da por desequilibrados para siempre. Los elementos vacíos ahora se cuentan en vez de equilibrarse.
Ambas costaron una ronda de trabajo, y ambas fueron la comprobación siendo demasiado estricta en lugar de demasiado laxa. Esa es la mejor dirección en la que fallar, pero no sale gratis: una comprobación que da falsas alarmas la afloja quien va con prisa, y entonces ya no está cuando importa.
La prueba que más importaba
Cuando las entradas recibieron diagramas, la comprobación de etiquetas se amplió para cubrirlos. En lugar de fiarse de eso, se probó la comprobación: se borró a propósito un diagrama de una traducción y se ejecutó el importador.
Informó exactamente de lo que faltaba — el diagrama, sus diez rótulos, sus cuatro rectángulos, sus siete trazados — y se negó a escribir la fila. El diagrama se restauró y la comprobación volvió a pasar.
Eso llevó dos minutos. Una verificación que nunca has visto fallar es una verificación que estás suponiendo, y suponer es justo aquello que todo esto existe para evitar.