4dim / Notas
Español neutro: 147 sustituciones y un \b que no conoce las tildes
«Elegí una plantilla» es una orden en Buenos Aires y un hecho consumado en Medellín. El cambio de voseo a tuteo en 30 archivos, y el reemplazo que convirtió «activos» en «actitu» porque \b en JavaScript no cuenta las vocales con tilde como letras.
El CRM que hablaba en voseo
Si vendes software en varios países de habla hispana, esta nota va de un error de idioma que nadie reporta y todos notan. Nos pasó en nuestro CRM, el programa donde el equipo atiende a los clientes.
Todo el texto de la aplicación estaba escrito en voseo rioplatense: «Escribí tu mensaje», «Poné un nombre», «Elegí una plantilla». Es un español correcto y natural para cuarenta millones de personas.
Pero para un vendedor en Medellín, en Ciudad de México o en Lima es un español que se lee con un pequeño tropiezo en cada botón. No es un problema de acento, sino de gramática. Y hay un caso que lo demuestra.
«Elegí»
El imperativo del voseo, «elegí», que en tuteo sería elige, se escribe exactamente igual que el pasado de primera persona, «yo elegí».
Así que un botón que dice «Elegí una plantilla» es, para quien vosea, una orden: elige una. Para quien tutea es una afirmación: ya elegí una. En la pantalla de un CRM, eso es la diferencia entre «te falta un paso» y «el paso está hecho».
El voseo no es «español con acento». Tiene formas verbales que en el resto del continente significan otra cosa, y una interfaz no puede permitirse un botón que se lea como un hecho consumado.
147 sustituciones en 30 archivos
Migramos todo a un español neutro con tuteo: «Escribe tu mensaje», «Pon un nombre», «Elige una plantilla». Fueron 147 sustituciones en 30 archivos, hechas con un script y revisadas a mano. Estas son las formas más frecuentes.
| Voseo | Neutro |
|---|---|
| Escribí, Poné, Elegí, Tocá | Escribe, Pon, Elige, Toca |
| tenés, podés, querés | tienes, puedes, quieres |
| vos | tú |
| tu / tus (posesivo, sin cambio) | tu / tus |
Elegimos el tuteo y no el «usted» por dos razones. El usted en una interfaz suena a banco, y el tuteo es lo que usan los sistemas que la gente ya conoce.
El sitio público, en cambio, trata de usted. Ahí le hablamos al dueño de un negocio, no a quien atiende la bandeja.
«activos» se volvió «actitu»
El script que reemplazaba «vos» por «tú» usaba \b, el límite de palabra de las expresiones regulares. Una expresión regular es un patrón de búsqueda. El script lo puso solo al final del patrón.
Y \b en JavaScript está definido sobre letras del alfabeto inglés: no cuenta las vocales acentuadas como parte de una palabra. Así que «vos» casó dentro de «activos», «nuevos», «archivos» y «motivos». La aplicación amaneció con «actitu», «nuetu», «architu» y «motitu».
La corrección son límites en los dos extremos, y no con \b, sino con un lookaround con clases Unicode: que antes y después no haya ni letra ni dígito. Es decir, (?<![\p{L}\p{N}]) y (?![\p{L}\p{N}]). Eso es lo que \bquiere decir de verdad, y lo que no hace con «Andrés».
La misma trampa, en otro sitio
Meses después volvió a aparecer en otro lugar: el módulo que borra los datos personales antes de mandarle un texto a un modelo de lenguaje. Los nombres de contactos con tilde no se reconocían en sus límites.
Misma causa, misma corrección. Cualquier código en JavaScript que procese texto en español con \b lleva este fallo dentro, y no da error: da resultados un poco equivocados que nadie mira.
Qué hacer entonces
- Si el producto se vende en más de un país hispanohablante, usar tuteo neutro en la interfaz. El voseo se queda para el trato personal.
- Buscar los imperativos terminados en «-á», «-é», «-í» con tilde: son las formas que cambian de sentido.
- Pedirle a alguien de otro país que lo lea antes de publicar. Los tropiezos no los ve quien escribe.
- En JavaScript, nunca
\bpara texto en español. Lookarounds con\p{L}y\p{N}, y la banderau. - Después de un reemplazo masivo, buscar las palabras que contienen el patrón por dentro. «activos» contiene «vos».
Esta nota sale de nuestro trabajo en Desarrollo web.