martes, 13 de septiembre de 2011

Diversión localizadora con delimitadores de millar

Wikilengua es una iniciativa de Fundéu BBVA, Red.es y la UAM que se surte de contribuciones de la comunidad para exponer las normas lingüsticas del español de forma clara y abierta. Cito de su página sobre los números.
Aunque todavía es práctica común en los números escritos con cifras separar los millares, millones, etc., mediante un punto (o una coma, en los países en que se emplea el punto para separar la parte entera de la decimal), la norma internacional establece que se prescinda de él. Para facilitar la lectura de estos números, cuando constan de más de cuatro cifras se recomienda separar estas mediante espacios por grupos de tres, contando de derecha a izquierda (12 000). Esta recomendación no debe aplicarse en documentos contables ni en ningún tipo de escrito en que la separación arriesgue la seguridad. No se utiliza nunca esta separación, ni tampoco el punto, en la expresión numérica de los años, en la numeración de páginas, portales de vías urbanas y códigos postales, ni en los números de artículos, decretos o leyes.
Los señores académicos de la RAE que se sacaron de la manga tales excepciones a la norma probablemente no toquen mucho un ordenador. Desde luego, no les veo en el Google Summer of Code. Porque si fueran, algún informático les metería una katana (con k) entre ceja y ceja, por listos.

Pregunté a Fundéu si todo este lío venía de la Ortografía o de dónde y resulta que sí, que no es el trabajo de un mono borracho algún vándalo que ha hecho un destrozo en la wiki. Podría haberlo consultado en la nueva Ortografía, pero no me apetece comprármela.

Configuración regional de Windows
En informática, "locale" es el conjunto de instrucciones lingüísticas y regionales que definen la estructura de números, medidas, monedas, fecha y hora, etc en un sistema (operativo). La fotico de arriba es la personalización del locale permitida en Windows 7. Mi Windows 7, concretamente, que totalmente actualizado cree que el separador de millares es un punto, algo que ya no es así oficialmente desde la publicación de la Ortografía de la Santa RAE el año pasado. Bueno, no pasa nada, se puede poner otro carácter en lugar del punto y yo he elegido un espacio fino (U+2009)* que he introducido vía Mapa de caracteres y luego he pegado en su casilla.

Pero ¿qué hago con eso de las recomendaciones? Que si números de cinco o más dígitos, que si números de menos, que si textos técnicos o generalistas, que si códigos postales… Pues no hago nada. No puedo hacer nada. Unos sistemas permiten más o menos personalización de los locales, pero difícilmente sabrá el sistema si el texto es científico, jurídico o literario.

Y ¿para qué sirve tener el locale configurado con el separador correcto de millares? Pues para dar formato a los números en Excel, por ejemplo. O, más útil en la traducción, para los placeables y el control de calidad.

Punto 1: los placeables o transferibles, según terminología Trados, son elementos reconocidos como invariables o que deben adaptarse a un locale. Por ejemplo, un número (200,000), una medida (200 km), un vínculo, o una etiqueta (<br />). Trados agrupa estos elementos como una unidad y permite situarla en su justo lugar en la traducción. Por defecto, Trados nos adaptará el placeable si puede, así 200,000 se convertirá en 200.000, cuando hoy día debería adaptarlo a 200 000.

Punto 2: control de calidad. Ya sea en APSic xBench, en Yamagata QA Distiller o en el controlador interno de Trados, el control de calidad se da cuenta de si hemos puesto un numerito distinto en la traducción del que venía en el original, teniendo en cuenta las diferencias de locale. Es decir, si en inglés pone "200,000.00", el programita buscará en el locale para saber cómo se debe adaptar este número al español y señalará como error lo que cree que no está correctamente localizado.

El problema es que, aunque cambiemos el símbolo de separación de miles de la Configuración regional de Windows de punto a algún tipo de espacio, Trados no se da por aludido. Sustituye los números bien, sí, pero detecta como error lo que está bien y deja pasar lo que está mal, con lo que el control de calidad automático… deja de ser automático. Para Trados, en español "200.000" y (por alguna razón) "200,000" están bien, pero 200 000 no. Lo mismo pasa con ApSIC XBench, pero en QA Yamagata Distiller se pueden definir locales a medida (aunque no es fácil), con lo cual es el único control de calidad que funciona correctamente en español, si exceptuamos la excepción de los números de menos de cinco dígitos.

Yo veo dos caminos para resolver este problema.
  1. Podemos localizar los números bien desde un principio aunque el control de calidad los detecte como error y tengamos que hacer una comprobación manual de que los números coinciden en los segmentos de origen y destino. Un control manual implica mucho más tiempo y esfuerzo y lleva al error humano.
  2. Podemos dejar que Trados localice los números como mejor le parezca de forma que el control de calidad detecte solo los números que no coinciden, es decir, los verdaderos errores. En este caso, tendremos que localizar los números a posteriori. ¿Cómo? Efectivamente, justo lo que te temías, con expresiones regulares. En Trados 2009, Control+H, activas "Expresiones regulares" y sigues estos pasos, cambiando los puntos de reemplazo por los espacios que necesites. Si es un archivo de Word, también puedes hacerlo al final siguiendo estos otros pasos (incluye truco para no arreglar lo que el cliente se niega a pagarte) o este maravilloso videotutorial de Xosé Castro. También es factible no usar delimitador para los millares de cinco dígitos o menos, como manda la RAE, haciendo modificaciones a los patrones, pero ahora no me apetece pensar cómo.
Por cierto, he creado una macro siguiendo los pasos de maese Castro, pero cambiando los puntos de millar por espacios finos (U+2009). Para importarla, en Word, dale a Alt+F11, File > Import File, selecciona .BAS, cierra Visual Basic. Para asignar un atajo de teclado (en Word 2007/2010), File > Options > Customize Ribbon > Choose commands from > Macros > escoje (Normal.NewMacros.)Localizarnúmeros > Keyboard shortcuts (Customize...) e introduce una combinación de teclado para ejecutar la macro. En Word 2003 o anteriores, tengo entendido que se accede a esta opción por Tools > Customize. Si sabes una forma menos farragosa de compartir una macro, avisa y actualizo la entrada.

¿Y tú? ¿Cómo te enfrentas a este problema? ¿Se te ha ocurrido otra solución? ¿Usas otro software distinto a Trados que sí está preparado para la norma actual en español? ¿Habrá llegado alguien a leer hasta aquí sin darle un telele?

Quiero agradecer a la ISO, por inventarse lo de los espacios en el Sistema Internacional, a la RAE, por añadir excepciones absurdas, a SDL, por no entender que los espacios también son delimitadores, y a Microsoft, por no dejar (ver nota al pie) usar el espacio adecuado como delimitador de millares y no aceptar un verdadero espacio duro como duro. A todos vosotros, gracias por hacerme la vida un poquito más difícil cada día.

* El espacio fino (U+2009) funciona como duro (200 y 000 no se separan a final de línea) en Word, mientras que en la mayoría de formatos no es duro. En WordPress, el gestor de webs más popular, por ejemplo, hay que usar el espacio duro angosto (U+202F), ya que U+2009 no sirve, como es lógico. Como curiosidad, la Configuración regional de Windows no acepta U+202F como delimitador válido y eso que es el espacio recomendado para los números. Microsoft, como siempre, se pasa los estándares por el forro.

10 comentarios:

  1. Ay, hijo, te dejo mi hombro para llorar, si quieres... Me has hecho sufrir :)

    Muchas gracias por tomarte la molestia de cagarte en todios por mí, así no lo tengo que hacer yo. Sí, a mí también me jode, pero un poco menos que a ti porque no tengo que hacer lo del control de calidad ese. Tampcoo me han tocado muchos archivos con millones de números como para que se me caiga el alma al suelo y tenga que volver a maldecir a la ISO, la RAE y el resto de amiguetes. Una vez sí que me pasó, que el traductor se pasó por el forro que había que cambiar los números y el lugar en el que hay que poner la divisa, de manera que me tuve que chupar dios sabe cuántas páginas de tablas donde tenía que cambiar £100000.00 por 100.000,00 £ (en aquel entonces, aún usábamos puntos para separar los millares). Pero llegó un momento en que lo hacía ya todo tan mecánico que no me importó. Ahora sí, te llego a conocer y te habría pedido esa macro tan magnífica que acabas de compartir. Gracias. A ver si tengo la oportunidad de probarla ;)

    ResponderEliminar
  2. Gracias por el hombro, sniff, sniff.

    No es que esté obligado a hacer un control de calidad; no tengo que entregar ningún registro que demuestre nada. Es que el control de calidad se puede hacer de dos formas: automatizado con poco esfuerzo y pocos errores o manual, es decir, a ojímetro. Es por mi propio bien.

    ResponderEliminar
  3. Hola, Jordi:

    Tío, pues tú dirás lo que quieras pero la entrada me parece de las más fructíferas que he leído. Es muy friqui, eso sí, pero se agradece enormemente porque he aprendido mucho.

    Leyendo esto me doy cuenta de todo lo que no sé -pero me encantaría aprender- sobre informática, pero no me veo capaz de conseguirlo ni en cien mil decenios. Por cierto, ¿cómo se puntuaría cien mil decenios? ¡Jajaja! :D

    ResponderEliminar
  4. Si no digo que la entrada no sea interesante ni inútil, lo que digo es que es compleja y lenta de digerir. Y no apta para cualquier público, claro. Ni siquiera explico que los U+[numerito] se refieren a puntos hexadecimales en tablas Unicode.

    Es normal que te dé la sensación de que te falta mucho por aprender sobre informática, sobre todo teniendo en cuenta que acabas de llegar a la isla. :) Se puede ser muy bien traductor y tener mucha experiencia y no entender (ni necesitarlo) nada de lo que expongo aquí. Pero ayuda ser consciente de las preguntas para poder indigar las respuestas.

    ResponderEliminar
  5. Hola Jordi:

    Y todo esto, para que luego te llegue el cliente y te diga "a mí me lo pones con puntos". XD

    En cualquier caso, muy interesante :)

    ResponderEliminar
  6. Estas cosillas de estilo hay que aclararlas antes de empezar, claro. Que luego vienen los lloros ;)

    ResponderEliminar
  7. Hola Jordi, muy interesante el artículo. ¿Sabes cómo se pone el espacio fino en SDLX?
    Muchas gracias!

    ResponderEliminar
    Respuestas
    1. Hola, Cristina. Yo ahora uso TypeItEasy, que es global para todo el sistema http://meteteme.blogspot.com.es/2012/10/synergy-typeiteasy-and-external-review.html

      Eliminar
  8. Muchas gracias, pero cómo sería la secuencia de teclas en SDLX o Word?

    ResponderEliminar
    Respuestas
    1. El espacio fino es Alt+8201. El espacio de no separación angosto es Alt+8239. Arriba tienes las diferencias entre los dos. Te recomiendo encarecidamente que enrutes caracteres especiales a combinaciones Alt+tecla con TypeItEasy o similar: te ahorras pulsaciones y no tienes que recordar nada.

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.