Traduções de tags geradas por IA não funcionam perfeitamente

Ao rolar pelas traduções de tags em alemão, notei uma série de problemas que parecem decorrer da falta de contexto da IA: ela trata as tags como palavras isoladas, em vez de referências a recursos, plugins ou componentes específicos do Discourse.

Nota: Substantivos em alemão são sempre capitalizados, mas as tags no meta estão em minúsculas. As traduções neste post, portanto, estão com capitalização inconsistente — eu continuei escorregando para a capitalização alemã correta por hábito.

A parte divertida primeiro

Antes de entrar nos problemas práticos, algumas traduções são simplesmente divertidas:

  • composer → “Komponist” - Esta é a pessoa que escreve música
  • auto-bump → “automatische-erhöhung” - “aumento automático”
  • fully-theme → “vollständig-thematisiert” - “totalmente abordado”
  • raspberry-pi → “Himbeere-pi” (“raspberry” como na fruta)
  • post-voting → “nach-der-Abstimmung” - “após a votação” (“post” lido como o prefixo latino, não como uma postagem de fórum)
  • tablet → “Tablette” - “pílula” (o medicamento, não o dispositivo)

Mesma tradução para tags diferentes

Este é o problema mais impactante na prática. Quando duas tags recebem a mesma tradução, elas perdem a capacidade de distinguir tópicos uns dos outros.

  • year-in-review & yearly-review → “Jahresrückblick” - Atualmente, o nome do plugin parece não ser traduzível (vejo o nome em inglês na barra lateral de administração e na lista de plugins instalados), então é provável que você usasse o termo em inglês para se referir ao nome do plugin. Embora eu espere que um dia todos os plugins tenham nomes traduzidos, então acho que eu adicionaria “Metas” àquele que agrupa os tópicos de revisão anual aqui para separá-los, então seria “Metas-Jahresrückblick” (revisão anual do Meta)
  • surveys & polls → “Umfragen” - Acho que as traduções de ambos os plugins são as mesmas e até agora ninguém percebeu. Preciso pensar mais em uma boa solução para esta, pois também pode facilmente entrar em conflito com “votação” :exploding_head:
  • docs & documentation → “Dokumentation” - Assim como yearly-review docs não foi traduzido para o alemão, eu não traduziria a tag (neste caso, uma tradução no futuro parece muito improvável)
  • how-to & tutorial → “Anleitung” - Este já foi corrigido. Encontrei esta tradução de https://diataxis.fr/ e sugeri o termo[1] usado lá)

Substantivos próprios e nomes de produtos que não devem ser traduzidos

Algumas tags referem-se a ferramentas, frameworks ou produtos específicos. Traduzi-los torna o recurso irreconhecível.

  • raspberry-pi → “Himbeere-pi” (“raspberry” como na fruta)
  • mermaid → “Meerjungfrau” (“sereia” como na criatura mitológica, não na ferramenta de diagramação)
  • ember → “Glut” (brasa brilhante de uma fogueira)
  • vanilla → “Vanille” (o sabor)
  • onebox → “einzige-box” - “única caixa”
  • intercom → “Gegensprechanlage” (um interfone como um campainha de porta - embora intercom-widget tenha sido traduzido corretamente)
  • passkey → “Passwort” - “senha” (uma passkey é especificamente não uma senha)
  • perspective-api → “Perspektiven-api”
  • backups → “Sicherungen”
  • design-experiment → “Experimententwurf” - pode ser “design-experiment” mas também “experimento de rascunho”, eu pensaria no último porque para o primeiro eu teria mantido “design” e falar sobre rascunhos é bastante comum no Discourse.

Traduções de “Discourse”

A maioria das tags que se referem a “Discourse” foi traduzida de modo que não incluam mais o nome do software. Uma exceção é discourse-hub.

“Theme” consistentemente mal traduzido como “Thema” (tópico)

Este é um problema sistemático em todas as tags relacionadas a temas. Em alemão, tanto “theme” quanto “topic” se traduzem como Thema, mas no contexto do Discourse são coisas muito diferentes. Isso faz com que as tags de tema pareçam ser sobre tópicos específicos de discussão.

Isso afeta todas as tags no grupo Temas Oficiais.

Traduções onde o contexto estava faltando

  • composer → “Komponist” - Esta é a pessoa que escreve música, comparado ao campo de entrada que geralmente chamamos de “Editor” em alemão.
  • tablet → “Tablette” - “pílula” ou “tablete”.
  • copy-post → "kopierbeitrag” - “taxa de cópia” (O problema é a combinação das palavras. “Beitrag” para postagem está correto, mas como copy não foi traduzido como verbo, lê-se como se Beitrag fosse usado no sentido de taxa aqui)

Substantivo ou verbo

Alguns recursos foram traduzidos como verbos em vez de substantivos

  • chat → “plaudern” - “conversar”
  • search → “suchen” - “pesquisar”

“post” lido como o prefixo latino, não como uma postagem de fórum

  • post-voting → “nach-der-Abstimmung” - “após a votação”
  • post-badges → “nach-Abzeichen” - “após-abadges”

Resultados de tags em inglês não tão claras

  • hosted-support → “gehosteter-support” (Isso lê-se como suporte sendo hospedado em vez de suporte para clientes hospedados)

Abreviação

  • pm-dropdown (o mesmo em alemão) sem contexto m (message) não foi substituído por n (Nachricht)

Traduções que não correspondem à terminologia própria da interface do Discourse

Essas traduções são alemão tecnicamente correto, mas a própria interface do Discourse usa termos diferentes. Isso torna as tags mais difíceis de encontrar intuitivamente, especialmente para usuários que navegam pelo idioma da interface.

  • impersonate → “nachahmen” - “imitar” (mas a interface usa Nutzersicht ou Nutzerrolle)
  • staged-users → “Staging-Benutzer” (mas a interface diz vorbereitete Benutzer)
  • advertising → “Werbung” (mas a interface refere-se a Anzeigen)
  • assign → “zuweisen” (mas a tradução do plugin usa zuordnen)
  • hot-topics → “Top-Themen” (isso foi traduzido como “top topics”, que na verdade é uma lista diferente no Discourse)
  • read-only → “nur lesbar”
  • bootstrap-mode → “Bootstrap-Modus” (mas os tradutores originalmente escolheram Starthilfemodus)
  • post-notices → “Nachrichten” - “mensagens/notícias” (pode ser enganoso porque mensagens são um recurso diferente, “aviso oficial” usa Mitteilung na interface)
  • about-page → “über-Seite” (Esta é uma tradução literal. Mas geralmente a tradução alemã é algo como “página sobre nós”. Über não significa apenas sobre, mas também acima.)
  • auto-bump → “automatische-erhöhung” - “aumento automático”
  • tags → “Etiketten” (mas tag-groups e a maioria das tags contendo tag usam “tag”, o termo usado no Crowdin é Schlagwort)

Traduções truncadas

Este é um tipo diferente de problema - não um erro de tradução, mas uma consequência de substantivos compostos alemães serem significativamente mais longos do que seus equivalentes em inglês, combinados com o limite de caracteres da tag.

  • content-security-policy → “inhalts-sicherheitsrichtl” (cortado, deveria ser inhalts-sicherheitsrichtlinie)
  • ai-custom-prompt → “ai-benutzerdefinierte-auf” (cortado no meio da palavra, deveria ser ai-benutzerdefinierte-aufforderung)
  • custom-category-boxes → “benutzerdefinierte-katego” (cortado no meio da palavra, deveria ser benutzerdefinierte-kategorie-boxen, neste caso box está totalmente ausente da tradução)

Tags contendo “custom” facilmente ficam longas demais porque “benutzerdefiniert” é uma palavra bastante longa.

mais exemplos

Estes exemplos sugerem que o processo de tradução precisa de mais contexto - idealmente sabendo a qual plugin ou recurso uma tag pertence e tendo acesso às traduções existentes da interface do Discourse como referência. Fico feliz em ouvir se outros notaram padrões semelhantes em outros idiomas.


@nat (a pedido pessoal)


  1. Lernunterlagen ↩︎

2 curtidas

Obrigado @Moin, vou investigar isso e melhorar nossos prompts :smiling_face:

Também, kkkk

Obrigado pelas risadas :hugs:

2 curtidas

@nat, e se dermos ao agente acesso à ferramenta de leitura, para que ele possa reunir o contexto sozinho?

Seria muito caro para posts, mas seria relativamente barato e aumentaria a qualidade em todos os modelos para casos únicos, como tags e categorias.

1 curtida

Hmm, essa é uma boa ideia @falco.

Outra maneira que considerei foi passar a descrição da tag como contexto adicional ao traduzir o nome da tag. Talvez essa abordagem seja mais previsível, o que você acha?

2 curtidas

Ter acesso ao glossário no Crowdin poderia ser muito útil para o bot que realiza a tradução (não para todos os sites, mas especialmente para o Meta). Se estiver registrado lá que traduzimos “composer” como “Editor”, e a IA souber disso, ela poderia usar isso em tags, mas também em títulos de tópicos e posts.

Eu já corrigi “composer” em Introducing our new composer, making writing on Discourse easier than ever, o que resultou no meu feedback sobre edição de traduções aqui: Feedback on the composer when translating a post to German, mas o tópico foi editado após eu fazer isso, e parece que a tradução anterior não é usada como contexto, então o post diz “composer” novamente. (O autor de música geralmente não aparece em posts; apenas textos mais curtos como títulos de tópicos e tags.)

No Meta, a descrição frequentemente não adiciona muito contexto. Todas as descrições para componentes de tema, por exemplo, contêm simplesmente um link para o tópico do componente, e não a descrição curta do início do tópico.

Ótima ideia, vamos fazer os dois!

A ideia é usar o Meta como um ambiente de testes e um proxy para o que nossos clientes podem encontrar no mundo real, aprimorando assim o recurso para todos.

Obter uma tradução perfeita no Meta seria super fácil, bastaria usar o LLM mais caro e dar a ele acesso a ferramentas como acesso ao código-fonte e pesquisa na web.

Não acho que nenhum modelo escolheria as mesmas traduções para o Meta que os tradutores alemães escolheram. “Mitarbeiter” é uma tradução perfeita para “staff”. O fato de alguns tradutores terem decidido, anos atrás, que essa palavra não se encaixa em fóruns de hobby pequenos — onde “staff” implica funcionários remunerados — e, portanto, optaram por “Team”, é algo que nenhuma IA vai adivinhar, simplesmente porque não é a tradução correta. É exatamente aqui que o glossário do Crowdin ajudaria: sem ele, os termos gerados por IA nunca corresponderão ao que os administradores veem na interface — não porque a IA não consiga traduzir, mas porque ela não toma as mesmas decisões de localização que os tradutores humanos. É a diferença entre tradução e localização.
E isso é semelhante com outros termos, como “bootstrap mode” ou “impersonation”.