Ubuntu 18.04 Server / Cara mengubah bahasa sistem

Untuk mengubah bahasa bawaan Ubuntu 18.04 Server, siapkan data locale dan paket terjemahan, atur update-locale, lalu masuk kembali. Panduan ini menggunakan bahasa Korea, ko_KR.UTF-8, sebagai contoh dan membedakan nilai yang tersimpan dalam berkas dengan nilai yang aktif pada sesi saat ini.

Periksa konfigurasi dan buat cadangan

Locale adalah pengaturan yang menentukan bahasa program, pengodean karakter, format tanggal dan angka, serta aturan pengurutan. Panduan ini membahas lingkungan terminal Ubuntu 18.04 Server. Metode input dan tata letak papan ketik pada desktop merupakan pengaturan terpisah.

Pemeliharaan keamanan standar Ubuntu 18.04 LTS berakhir pada Mei 2023. Jika mengelola server yang masih menggunakan versi ini, periksa juga cakupan pemeliharaan keamanan diperluas melalui Ubuntu Pro atau rencana peningkatan sistem operasi. Lihat siklus rilis resmi Ubuntu untuk cakupan dukungannya.

Masuk dengan akun yang memiliki hak sudo dan jalankan perintah berikut satu per satu. locale menampilkan pengaturan sesi aktif, locale -a mencantumkan locale yang tersedia, dan perintah terakhir menampilkan berkas konfigurasi bawaan sistem.

locale
locale -a
cat /etc/default/locale

Jika sesi menampilkan LANG=en_US.UTF-8, locale bawaannya adalah bahasa Inggris Amerika Serikat. Periksa juga variabel berikut karena nilainya dapat menimpa kategori tertentu atau seluruh pengaturan.

Variabel Fungsi dan hal yang perlu diperiksa
LANG Locale bawaan ketika suatu kategori tidak memiliki pengaturan khusus.
LC_*, misalnya LC_MESSAGES Mengatur kategori tertentu, seperti pesan, waktu, atau angka, dengan prioritas di atas LANG untuk kategori tersebut.
LC_ALL Menimpa semua kategori locale sekaligus. Umumnya cocok untuk menjalankan satu perintah dengan locale sementara, bukan sebagai nilai bawaan permanen.
LANGUAGE Menentukan prioritas terjemahan pesan pada program yang menggunakan GNU gettext. Tidak mengubah seluruh format tanggal dan angka; periksa jika bahasa pesan tidak sesuai harapan.

Manual locale(7) Ubuntu 18.04 menjelaskan fungsi dan prioritas variabel ini, termasuk penggunaan LANGUAGE untuk pesan terjemahan. Program tanpa terjemahan Korea dapat tetap menampilkan pesan bahasa Inggris meskipun locale Korea aktif.

Cadangkan berkas konfigurasi bawaan sebelum mengubahnya. Jika nama cadangan di bawah sudah ada, gunakan nama lain agar cadangan sebelumnya tidak tertimpa. Saat memulihkan, gunakan nama berkas yang benar-benar disimpan.

sudo cp -a /etc/default/locale /etc/default/locale.backup

Siapkan locale Korea dan paket terjemahan

Data locale dan terjemahan pesan program memiliki fungsi berbeda. Menuliskan nama locale dalam berkas tidak memasang data yang diperlukan maupun terjemahan semua program. Perbarui daftar paket terlebih dahulu, lalu pasang alat locale dan paket bahasa Korea.

sudo apt-get update
sudo apt-get install locales language-pack-ko
sudo locale-gen ko_KR.UTF-8
locale -a

Lanjutkan ke perintah berikutnya hanya jika perintah sebelumnya selesai tanpa kesalahan. Jika daftar terakhir memuat ko_KR.utf8, locale Korea UTF-8 tersedia. Daftar dapat menggunakan .utf8, sedangkan contoh konfigurasi menggunakan .UTF-8. locale-gen membuat data locale; pemilihan bahasa bawaan sistem adalah langkah terpisah. Lihat manual locale-gen Ubuntu 18.04.

Jika paket tidak ditemukan atau unduhan gagal, selesaikan terlebih dahulu kesalahan dari apt-get update, konfigurasi repositori, dan koneksi jaringan. Memaksakan nama locale setelah pemasangan gagal dapat menimbulkan peringatan pada perintah berikutnya.

Ubah bahasa bawaan sistem

Gunakan konfigurasi berikut jika ingin menerapkan locale Korea sebagai bawaan untuk bahasa sekaligus format tanggal dan angka.

sudo update-locale --reset LANG=ko_KR.UTF-8
cat /etc/default/locale

--reset menghapus variabel yang tidak disebutkan dalam perintah dari /etc/default/locale. Ini mencegah entri LANGUAGE atau LC_* lama dalam berkas tersebut menimpa bawaan Korea. Jika sengaja menggunakan wilayah lain untuk beberapa kategori, jangan langsung memakai opsi ini: pertahankan pengaturan tersebut dan ubah hanya variabel yang diperlukan.

Berkas konfigurasi harus memuat entri berikut. Komentar yang dibuat otomatis juga boleh tetap ada.

LANG=ko_KR.UTF-8

update-locale memeriksa nilai dan mengubah berkas bawaan, tetapi tidak mengubah variabel lingkungan shell yang sudah berjalan. Perilaku ini dan arti --reset dijelaskan dalam manual update-locale Ubuntu 18.04.

Masuk kembali dan periksa hasilnya

Jika terhubung melalui SSH, putuskan koneksi lalu buka sesi baru. Biasanya tidak perlu memulai ulang server, tetapi sesi dan program yang sudah berjalan dapat mempertahankan lingkungan lama. Menyambung kembali ke tmux atau screen tidak membuktikan bahwa lingkungan login baru telah dimuat. Untuk layanan sistem, periksa juga konfigurasi lingkungannya masing-masing.

Jalankan perintah berikut pada sesi baru.

locale
locale charmap

Pengaturan dasar sudah aktif jika terlihat LANG=ko_KR.UTF-8, kategori yang tidak ditimpa menggunakan locale Korea, dan pengodean karakter adalah UTF-8. Nilai kosong seperti LC_ALL= bukan kesalahan: artinya tidak ada penimpaan global. Gunakan manual perintah locale untuk menafsirkan lingkungan yang sebenarnya.

Bandingkan format tanggal dengan menampilkan tanggal yang sama dalam dua locale. Contoh ini hanya menentukan locale sementara untuk setiap perintah dan tidak mengubah berkas konfigurasi bawaan.

LC_ALL=C date -d '2026-01-02' '+%A %B'
LC_ALL=ko_KR.UTF-8 date -d '2026-01-02' '+%A %B'

Perintah pertama seharusnya menampilkan nama bahasa Inggris, Friday January; perintah kedua menampilkan nama hari dan bulan dari locale Korea yang terpasang. Bahasa tanggal dan zona waktu adalah pengaturan berbeda. Jika waktu itu sendiri keliru, lihat cara mengatur zona waktu di Ubuntu 18.04 Server.

Hal yang diperiksa jika pengaturan tidak diterapkan

  • Muncul peringatan locale: pastikan locale -a mencantumkan locale yang diatur. Jika tidak, periksa kembali pemasangan paket dan pembuatan data locale. Menambahkan nama ke berkas saja tidak membuat data yang belum tersedia.
  • Berkas menunjukkan bahasa Korea, tetapi sesi memakai bahasa lain: periksa LC_ALL, variabel LC_*, dan LANGUAGE melalui locale. Cari juga pengaturan khusus dalam ~/.profile, ~/.bashrc, dan /etc/environment. Ubah hanya bagian yang diperlukan, lalu masuk kembali.
  • Bahasa berubah hanya saat menggunakan SSH: SendEnv pada klien dan AcceptEnv pada server dapat meneruskan LANG serta LC_*. Bandingkan locale klien dengan locale yang telah dibuat pada server. Lihat konfigurasi klien OpenSSH dan konfigurasi server OpenSSH. Jangan sembarang mengubah akses jarak jauh atau memulai ulang SSH hanya untuk memperbaiki perbedaan bahasa.
  • Hanya beberapa pesan tetap berbahasa Inggris: periksa apakah program menyediakan terjemahan Korea dan tinjau LANGUAGE. Satu pesan bahasa Inggris tidak berarti seluruh konfigurasi locale gagal.
  • Teks Korea muncul sebagai kotak atau karakter rusak: periksa pengodean UTF-8 terminal SSH dan dukungan font untuk bahasa Korea. Mengubah locale server tidak memasang font atau metode input Korea pada klien.

Pulihkan konfigurasi awal atau beralih ke bahasa Inggris

Untuk kembali ke keadaan awal, pulihkan cadangan yang dibuat sebelum perubahan lalu masuk kembali. Pengaturan wilayah khusus yang tersimpan dalam cadangan juga akan dipulihkan.

sudo cp -a /etc/default/locale.backup /etc/default/locale
cat /etc/default/locale

Untuk memilih bahasa Inggris Amerika Serikat UTF-8 sebagai bawaan baru, bukan memulihkan keadaan sebelumnya, buat locale tersebut lalu perbarui konfigurasi. Perintah berikut juga mengatur ulang entri locale individual pada berkas bawaan, jadi tinjau terlebih dahulu pengecualian yang ingin dipertahankan.

sudo locale-gen en_US.UTF-8
sudo update-locale --reset LANG=en_US.UTF-8

Setelah masuk kembali, periksa dengan locale dan locale charmap. Jika nilai berbeda masih muncul hanya melalui SSH, periksa variabel lingkungan pengguna dan penerusan lingkungan SSH, alih-alih berulang kali menimpa berkas dengan cadangan.