Recuerdo la primera vez que participé en un proyecto de localización de software. Me asignaron la traducción de la interfaz de usuario de un sistema informático industrial utilizando una complicada herramienta de localización de software. No tenía ningún problema con los aspectos técnicos, pero traducir una interfaz de usuario era algo nuevo para mí y la tarea resultó ser un verdadero reto.
De hecho, el estilo de los textos no me resultaba tan extraño. Como tengo ciertos conocimientos de informática, conocía bien el lenguaje «informático» que se utiliza habitualmente en el software (aunque, bajo la influencia de los chatbots y las interfaces de voz, mi opinión ha cambiado radicalmente desde entonces). Lo que realmente me desconcertaba eran estas piezas de aspecto extraño: {0}, %d, %setup% y $stop$. No tenía ni idea de lo que significaban ni de si las palabras atrapadas entre los símbolos debían traducirse o no, por lo que en poco tiempo cometí muchos errores. Los caracteres de nueva línea, representados como \n, fueron el golpe definitivo a mi confianza. Nunca los había visto antes y lo peor era que a menudo se fusionaban con otras palabras. Por si la situación no fuera ya lo suficientemente ridícula, el texto estaba en alemán, lo que hacía muy difícil saber si \nein debía ser «nein» o «\n» + «ein». El director del proyecto debió de arrepentirse de haberme asignado esa tarea a mí, un novato, después de que le bombardease con preguntas. Puede que incluso se desahogase en Twitter.
Descubrir que los marcadores de posición de los archivos traducidos para un proyecto urgente han desaparecido por arte de magia. #PMproblems #StartPanicking
— Lau Velázquez (@geekylau) 9 de octubre de 2013
Los traductores que traducen el marcador de posición $DepartureTime$ por $HeureDépart$ simplemente son coherentes.
— Olivier Oswald (@ooswald) 27 de julio de 2011
Los traductores que traducen el marcador de posición $Departure Time$ como $HeureDépart$ solo son coherentes.
Ese momento en el que un traductor decide cambiar el tipo de comillas y la mitad de las variables del juego desaparecen.
— Vojtěch Schubert (@falagor)12 de enero de 2016
Años más tarde, los recuerdos de mi primera experiencia me hacen sonreír. No hace falta decir que siempre dedico tiempo a explicar a los traductores cómo funcionan las variables. Y la mejor manera de evitar errores y ahorrar tiempo para ti y tu equipo es utilizar expresiones regulares. Se pueden utilizar para convertir las variables en objetos no editables y fácilmente rastreables. En diferentes programas, estos objetos se denominan de diferentes maneras. En Smartcat nos gusta llamarlos marcadores de posición. Y si se pregunta qué son las expresiones regulares, no tienen nada que ver con la charla trivial. Son patrones que se utilizan para emparejar y manipular combinaciones de caracteres. Para aprender sobre expresiones regulares no se necesitan conocimientos de programación. Haga clic en esta sencilla presentación realizada por Thomas Vackier, experto en localización de Yamagata Europe, para familiarizarse con lo que es regex (abreviatura de «expresión regular»).
Los símbolos misteriosos
Como ejemplo rápido, tomemos unas líneas de una canción llamada I’m Gonna Be (500 miles) de The Proclaimers:
Pero caminaría 500 millas Y caminaría 500 más Solo para ser el hombre que caminó mil millas Para caer a tus pies
Digamos que queremos que esta letra cambie cada vez que el oyente viaje a un lugar diferente. Para ello, necesitaremos variables:
Pero caminaría %$1s millas Y caminaría %$2s más Solo para ser el hombre que caminó {spelled-number} millas Para caer a tus pies en {location}
¿Qué peligros acechan aquí? Los caracteres importantes pueden borrarse o utilizarse incorrectamente. Los dígitos de %$1s deben seguir un patrón secuencial y «spelled-number» y «location» no deben traducirse. Por desgracia, no todo el mundo lo sabe.
«Pero, ¿por qué no contratar a un traductor experto en lugar de tener que lidiar con todo este lío de novatos?», se preguntará alguien. Sean cuales sean las razones reales, vale la pena recordar que nadie nace siendo un profesional de la localización, pero cualquiera que haya dado sus primeros pasos con dificultad y haya adquirido una experiencia invaluable en el proceso puede convertirse en uno.
A prueba de novatos, o cómo salvar el mundo
Entonces, ¿qué podemos hacer para evitar que se produzcan desastres y ahorrarnos tiempo de edición? Describamos las variables utilizando expresiones regulares:
Para variables con números consecutivos: %\$\ds
Para variables entre llaves: \{.+?\}
Personalmente, encuentro esta hoja de referencia muy útil para componer expresiones regulares, y regex101.com es una excelente herramienta en línea que recomiendo para realizar pruebas. Ahora subamos el archivo que contiene las variables a Smartcat. Esto es lo que veremos:
Cometer un solo error aquí puede tener consecuencias muy desafortunadas. Pueden producirse errores al enviar los pedidos desde el almacén, y la instalación adecuada también puede resultar problemática. El cliente sufrirá pérdidas o, lo que es peor, los datos incorrectos pueden causar problemas técnicos que, a su vez, pueden provocar una catástrofe medioambiental. Los marcadores de posición no se traducen, solo deben transferirse de forma segura al idioma de destino, así que ¿por qué perder el tiempo con ellos? Busquemos todos los códigos de pedido utilizando esta elegante expresión regular [A-Z]{2}\d{4}\-\d{4} y convirtámoslos mágicamente en elementos no editables:
Fyodor Bezrukov, director ejecutivo de Logrus IT (oficina de Kiev)
«El uso de marcadores de posición y etiquetas en formatos de documentos es una tarea habitual en nuestro trabajo. Son de gran ayuda cuando los clientes envían archivos Excel que contienen marcas HTML o XML. Gracias a la compatibilidad con marcadores de posición y expresiones regulares en Smartcat, ahora es mucho más fácil y cómodo manejar este tipo de recursos».
Marina Ilyinykh, directora de localización en Bookmate
«Utilizamos mucho las variables y el formato en las interfaces de usuario de nuestras aplicaciones. Sustituir las etiquetas y variables por marcadores de posición nos permite realizar comprobaciones automáticas de coherencia y proteger datos importantes, como precios, fechas de suscripción y enlaces».
Yannis Evangelou, director ejecutivo de lexiQA, compartió sus sentimientos encontrados:
Yannis Evangelou, director ejecutivo de lexiQA
«Hay un problema común entre los traductores que traducen el texto dentro de marcadores de posición, tokens y etiquetas. Los caracteres de escape también se suelen ignorar. La mayoría de ellos no son conscientes de que no se trata de unidades léxicas traducibles. Los gestores de proyectos tampoco lo saben. Sin embargo, este tipo de negligencia puede provocar errores críticos. Un traductor me contó una vez que tuvo que trabajar con un texto que incluía formato HTML y que tradujo la línea <p style="border: 1px solid red;"></p> como <π στυλ="περίγραμμα: 1 πίξελ συμπαγές κόκκινο;"></π>. Argumentó que tal vez el desarrollador que lo utilizaría no hablaba inglés. La gestora de proyectos no lo corrigió porque pensó que el razonamiento del traductor era... ¡razonable!».
Entonces, Rolf Klischewski, experto en localización de videojuegos, intervino:
«Los traductores de videojuegos a menudo tienen que lidiar con cosas como esta:
Y, por supuesto, hay todo tipo de problemas relacionados con ello.
Aquí, el problema es que algunos destinos requieren un artículo. Por lo tanto, es «las Bahamas», pero «Barbados». O en alemán es «die Schweiz» para «Suiza». En casos como estos, a menudo rechazamos el proyecto. Normalmente, aconsejaría a los clientes que cambiaran su motor de texto porque no quiero entregar basura. Los desarrolladores suelen preguntar: «¿Es realmente un problema tan grave?». Y, bueno, no, porque se puede jugar al juego. Entonces, ¿cómo manejar estos problemas? Díselo al cliente, explícale el problema. Si no pueden o no quieren arreglar el motor y necesitas el dinero, haz el trabajo, pero asegúrate de que no te den crédito.
Suscríbete a nuestro boletín




