Las traducciones de etiquetas generadas por IA no funcionan perfectamente

Al desplazarme por las traducciones de etiquetas en alemán, noté una serie de problemas que parecen derivarse de que la IA carece de contexto: trata las etiquetas como palabras aisladas en lugar de referencias a características, complementos o componentes específicos de Discourse.

Nota: Los sustantivos alemanes siempre se escriben con mayúscula, pero las etiquetas en Meta son minúsculas. Por lo tanto, las traducciones en esta publicación tienen mayúsculas inconsistentes: me deslicé por hábito hacia la capitalización correcta del alemán.

Lo divertido primero

Antes de entrar en los problemas prácticos, algunas traducciones son simplemente entretenidas:

  • composer → “Komponist” - Esto se refiere a la persona que escribe música.
  • auto-bump → “automatische-erhöhung” - “aumento automático”.
  • fully-theme → “vollständig-thematisiert” - “tratado completamente”.
  • raspberry-pi → “Himbeere-pi” (“fresa” como la fruta).
  • post-voting → “nach-der-Abstimmung” - “después de la votación” (“post” leído como el prefijo latino, no como una publicación del foro).
  • tablet → “Tablette” - “pastilla” (el medicamento, no el dispositivo).

Misma traducción para diferentes etiquetas

Este es el problema más impactante en la práctica. Cuando dos etiquetas reciben la misma traducción, pierden su capacidad para distinguir temas entre sí.

  • year-in-review y yearly-review → “Jahresrückblick” - Actualmente, el nombre del complemento parece no ser traducible (veo el nombre en inglés en la barra lateral de administración y en la lista de complementos instalados), por lo que es probable que uses el término en inglés para referirte al nombre del complemento. Aunque espero que algún día todos los complementos tengan nombres traducidos, así que creo que añadiría “Metas” a la que agrupa los temas de revisión anual aquí para separarlos, así sería “Metas-Jahresrückblick” (revisión anual de Meta).
  • surveys y polls → “Umfragen” - Creo que las traducciones de ambos complementos son las mismas y hasta ahora nadie lo ha notado. Necesito pensar más en una buena solución para este caso porque también puede entrar fácilmente en conflicto con “voting” :exploding_head:
  • docs y documentation → “Dokumentación” - Al igual que “yearly-review docs” no se ha traducido al alemán, no traduciría la etiqueta (en este caso, una traducción en el futuro parece muy improbable).
  • how-to y tutorial → “Anleitung” - Este ya se ha corregido. Encontré esta traducción de https://diataxis.fr/ y sugerí el término[1] utilizado allí).

Sustantivos propios y nombres de productos que no deben traducirse

Algunas etiquetas se refieren a herramientas, marcos de trabajo o productos específicos. Traducirlos hace que la función sea irreconocible.

  • raspberry-pi → “Himbeere-pi” (“fresa” como la fruta).
  • mermaid → “Meerjungfrau” (“sirena” como la criatura mitológica, no la herramienta de diagramación).
  • ember → “Glut” (brasas brillantes de un fuego).
  • vanilla → “Vanille” (el sabor).
  • onebox → “einzige-box” - “única caja”.
  • intercom → “Gegensprechanlage” (un interfono como el timbre de una puerta, aunque intercom-widget se tradujo correctamente).
  • passkey → “Passwort” - “contraseña” (una passkey específicamente no es una contraseña).
  • perspective-api → “Perspektiven-api”.
  • backups → “Sicherungen”.
  • design-experiment → “Experimententwurf” - puede ser “design-experiment” pero también “experimento de borrador”; pensaría en este último porque para el primero habría mantenido “design” y hablar de borradores es bastante común en Discourse.

Traducciones de “Discourse”

La mayoría de las etiquetas que se refieren a “Discourse” se tradujeron de modo que ya no incluyen el nombre del software. Una excepción es discourse-hub.

“Theme” traducido sistemáticamente como “Thema” (tema)

Este es un problema sistemático en todas las etiquetas relacionadas con temas. En alemán, tanto “theme” como “topic” se traducen como “Thema”, pero en el contexto de Discourse son cosas muy diferentes. Esto hace que las etiquetas de temas se lean como si se refirieran a temas de discusión específicos.

Esto afecta a todas las etiquetas del grupo Official Themes.

Traducciones donde faltaba contexto

  • composer → “Komponist” - Esto es la persona que escribe música, en comparación con el campo de entrada que usualmente llamamos “Editor” en alemán.
  • tablet → “Tablette” - “pastilla” o “tableta”.
  • copy-post → “kopierbeitrag” - “tasa de copia” (El problema es la combinación de palabras. “Beitrag” para post es correcto, pero como copy no se tradujo como verbo, se lee como si Beitrag se usara con el significado de tasa aquí).

Sustantivo o verbo

Algunas características se tradujeron como verbos en lugar de sustantivos.

  • chat → “plaudern” - “chatear”.
  • search → “suchen” - “buscar”.

“post” leído como el prefijo latino, no como una publicación del foro

  • post-voting → “nach-der-Abstimmung” - “después de la votación”.
  • post-badges → “nach-Abzeichen” - “después de insignias”.

Resultados de etiquetas en inglés no muy claras

  • hosted-support → “gehosteter-support” (Esto se lee como soporte alojado en lugar de soporte para clientes alojados).

Abreviatura

  • pm-dropdown (igual en alemán) sin contexto, la “m” (message) no se reemplazó por “n” (Nachricht).

Traducciones que no coinciden con la terminología de la propia interfaz de Discourse

Estas traducciones son alemán técnicamente correcto, pero la propia interfaz de usuario de Discourse usa términos diferentes. Esto hace que las etiquetas sean más difíciles de encontrar de forma intuitiva, especialmente para usuarios que navegan según el idioma de la interfaz.

  • impersonate → “nachahmen” - “imitar” (pero la interfaz usa Nutzersicht o Nutzerrolle).
  • staged-users → “Staging-Benutzer” (pero la interfaz dice vorbereitete Benutzer).
  • advertising → “Werbung” (pero la interfaz se refiere a Anzeigen).
  • assign → “zuweisen” (pero la traducción del complemento usa zuordnen).
  • hot-topics → “Top-Themen” (esto se tradujo como “temas principales”, que en realidad es una lista diferente en Discourse).
  • read-only → “nur lesbar”.
  • bootstrap-mode → “Bootstrap-Modus” (pero los traductores eligieron originalmente Starthilfemodus).
  • post-notices → “Nachrichten” - “mensajes/noticias” (puede ser engañoso porque los mensajes son una función diferente, “official notice” usa Mitteilung en la interfaz).
  • about-page → “über-Seite” (Esta es una traducción literal. Pero usualmente la traducción al alemán es algo como “página de nosotros” o “página sobre nosotros”. Über no solo significa “sobre” sino también “encima”).
  • auto-bump → “automatische-erhöhung” - “aumento automático”.
  • tags → “Etiketten” (pero tag-groups y la mayoría de las etiquetas que contienen “tag” usan “tag”, el término usado en Crowdin es Schlagwort).

Traducciones truncadas

Este es un tipo diferente de problema: no es un error de traducción, sino una consecuencia de que los sustantivos compuestos alemanes son significativamente más largos que sus equivalentes en inglés, combinado con el límite de caracteres de las etiquetas.

  • content-security-policy → “inhalts-sicherheitsrichtl” (cortado, debería ser inhalts-sicherheitsrichtlinie).
  • ai-custom-prompt → “ai-benutzerdefinierte-auf” (cortado a mitad de palabra, debería ser ai-benutzerdefinierte-aufforderung).
  • custom-category-boxes → “benutzerdefinierte-katego” (cortado a mitad de palabra, debería ser benutzerdefinierte-kategorie-boxen; en este caso, “box” falta por completo en la traducción).

Las etiquetas que contienen “custom” se vuelven fácilmente demasiado largas porque “benutzerdefiniert” es una palabra bastante larga.

más ejemplos

Estos ejemplos sugieren que el proceso de traducción necesita más contexto: idealmente saber a qué complemento o característica pertenece una etiqueta y tener acceso a las traducciones existentes de la interfaz de Discourse como referencia. Estoy encantado de saber si otros han notado patrones similares en otros idiomas.


@nat (a petición personal)


  1. Lernunterlagen ↩︎

2 Me gusta

Gracias @Moin, lo revisaré y mejoraré nuestras indicaciones :smiling_face:

También, LOL

Gracias por las risas :hugs:

2 Me gusta

@nat ¿y si le damos al agente acceso a la herramienta de lectura, para que pueda recopilar el contexto por sí mismo?

Sería demasiado costoso para las publicaciones, pero bastante económico y aumentaría la calidad en todos los modelos para casos puntuales como etiquetas y categorías.

1 me gusta

Hmm, esa es una buena idea @falco.

Otra forma que había considerado era pasar la descripción de la etiqueta como contexto adicional al traducir el nombre de la etiqueta. Quizás esta forma sea más predecible, ¿qué opinas?

2 Me gusta

Tener acceso al glosario en Crowdin podría ser muy útil para el bot que realiza la traducción (no para todos los sitios, pero especialmente para Meta). Si se indica allí que traducimos “composer” como “Editor” y la IA lo sabe, podría utilizarlo en etiquetas, pero también en títulos de temas y publicaciones.

En una ocasión corregí “composer” en Introducing our new composer, making writing on Discourse easier than ever, lo que generó mi retroalimentación sobre la edición de traducciones aquí: Feedback on the composer when translating a post to German. Sin embargo, el tema fue editado después de que lo hice, y no parece que la traducción anterior se utilice como contexto, por lo que la publicación vuelve a decir “composer”. (El autor de música usualmente no aparece en las publicaciones; solo textos más cortos como títulos de temas y etiquetas.)

En Meta, la descripción a menudo no aporta mucho contexto. Todas las de los componentes de temas, por ejemplo, simplemente contienen un enlace al tema del componente, no la descripción breve del principio del tema.

¡Buena idea, hagamos ambas cosas!

La idea es utilizar Meta como un banco de pruebas y un proxy de lo que nuestros clientes podrían encontrar en el mundo real, para mejorar la función para todos.

Obtener una traducción perfecta en Meta sería muy sencillo simplemente usando el LLM más costoso y dándole acceso a herramientas como el acceso al código fuente y la búsqueda web.

No creo que ningún modelo elija las mismas traducciones para Meta que las que los traductores alemanes utilizaron para la interfaz de Discourse. “Mitarbeiter” es una traducción perfecta para “staff”. El hecho de que algunos traductores decidieran hace años que no se ajusta a los foros de afición pequeños, donde “staff” implica empleados remunerados, y por lo tanto eligieron “Team”, es algo que ninguna IA adivinará, ya que simplemente no es la traducción correcta. Aquí es exactamente donde ayudaría el glosario de Crowdin: sin él, los términos generados por IA nunca coincidirán con lo que los administradores ven realmente en la interfaz; no porque la IA no pueda traducir, sino porque no toma las mismas decisiones de localización que tomaron los traductores humanos. Es la diferencia entre traducción y localización.
Y eso es similar con otros términos como “bootstrap mode” o “impersonation”.