Multilingualisasi (M17N) atau Dukungan Bahasa Asli untuk perangkat lunak aplikasi dilakukan dalam 2 langkah.
Internasionalisasi (I18N): Untuk membuat perangkat lunak berpotensi menangani beberapa lokal.
Pelokalan (L10N): Untuk membuat perangkat lunak menangani lokal tertentu.
|
Tip |
|---|---|
|
Ada 17, 18, atau 10 huruf antara "m" dan "n", "i" dan "n", atau "l" dan "n" dalam multilingualization (multibahasa), internationalization (internasionalisasi), dan localization (pelokalan) yang sesuai dengan M17N, I18N, dan L10N. Lihat Internasionalisasi dan pelokalan untuk detailnya. |
Perilaku program yang mendukung internasionalisasi dikonfigurasi oleh
variabel lingkungan "$LANG" untuk mendukung pelokalan.
Dukungan aktual dari fitur dependen lokal oleh pustaka
libc memerlukan pemasangan paket
locales atau locales-all. Paket
locales harus diinisialisasi dengan benar.
Jika paket locales dan locales-all
tidak terpasang, dukungan fitur lokal hilang dan sistem menggunakan pesan
bahasa Inggris AS dan menangani data sebagai ASCII. Perilaku ini adalah cara yang sama seperti
"$LANG" diatur oleh "LANG=",
"LANG=C", atau "LANG=POSIX".
Perangkat lunak modern seperti GNOME dan KDE telah menjadi multibahasa. Mereka diinternasionalisasi dengan membuat mereka menangani data UTF-8 dan dilokalkan dengan menyediakan pesan terjemahan mereka melalui infrastruktur gettext(1). Pesan yang diterjemahkan dapat disediakan sebagai paket pelokalan terpisah.
Sistem GUI desktop Debian saat ini biasanya menetapkan lokal di bawah
lingkungan GUI sebagai "LANG=xx_YY.UTF-8". Di sini,
"xx" adalah kode
bahasa ISO 639 dan "YY" adalah kode negara ISO 3166. Nilai-nilai ini
diatur oleh dialog GUI konfigurasi desktop dan mengubah perilaku program.
Lihat Bagian 1.5.2, “Variabel "$LANG"”
Representasi paling sederhana dari data teks adalah ASCII yang cukup untuk bahasa Inggris dan menggunakan kurang dari 127 karakter (diwakili dengan 7 bit).
Bahkan teks bahasa Inggris polos mungkin berisi karakter non-ASCII, misalnya tanda kutip kiri dan kanan yang sedikit keriting tidak tersedia dalam ASCII.
“double quoted text” is not "double quoted ASCII" ‘single quoted text’ is not 'single quoted ASCII'
Untuk mendukung lebih banyak karakter, banyak set karakter dan sistem pengodean telah digunakan untuk mendukung banyak bahasa (lihat Tabel 11.2, “Daftar nilai pengodean dan penggunaannya”).
Kumpulan karakter Unicode dapat mewakili hampir semua karakter yang dikenal manusia dengan rentang titik kode 21 bit (yaitu, 0 hingga 10FFFF dalam notasi heksadesimal).
Sistem pengodean teks UTF-8 mempaskan titik kode Unicode ke dalam aliran data 8 bit yang masuk akal yang sebagian besar kompatibel dengan sistem pemrosesan data ASCII. Hal ini membuat UTF-8 pilihan modern yang disukai. UTF adalah singkatan dari Unicode Transformation Format. Ketika data teks polos ASCII dikonversi ke UTF-8, ia memiliki konten dan ukuran yang persis sama dengan yang asli ASCII. Jadi Anda tidak kehilangan apa pun dengan menggelar lokal UTF-8.
Di bawah lokal UTF-8 dengan program aplikasi
yang kompatibel, Anda dapat menampilkan dan menyunting data teks bahasa
asing selama fonta yang diperlukan dan metode masukan dipasang dan
diaktifkan. Misalnya di bawah lokal "LANG=fr_FR.UTF-8",
gedit(1) (penyunting teks untuk Desktop GNOME) dapat
menampilkan dan menyunting data teks karakter Cina sambil menyajikan menu
dalam bahasa Prancis.
|
Tip |
|---|---|
|
Lokal standar baru " |
|
Catatan |
|---|---|
|
Beberapa program mengkonsumsi lebih banyak memori setelah mendukung I18N. Ini karena mereka dikodekan untuk menggunakan UTF-32(UCS4) secara internal untuk mendukung Unicode bagi optimasi kecepatan dan mengkonsumsi 4 byte per setiap data karakter ASCII independen dari lokal yang dipilih. Sekali lagi, Anda tidak kehilangan apa pun dengan menggelar lokal UTF-8. |
Agar sistem dapat mengakses lokal tertentu, data lokal harus dikompilasi dari basis data lokal.
Paket locales tidak
dilengkapi dengan data lokal yang telah dikompilasi sebelumnya. Anda harus
mengkonfigurasinya sebagai:
# dpkg-reconfigure locales
Proses ini melibatkan 2 langkah.
Pilih semua data lokal yang diperlukan untuk dikompilasi ke dalam bentuk biner. (Pastikan untuk menyertakan setidaknya satu lokal UTF-8)
Atur nilai lokal baku seluruh sistem dengan membuat
"/etc/default/locale" untuk digunakan oleh PAM (lihat
Bagian 4.5, “PAM dan NSS”).
Nilai lokal baku seluruh sistem yang diatur dalam
"/etc/default/locale" dapat ditimpa oleh konfigurasi GUI
bagi aplikasi GUI.
|
Catatan |
|---|---|
|
Sistem pengodean tradisional sebenarnya dapat diidentifikasi dengan
" |
Paket locales-all dilengkapi dengan data lokal yang telah
diprakompilasi untuk semua data lokal. Karena itu tidak membuat
"/etc/default/locale", Anda mungkin masih perlu memasang
paket locales juga.
|
Tip |
|---|---|
|
Paket |
Untuk pertukaran data lintas platform (lihat Bagian 10.1.7, “Perangkat penyimpanan lepasan”), Anda mungkin perlu mengait beberapa sistem berkas dengan pengodean tertentu. Misalnya, mount(8) untuk sistem berkas vfat mengasumsikan CP437 jika digunakan tanpa opsi. Anda perlu memberikan opsi mount eksplisit untuk menggunakan UTF-8 atau CP932 untuk nama berkas.
|
Catatan |
|---|---|
|
Saat memasang otomatis USB flash drive yang dapat dipasang panas di lingkungan desktop modern seperti GNOME, Anda dapat memberikan opsi pasang tersebut dengan mengklik kanan ikon di desktop, klik tab "Drive", klik untuk memperluas "Setting", dan masukkan "utf8" ke "Mount options:". Lain kali USB flash drive ini dipasang, pemasangan dengan UTF-8 akan diaktifkan. |
|
Catatan |
|---|---|
|
Jika Anda memutakhirkan sistem atau memindahkan disk drive dari sistem non-UTF-8 yang lebih lama, nama berkas dengan karakter non-ASCII dapat dikodekan dalam pengodean bersejarah dan usang seperti ISO-8859-1 atau eucJP. Silakan cari bantuan alat konversi teks untuk mengubahnya menjadi UTF-8. Lihat Bagian 11.1, “Alat konversi data teks”. |
Samba menggunakan Unicode untuk klien yang
lebih baru (Windows NT, 200x, XP) tetapi menggunakan CP850 untuk klien yang lebih lama (DOS dan Windows
9x/Me) sebagai baku. Baku untuk klien yang lebih tua ini dapat diubah
menggunakan "dos charset" dalam berkas
"/etc/samba/smb.conf", misalnya, menjadi CP932 untuk bahasa Jepang.
Terjemahan ada untuk banyak pesan teks dan dokumen yang ditampilkan dalam sistem Debian, seperti pesan kesalahan, keluaran program standar, menu, dan halaman manual. rantai alat perintah GNU gettext (1) digunakan sebagai alat backend untuk sebagian besar kegiatan terjemahan.
Di bawah "Tugas" → "Pelokalan" aptitude(8) menyediakan daftar panjang paket biner yang berguna yang menambahkan pesan terlokalkan ke aplikasi dan menyediakan dokumentasi yang diterjemahkan.
Misalnya, Anda dapat memperoleh pesan lokal untuk manpage dengan memasang
paket manpages-LANG. Untuk membaca
manpage berbahasa Italia bagi nama program dari
"/usr/share/man/it/", jalankan sebagai berikut.
LANG=it_IT.UTF-8 man programname
GNU gettext dapat mengakomodasi daftar prioritas bahasa terjemahan dengan
variabel lingkungan $LANGUAGE. Misalnya:
$ export LANGUAGE="pt:pt_BR:es:it:fr"
Untuk informasi selengkapnya, lihat info gettext dan baca
bagian "Variabel LANGUAGE".
Pengurutan karakter dengan sort(1) dan
ls(1) dipengaruhi oleh lokal. Mengekspor
LANG=en_US.UTF-8 mengurutkan dalam urutan kamus
A->a->B->b...->Z->z, sementara mengekspor
LANG=C.UTF-8 mengurutkan dalam urutan biner ASCII
A->B->...->Z->a->b.....
Format tanggal ls(1) dipengaruhi oleh lokal (lihat Bagian 9.3.4, “Tampilan waktu dan tanggal yang disesuaikan”).
Format tanggal dari date(1) dipengaruhi oleh lokal. Misalnya:
$ unset LC_ALL $ LANG=en_US.UTF-8 date Thu Dec 24 08:30:00 PM JST 2023 $ LANG=en_GB.UTF-8 date Thu 24 Dec 20:30:10 JST 2023 $ LANG=es_ES.UTF-8 date jue 24 dic 2023 20:30:20 JST $ LC_TIME=en_DK.UTF-8 date 2023-12-24T20:30:30 JST
Tanda baca angka berbeda untuk lokal. Misalnya, di lokal Inggris, seribu
satu titik satu ditampilkan sebagai "1.000,1" sementara
di lokal Jerman, ditampilkan sebagai "1.000,1". Anda
mungkin melihat perbedaan ini dalam program lembar kerja.
Setiap fitur detail variabel lingkungan "$LANG" dapat
ditimpa dengan menetapkan variabel "$LC_*". Variabel
lingkungan ini dapat ditimpa lagi dengan menetapkan variabel
"$LC_ALL". Lihat manpage locale(7)
untuk rinciannya. Kecuali Anda memiliki alasan kuat untuk membuat
konfigurasi yang rumit, silakan menjauh dari mereka dan hanya menggunakan
variabel "$LANG" yang diatur ke salah satu lokal UTF-8.
Sistem papan ketik dapat dikonfigurasi pada lapisan yang berbeda dari sistem.
Kernel Linux: keyboard(5)
X server: setxkbmap(1),
xkeyboard-config(5), variabel lingkungan
XMODIFIERS
Lingkungan desktop GUI: Kerangka kerja Metode Masukan"
ibus, fcitx5
Aplikasi: variabel lingkungan untuk menata sumber masukannya:
GTK_IM_MODULE, QT_IM_MODULE,
QT_IM_MODULES, ...
Kerangka kerja metode masukan (input method, IM) terdiri dari:
Mesin metode masukan (Input method engine, IME): Metode masukan sebenarnya
Konfigurasi: Menangani konfigurasi bagi IBus dan layanan lain seperti pengaya IME
Panel: Antarmuka pengguna seperti misalnya bilah bahasa dan tabel pemilihan kandidat
Masukan multibahasa ke aplikasi diproses kurang lebih sebagai:
Keyboard UI panel Configuration Application
| ^ | | ^ ^
v | v v | |
Linux kernel -> Input method engine (IME) -+-> Gtk, Qt ---+ |
| ^ | |
| | +-> X11, Wayland -+
v |
IME plugin (ibus-mozc, ...)
Sistem Debian dapat dikonfigurasi untuk bekerja dengan banyak pengaturan
papan ketik internasional menggunakan paket
keyboard-configuration.
# dpkg-reconfigure keyboard-configuration
Untuk konsol Linux dan sistem X Window, ini memperbarui parameter
konfigurasi di "/etc/default/keyboard". Banyak karakter
non-ASCII termasuk karakter beraksen yang digunakan oleh banyak bahasa Eropa
dapat dibuat tersedia dengan tombol mati,
tombol AltGr, dan tombol compose.
|
Catatan |
|---|---|
|
Jika ibus aktif, konfigurasi papan ketik X klasik Anda dengan
|
Tidak seperti protokol X Window, protokol inti Wayland bahkan tidak
mendukung masukan dari karakter beraksen. Kompositor Wayland populer,
seperti misalnya Mutter untuk GNOME atau
KWin untuk KDE, mengimplementasikan protokol
ekstensi seperti text-input-unstable-v3 bagi masukan teks
(lihat protokol Wayland saat
ini dan status dukungan mereka").
Protokol text-input-unstable-v3 bekerja baik dengan
metode masukan bagi Wayland (lihat Post mortem proyek metode masukan
Wayland").
Kebanyakan aplikasi GUI dibangun dengan pustaka GUI seperti GTK atau Qt yang
mendukung text-input-unstable-v3 ini.
Mesin Metode Masukan (Input Method Engine, IME) populer, seperti IBus atau Fcitx (versi
5), dapat bekerja dengan text-input-unstable-v3
ini.
IME mendukung masukan teks bagi banyak bahasa dengan pengaya.
IME terkini mengintegrasikan fungsionalitas X Keyboard Extension (XKB) seperti
setxkbmap yang sebelumnya disediakan oleh X Window untuk
mendukung masukan teks karakter beraksen bagi bahasa-bahasa Eropa untuk
Wayland.
Untuk GNOME, "ibus" adalah IME baku yang secara otomatis
dipasang melalui ketergantungan paketnya.
Kebanyakan fitur masukan papan ketik multi-bahasa dapat dikonfigurasi dari "Pengaturan GNOME" atau "Tweak GNOME".
Beberapa fitur masukan papan ketik multi-bahasa mungkin perlu dikonfigurasi dari perintah ibus-setup(1).
Masukan papan ketik emoji tersedia dengan
mengetikkan SUPER-. (Secara simultan menekan tombol
Windows dan titik) diikuti dengan suatu kata kunci bagi setiap emoji dan
tombol SPASI.
Daftar paket-paket IBus dan pengayanya adalah sebagai berikut.
Tabel 8.1. Daftar IBus dan paket-paket pengayanya
| paket | popcon | ukuran | lokal yang didukung |
|---|---|---|---|
| ibus | V:210, I:250 | 1828 | kerangka kerja metode masukan menggunakan dbus |
| ibus-mozc | V:2.2, I:3.9 | 979 | Jepang |
| ibus-anthy | V:0.5, I:1.2 | 8958 | Jepang |
| ibus-skk | V:0.05, I:0.16 | 242 | Jepang |
| ibus-kkc | V:0.04, I:0.17 | 206 | Jepang |
| ibus-libpinyin | V:1.1, I:5.1 | 123 | Cina (untuk zh_CN) |
| ibus-chewing | V:0.16, I:0.84 | 298 | Tionghoa (untuk zh_TW) |
| ibus-libzhuyin | V:0.00, I:0.12 | 41021 | Tionghoa (untuk zh_TW) |
| ibus-rime | V:0.26, I:0.49 | 76 | Tionghoa (untuk zh_CN/zh_TW) |
| ibus-cangjie | V:0.01, I:0.11 | 235 | Tionghoa (untuk zh_HK) |
| ibus-hangul | V:0.3, I:2.0 | 261 | Korea |
| ibus-libthai | V:0.00, I:0.04 | 84 | Bahasa Thai |
| ibus-table-thai | I:0.05 | 59 | Bahasa Thai |
| ibus-unikey | V:0.18, I:0.38 | 286 | Vietnam |
| keyman | V:0.00, I:0.12 | 507 | Multibahasa: Pengaya Keyman untuk lebih dari 2000 bahasa |
| ibus-table | V:0.1, I:1.0 | 2364 | tabel pengaya untuk IBus |
| ibus-m17n | V:0.2, I:1.9 | 373 | Multibahasa: Indic, Arab, dan lain-lain |
Kerangka metode input Fcitx (versi 5) populer
di kalangan pengguna Tionghoa dan kompatibel dengan
"ibus".
Daftar paket "fcitx5" dan pengayanya adalah sebagai
berikut.
Tabel 8.2. Daftar paket Fcitx5 dan pengayanya
| paket | popcon | ukuran | lokal yang didukung |
|---|---|---|---|
| fcitx5 | V:8, I:12 | 761 | kerangka metode input yang kompatibel dengan "ibus" |
| fcitx5-mozc | V:1.1, I:1.8 | 1265 | Jepang |
| fcitx5-anthy | V:0.07, I:0.21 | 808 | Jepang |
| fcitx5-skk | V:0.06, I:0.17 | 369 | Jepang |
| fcitx5-kkc | V:0.01, I:0.07 | 416 | Jepang |
| fcitx5-chinese-addons | I:9.0 | 17 | Tionghoa (metapaket untuk zh_*) |
| fcitx5-pinyin | V:3.9, I:9.4 | 996 | Cina (untuk zh_CN) |
| fcitx5-chewing | V:0.24, I:0.93 | 217 | Tionghoa (untuk zh_TW) |
| fcitx5-zhuyin | I:0.07 | 41051 | Tionghoa (untuk zh_TW) |
| fcitx5-rime | V:0.45, I:0.90 | 371 | Tionghoa (untuk zh_CN/zh_TW) |
| fcitx5-table-cangjie-large | I:0.12 | 1292 | Tionghoa (untuk zh_HK) |
| fcitx5-hangul | V:0.11, I:0.25 | 235 | Korea |
| fcitx5-libthai | I:0.04 | 119 | Bahasa Thai |
| fcitx5-table-thai | I:0.07 | 34 | Bahasa Thai |
| fcitx5-unikey | V:0.09, I:0.20 | 588 | Vietnam |
| fcitx5-m17n | V:0.16, I:0.58 | 259 | Multibahasa: Indic, Arab, dan lain-lain |
| fcitx5-table | V:0.3, I:9.3 | 417 | pengaya tabel untuk fcitx5 |
| fcitx5-keyman | V:0.04, I:0.05 | 235 | Multibahasa: Pengaya Keyman untuk lebih dari 2000 bahasa |
Saya menemui bahwa metode masukan Jepang yang dimulai di bawah lingkungan
bahasa Inggris ("en_US.UTF-8" sangat berguna. Berikut
adalah bagaimana saya melakukan ini dengan IBus:
Pasang paket alat masukan Jepang ibus-mozc (atau
ibus-anthy).
Generuk: Jalankan ibus-setup(1) → pilih "Metode Masukan"
→ klik "Tambahkan" → "Jepang" → "Mozc (atau Anthy)" →
klik "Tambahkan"
GNOME: Pilih "Pengaturan" → "Papan Ketik" → "Sumber Masukan" → klik
"+" di "Sumber Masukan" → "Jepang" → Mozc (atau Anthy)" →
klik "Tambahkan"
Anda dapat memilih sebanyak mungkin sumber masukan.
Login ulang ke akun pengguna.
Siapkan setiap sumber masukan dengan mengklik kanan ikon bilah alat GUI.
Beralih di antara sumber masukan yang dipasang dengan SUPER-SPACE. (SUPER biasanya adalah kunci Windows.)
|
Tip |
|---|---|
|
Jika Anda ingin memiliki akses ke lingkungan papan ketik alfabet saja dengan
papan ketik Jepang fisik di mana |
Untuk Wayland:
Paket im-config tidak melakukan apa pun aman untuk
dihapus.
Anda mungkin tidak perlu menata variabel lingkungan kecuali bagi kompatibilitas mundur dsb.
Bila Anda perlu menata suatu variabel lingkungan, buat suatu berkas misalnya
"~/.config/environment.d/50-input-method.conf untuk
menata mereka.
Untuk X Window:
Pasang paket im-config.
Entri menu GUI untuk im-config(8) adalah "Metode masukan".
Atau, jalankan "im-config" dari shell pengguna.
im-config(8) berperilaku berbeda jika perintah dijalankan dari root atau bukan.
im-config(8) memungkinkan metode masukan terbaik pada sistem sebagai baku tanpa tindakan pengguna.
Konsol Linux hanya dapat menampilkan karakter terbatas. (Anda perlu menggunakan program terminal khusus seperti jfbterm(1) untuk menampilkan bahasa non-Eropa pada konsol non-GUI.)
Lingkungan GUI (Bab 7, Sistem GUI) dapat menampilkan karakter apa pun di UTF-8 selama fonta yang diperlukan terpasang dan diaktifkan. (Pengodean data fonta asli diurus dan transparan kepada pengguna.)
Sistem Debian dapat dikonfigurasi untuk bekerja dengan banyak pengaturan
konsol internasional menggunakan paket console-setup.
# dpkg-reconfigure console-setup
Untuk konsol Linux dan sistem X Window, ini memperbarui parameter
konfigurasi di "/etc/default/console-setup" untuk
menampilkan banyak karakter non-ASCII termasuk karakter beraksen yang
dipakai oleh banyak bahasa Eropa dapat menjadi tersedia.
Ada beberapa komponen untuk mengkonfigurasi konsol karakter dan fitur sistem ncurses(3).
Berkas "/etc/terminfo/*/*"
(terminfo(5))
Variabel lingkungan "$TERM" (term(7))
setterm(1), stty(1), tic(1), dan toe(1)
Jika entri terminfo untuk xterm tidak
berfungsi dengan xtermnon-Debian, ubah tipe terminal
Anda, "$TERM", dari "xterm" ke salah
satu versi terbatas fitur seperti "xterm-r6" ketika Anda
masuk ke sistem Debian dari jarak jauh. Lihat
"/usr/share/doc/libncurses5/FAQ" untuk informasi lebih
lanjut. "dumb" adalah penyebut umum terendah untuk
"$TERM".
Di bawah lokal Asia Timur, karakter box drawing, Yunani, dan Sirilik mungkin ditampilkan lebih lebar dari lebar yang diinginkan sehingga menyebabkan keluaran terminal yang tidak sejajar (lihat Unicode Standard Annex #11, 4.2 Ambiguous Characters).
Anda dapat mengatasi masalah ini:
gnome-terminal: Preferensi → Profil → Nama
profil → Kompatibilitas → Karakter lebar-ambigu → Sempit
ncurses: Atur lingkungan export
NCURSES_NO_UTF8_ACS=0.