Vi sjekket alle maskinoversettelser. Det var selve sjekkene som var feil.

Språk

Før vi ga ut oversettelseskitet vårt, testet vi det på en liten eksempelapp: 70 strenger i seks formater (JSON, Flutter ARB, Android, Apple .strings, gettext og Markdown) til tysk, russisk, japansk, arabisk og spansk, med en åpen modell på 27 milliarder parametere på vår egen maskin. Hver oversatt streng går gjennom sjekker før den skrives. Fire av de 350 ble avvist. Alle de fire avvisningene var feil.

Hva sjekkene ser etter

En oversettelse som ødelegger en app er verre enn ingen, så hver streng må beholde sine plassholdere (%1$s, {name}, {{count}}), sine koder, linjeskift og URL-er; den må være i målspråkets skriftsystem; den må ikke være tom, løpe løpsk eller stå igjen på engelsk; og flertallsformer må dekke nøyaktig de kategoriene språket har. En streng som feiler, blir bedt om på nytt med problemet navngitt, og en som feiler igjen, utelates, slik at appen viser engelsk for den ene strengen.

De fire avvisningene

Da sjekkene var fikset, ba en ny runde modellen bare om de fire strengene, siden alt annet var i oversettelsesminnet, og skrev alle 350 på 45 sekunder.

Delen vi forventet ville feile, men som ikke gjorde det

Flertallsformer er der naiv oversettelse feiler: Engelsk har én og andre, russisk har én, få, mange og andre, arabisk seks kategorier, japansk én form. Vi ba om nøyaktig målspråkets kategorier og sjekket plassholderne i hver form. Modellen skrev «1 день, 2 дня, 5 дней» for russisk og alle de seks arabiske formene. Alle Android-flertallsformer besto på første forsøk på alle fem språk, og det samme gjorde alle flertallsbeskjeder unntatt den japanske som sjekken vår feiltolket.

Det ingen sjekk fanger

Vi oversatte deretter de 22 nettstrengene i eksemplet til alle de 42 språkene Polyglot kjenner: 924 av 924 strenger besto. Da vi leste gjennom dem, stakk én ut. På khmer hadde «You are offline» blitt oversatt til en setning som sier «du er online». Det er velformulert khmer i riktig skriftsystem uten at noe mangler, så alle sjekker godtok den. Sjekker fanger det som ødelegger appen; en feil mening krever en person som leser språket.

Konklusjonen

Automatiske sjekker på maskinutdata trenger reell utdata å teste mot. Enhetstester med påfunnede oversettelser besto; en ekte modell som skrev ekte japansk fant hullene på minutter. Polyglot leveres med disse sjekkene, fikset, og med testene for hver av de fire tilfellene.

Oppdatert: