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 burukGilles:LC_COLLATE tidak menjelaskan susunan yang benar, terlalu
membatasi (berjalan karakter demi karakter) menghapus LANG dan sebagai gantinya
mengatur LC_CTYPE dan LC_PAPERGilles: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,
enuntuk bahasa Inggris,deuntuk bahasa Jerman,jauntuk bahasa Jepang,ukuntuk bahasa Ukraina,beruntuk Berber, … - Untuk banyak tetapi tidak semua bahasa, garis bawah
_diikuti dengan kode negara dua huruf besar ISO 3166. Jadi:en_USuntuk bahasa Inggris AS,en_UKuntuk bahasa Inggris Britania,fr_CAKanada (Québec) Prancis,de_DEuntuk bahasa Jerman di Jerman,de_ATuntuk bahasa Jerman dari Austria,ja_JPuntuk bahasa Jepang (Jepang), dll. - Opsional, sebuah titik
.diikuti dengan nama pengkodean karakter sepertiUTF-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-8adalah bahasa Mandarin (sederhana) Cina yang dikodekan dalam UTF-8, sedangkanzh_CNapakah bahasa Mandarin Mandarin dikodekan dalam GB2312, danzh_TWadalah 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@eurovarian 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:
LC_CTYPE:kumpulan karakter yang digunakan oleh aplikasi terminal:data klasifikasi (karakter mana yang berupa huruf, tanda baca, spasi, tidak valid, dll.) dan konversi huruf. Utilitas teks biasanya memperhatikanLC_CTYPEuntuk menentukan batas karakter.LC_COLLATE:susunan (yaitu menyortir). Pengaturan ini sangat terbatas penggunaannya karena beberapa alasan:- Sebagian besar bahasa memiliki aturan rumit yang bergantung pada apa yang sedang diurutkan (misalnya kata kamus dan nama diri mungkin tidak menggunakan urutan yang sama) dan tidak dapat dinyatakan dengan
LC_COLLATE. - Ada beberapa aplikasi di mana urutan pengurutan yang tepat penting dilakukan oleh perangkat lunak yang menggunakan pengaturan lokal. Misalnya, pengolah kata menyimpan bahasa dan penyandian file dalam file itu sendiri (jika tidak, file tidak akan diproses dengan benar pada sistem dengan pengaturan lokal yang berbeda) dan tidak peduli dengan pengaturan lokal yang ditentukan oleh lingkungan.
LC_COLLATEdapat memiliki efek samping yang buruk, khususnya karena menyebabkan urutan pengurutan A [A-Z] memecahkan beberapa aplikasi.
- Sebagian besar bahasa memiliki aturan rumit yang bergantung pada apa yang sedang diurutkan (misalnya kata kamus dan nama diri mungkin tidak menggunakan urutan yang sama) dan tidak dapat dinyatakan dengan
LC_MESSAGES:bahasa informasi dan pesan kesalahan.LC_NUMERIC:pemformatan angka:pemisah desimal dan ribuan.
Banyak aplikasi hard-code.sebagai pemisah desimal. Ini membuatLC_NUMERICtidak terlalu berguna dan berpotensi berbahaya:- Bahkan jika Anda menyetelnya, Anda masih akan sering melihat format default.
- Anda mungkin mengalami situasi di mana satu aplikasi menghasilkan keluaran yang bergantung pada lokal dan aplikasi lain mengharapkan
.menjadi titik desimal, atau,menjadi pemisah bidang.
LC_MONETARY:sepertiLC_NUMERIC, tetapi untuk sejumlah mata uang lokal.
Sangat sedikit aplikasi yang menggunakan ini.LC_TIME:format tanggal dan waktu:nama hari kerja dan bulan, jam 12 atau 24 jam, urutan bagian tanggal, tanda baca, dll.
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
LANGvariabel lingkungan digunakan kecuali diganti oleh pengaturan lain. JikaLANGtidak disetel, lokal default adalahC. LC_xxxnama dapat digunakan sebagai variabel lingkungan.- Jika
LC_ALLdiatur, maka semua nilai lainnya diabaikan; ini terutama berguna untuk mengaturLC_ALL=Cmenjalankan aplikasi yang perlu menghasilkan keluaran yang sama di mana pun aplikasi itu dijalankan. - Selain itu, GNU libc menggunakan
LANGUAGEuntuk menentukan fallback untukLC_MESSAGES(mis.LANGUAGE=fr_BE:fr_FR:enuntuk 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 localesdan pilih dari daftar di kotak dialog, atau edit/etc/locale.genlalu jalankanlocale-gen. - Di Ubuntu, untuk menginstal lokal, jalankan
locale-gendengan nama-nama lokal sebagai argumen.
Anda dapat menentukan lokal Anda sendiri.
Rekomendasi
Pengaturan yang berguna adalah:
- Setel
LC_CTYPEke 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 besariadalahIdalam sebagian besar bahasa tetapiİdalam bahasa Turki (tr_TR). - Setel
LC_MESSAGESke bahasa yang Anda inginkan untuk melihat pesan. - Setel
LC_PAPERkeen_USjika Anda ingin US Letter menjadi ukuran kertas default dan hampir semua hal lainnya (mis.en_GB) jika Anda ingin A4. - Opsional, setel
LC_TIMEke format waktu favorit Anda.
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 .