Cara membuat situs multibahasa dengan publikasi berkelanjutan
Pengalaman saya
Perangkat lunak sering kali dapat diterjemahkan, karena para pengembang menyadari manfaat dari upaya ini.
Dengan sedikit keberuntungan, sebuah platform penerjemahan yang berkualitas, seperti Weblate, akan digunakan, dan secara lancar, perubahan pada perangkat lunak akan sampai secara berkelanjutan kepada para penerjemah, lalu terjemahan akan kembali ke repositori.
Perangkat lunak adalah bagian yang tampak dari gunung es, yakni yang digunakan secara langsung, tetapi tanpa hal-hal di sekitarnya untuk membicarakannya, akan sulit untuk mengomunikasikannya secara luas jika seluruh komunikasinya menggunakan bahasa Inggris. Diperlukan penjelasan tentang apa yang dilakukan perangkat lunak, untuk apa kegunaannya, bagaimana cara menggunakannya, dan sebagainya.
Situs web, sebagai dasar komunikasi suatu proyek, sering kali dapat diterjemahkan. Tumpukan teknologi untuk membuat situs web ini relatif kurang terstandarisasi dan dipengaruhi oleh keinginan para pembuatnya untuk menyesuaikan dan mendiversifikasi konten, yang dapat dilakukan melalui beberapa tag HTML.
Dokumentasi adalah dunia tersendiri, yang alat-alatnya sering berasal dari ekosistem pengembangan (dokumentasi teknis) atau kolaborasi (wiki), dan cukup jarang alat-alat tersebut menawarkan prasyarat internasionalisasi yang memungkinkan kolaborasi. Padahal, masalahnya sangat mirip dengan masalah pada situs web.
Terakhir, komunikasi yang lebih langsung, mulai dari perubahan dalam versi baru hingga komunikasi di media sosial untuk mempromosikan alat-alat tersebut, jarang bersifat multibahasa.
Mengapa hanya sedikit situs yang dapat diterjemahkan?
Untuk mencapai tingkat terjemahan yang baik, dibutuhkan kemampuan internasionalisasi pada perangkat lunak yang memungkinkan pengurangan upaya dan kompleksitas pengembangan, serta proses yang lancar tempat para penerjemah dapat ikut serta.
Prasyarat internasionalisasi sebuah situs web:
- mendukung penulisan dari kanan ke kiri
- menerbitkan konten dalam banyak bahasa tanpa perlu mengubah tautan internal
- memungkinkan pergantian bahasa di halaman mana pun
- memperhitungkan header
Accept-Languageuntuk mengarahkan ke bahasa yang tepat - mengizinkan bahasa dan jenis tulisan apa pun di dunia
Hal itu terdengar luas dan mengesankan jika dikatakan seperti itu, tetapi beberapa standar seperti UTF-8, beberapa tag HTML, dan perangkat yang telah mempertimbangkan kebutuhan ini membuatnya menjadi cukup mudah.
Alat-alat yang digunakan para pengembang harus memuat fitur-fitur yang memungkinkan hal itu dilakukan dengan mudah; inilah yang disebut internasionalisasi. Jika alat tersebut tidak memiliki contoh multibahasa dalam dokumentasinya atau bagian khusus yang membahas internasionalisasi, tinggalkan. Pasti ada yang lebih baik, tidak perlu diperdebatkan.
Prasyarat kolaborasi: para pengembang harus mengenal alat-alat yang memudahkan kehidupan para penerjemah dan menggunakannya dengan mudah.
- Seorang penerjemah harus dapat menerjemahkan tanpa perlu mengakses sedikit pun kode sumber atau repositori perangkat lunak.
- Seorang penerjemah harus dapat menambahkan bahasanya tanpa perlu meminta izin.
- Seorang penerjemah harus dapat mengubah terjemahan tanpa perlu meminta izin.
- Seorang penerjemah harus dapat diberi tahu tentang perubahan yang memengaruhi terjemahan.
- Terjemahan harus diterapkan secara otomatis tanpa melibatkan manusia.
- Tim pengembang harus mudah dihubungi jika terjadi masalah (otonomi != autarki)
Memilih alat pembuat situs statis dengan tepat
Hanya alat yang memungkinkan pembuatan situs dari berkas yang akan dipertimbangkan di sini. Situs dinamis adalah kompleksitas yang sangat khusus dan tidak diperlukan untuk mayoritas proyek perangkat lunak bebas. Bahkan, itu adalah kompleksitas yang tidak perlu dan bisa dihindari, untuk menghemat pekerjaan pemeliharaan, biaya, dan risiko keamanan.
Jadi, tanpa memerlukan keahlian pengembangan, mari kita bandingkan ketiga alat ini:
- Hugo memiliki halaman tentang publikasi multibahasa, halamannya lengkap, memberikan contoh, dan itu penting untuk proyek ini ⇒ coba uji <3
- Jekyll tidak memiliki halaman tentang internasionalisasi, kecuali jika bersedia menggunakan plugin dan menerima kendala kompatibilitas/akal-akalan yang menyertainya ⇒ hindari!
- Eleventy memiliki halaman internasionalisasi sehingga tampaknya memungkinkan, tetapi sangat manual; ini tidak menimbulkan kepercayaan ⇒ hindari!
- Pelican hanya membahas penerjemahan sebuah artikel, tidak ada halaman khusus untuk internasionalisasi; cikal bakal fitur saja tidaklah cukup ⇒ hindari!
- Publii tidak memiliki halaman internasionalisasi ⇒ hindari!
Pertimbangannya singkat: Anda ingin situs statis yang siap pakai dan berfungsi dalam banyak bahasa? Gunakan Hugo.
Ini bukan persoalan pribadi terhadap Pelican dan Jekyll, tetapi selain memiliki lebih sedikit fitur daripada Hugo, sekadar prasyarat untuk mengubah header berkas yang akan diterjemahkan saja sudah menjadi langkah yang memberatkan dalam otomatisasi. Padahal, sasaran utamanya adalah otomatisasi di mana-mana dengan pekerjaan sesedikit mungkin! Sejumlah proyek berhasil menginternasionalkan situs web dengan benar menggunakan alat-alat ini, tetapi dengan upaya yang lebih besar sambil kemungkinan tetap menawarkan fitur yang lebih sedikit (misalnya, URL akan tetap dalam bahasa Inggris, bukan diterjemahkan).
Sebuah studi kasus - blog ini
Untuk melakukan pekerjaan otomatisasi ini secara konkret dengan data nyata, berikut spesifikasi kebutuhan saya:
- Tidak boleh ada modifikasi yang perlu dilakukan pada artikel dalam bahasa sumber
- Menggunakan Weblate sebagai platform penerjemahan
- Tidak ada konfigurasi di Weblate untuk menambahkan artikel baru
- Tidak ada konfigurasi di Hugo untuk menambahkan bahasa
- Publikasi yang sepenuhnya otomatis
Langkah-langkah yang dilakukan sederhana.
Menemukan pengaturan konten yang memadai
content/frakan berisi seluruh konten situsl10n/seluruh berkas terjemahanl10n/configstring yang akan diterjemahkan terkait terjemahan Hugol10n/pottemplat terjemahan (berkas POT)l10n/po/%lang%terjemahan dalam setiap bahasa (berkas PO)
Pengonversi format po4a akan mengubah konten menjadi templat terjemahan (berkas POT).
Sebuah skrip Python akan memanggil polib untuk mengidentifikasi bahasa-bahasa yang memiliki setidaknya satu artikel yang diterjemahkan minimal 80% (persentase kata sumber yang diterjemahkan).
Skrip Python lainnya akan memperbarui konfigurasi Hugo dengan menggunakan beberapa konfigurasi yang diterjemahkan (nama blog, deskripsi blog, dan sebagainya).
Ini adalah sedikit oprekan yang berfungsi; ada beberapa hal yang bisa
dilakukan untuk menyederhanakan perangkat ini. Menggunakan konfigurasi po4a
alih-alih memanggil subperintah-perintahnya, dan menghilangkan kebutuhan
untuk menggunakan polib agar cukup memiliki satu berkas Python.
Mengapa tidak menggunakan dukungan Markdown dari Weblate? Weblate adalah
platform penerjemahan; mengonversi berkas adalah peran lain. Alat khusus
melakukannya lebih baik daripada Weblate; memisahkan tanggung jawab
mengurangi ketergantungan dan dengan demikian meningkatkan otonomi untuk
mengembangkan rantai otomatisasi. Contoh yang khas: po4a dapat digantikan
oleh alat lain.
Hasil dan pelajaran
Komunitas perangkat lunak bebas kita memiliki kemungkinan untuk membuat situs multibahasa dengan sangat mudah.
Namun, masih kurang dokumentasi untuk menjelaskan cara merangkai alat-alat yang sudah ada guna membentuk rantai produksi yang lengkap.
Karena itu, artikel ini bertujuan untuk mengisi kekurangan tersebut dan mendorong peniruan mekanisme ini untuk proyek-proyek yang berminat.
Perangkat ini hampir pasti akan diperbaiki dan disederhanakan, lalu disimpan dalam sebuah proyek kecil khusus yang menjelaskan cara kerjanya untuk memaksimalkan penggunaan ulangnya. Untuk saat ini, telusuri repositori git situs languages-in-floss untuk menemukan beberapa skrip tersebut.