Dicta tus revisiones de código en tu propio idioma
Ilustración

Dicta tus revisiones de código en tu propio idioma

El código es inglés. Tus comentarios de revisión no tienen que serlo. Cómo dictar revisiones en uno de 25 idiomas on-device y por qué fijar el idioma importa.

Teodor Deleanu3 de septiembre de 20268 min de lectura

Hay una suposición silenciosa horneada en la mayoría del tooling para desarrolladores: el código está en inglés, así que el desarrollador también debe estarlo. Las palabras clave son inglesas. Los nombres de librerías son ingleses. Los mensajes de error son ingleses. Y por tanto, sigue el razonamiento, el dictado para desarrolladores puede ser solo en inglés y a nadie le va a importar.

La revisión de código rompe esa suposición de inmediato. Un comentario de revisión no es código. Es una frase dirigida a una persona, y en muchísimos equipos esa persona comparte tu primer idioma. Un equipo rumano que revisa un servicio en Rust escribe comentarios en rumano sobre identificadores en inglés. Un equipo polaco hace lo mismo en polaco, un equipo alemán en alemán. El código sigue siendo inglés; la conversación sobre el código, no.

El dictado es inusualmente bueno para comentarios de revisión, porque revisar es una actividad de lectura y teclear interrumpe la lectura. Pero solo es bueno si funciona en el idioma en el que el comentario está realmente escrito. Este post va de conseguir eso: qué idiomas cubre Keebye on-device, cómo se comporta la fijación de idioma y dónde están los bordes. Si quieres el argumento de por qué todo esto importa, lo da por qué el dictado para desarrolladores no debería ser solo en inglés; esta es la continuación práctica.

Por qué los comentarios de revisión son el objetivo ideal del dictado

Un comentario de revisión tiene tres propiedades que lo hacen más adecuado para la voz que casi cualquier otro texto de desarrollo.

Es corto. La mayoría de los comentarios son de una a tres frases. Eso es un aliento, una pulsación mantenida de la hotkey, una locución.

Es prosa. A diferencia de un mensaje de commit con formato rígido o un archivo de configuración con sintaxis exacta, un comentario de revisión es simplemente cómo explicarías el problema en voz alta. «Esto reintenta para siempre si el socket no contesta nunca; ponle un tope.» Las versiones hablada y tecleada son casi idénticas.

Ocurre mientras tus ojos están ocupados. Estás leyendo un diff. En el momento en que te detienes a teclear, pierdes tu sitio en él. Dictar te deja seguir leyendo y decir el comentario en el cuadro de entrada en el que ya has hecho clic.

Ahora añade la dimensión del idioma. Si tu equipo revisa en polaco, una herramienta de dictado solo en inglés te obliga a elegir: revisar en inglés (poco natural, y tus compañeros puede que lo lean más despacio) o teclear (perdiendo el beneficio). Ninguna de las dos era lo que querías.

Qué soporta Keebye realmente

Aquí importan dos motores on-device, y vale la pena ser exactos con ellos.

El motor por defecto está afinado para inglés. Es rápido, es el que usa la mayoría, y no es el que quieres para un comentario de revisión en polaco. Apuntado a habla no inglesa, producirá inglés fonéticamente plausible que no es lo que dijiste.

El segundo motor, Canary, cubre exactamente 25 idiomas: alemán, búlgaro, checo, croata, danés, eslovaco, esloveno, español, estonio, finés, francés, griego, húngaro, inglés, italiano, letón, lituano, maltés, neerlandés, polaco, portugués, rumano, ruso, sueco y ucraniano. Es opcional, se descarga una vez y a partir de ahí se ejecuta sin conexión como todo lo demás en Keebye. No cien idiomas; veinticinco, listados, y si el tuyo no está en la lista este post todavía no puede ayudarte.

También existe la opción de usar el reconocimiento de voz nativo de Apple como motor, que trae su propia cobertura de idiomas en tu Mac. Es un camino aparte con características distintas; el resto de este post va de Canary.

Fija el idioma; no dejes que lo adivine

El ajuste más importante para revisar en un idioma que no es el inglés es la fijación de idioma.

La detección automática suena al valor por defecto correcto y es el equivocado para desarrolladores. Los comentarios de revisión están densos en identificadores en inglés: nombres de funciones, nombres de paquetes, las palabras «null», «async» y «callback». Un comentario que es un ochenta por ciento rumano y un veinte por ciento tokens en inglés le da a un detector de idioma exactamente la señal mezclada que peor maneja. Cambiará a mitad de frase, o decidirá que todo era inglés, y obtendrás una transcripción que se equivoca con seguridad. Fija tu idioma de dictado recorre el fallo en detalle.

Con Canary, Keebye te deja establecer el idioma explícitamente. Fija el rumano y el modelo decodifica rumano; los identificadores en inglés dentro de tu frase se tratan como préstamos y no como prueba de que has cambiado de idioma. El reconocimiento de un identificador inusual puede seguir siendo imperfecto, pero el idioma en sí deja de ser una moneda al aire.

Un detalle de comportamiento que conviene saber: el idioma fijado se lee para la siguiente locución. Cambia la fijación y el dictado que estás a punto de hacer lo usa; el que ya has soltado no se vuelve a transcribir. En la práctica esto significa: cambia y luego habla. Si revisas en dos idiomas a lo largo del día, el cambio es barato. La bandeja de la barra de menús expone una lista corta de 11 idiomas para cambiar rápido, y Ajustes expone los 25.

Una sesión de revisión, dictada

Así es una sesión en un equipo que revisa en rumano.

Abres el pull request. La bandeja ya muestra el rumano fijado desde ayer, así que nada que hacer. Lees el primer archivo. Tercer bloque, un bucle de reintento sin tope. Clic en el cuadro de comentario, mantén pulsada la ⌘ derecha, di el comentario en rumano, suelta. El texto aterriza, con un «eh» y un arranque en falso eliminados por la limpieza basada en reglas, y con el identificador reconnectSocket intacto porque lo añadiste al diccionario personalizado hace una semana.

Siguiente archivo. El comentario que quieres dejar es una sugerencia de código, no prosa. Ese lo teclas; dictar un diff es una mala experiencia en cualquier idioma.

Más tarde, alguien de otro equipo se une al hilo y escribe en inglés. Quieres responder en inglés. Clic en la bandeja, elige inglés en la lista corta, y la siguiente locución se decodifica como inglés. Responde y vuelve a cambiar.

Nada de esto necesita una ventana. Keebye se queda en la barra de menús; la hotkey funciona en la app que tenga el foco, sea una pestaña del navegador con la revisión, un cliente Git de escritorio o una terminal con una herramienta de revisión por CLI.

Límites honestos

Veinticinco idiomas, no todos. Si revisas en turco, japonés, árabe o cualquier idioma fuera de la lista de Canary, el segundo motor no lo cubre. El motor nativo de Apple puede cubrirlo, según el soporte de idiomas de tu sistema, pero es un motor distinto con un comportamiento distinto.

La lista corta de la bandeja son once. Inglés, rumano, francés, alemán, español, italiano, portugués, neerlandés, polaco, ruso y ucraniano están a dos clics. Los otros catorce están en Ajustes. Si tu pareja diaria incluye, digamos, checo y finés, un lado pasa por Ajustes.

Los identificadores siguen siendo identificadores. Un modelo de voz, en cualquier idioma, sufre con snake_case_names. El diccionario ayuda con los recurrentes; el resto los arreglas a mano. Lee el comentario antes de publicarlo.

Sin transcripción en vivo. Canary transcribe al soltar la tecla, en un solo lote. No verás las palabras mientras las dices. Para un comentario de revisión de una a tres frases, apenas se nota.

El pulido es opcional y literal por defecto. Si activas el pulido con LLM local on-device, ordena la estructura de las frases y una salvaguarda de fidelidad retrocede a la transcripción cruda cuando la salida muestra pérdida grave de tokens, expansión o repetición. Esa salvaguarda es una heurística; no comprueba que tu significado haya sobrevivido. Para comentarios de revisión, donde una negación invertida cambia el veredicto, la mayoría mantiene el pulido apagado y deja que la limpieza basada en reglas haga el trabajo.

Dónde encaja esto

Si la fijación de idioma es la función que más te importa, Keebye vs Wispr Flow compara ambas en dónde se ejecuta el reconocimiento de voz y cómo se maneja el idioma, incluido dónde encaja mejor Wispr Flow. Para el caso más amplio de dictar mientras tienes las manos en el diff, la guía para desarrolladores cubre el día a día, y la guía de dictado para Mac cubre la instalación.

La suposición de que los desarrolladores son solo de habla inglesa nunca fue cierta. Simplemente era cómoda para las herramientas. Revisar en tu propio idioma, por voz, con un reconocimiento de voz que nunca sale de tu máquina, no es una petición de nicho. Es lo que haría una gran parte de la gente que escribe software si las herramientas lo permitieran.

Revisa en el idioma en el que piensas

Empieza tu prueba gratuita, fija tu idioma y dicta un comentario de revisión tal y como se lo dirías a un compañero.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Sigue leyendo