GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mengatur Lokal Dan Apa Implikasinya?

Pertanyaan ini didorong dengan mengajukan pertanyaan
Browser Chromium tidak mengizinkan pengaturan ukuran kertas default untuk "Cetak ke File", dan juga oleh percakapan dengan @Gilles di obrolan. Seperti yang ditunjukkan oleh @don_crissti, dan sebagaimana diverifikasi oleh saya, mengubah lokal (setidaknya LC_PAPER ) membuat perbedaan dalam ukuran kertas yang dipilih.

Saya tidak pernah terlalu memikirkan apa yang harus dipilih, dan selalu menggunakan en_US.UTF-8 karena sepertinya pilihan default yang masuk akal.

Namun, per @Gilles pada obrolan (lihat percakapan yang dimulai di http://chat.stackexchange.com/transcript/message/17017095#17017095). Ekstrak:

Gilles:LC_PAPER default ke $LANG

Gilles:Anda harus memiliki LANG=en_US.UTF-8. Itu ide yang buruk:itu menyetel
LC_COLLATE dan itu hampir selalu merupakan hal yang buruk

Gilles:LC_COLLATE tidak menjelaskan susunan yang benar, terlalu
membatasi (berjalan karakter demi karakter) menghapus LANG dan sebagai gantinya
mengatur LC_CTYPE dan LC_PAPER

Gilles:plus LC_MESSAGES jika Anda ingin pesan dalam bahasa selain
Inggris

Jelas, ada masalah di sini yang tidak saya sadari, dan saya yakin banyak yang lain juga. Jadi, masalah apa yang harus Anda pertimbangkan saat menyetel lokal, dan bagaimana Anda harus menyetelnya? Saya selalu menjalankan dpkg-reconfigure locales di Debian, dan tidak berpikir dua kali tentangnya.

Pertanyaan khusus:Haruskah saya menyetel lokal saya ke en_IN.UTF-8? Apakah ada kerugian dari melakukannya?

Jawaban yang Diterima:

Setelan lokal adalah preferensi pengguna yang terkait dengan budaya Anda.

Nama lokal

Pada semua varian unix saat ini yang saya ketahui (tetapi tidak pada beberapa barang antik), nama lokal mengikuti pola yang sama:

  • Kode bahasa dua huruf kecil ISO 639-1, atau kode bahasa tiga huruf ISO 639-2 jika bahasa tidak memiliki kode dua huruf. Misalnya, en untuk bahasa Inggris, de untuk bahasa Jerman, ja untuk bahasa Jepang, uk untuk bahasa Ukraina, ber untuk Berber, …
  • Untuk banyak tetapi tidak semua bahasa, garis bawah _ diikuti dengan kode negara dua huruf besar ISO 3166. Jadi:en_US untuk bahasa Inggris AS, en_UK untuk bahasa Inggris Britania, fr_CA Kanada (Québec) Prancis, de_DE untuk bahasa Jerman di Jerman, de_AT untuk bahasa Jerman dari Austria, ja_JP untuk bahasa Jepang (Jepang), dll.
  • Opsional, sebuah titik . diikuti dengan nama pengkodean karakter seperti UTF-8 , ISO-8859-1 , KOI8-U , GB2312 , Big5 , dll. Dengan GNU libc setidaknya (saya tidak tahu seberapa luas ini), huruf besar dan tanda baca diabaikan dalam nama penyandian. Misalnya, zh_CN.UTF-8 adalah bahasa Mandarin (sederhana) Cina yang dikodekan dalam UTF-8, sedangkan zh_CN apakah bahasa Mandarin Mandarin dikodekan dalam GB2312, dan zh_TW adalah bahasa Tionghoa Taiwan (tradisional) yang dikodekan dalam Big5.
  • Opsional, tanda @ diikuti dengan nama varian. Arti dari varian adalah tergantung lokal. Misalnya, banyak negara Eropa memiliki @euro varian lokal di mana tanda mata uang adalah € dan di mana pengkodean adalah salah satu yang menyertakan karakter ini (ISO 8859-15 atau ISO 8859-16), yang bertentangan dengan varian tanpa hiasan dengan tanda mata uang yang lebih lama. Misalnya, en_IE (Bahasa Inggris, Irlandia) menggunakan enkode latin1 (ISO 8859-1) dan £ sebagai simbol mata uang saat [email protected] menggunakan pengkodean latin9 (ISO 8859-15) dan € sebagai simbol mata uang.

Selain itu, ada dua nama lokal yang ada di semua sistem mirip unix:C dan POSIX . Nama-nama ini sinonim dan berarti komputer, yaitu pengaturan default yang sesuai untuk data yang diuraikan oleh program komputer.

Setelan lokal

Kategori lokal berikut ditentukan oleh POSIX:

Terkait:Bagaimana mengatur waktu beberapa proses latar belakang?

GNU libc, yang akan Anda temukan di Linux non-embedded, mendefinisikan kategori lokal tambahan:

  • LC_PAPER :ukuran kertas default (ditentukan oleh tinggi dan lebar).
  • LC_NAME , LC_ADDRESS , LC_TELEPHONE , LC_MEASUREMENT , LC_IDENTIFICATION :Saya tidak tahu aplikasi apa pun yang menggunakan ini.

Variabel lingkungan

Aplikasi yang menggunakan pengaturan lokal menentukannya dari variabel lingkungan.

  • Kemudian nilai LANG variabel lingkungan digunakan kecuali diganti oleh pengaturan lain. Jika LANG tidak disetel, lokal default adalah C .
  • LC_xxx nama dapat digunakan sebagai variabel lingkungan.
  • Jika LC_ALL diatur, maka semua nilai lainnya diabaikan; ini terutama berguna untuk mengatur LC_ALL=C menjalankan aplikasi yang perlu menghasilkan keluaran yang sama di mana pun aplikasi itu dijalankan.
  • Selain itu, GNU libc menggunakan LANGUAGE untuk menentukan fallback untuk LC_MESSAGES (mis. LANGUAGE=fr_BE:fr_FR:en untuk memilih bahasa Prancis Belgia, atau jika tidak tersedia Prancis Prancis, atau jika tidak tersedia bahasa Inggris).

Menginstal lokal

Data lokal bisa berukuran besar, sehingga beberapa distribusi tidak mengirimkannya dalam bentuk yang dapat digunakan dan sebaliknya memerlukan langkah penginstalan tambahan.

  • Di Debian, untuk menginstal lokal, jalankan dpkg-reconfigure locales dan pilih dari daftar di kotak dialog, atau edit /etc/locale.gen lalu jalankan locale-gen .
  • Di Ubuntu, untuk menginstal lokal, jalankan locale-gen dengan nama-nama lokal sebagai argumen.

Anda dapat menentukan lokal Anda sendiri.

Rekomendasi

Pengaturan yang berguna adalah:

  • Setel LC_CTYPE ke bahasa dan penyandian tempat Anda menyandikan file teks. Pastikan terminal Anda menggunakan penyandian itu.
    Untuk sebagian besar bahasa, hanya penyandian yang penting. Ada beberapa pengecualian; misalnya, huruf besar i adalah I dalam sebagian besar bahasa tetapi İ dalam bahasa Turki (tr_TR ).
  • Setel LC_MESSAGES ke bahasa yang Anda inginkan untuk melihat pesan.
  • Setel LC_PAPER ke en_US jika Anda ingin US Letter menjadi ukuran kertas default dan hampir semua hal lainnya (mis. en_GB ) jika Anda ingin A4.
  • Opsional, setel LC_TIME ke format waktu favorit Anda.
Terkait:Izinkan pengguna1 untuk "su - pengguna2" tanpa kata sandi?

Seperti dijelaskan di atas, hindari pengaturan LC_COLLATE dan LC_NUMERIC . Jika Anda menggunakan LANG , timpa dua kategori ini secara eksplisit dengan menyetelnya ke C .


Linux
  1. Cara Menemukan Siapa yang Masuk Di Sistem Anda Dan Apa yang Mereka Lakukan

  2. Apa Itu Operator Kontrol Dan Pengalihan Shell?

  3. Apa itu Mode SELinux dan cara mengaturnya

  1. Apa perbedaan antara lsof dan netstat di linux?

  2. Bagaimana Anda bisa mengganti tombol j dan k di vim?

  3. Bagaimana cara mengatur format tanggal ke ISO secara global di Linux?

  1. Linux – Bagaimana Cara Mengetahui Hard Disk Apa yang Ada di Sistem?

  2. Apa perbedaan antara env dan set (di Mac OS X atau Linux)?

  3. Apa perbedaan antara lokal C.UTF-8 dan en_US.UTF-8?