Pembangun Berdebat Mengenai Penyelesaian Terjemahan Selepas Pendekatan Tersuai SumatraPDF Mencetuskan Kontroversi

Pasukan Komuniti BigGo
Pembangun Berdebat Mengenai Penyelesaian Terjemahan Selepas Pendekatan Tersuai SumatraPDF Mencetuskan Kontroversi

Komuniti pembangun terlibat dalam perbincangan hangat mengenai kaedah terjemahan perisian berikutan penerbitan pendekatan pengantarabangsaan tersuai SumatraPDF . Pemapar PDF yang popular ini, yang menyokong 72 bahasa, memilih untuk membina sistem terjemahan sendiri daripada menggunakan penyelesaian yang telah mapan seperti GNU gettext atau perkhidmatan komersial.

Statistik Sistem Terjemahan SumatraPDF:

  • 341 rentetan boleh diterjemah
  • 72 bahasa yang disokong
  • 35,440 jumlah terjemahan rentetan yang dikumpul
  • 239 baris kod terjemahan C++
  • 4,000 baris kod pelayan Go untuk AppTranslator

Kontroversi Penyelesaian Tersuai

Pembangun SumatraPDF mencipta ekosistem terjemahan lengkap dari awal, termasuk aplikasi web yang dipanggil AppTranslator untuk mendapatkan terjemahan secara crowdsourcing dan kod C++ tersuai untuk mengendalikan pertukaran bahasa. Sistem ini menggunakan makro mudah seperti _TRA() dan _TRN() untuk menanda rentetan yang boleh diterjemah dan memprosesnya melalui skrip Go . Walau bagaimanapun, pendekatan ini telah menarik kritikan ketara daripada pembangun berpengalaman yang berhujah bahawa penyelesaian sedia ada akan lebih sesuai.

Perdebatan berpusat pada sama ada mencipta semula alat yang telah mapan adalah wajar. Pengkritik menunjukkan bahawa penyelesaian tersuai ini tidak mempunyai ciri penting seperti sokongan bentuk jamak dan pemformatan kedudukan, yang merupakan standard dalam rangka kerja terjemahan yang matang. Ciri-ciri ini menjadi penting apabila berurusan dengan bahasa yang mempunyai peraturan tatabahasa yang kompleks atau struktur ayat yang berbeza.

Komponen Sistem Terjemahan:

  • Makro _TRA(): Berkembang kepada panggilan fungsi terjemahan
  • Makro _TRN(): Berkembang kepada rentetan bahasa Inggeris untuk terjemahan tertunda
  • AppTranslator : Aplikasi web tersuai untuk crowdsourcing terjemahan
  • Skrip Go : Mengekstrak rentetan daripada kod sumber menggunakan regex
  • Carian linear: Kaedah untuk mencari terjemahan dalam tatasusunan C++

Ciri yang Hilang dan Had Teknikal

Beberapa pembangun menyerlahkan jurang kritikal dalam pendekatan tersuai ini. Sistem ini menganggap rentetan bahasa Inggeris sebagai teks paparan dan kunci terjemahan, yang boleh menyebabkan masalah apabila perkataan Inggeris yang sama memerlukan terjemahan berbeza bergantung pada konteks. Selain itu, kaedah carian linear untuk mencari terjemahan, walaupun mudah, mungkin tidak dapat berkembang dengan baik untuk aplikasi yang lebih besar.

Pengantarabangsaan dan penyetempatan adalah masalah yang amat sukar. Saya tahu kerana saya pernah bekerja sebagai penterjemah teknikal selama beberapa tahun.

Kekurangan sokongan bentuk jamak adalah masalah yang ketara kerana bahasa yang berbeza mengendalikan jamak dengan cara yang sangat berbeza. Sesetengah bahasa mempunyai pelbagai bentuk jamak, manakala yang lain menggunakan struktur tatabahasa yang berbeza sama sekali yang tidak dapat dikendalikan oleh penggantian rentetan mudah.

Penyelesaian Alternatif dan Pendekatan Moden

Ahli komuniti mencadangkan beberapa alternatif mapan yang boleh menjimatkan masa pembangunan sambil menyediakan fungsi yang lebih baik. GNU gettext kekal popular kerana set ciri yang komprehensif dan sokongan perkakas yang meluas. Perkhidmatan seperti Weblate , Transifex , dan translatewiki.net menawarkan pengurusan terjemahan berasaskan web dengan ciri kerjasama terbina dalam dan sokongan pakar.

Untuk aplikasi khusus Windows , sesetengah pembangun mengesyorkan menggunakan sistem Multilingual User Interface (MUI) Microsoft , yang menyediakan integrasi platform asli dan sokongan perkakas yang luas. Yang lain mencadangkan sistem terjemahan Qt untuk aplikasi merentas platform.

Pendekatan moden yang menarik muncul daripada perbincangan: menggunakan model bahasa AI untuk terjemahan awal. Walaupun ini mencetuskan perdebatan tersendiri mengenai kualiti terjemahan, sesetengah pembangun melaporkan kejayaan menggunakan AI untuk elemen UI asas, walaupun mereka mengakui bahawa semakan manusia kekal penting untuk penyetempatan berkualiti.

Penyelesaian Terjemahan Alternatif yang Disebut:

  • GNU gettext: Menggunakan fail .po, termasuk alat pengekstrakan xgettext
  • Weblate: Platform terjemahan berasaskan web sumber terbuka
  • Transifex: Perkhidmatan terjemahan komersial
  • translatewiki.net: Platform terjemahan komuniti untuk sumber terbuka
  • Microsoft MUI: Sistem antara muka pelbagai bahasa Windows asli
  • Qt Translation System: Penyelesaian merentas platform dengan peralatan komprehensif

Falsafah Pembangunan yang Lebih Luas

Kontroversi ini mencerminkan perpecahan falsafah yang lebih mendalam dalam pembangunan perisian antara membina penyelesaian tersuai berbanding menggunakan alat sedia ada. Walaupun pendekatan SumatraPDF menunjukkan kemahiran kejuruteraan yang mengagumkan dan menyediakan kawalan penuh ke atas proses terjemahan, pengkritik berhujah bahawa ia mewakili kerumitan yang tidak perlu untuk masalah yang telah diselesaikan.

Perbincangan juga menyerlahkan kepentingan memahami skop masalah sebelum memilih penyelesaian. Apa yang mungkin kelihatan seperti tugas terjemahan mudah boleh dengan cepat menjadi kompleks apabila berurusan dengan pelbagai bahasa, konteks budaya, dan keperluan kebolehcapaian. Konsensus komuniti mencadangkan bahawa walaupun penyelesaian tersuai mempunyai tempatnya, alat yang telah mapan sering memberikan nilai jangka panjang yang lebih baik untuk masalah biasa seperti pengantarabangsaan.

Rujukan: Implementing UI translation in SumatraPDF, a C++ Windows application