Saya bekerja untuk perusahaan yang telah mulai mengintegrasikan sistem komputer tertanam ke dalam produk kami yang kami produksi. Kami memiliki berbagai macam produk dan didistribusikan di seluruh dunia. Selain itu, kami telah merancang beberapa papan terintegrasi yang dapat melayani berbagai keperluan tergantung pada firmware yang telah di-flash ke sistem. Dengan cara ini kita tidak perlu mendesain ulang perangkat keras komputer kita untuk berbagai produk kita - yang harus kita lakukan adalah menulis ulang lapisan firmware untuk memenuhi kebutuhan produk tertentu.
Karena keterbatasan perangkat keras ini, mengubah perangkat keras kami memerlukan tindakan kongres tetapi menulis perangkat lunak baru jauh lebih sederhana.
Salah satu produk kami memiliki persyaratan baru yang belum harus kami terapkan sebelumnya, yaitu kebutuhan akan teks yang dimasukkan pengguna.
Saat ini, kami dapat menyimpan teks internasional dalam sumber daya dan hanya karakter font yang diperlukan dikompilasi ke gambar yang dipetakan sedikit. Ini berarti bahwa kami telah dapat menyimpan bahasa yang sangat ideografis seperti teks Cina dan Jepang dalam ruang minimal karena kami hanya menggunakan persentase yang sangat kecil dari seluruh rangkaian bahasa.
Karena produk baru ini mengharuskan pengguna kami memasukkan teks, kami harus mengimplementasikan rangkaian karakter yang luas. Sebagai pengembang PC, saya cukup akrab dengan ASCII, Unicode, UTF-8, dll. Namun, mengimplementasikan rangkaian karakter lengkap dari bahasa-bahasa ini tidak layak karena kami memiliki jumlah FRAM terbatas di papan tulis untuk menyimpan data font.
Manajemen saya berharap ada set karakter minimal yang dapat digunakan untuk bahasa yang sangat ideografis. Saya percaya ada alfabet fonetik untuk bahasa Jepang (Hiragana?) Apakah ada huruf fonetis yang serupa untuk bahasa Cina, Korea, Vietnam, dll. Dan, jika demikian, dapatkah penutur bahasa-bahasa ini berkomunikasi dengan rangkaian karakter yang begitu sempit? Saya cukup yakin jawaban untuk pertanyaan itu adalah "benar-benar, tidak" tetapi itu adalah pertanyaan yang pantas ditanyakan.
Manajemen telah menetapkan persyaratan "lunak" bahwa kami hanya dapat memiliki rangkaian karakter terbatas sekitar 8.000 karakter yang mencakup semua bahasa utama yang umum digunakan. Jika ini tidak memungkinkan, kita perlu mencari beberapa bentuk metode alternatif untuk memenuhi kebutuhan kita berdasarkan sumber daya perangkat keras kita yang terbatas.
Saya yakin masalah ini harus dipecahkan sebelumnya. Apakah ada yang punya pengalaman bekerja dalam kendala seperti itu sambil membutuhkan font yang luas dan sistem pengkodean karakter? Jika demikian, nugget kebijaksanaan apa yang dapat Anda tawarkan?
Jawaban:
Ini adalah pertanyaan yang sangat bagus.
Untuk menangani jawaban Anda satu bahasa pada satu waktu;
Orang Vietnam
Bahasa Vietnam tidak lagi menggunakan karakter ideografis, tetapi bahasa Latinnya cukup luas: lihat contoh untuk melihat berapa banyak diakritik yang digunakannya:
Alasannya adalah bahwa setiap suku kata Vietnam memiliki satu dari enam tanda nada yang berdampak mengucapkan - selain memiliki satu mesin terbang konsonan non-standar dan enam vokal non-standar.
Unicode membuat tanda nada di atas vokal; jika Anda memiliki kemampuan untuk menyusun mesin terbang, Anda hanya perlu 13 mesin terbang tambahan untuk bahasa Vietnam, tetapi jika tidak, Anda akan memerlukan 1 konsonan ekstra + 12 vokal * 6 nada + 6 vokal baru tanpa nada = 79 mesin terbang tambahan , dalam huruf kecil dan huruf besar.
Korea
Bahasa Korea adalah berita buruk. Bahasa Korea ditulis melalui alfabet yang disebut Hangul , yang, sementara secara teknis menjadi alfabet hanya 68 huruf (disebut jamo), sebenarnya ditulis dalam blok berukuran suku kata, dibangun dari jamo.
Contoh tampilan teks Korea:
Unicode memiliki 11.172 karakter blok yang selesai - tetapi jika Anda bersedia untuk membuat kode logika sendiri untuk membuat "blok" akhir, Anda dapat menghemat set karakter dengan hebat.
Pada dasarnya, semua suku kata dapat dibagi menjadi dua kategori - konsonan + vokal dan konsonan + vokal + final, di mana final dapat berupa vokal, konsonan atau gabungan. Suku kata CV dibangun dengan C di kiri dan V di kanan; Konsonan CVF disusun dengan blok CV di atas (kiri-ke-kanan), dan final di bawah.
Jadi, pada dasarnya, Anda perlu:
untuk total 108 simbol . (Saya tidak benar-benar yakin tidak ada "pengikat" di Korea, sehingga kadang-kadang blok yang dikonstruksi terlihat berbeda dari kombinasi komponen, tetapi itulah yang terbaik yang akan kita dapatkan untuk saat ini).
Jepang
Seperti yang Anda perhatikan dengan benar, bahasa Jepang memiliki alfabet fonetik - tetapi sebenarnya, bukan hanya satu, tetapi dua! Hiragana dan Katakana adalah suku kata, keduanya dengan 48 suku kata yang sama, tetapi digunakan dalam konteks yang berbeda (katakana digunakan untuk kata-kata asing, hiragana digunakan untuk tata bahasa).
Sedihnya (untuk tujuan kita), bahasa Jepang hampir tidak mungkin untuk sepenuhnya ditulis hanya menggunakan dua huruf ini - karakter Cina, atau kanji , sebagaimana mereka dikenal dalam konteks ini, sangat penting untuk teks bahasa Jepang.
Contoh penulisan wajib:
Selain kanji, Anda akan membutuhkan 103 mesin terbang untuk memetakan dua huruf fonetis + 7 kanji umum yang tidak ada dalam bahasa Cina.
Tanda Baca CKJ
Bukan ahli dalam hal ini, tetapi baik Cina dan Jepang menggunakan tanda baca klasik Asia Timur. Unicode memiliki 64 simbol yang didedikasikan untuk tanda baca dan simbol CJK.
Cina
Jadi, kami memiliki 7631 karakter yang tersisa di "anggaran" kami. Apakah itu cukup untuk menutupi karakter Cina?
Dengan lebih dari 100.000 karakter yang ada, pada dasarnya tidak mungkin untuk sepenuhnya menutupi karakter Cina, subset yang digunakan secara aktif jauh lebih kecil. 2000-3000 karakter dikatakan cukup untuk literasi umum (HSK, tes TOEFL seperti Mandarin Cina, membutuhkan pengetahuan 2800 karakter untuk level tertinggi, HSK Advanced), 4000-5000 karakter cukup untuk orang yang berpendidikan.
Perlu diingat bahwa ada karakter Sederhana dan Tradisional (yang pertama digunakan di RRC, terakhir - di Taiwan), yang berbeda untuk banyak karakter, sisa 7600 simbol, saya katakan, akan cukup untuk menutupi sebagian besar kasus penggunaan untuk kedua karakter.
Jangan ragu untuk bertanya jika Anda memiliki pertanyaan!
sumber