Fasih 1.0: sistem pelokalan yang fleksibel



Fluent adalah keluarga spesifikasi, implementasi, dan praktik untuk pelokalan yang dikembangkan oleh Mozilla. Sekarang digunakan di browser Firefox. Menggunakan Fluent, penerjemah dapat menulis lebih banyak terjemahan alami dalam bahasa asli mereka. Hari ini kami memperkenalkan spesifikasi format file Fluent versi 1.0. Kami mengundang pengembang alat terjemahan untuk mencobanya dan memberi tahu tentang tayangan Anda.


Masalah apa yang dipecahkan oleh Fasih?


Browser Firefox mendukung sekitar seratus bahasa, dan menantang pengembang dalam hal pelokalan. Banyak masalah yang sulit dipecahkan dengan menggunakan pendekatan tradisional. Pelokalan perangkat lunak didominasi oleh prinsip menandai terjemahan satu-ke-satu dengan teks sumber. Tata bahasa bahasa sumber (dalam kasus Mozilla - Inggris) memberlakukan pembatasan serius pada ketersediaan sarana ekspresif dalam terjemahan.


Pertimbangkan pesan berikut yang muncul ketika pengguna mencoba menutup jendela Firefox dengan banyak tab.


tabs-close-warning-multiple = You are about to close {$count} tabs. Are you sure you want to continue? 

Pesan hanya ditampilkan jika ada 2 tab atau lebih. Dalam bahasa Inggris, tab kata akan selalu dalam tab - jamak. Pengembang yang berbahasa Inggris akan senang dengan pesan seperti itu. Kedengarannya benar untuk setiap nilai $ count.

fluent_en

Dalam bahasa Inggris, untuk semua nilai $ count, satu varian pesan sudah cukup.


Banyak penerjemah akan melihat bahwa tab kata dapat mengambil bentuk yang berbeda tergantung pada nilai $ count.


Dalam pendekatan tradisional untuk pelokalan, tanggung jawab untuk pemrosesan pesan yang benar akan menjadi tanggung jawab penerjemah. Mereka harus memperhitungkan bahwa dalam bahasa lain mungkin ada beberapa bentuk kata, bahkan jika dalam bahasa Inggris hanya ada satu. Semakin banyak bahasa yang didukung aplikasi, masalah akan semakin serius.


  • Dalam beberapa bahasa, kata benda memiliki jenis kelamin, yang akan membutuhkan perubahan kata sifat dan partisipatif. Dalam bahasa Prancis, kata connecté, connectée, connecté dan connectées diterjemahkan ke dalam bahasa Inggris sebagai terhubung.
  • Panduan gaya mungkin memerlukan penggunaan istilah tertentu tergantung pada platform tempat perangkat lunak berjalan. Di Firefox versi bahasa Inggris, misalnya, Pengaturan digunakan pada platform Windows, dan Preferensi pada sistem lain, untuk memenuhi standar yang diadopsi pada sistem ini. Dalam bahasa Jepang, perbedaannya bisa lebih menarik: pilihan sistem penulisan untuk beberapa istilah komputer tergantung pada sistem operasinya.
  • Konteks dan target audiens aplikasi mungkin memerlukan modifikasi tambahan pada teks. Aplikasi berbahasa Inggris untuk bekerja dengan akuntansi dapat menggunakan format angka yang berbeda dari apa yang digunakan di situs reguler di Internet. Namun dalam bahasa lain, pemisahan seperti itu mungkin tidak diperlukan.

Ada banyak variasi gramatikal dan gaya yang tidak dapat langsung dikorelasikan antara kedua bahasa. Mendukung semua nuansa ini menggunakan pendekatan tradisional bisa jadi sulit. Dalam beberapa bahasa Anda harus berkompromi, dalam bahasa lain tidak akan ada solusi yang cocok sama sekali.


Lokalisasi asimetris


Lancar mengubah distribusi peran dalam pelokalan. Alih-alih mengharuskan pengembang untuk mempertimbangkan semua nuansa yang mungkin dari semua bahasa, Fluent mencoba untuk menjaga teks dalam bahasa sumber dalam bentuk sesederhana mungkin.


Kami memungkinkan untuk menyampaikan tata bahasa dan gaya bahasa lain, apa pun sumbernya. Semuanya terjadi secara terpisah. Fakta bahwa satu bahasa dapat menggunakan logika yang lebih maju dalam pelokalan tidak memengaruhi bahasa terjemahan lainnya. Setiap pelokalan dalam program itu sendiri memutuskan seberapa rumit seharusnya teks terjemahan.


Misalnya, mari kita lihat menerjemahkan pesan tentang menutup tab ke dalam bahasa Ceko. Panel kata (tab) harus mengambil salah satu dari dua bentuk: panely untuk jumlah tab 2, 3, dan 4, dan panelů untuk semua nilai lainnya.


 tabs-close-warning-multiple = {$count -> [few] Chystáte se zavřít {$count} panely. Opravdu chcete pokračovat? *[other] Chystáte se zavřít {$count} panelů. Opravdu chcete pokračovat? } 

Lancar memberi para penerjemah kemampuan untuk menulis kalimat yang secara tata bahasa benar dan secara bebas menggunakan sarana ekspresif bahasa mereka. Berkat Fluent, terjemahan Ceko menggunakan bentuk jamak yang benar untuk setiap nilai $ count yang mungkin.

fluent_cz Di Ceko, dengan nilai $ count 2, 3, dan 4, kata benda membutuhkan bentuk jamak khusus.

Pada saat yang sama, tidak diperlukan perubahan pada kode sumber atau kode. Logika dalam pelokalan Ceko tidak mempengaruhi semua pelokalan lain dari program. Di Prancis, kalimat ini akan sesederhana bahasa Inggris:



 tabs-close-warning-multiple = Vous êtes sur le point de fermer {$count} onglets. Voulez-vous vraiment continuer ? 

Konsep lokalisasi asimetris adalah inovasi Fluent utama, yang dimungkinkan oleh pengalaman Mozilla dalam mengembangkan perangkat lunak multibahasa selama lebih dari 20 tahun. Banyak ide kunci untuk Fluent dipinjam dari MessageFormat dari ICU (International Component for Unicode) dan dari format XLIFF .


Pada pandangan pertama, Fluent seperti solusi pelokalan lain yang memungkinkan Anda untuk menggunakan varian kata untuk beberapa kata benda dan kata-kata dengan gender gramatikal. Sebaliknya, Fluent mengambil pendekatan holistik untuk pelokalan. Lancar mengembangkan ide-ide ini dengan mendefinisikan sintaks untuk seluruh file teks tempat terjemahan disimpan, dan memungkinkan tautan dari satu pesan ke yang lain.


Ketentuan dan tautan


File Fluent dapat berisi banyak pesan, yang masing-masing diterjemahkan ke dalam bahasa penerjemah. Pesan dapat merujuk ke pesan lain di dalam file yang sama, atau pesan dari file lain. Pada waktu berjalan, Fluent menggabungkan file ke dalam bundel, dan tautan diselesaikan dalam set itu.


Tautan ke posting adalah alat yang ampuh untuk mempertahankan terjemahan yang konsisten. Setelah terjemahan tertentu dapat digunakan kembali dalam terjemahan lain. Lancar mendukung jenis pesan khusus yang disebut istilah, cocok untuk digunakan kembali. Pengidentifikasi istilah selalu dimulai dengan tanda hubung.



 -sync-brand-name =  Firefox 

Setelah didefinisikan, istilah -sync-brand-name dapat digunakan dari pesan lain sebagai variabel, selalu mengembalikan teks yang benar. Ketentuan membantu memperkenalkan keseragaman sesuai dengan pedoman gaya. Misalnya, mereka dapat dimodifikasi untuk secara khusus merek pembuatan tidak resmi atau rilis beta.


 sync-dialog-title = {-sync-brand-name} sync-headline-title = {-sync-brand-name}: The best way to bring your data always with you sync-signedout-account-title =    {-sync-brand-name} 

Menggunakan istilah langsung di tengah kalimat dapat menyebabkan masalah dalam bahasa infleksional, atau dalam bahasa dengan aturan kapitalisasi teks lainnya. Arti istilah dapat didefinisikan dalam beberapa aspek, tergantung pada konteksnya. Simak definisi istilah -sync-brand-name berikut dalam bahasa Italia.


 -sync-brand-name = {$capitalization -> *[uppercase] Account Firefox [lowercase] account Firefox } 

Karena sifat asimetris Fluent, seorang penerjemah Italia dapat menentukan dua bentuk untuk menulis merek. Varian huruf besar (default) cocok untuk penggunaan independen atau untuk digunakan pada awal kalimat. Opsi huruf kecil dapat diminta dengan melewati parameter kapitalisasi ketika istilah tersebut digunakan di dalam kalimat besar.


 sync-dialog-title = {-sync-brand-name} sync-headline-title = {-sync-brand-name}: il modo migliore per avere i tuoi dati sempre con te #      . sync-signedout-account-title = Connetti il tuo {-sync-brand-name(capitalization: "lowercase")} 

Definisi beberapa varian istilah ini adalah teknik yang mudah digunakan yang memungkinkan Anda untuk mematuhi aturan tata bahasa banyak bahasa. Dalam contoh berikut ini, penerjemah Bahasa Polandia dapat menggunakan pernyataan untuk membuat kalimat yang benar dalam pesan judul akun yang disinkronkan-ditandatangani.


 -sync-brand-name = {$case -> *[nominative] Konto Firefox [genitive] Konta Firefox [accusative] Kontem Firefox } sync-signedout-account-title = Zaloguj do {-sync-brand-name(case: "genitive")} 

Lancar memungkinkan Anda untuk menanamkan logika konstruksi bahasa yang kompleks di mana Anda membutuhkannya. Pada saat yang sama, hanya menerjemahkan tetap sederhana. Lancar tidak menambahkan implementasi kompleks untuk desain sederhana.


 sync-signedout-caption = Take Your Web With You sync-signedout-caption = Il tuo Web, sempre con te sync-signedout-caption = Zabierz swoją sieć ze sobą sync-signedout-caption = So haben Sie das Web überall dabei. 

Sintaks yang lancar


Hari ini kami mengumumkan rilis stabil pertama Sintaks Lancar. Ini adalah spesifikasi format file untuk menyimpan terjemahan, serta rilis beta parser untuk JavaScript, Python dan Rust.


Dalam contoh di atas, Anda melihat apa arti sintaks Fluent. Itu dibuat agar dapat dimengerti oleh orang-orang dengan sedikit pengetahuan teknis, dan memungkinkan Anda untuk memeriksa dan mengedit teks dengan jumlah kesalahan minimum. Pemulihan kesalahan adalah poin penting: satu terjemahan yang salah tidak akan merusak seluruh file atau terjemahan yang berdekatan dengannya. Komentar bermanfaat untuk menyampaikan konteks pesan tertentu atau seluruh kelompok. Terjemahan dapat mengambil beberapa baris, yang memudahkan pekerjaan dan markup fragmen teks besar.


File yang lancar dapat dibuka di editor teks apa pun, yang menurunkan ambang entri untuk pengembang dan pelokalan. Format ini sudah didukung oleh platform terjemahan perangkat lunak sumber terbuka Mozilla Pontoon .

fluent_playground Fluent Playground adalah kotak pasir untuk menguji Fluent langsung di browser.

Untuk detail sintaks, lihat Panduan Sintaks Lancar . Definisi formal dapat ditemukan dalam spesifikasi Sintaks Lancar . Dan jika Anda hanya ingin mencoba Fluent, gunakan Fluent Playground , editor online dengan cuplikan untuk berbagi.


Umpan balik


Firefox adalah faktor utama dalam pengembangan Fluent. Firefox sudah menggunakan lebih dari 3.000 posting Fasih . Migrasi ke Fasih dimulai tahun lalu, dan sekarang berjalan lancar. Format Fluent telah terbukti menjadi solusi yang stabil dan fleksibel untuk antarmuka yang kompleks, seperti halaman pengaturan Firefox. Ini juga digunakan pada banyak halaman web Mozilla seperti Firefox Send dan Common Voice .


Kami percaya bahwa Fluent adalah pilihan yang sangat baik untuk aplikasi di mana kesederhanaan dan kecepatan adalah penting, tetapi pada saat yang sama memerlukan tampilan elemen antarmuka tergantung pada banyak variabel. Secara khusus, Fluent membantu menciptakan kalimat alami dalam berbagai bahasa dalam ruang antarmuka seluler yang terbatas; dalam platform media sosial yang kaya informasi; dan dalam game untuk mengirimkan statistik game dan menjelaskan mekanika kepada pemain.


Kami ingin mendengar dari pengembang atau vendor Fluent. Fasih sedang dikembangkan sebagai standar masa depan, jadi kami mengundang semua orang untuk mencobanya dan memberi tahu kami apa masalah lain yang Anda hadapi dalam pekerjaan Anda. Dengan bantuan Anda, kami akan dapat meningkatkan Fluent untuk bekerja pada banyak platform dan dalam banyak situasi.


Kami terbuka untuk kritik yang membangun. Pelajari lebih lanjut tentang Fasih di situs web proyek . Jika Anda memiliki kisah untuk diceritakan, hubungi kami di Fluent Discourse .



Dari seorang penerjemah: dokumentasi sintaksis dalam bahasa Rusia .

Source: https://habr.com/ru/post/id448944/


All Articles