Le traduzioni di tag generate dall'IA non funzionano perfettamente

Scorrendo le traduzioni dei tag in tedesco, ho notato una serie di problemi che sembrano derivare dalla mancanza di contesto da parte dell’IA: essa tratta i tag come parole isolate piuttosto che come riferimenti a specifiche funzionalità, plugin o componenti di Discourse.

Nota: i sostantivi tedeschi si scrivono sempre con la maiuscola, ma i tag su Meta sono in minuscolo. Le traduzioni in questo post sono quindi capitalizzate in modo incoerente: ho continuato a usare involontariamente la corretta capitalizzazione tedesca per abitudine.

La parte divertente, prima di tutto

Prima di entrare nei problemi pratici, alcune traduzioni sono semplicemente divertenti:

  • composer → “Komponist” - Questo è la persona che compone musica
  • auto-bump → “automatische-erhöhung” - “aumento automatico”
  • fully-theme → “vollständig-thematisiert” - “completamente affrontato”
  • raspberry-pi → “Himbeere-pi” (“raspberry” inteso come il frutto)
  • post-voting → “nach-der-Abstimmung” - “dopo il voto” (“post” è stato letto come il prefisso latino, non come un messaggio del forum)
  • tablet → “Tablette” - “compressa” (il farmaco, non il dispositivo)

Stessa traduzione per tag diversi

Questo è il problema più impattante nella pratica. Quando due tag ottengono la stessa traduzione, perdono la capacità di distinguere gli argomenti tra loro.

  • year-in-review & yearly-review → “Jahresrückblick” - Attualmente il nome del plugin sembra non essere traducibile (vedo il nome in inglese nella barra laterale dell’amministrazione e nell’elenco dei plugin installati), quindi è probabile che tu useresti il termine inglese per riferirti al nome del plugin. Sebbene spero che un giorno tutti i plugin abbiano nomi tradotti, penso che aggiungerei “Metas” a quello che raggruppa gli argomenti del revisione annuale qui per separarli, quindi sarebbe “Metas-Jahresrückblick” (la revisione annuale di Meta)
  • surveys & polls → “Umfragen” - Penso che le traduzioni di entrambi i plugin siano le stesse e finora nessuno se n’è accorto. Devo pensare a una buona soluzione per questo caso perché può anche entrare facilmente in conflitto con “voting” :exploding_head:
  • docs & documentation → “Dokumentation” - Proprio come yearly-review, docs non è stato tradotto in tedesco, quindi non tradurrei il tag (in questo caso una traduzione in futuro sembra molto improbabile)
  • how-to & tutorial → “Anleitung” - Questo è già stato corretto. Ho trovato questa traduzione di https://diataxis.fr/ e ho suggerito il termine[1] usato lì)

Nomi propri e nomi di prodotti che non dovrebbero essere tradotti

Alcuni tag si riferiscono a strumenti, framework o prodotti specifici. Tradurli rende la funzionalità irriconoscibile.

  • raspberry-pi → “Himbeere-pi” (“raspberry” inteso come il frutto)
  • mermaid → “Meerjungfrau” (“mermaid” inteso come la creatura mitologica, non lo strumento per diagrammi)
  • ember → “Glut” (braci ardenti da un fuoco)
  • vanilla → “Vanille” (il sapore)
  • onebox → “einzige-box” - “unica casella”
  • intercom → “Gegensprechanlage” (un citofono come un campanello alla porta - sebbene intercom-widget sia stato tradotto correttamente)
  • passkey → “Passwort” - “password” (una passkey è specificamente non una password)
  • perspective-api → “Perspektiven-api”
  • backups → “Sicherungen”
  • design-experiment → “Experimententwurf” - può essere “design-experiment” ma anche “draft experiment”, penserei al secondo perché per il primo avrei mantenuto “design” e parlare di bozze è piuttosto comune in Discourse.

Traduzioni di “Discourse”

La maggior parte dei tag che si riferiscono a “Discourse” è stata tradotta in modo da non includere più il nome del software. Un’eccezione è discourse-hub .

“Theme” tradotto sistematicamente come “Thema” (argomento)

Questo è un problema sistematico in tutti i tag relativi ai temi. In tedesco, sia “theme” che “topic” si traducono con Thema, ma in un contesto Discourse queste sono cose molto diverse. Questo fa sì che i tag dei temi sembrino riferirsi a specifici argomenti di discussione.

Questo colpisce tutti i tag nel gruppo Official Themes.

Traduzioni dove mancava il contesto

  • composer → “Komponist” - Questa è la persona che compone musica, rispetto al campo di input che di solito chiamiamo “Editor” in tedesco.
  • tablet → “Tablette” - “compressa” o “tablet”.
  • copy-post → "kopierbeitrag” - “commissione di copia” (Il problema è la combinazione delle parole. “Beitrag” per post è corretto, ma poiché copy non è stato tradotto come verbo, sembra che Beitrag venga usato qui nel senso di commissione)

Sostantivo o verbo

Alcune funzionalità sono state tradotte come verbi invece che come sostantivi

  • chat → “plaudern” - “chattare”
  • search → “suchen” - “cercare”

“post” letto come il prefisso latino, non come un messaggio del forum

  • post-voting → “nach-der-Abstimmung” - “dopo il voto”
  • post-badges → “nach-Abzeichen” - “dopo-badge”

Risultati da tag inglesi non molto chiari

  • hosted-support → “gehosteter-support” (Questo sembra che il supporto sia ospitato invece di supporto per clienti ospitati)

Abbreviazione

  • pm-dropdown (uguale in tedesco) senza contesto m (message) non è stato sostituito con n (Nachricht)

Traduzioni che non corrispondono alla terminologia dell’interfaccia di Discourse

Queste traduzioni sono tecnicamente corrette in tedesco, ma l’interfaccia di Discourse usa termini diversi. Questo rende i tag più difficili da trovare intuitivamente, specialmente per gli utenti che navigano usando la lingua dell’interfaccia.

  • impersonate → “nachahmen” - “imitare” (ma l’interfaccia usa Nutzersicht o Nutzerrolle)
  • staged-users → “Staging-Benutzer” (ma l’interfaccia dice vorbereitete Benutzer)
  • advertising → “Werbung” (ma l’interfaccia si riferisce a Anzeigen)
  • assign → “zuweisen” (ma la traduzione del plugin usa zuordnen)
  • hot-topics → “Top-Themen” (questo è stato tradotto come “top topics”, che è in realtà un elenco diverso in Discourse)
  • read-only → “nur lesbar”
  • bootstrap-mode → “Bootstrap-Modus” (ma i traduttori avevano originariamente scelto Starthilfemodus)
  • post-notices → “Nachrichten” - “messaggi/notizie” (può essere fuorviante perché i messaggi sono una funzionalità diversa, “official notice” usa Mitteilung nell’interfaccia)
  • about-page → “über-Seite” (Questa è una traduzione letterale. Ma di solito la traduzione tedesca è qualcosa come “pagina su di noi”. Über non significa solo about ma anche sopra.)
  • auto-bump → “automatische-erhöhung” - “aumento automatico”
  • tags → “Etiketten” (ma tag-groups e la maggior parte dei tag contenenti tag usano “tag”, il termine usato su Crowdin è Schlagwort)

Traduzioni tronche

Questo è un tipo diverso di problema: non un errore di traduzione, ma una conseguenza del fatto che i sostantivi composti tedeschi sono significativamente più lunghi dei loro equivalenti inglesi, combinato con il limite di caratteri dei tag.

  • content-security-policy → “inhalts-sicherheitsrichtl” (troncato, dovrebbe essere inhalts-sicherheitsrichtlinie)
  • ai-custom-prompt → “ai-benutzerdefinierte-auf” (troncato a metà parola, dovrebbe essere ai-benutzerdefinierte-aufforderung)
  • custom-category-boxes → “benutzerdefinierte-katego” (troncato a metà parola, dovrebbe essere benutzerdefinierte-kategorie-boxen, in questo caso box è completamente mancante dalla traduzione)

I tag contenenti “custom” diventano facilmente troppo lunghi perché “benutzerdefiniert” è una parola piuttosto lunga.

more examples

Questi esempi suggeriscono che il processo di traduzione ha bisogno di più contesto - idealmente sapendo a quale plugin o funzionalità appartiene un tag, e avendo accesso alle traduzioni esistenti dell’interfaccia di Discourse come riferimento. Sarò felice di sentire se altri hanno notato modelli simili in altre lingue.


@nat (su richiesta personale)


  1. Lernunterlagen ↩︎

8 Mi Piace

Grazie @Moin, mi occuperò di questo e migliorerò i nostri prompt :smiling_face:

Anche LOL

Grazie per le risate :hugs:

5 Mi Piace

@nat e se dessimo all’agente accesso allo strumento di lettura, così potrebbe raccogliere il contesto da solo?

Sarebbe troppo costoso per i post, ma piuttosto economico e aumenterebbe la qualità in tutti i modelli per casi isolati come tag e categorie.

4 Mi Piace

Hmm, è una buona idea @falco.

Un altro approccio che avevo considerato era passare la descrizione del tag come contesto aggiuntivo durante la traduzione del nome del tag. Forse questo metodo è più prevedibile, che ne pensi?

4 Mi Piace

Avere accesso al glossario su Crowdin potrebbe essere molto utile per il bot che esegue la traduzione (non per tutti i siti, ma specialmente per Meta). Se è indicato lì che traduciamo “composer” come “Editor” e l’IA lo sa, potrebbe utilizzarlo nei tag, ma anche nei titoli degli argomenti e nei post.

Ho già corretto “composer” in Introducing our new composer, making writing on Discourse easier than ever, il che ha portato al mio feedback sulla modifica delle traduzioni qui: Feedback on the composer when translating a post to German, ma l’argomento è stato modificato dopo che l’ho fatto, e non sembra che la traduzione precedente venga utilizzata come contesto, quindi il post riporta di nuovo “composer”. (L’autore di musica di solito non appare nei post; solo testi più brevi come titoli degli argomenti e tag.)

Su Meta, la descrizione spesso non aggiunge molto contesto. Tutte quelle per i componenti dei temi, ad esempio, contengono semplicemente un link all’argomento del componente, non la breve descrizione all’inizio dell’argomento.

Ottima idea, facciamolo entrambi!

L’idea è utilizzare Meta come banco di prova e proxy per ciò che i nostri clienti potrebbero incontrare nel mondo reale, migliorando così la funzionalità per tutti.

Ottenere una traduzione perfetta su Meta sarebbe estremamente semplice semplicemente utilizzando l’LLM più costoso e fornendogli accesso a strumenti come l’accesso al codice sorgente e la ricerca sul web.

1 Mi Piace

Non credo che alcun modello sceglierebbe le stesse traduzioni per Meta che i traduttori tedeschi hanno scelto per l’interfaccia di Discourse. “Mitarbeiter” è una traduzione perfetta per “staff”. Il fatto che alcuni traduttori abbiano deciso anni fa che non si adatta ai piccoli forum amatoriali, dove “staff” implica dipendenti retribuiti, e abbiano quindi scelto “Team”, è qualcosa che nessun AI indovinerà, perché semplicemente non è la traduzione corretta. È proprio qui che il glossario di Crowdin sarebbe utile: senza di esso, i termini generati dall’AI non corrisponderanno mai a ciò che gli amministratori vedono effettivamente nell’interfaccia, non perché l’AI non sappia tradurre, ma perché non prende le stesse decisioni di localizzazione che hanno preso i traduttori umani. È la differenza tra traduzione e localizzazione.
Lo stesso vale per altri termini come “modalità bootstrap” o “impersonificazione”.

Lo farebbe, poiché avrebbe accesso esattamente alla stessa scelta nei file config/locales/**/*.yml a scopo di riferimento.

Assolutamente, e per piccoli gruppi enumerabili, come le categorie e i tag, dare all’agente accesso alle traduzioni esistenti, che fanno parte del codice sorgente, aiuterebbe a contestualizzarle correttamente.

Non possiamo farlo per i post, poiché il costo sarebbe troppo elevato, ma è un’opzione per siti più piccoli o clienti con budget di traduzione più ampi.

Allora forse dovresti disabilitare la traduzione AI per Documentation e News and Events > Announcements :wink: Non credo sia possibile garantire che quelle traduzioni siano utili, soprattutto dato che le modifiche suggerite non aggiornano la discussione, quindi non c’è un modo semplice per notare che un argomento è stato aggiornato.

In generale, il costo è il motivo per cui ho suggerito di usare il glossario invece dei file contenenti tutte le traduzioni, perché mi aspetto che questo contenga le scelte più rilevanti una sola volta, senza aggiungere ogni singolo testo.

Non funziona così; l’agente può cercare nel codice i frammenti con corrispondenze e non carica mai l’intero contenuto nel contesto.

È un po’ come buttare via il bambino insieme all’acqua sporca, vero?

Ho appena controllato Calendar subscription URLs for external calendar apps in PT-BR e la traduzione sembra ottima, molto meglio di non avere nulla.

Ci saranno sempre margini di miglioramento in un flusso di lavoro di traduzione automatica non supervisionato, e @nat ha già reso tutto migliore oggi grazie al tuo feedback!

Nessuno si aspetta che sia perfetto, e Meta è il luogo dove possiamo adottare in anticipo le funzionalità e mostrare cosa è possibile fare in Discourse per i nostri utenti e clienti.

Ciao team,

Come posso disabilitare i tag specifici generati dalle traduzioni AI in Discourse?

Trovo che la qualità di questi tag tradotti dall’AI sia incoerente, quindi vorrei disattivarli in modo indipendente.

Grazie.

Al momento, le traduzioni AI non sono limitate al tipo di modello: attivarle le abilita per argomenti, post, categorie e tag.

Il mio suggerimento è di modificare direttamente le traduzioni dei tag nelle impostazioni del tag. Lo fai una volta sola e non dovrai più farlo.

In alternativa, puoi anche aggiornare il prompt utilizzato dall’agente Traduttore di testo breve.

1 Mi Piace

Puoi aiutarmi a individuare le traduzioni dei tag che sono migliorate da quando ho scritto questo topic?

I tag menzionati dall’OP (e alcuni altri) dovrebbero essere gestiti ora su meta. Grazie per l’elenco molto dettagliato, ha reso tutto semplice e avrei dovuto farlo prima :faccia_sorridente:

Per quanto riguarda l’inserimento di più contesto nel traduttore di tag, ci vorrà ancora un po’ di tempo, dato che al momento non è una priorità alta.

2 Mi Piace