Las traducciones de etiquetas generadas por IA no funcionan perfectamente

Al desplazarse por las traducciones de etiquetas en alemán, noté una serie de problemas que parecen originarse en la falta de contexto de la IA: trata las etiquetas como palabras aisladas en lugar de referencias a funciones específicas de Discourse, complementos o componentes.

Nota: En alemán, los sustantivos siempre se escriben con mayúscula, pero las etiquetas en meta se escriben en minúscula. Por lo tanto, las traducciones en este post tienen una capitalización inconsistente; por hábito, me he permitido escribir correctamente las mayúsculas en alemán.

Empecemos por lo más divertido

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

  • composer → “Komponist” - Esto es la persona que compone música
  • auto-bump → “automatische-erhöhung” - “aumento automático”
  • fully-theme → “vollständig-thematisiert” - “completamente tratado” (en el sentido de abordar un tema)
  • raspberry-pi → “Himbeere-pi” (“raspberry” como la fruta)
  • post-voting → “nach-der-Abstimmung” - “después de la votación” (“post” se interpretó como el prefijo latino, no como una publicación de 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 obtienen la misma traducción, pierden su capacidad de distinguir temas entre sí.

  • year-in-review & 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 utilices 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, creo que añadiría “Metas” al que agrupa los temas de revisión anual aquí para separarlos, de modo que sería “Metas-Jahresrückblick” (la revisión anual de los metas)
  • surveys & polls → “Umfragen” - Creo que las traducciones de ambos complementos son iguales y hasta ahora nadie lo ha notado. Necesito pensar más en una buena solución para esto porque también puede entrar en conflicto fácilmente con “voting” :exploding_head:
  • docs & documentation → “Dokumentation” - Al igual que los documentos de yearly-review no se han traducido al alemán, no traduciría la etiqueta (en este caso, una traducción en el futuro parece muy improbable)
  • how-to & tutorial → “Anleitung” - Este ya ha sido corregido. Encontré esta traducción de https://diataxis.fr/ y sugerí el término[1] utilizado allí)

Nombres propios y nombres de productos que no deberían 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” (“raspberry” como la fruta)
  • mermaid → “Meerjungfrau” (“sirena” como la criatura mitológica, no la herramienta de diagramación)
  • ember → “Glut” (brasas ardientes de un fuego)
  • vanilla → “Vanille” (el sabor)
  • onebox → “einzige-box” - “caja única”
  • intercom → “Gegensprechanlage” (un intercomunicador como un timbre de puerta - aunque intercom-widget se tradujo correctamente)
  • passkey → “Passwort” - “contraseña” (una passkey es específicamente no una contraseña)
  • perspective-api → “Perspektiven-api”
  • backups → “Sicherungen”
  • design-experiment → “Experimententwurf” - puede ser “diseño-experimento” pero también “borrador de experimento”, pensaría en lo segundo 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 consistentemente como “Thema” (tema de discusión)

Este es un problema sistemático en todas las etiquetas relacionadas con temas (themes). 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 tema se lean como si se trataran de temas de discusión específicos.

Esto afecta a todas las etiquetas en el grupo Official Themes.

Traducciones donde faltaba el contexto

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

Sustantivo o verbo

Algunas funciones se tradujeron como verbos en lugar de sustantivos

  • chat → “plaudern” - “charlar”
  • search → “suchen” - “buscar”

“post” leído como el prefijo latino, no como una publicación de 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ó con n (Nachricht)

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

Estas traducciones son técnicamente correctas en alemán, pero la propia interfaz de Discourse utiliza términos diferentes. Esto hace que las etiquetas sean más difíciles de encontrar intuitivamente, especialmente para los usuarios que navegan por el idioma de la interfaz.

  • impersonate → “nachahmen” - “imitar” (pero la interfaz utiliza 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 utiliza 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” utiliza Mitteilung en la interfaz)
  • about-page → “über-Seite” (Esta es una traducción literal. Pero normalmente la traducción al alemán es algo así como “página sobre nosotros”. Über no significa solo 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 utilizan “tag”, el término utilizado 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 en alemán sean 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 la palabra 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 función pertenece una etiqueta, y tener acceso a las traducciones existentes de la interfaz de Discourse como referencia. Estaré encantado de escuchar si otros han notado patrones similares en otros idiomas.


@nat (solicitud personal)


  1. Lernunterlagen ↩︎

8 Me gusta

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

También, LOL

Gracias por las risas :hugs:

5 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.

4 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?

4 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.

1 me gusta

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”.

Lo haría, ya que tendría acceso a esa misma opción en los archivos config/locales/**/*.yml como referencia.

Definitivamente, y para grupos enumerables pequeños, como categorías y etiquetas, dar al agente acceso a las traducciones existentes, que forman parte del código fuente, ayudaría a fundamentar sus respuestas.

No podemos hacer eso para las publicaciones, ya que el costo sería demasiado alto, pero es una opción para sitios más pequeños o clientes con presupuestos de traducción más amplios.

Entonces, quizás deberías desactivar la traducción por IA para #documentación y #noticias-y-eventos:anuncios :wink: No creo que sea posible garantizar que esas traducciones sean útiles, especialmente porque las ediciones sugeridas no reactivan el tema, por lo que no hay una manera fácil de notar que un tema se ha actualizado.

En general, el costo es la razón por la que sugerí usar el glosario en lugar de los archivos que contienen todas las traducciones, ya que esperaría que eso incluyera las opciones más relevantes una sola vez, sin añadir todo el texto.

Así no funciona; el agente puede buscar en el código fragmentos con coincidencias y nunca carga todo el contenido en el contexto.

Eso es un poco como tirar al bebé con el agua de la bañera, ¿verdad?

Acabo de revisar Calendar subscription URLs for external calendar apps en PT-BR y la traducción se ve excelente, mucho mejor que no tener nada.

Siempre habrá mejoras por hacer en un flujo de trabajo de traducción automática no supervisada, y @nat ya lo ha mejorado hoy gracias a tus comentarios.

Nadie espera que sea perfecto, y Meta es un lugar donde podemos adoptar funciones tempranamente y mostrar lo que es posible en Discourse para nuestros usuarios y clientes.

Hola equipo,

¿Cómo puedo desactivar las etiquetas específicas generadas por las traducciones de IA en Discourse?

Considero que la calidad de estas etiquetas traducidas por IA es inconsistente, por lo que me gustaría desactivarlas de forma independiente.

Gracias.

En este momento, las traducciones con IA no están limitadas por tipo de modelo; al activarlas, se habilitan para temas, publicaciones, categorías y etiquetas.

Mi sugerencia sería editar las traducciones de las etiquetas directamente en la configuración de etiquetas. Lo haces una vez y nunca más tendrás que hacerlo.

Alternativamente, también puedes actualizar el prompt utilizado por el agente Traductor de texto corto.

1 me gusta

¿Puedes ayudarme a identificar las traducciones de etiquetas que han mejorado desde que escribí este tema?

Las etiquetas mencionadas por el autor original (y algunas más) deberían manejarse ahora en meta. Gracias por la lista muy exhaustiva, facilitó mucho la tarea y debería haberlo hecho antes :blush:

En cuanto a pasar más contexto al traductor de etiquetas, todavía tomará algún tiempo, ya que por el momento no es una prioridad alta.

2 Me gusta