Kami memeriksa setiap terjemahan mesin. Pemeriksaan itulah bahagian yang salah.
Bahasa
Sebelum kami melancarkan kit terjemahan kami, kami menjalankannya pada aplikasi contoh kecil: 70 rentetan dalam enam format (JSON, Flutter ARB, Android, Apple .strings, gettext dan Markdown) ke dalam bahasa Jerman, Rusia, Jepun, Arab dan Sepanyol, dengan model terbuka 27 bilion parameter pada mesin kami sendiri. Setiap rentetan yang diterjemahkan melalui pemeriksaan sebelum ditulis. Empat daripada 350 ditolak. Keempat-empat penolakan itu salah.
Apa yang dicari oleh pemeriksaan
Terjemahan yang merosakkan aplikasi lebih buruk daripada tiada, jadi setiap rentetan mesti mengekalkan pemegang tempatnya (%1$s, {name}, {{count}}), tag, baris baru dan URL; ia mesti dalam skrip bahasa sasaran; ia tidak boleh kosong, lari atau ditinggalkan dalam bahasa Inggeris; dan bentuk jamak mesti merangkumi tepat kategori yang dimiliki bahasa tersebut. Rentetan yang gagal diminta semula dengan masalah yang dinyatakan, dan yang gagal sekali lagi ditinggalkan, supaya aplikasi menunjukkan bahasa Inggeris untuk rentetan itu.
Empat penolakan
- "Backups" dalam bahasa Jerman ialah "Backups". Pemeriksaan menyebutnya tidak diterjemahkan. Bahasa Jerman menggunakan perkataan Inggeris. Satu perkataan yang sama sering betul; dua atau lebih perkataan yang sama tidak, jadi itulah peraturan sekarang.
- Sebaris bahasa Rusia dan sebaris bahasa Jepun dengan alamat e-mel gagal pemeriksaan skrip: kurang daripada 60% huruf adalah Cyrillic atau Jepun, kerana
[email protected]ditulis dalam huruf Latin. Alamat kini dilayan seperti pemegang tempat: ia mesti kembali tanpa perubahan, dan ia tidak dikira sebagai huruf. - Mesej jamak bahasa Jepun kembali sebagai
{count, plural, =0{連続記録なし} other{{count}日連続}}. Cabang{連続記録なし}tiada ruang, jadi corak pemegang tempat mengambilnya sebagai pemboleh ubah bernama 連続記録なし. Kurungan cabang dalam mesej jamak kini adalah struktur, dan nama pemegang tempat mesti ASCII.
Setelah pemeriksaan diperbetulkan, satu lagi larian meminta model hanya untuk empat rentetan itu, kerana yang lain ada dalam memori terjemahan, dan menulis kesemua 350 dalam 45 saat.
Bahagian yang kami jangka akan gagal tetapi tidak
Bentuk jamak ialah tempat terjemahan naif gagal: bahasa Inggeris mempunyai satu dan lain, bahasa Rusia mempunyai satu, beberapa, banyak dan lain, bahasa Arab mempunyai enam kategori, bahasa Jepun mempunyai satu bentuk sahaja. Kami meminta tepat pada kategori bahasa sasaran dan memeriksa penanda tempat letak bagi setiap bentuk. Model menulis "1 день, 2 дня, 5 дней" untuk bahasa Rusia dan keenam-enam bentuk bahasa Arab. Setiap jamak Android lulus pada percubaan pertama dalam kelima-lima bahasa, dan begitu juga setiap mesej jamak kecuali mesej bahasa Jepun yang pemeriksaan kami salah baca.
Apa yang pemeriksaan tidak dapat kesan
Kemudian kami menterjemahkan 22 rentetan web contoh ke dalam semua 42 bahasa yang diketahui oleh Polyglot: 924 daripada 924 rentetan lulus. Selepas membacanya, satu rentetan menonjol. Dalam bahasa Khmer, "You are offline" telah diterjemahkan sebagai ayat yang bermaksud "anda dalam talian". Ia merupakan bahasa Khmer yang betul dalam skrip yang betul tanpa apa-apa yang hilang, jadi setiap pemeriksaan meluluskannya. Pemeriksaan menangkap apa yang merosakkan aplikasi; maksud yang salah memerlukan seseorang yang membaca bahasa tersebut.
Pengajaran utama
Pemeriksaan automatik pada output mesin memerlukan output sebenar untuk diuji. Ujian unit dengan terjemahan rekaan lulus; model sebenar yang menulis bahasa Jepun sebenar menemui jurang dalam beberapa minit. Polyglot dihantar dengan pemeriksaan ini, telah diperbaiki, dan dengan ujian untuk setiap empat kes.