Nasuri namin ang lahat ng machine translation. Ang mga pagsusuri ang bahaging mali.

Mga wika

Bago namin ilabas ang aming translation kit, pinagtakbo namin ito sa isang maliit na example app: 70 strings sa anim na format (JSON, Flutter ARB, Android, Apple .strings, gettext at Markdown) papuntang German, Russian, Japanese, Arabic at Spanish, gamit ang isang open Qwen model (Qwen3.8-Flash-Next, na-quantise sa 4 bits) na pinapatakbo ng vLLM sa aming sariling machine. Ang bawat isinalin na string ay dumaan sa mga checks bago ito isulat. Apat sa 350 ang tinanggihan. Ang lahat ng apat na pagtanggi ay mali.

Ang hinahanap ng mga pagsusuri

Ang isang translation na pumapinsala sa app ay mas masama kaysa walang translation, kaya ang bawat string ay dapat panatilihin ang mga placeholder nito (%1$s, {name}, {{count}}), ang mga tag, line break at URL; dapat ito nasa script ng target language; hindi dapat ito blangko, sobrang haba o naiwan sa English; at ang mga plural form ay dapat sakupin ang eksaktong kategorya ng wika. Ang string na nabigo ay hinihiling muli na may tinukoy na problema, at ang nabigo ulit ay hindi isinasama, kaya ipapakita ng app ang English para sa isang string na iyon.

Ang apat na pagtanggi

Pagkatapos ayusin ang mga pagsusuri, ang pangalawang run ay humiling sa model para lamang sa apat na string na iyon, dahil ang lahat ng iba ay nasa translation memory na, at isinulat ang lahat ng 350 sa loob ng 45 segundo.

Ang bahaging inaasahan naming mabigo at hindi nabigo

Ang mga plural form ang nagpapakita kung saan nabibigo ang simpleng pagsasalin: ang English ay may isa at iba, ang Russian ay may isa, kaunti, marami at iba, ang Arabic ay may anim na kategorya, at ang Japanese ay may isang form lamang. Hiniling namin ang eksaktong kategorya ng target at tinitingnan ang placeholders ng bawat form. Isinulat ng model ang "1 день, 2 дня, 5 дней" para sa Russian at lahat ng anim na form ng Arabic. Lahat ng Android plural ay nakapasa sa unang subok sa lahat ng limang wika, gayundin ang lahat ng plural message maliban sa Japanese na hindi natin maayos na nabasa ng aming check.

Ang hindi mahuhuli ng anumang check

Pagkatapos, isinalin namin ang 22 web strings ng halimbawa sa lahat ng 42 wikang alam ng Polyglot: 924 sa 924 strings ang nakapasa. Habang binabasa namin ang mga ito, may isang nakatayo. Sa Khmer, ang "You are offline" ay bumalik bilang isang pangungusap na nagsasabing "online ka." Ito ay maayos na Khmer sa tamang script at walang kulang, kaya't nakapasa ito sa lahat ng check. Nahuhuli ng mga check ang mga bagay na nagpapasira sa app; ang maling kahulugan ay nangangailangan ng taong nakakabasa ng wika.

Ang takeaway

Ang mga automatic checks sa output ng machine ay nangangailangan ng tunay na output upang subukan. Ang mga unit test na gumagamit ng mga gawa-gawang translation ay nakapasa; ang isang tunay na model na sumusulat ng tunay na Japanese ang nakakita ng mga kakulangan sa loob ng ilang minuto. Ang Polyglot ay kasama ang mga check na ito, ayos na ayos, at kasama ang mga test para sa bawat isa sa apat na kaso. Ang mga check mismo ay libre at open source: ang translation-checks sa GitHub.

Na-update: