- Dikirim
- 10 Mei 2026 pukul 04.33 UTC
- Penulis
- Kamo
- Commit
- c0a87b7
Dua mode kegagalan tidak dapat dibedakan dalam respon, sehingga script tidak bisa membedakan mereka dan terus "menerjemahkan" kunci yang sama dengan bahasa Inggris pada setiap menjalankan sync, dengan acak subset sukses karena yang tepat Permintaan LibreTranslate terjadi untuk mendarat saat seorang pekerja restart: 1. Penyedia errored (timeout, 5xx, koneksi ditolak mid- restart) Penyedia berhasil tapi sumber dikembalikan tidak berubah (legit "tidak ada terjemahan dibutuhkan "- kata benda yang tepat, nama merek, dll.) Keduanya akhirnya menulis sumber sebagai terjemahan. Perubahan: * LibreTranslator Provider / BergamotProvider: 3 percobaan dengan 1s / 3 backoff untuk kegagalan transient (5xx, 429, timeout, koneksi error); 4xx (bukan -429) menyebarkan secara langsung karena mengulang Permintaan salah bentuk tidak akan pernah membantu. Permintaan per- call timeout = 30. Melempar pada kelelahan bukan mengembalikan teks sumber. * ProviderRouter: sekarang membedakan "setiap penyedia dukungan errored "(throw) dari" setidaknya satu berhasil tetapi kembali sumber " (passpass sah - teks kembali). Tidak ada dukungan yang tidak berubah. * * * * * * * * * * * * * * * menangkap pengecualian perkey, mengumpulkan mereka dalam daftar failedKeys baru pada respon, dan omits gagal kunci dari pesan. * BatchTranslateResponse: menambahkan medan failedKeys. * translate.ts: baca failedKeys, never write those keys back, so apirtranslated [kunci]? existing [kunci] fallback daun sebelumnya Nilai bahasa Inggris di tempat - yang mana pada run berikutnya memuaskan sr = = enval dan re-queues persis kunci-kunci untuk mengulang. Tes: menambahkan tes regresi untuk "semua penyedia kesalahan lemparan", di paling tidak satu berhasil dengan teks kembali tidak berubah teks "," router falling through on transient primary error ", and TranslationService pembagian benar ke pesan vs failedKeys.