Kami memeriksa setiap hasil terjemahan mesin. Bagian yang salah justru adalah pemeriksaannya.

Bahasa

Sebelum kami merilis Paket Kit terjemahan, kami menjalankannya pada aplikasi contoh kecil: 70 string dalam enam format (JSON, Flutter ARB, Android, Apple .strings, gettext, dan Markdown) ke bahasa Jerman, Rusia, Jepang, Arab, dan Spanyol, menggunakan model Qwen terbuka (Qwen3.8-Flash-Next, dikuantisasi ke 4 bit) yang dilayani oleh vLLM di mesin kami sendiri. Setiap string yang diterjemahkan melewati pemeriksaan sebelum ditulis. Empat dari 350 string ditolak. Keempat penolakan tersebut salah.

Yang dicari oleh pemeriksaan

Terjemahan yang merusak aplikasi lebih buruk daripada tidak ada terjemahan sama sekali, sehingga setiap string harus mempertahankan placeholder (%1$s, {name}, {{count}}), tag, baris baru, dan URL-nya; string harus menggunakan skrip bahasa target; string tidak boleh kosong, melenceng, atau dibiarkan dalam bahasa Inggris; dan bentuk jamak harus mencakup tepat kategori yang dimiliki bahasa tersebut. String yang gagal diperiksa akan diminta ulang dengan menyebutkan masalahnya, dan jika gagal lagi, string tersebut dibiarkan kosong sehingga aplikasi menampilkan bahasa Inggris untuk string tersebut.

Empat penolakan

Setelah pemeriksaan diperbaiki, run kedua hanya meminta model untuk empat string tersebut, karena sisanya sudah ada di memori terjemahan, dan menulis semua 350 string dalam 45 detik.

Bagian yang kami perkirakan akan gagal, tetapi tidak

Bentuk jamak adalah tempat terjemahan naif gagal: bahasa Inggris memiliki satu dan lainnya, bahasa Rusia memiliki satu, beberapa, banyak, dan lainnya, bahasa Arab memiliki enam kategori, dan bahasa Jepang hanya memiliki satu bentuk. Kami meminta kategori yang tepat sesuai bahasa target dan memeriksa placeholder pada setiap bentuk. Model menulis "1 день, 2 дня, 5 дней" untuk bahasa Rusia dan keenam bentuk bahasa Arab. Semua bentuk jamak Android lolos pada percobaan pertama di kelima bahasa, begitu pula semua pesan jamak kecuali pesan bahasa Jepang yang terbaca salah oleh pemeriksaan kami.

Yang tidak dapat dideteksi oleh pemeriksaan otomatis

Kami kemudian menerjemahkan 22 string web dari contoh tersebut ke dalam 42 bahasa yang diketahui oleh Polyglot: 924 dari 924 string lolos. Setelah membacanya, satu string menonjol. Dalam bahasa Khmer, "You are offline" diterjemahkan menjadi kalimat yang berarti "you are online". Kalimat tersebut merupakan bahasa Khmer yang terbentuk dengan baik dalam skrip yang tepat tanpa ada yang hilang, sehingga lolos dari semua pemeriksaan. Pemeriksaan otomatis menangkap hal-hal yang merusak aplikasi; makna yang salah membutuhkan seseorang yang memahami bahasa tersebut.

Kesimpulan

Pemeriksaan otomatis pada output mesin memerlukan output nyata sebagai bahan uji. Unit test dengan terjemahan buatan lolos; model nyata yang menulis bahasa Jepang nyata menemukan celahnya dalam hitungan menit. Polyglot hadir dengan pemeriksaan ini, sudah diperbaiki, beserta test untuk keempat kasus tersebut. Pemeriksaan ini sendiri gratis dan sumber terbuka: translation-checks di GitHub.

Diperbarui: