Tidak dapat menghasilkan en_US.UTF-8 Lokal

8

Saya telah mencoba untuk mengatur lokal saya en_US.UTF-8tanpa hasil. Didasarkan atas jawaban lain di internet, saya harus terlebih dahulu membuat lokal dengan

sudo locale-gen en_US.UTF-8

Dan kemudian menerapkannya dengan

sudo dpkg-reconfigure locales

Namun, berlari locale-genmelakukan sesuatu yang aneh:

user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
Generation complete.

Seperti yang Anda lihat, itu tidak pernah benar-benar menghasilkan UTF-8, tetapi sebaliknya terus kembali ke ISO-8859-1. Saya tidak pernah dapat mengatur untuk mengatur LC_ALLuntuk en_US.UTF-8, mungkin karena tidak dapat menghasilkan.

Apakah saya melakukan sesuatu yang salah? Saya menjalankan Debian 8.1.

Erik S
sumber

Jawaban:

28

Anda telah mencoba menerapkan resep untuk Ubuntu di bawah Debian. Itu biasanya bekerja, tetapi dalam kasus khusus ini tidak.

Ubuntu berasal dari Debian, dan tidak banyak berubah selain dari penginstal dan GUI. The locale-genperintah salah satu dari beberapa hal lain yang berubah. Saya tidak tahu kenapa.

Di bawah Debian, locale-genperintah tidak mengambil argumen dan membuat ulang definisi lokal yang dikompilasi sesuai dengan daftar lokal yang dikonfigurasikan. Untuk memodifikasi pemilihan lokal yang ingin Anda gunakan, edit file /etc/locale.genkemudian jalankan locale-genperintah. Atau, jalankan dpkg-reconfigure localessebagai root, pilih lokal tambahan yang Anda inginkan (dan batalkan pilihan yang tidak Anda inginkan), dan tekan OK.

Di bawah Ubuntu, jika Anda menjalankan locale-genperintah tanpa argumen, itu membuat ulang definisi lokal yang dikompilasi sesuai dengan daftar lokal yang dikonfigurasikan. Tetapi jika Anda melewati beberapa argumen, argumen itu ditambahkan ke daftar dan segera dibuat. Daftar lokasi disimpan di /var/lib/locales/supported.d/local. Menjalankan dpkg-reconfigure localeshanya membuat ulang lokal yang dikompilasi tanpa memberi Anda kesempatan untuk memodifikasi seleksi.

Singkatnya, untuk menambah en_US.UTF-8daftar lokal yang dapat digunakan:

  • Debian, interaktif: dpkg-reconfigure locales
  • Debian, otomatis: sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen
  • Ubuntu, otomatis: locale-gen en_US.UTF-8
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Jadi bagaimana Anda menambahkan paket dpkg-reconfigure? Saya mendapatkan antarmuka interaktif, tetapi ketika memilih item dengan enter, itu tidak diinstal.
Erik S
@ErikDolor Saya tidak mengerti pertanyaan Anda. Kecuali Anda telah mengubah pengaturan debconf, tampilkan dpkg-reconfigure localeskotak dialog mode teks, dengan kotak centang untuk setiap lokal yang dapat dihasilkan. Anda gulir ke bawah ke en_US.UTF-8, periksa, dan tekan tombol OK.
Gilles 'SO- berhenti menjadi jahat'
Saya mencoba memeriksanya dengan tombol enter, tetapi ternyata berfungsi sebagai menekan OK.
Erik S
2
@ErikDolor Oh. Tekan Spasi untuk mengaktifkan kotak centang.
Gilles 'SANGAT berhenti menjadi jahat'
Juga berfungsi untuk jessie
raspbian
5

Setelah benar-benar membaca file man untuk locale-gen alih-alih mempercayai internet secara membabi buta, saya menemukan bahwa locale-gensebenarnya mengambil tempat untuk menghasilkan dari /etc/locale.gen. Dengan membatalkan komentar di en_US.UTF-8sana, saya berhasil membuatnya.

Erik S
sumber
sed -i '/^#.* es_ES / s / ^ # //' /etc/locale.gen Jika Anda menggunakan buruh pelabuhan, ini mungkin berguna
Borjante
Jawaban HANYA yang bekerja untuk saya setelah menjelajahi internet selama berhari-hari !! Terima kasih banyak!
I.Am.A.Guy