Saya telah menggunakan wget
untuk pertama kalinya setelah menginstal Lion OS X dan saya perhatikan bahwa wget dilokalkan ke bahasa ibu saya. Menjalankan set
perintah di terminal menunjukkan bahwa LANG
variabel saya mewakili bahasa lokal saya. Di mana saya dapat mengubah ini atau wget
mengabaikan pengaturan ini?
memperbarui
Inilah yang locale
memberi saya:
LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=
Karenanya semua output dari non-parameter (seperti prompt dan pesan debug) adalah dalam bahasa Lituania. Itu masalah saya. Saya ingin mengembalikannya ke Bahasa Inggris.
Saya menggunakan zsh
sebagai shell login saya.
wget
? Dan apa yanglocale
ditampilkan dan apakah itu sama dengan apa yang Anda harapkan dari pilihan bahasa Anda di panel preferensi sistem Bahasa & Teks ?Jawaban:
Secara default, Terminal menetapkan variabel lingkungan lokal agar sesuai dengan bahasa yang dipilih saat ini dan format waktu / tanggal / angka yang digunakan Terminal, yang dipilih melalui
(Itulah nama di Lion. Pada sistem sebelumnya nama yang tepat dari panel preferensi dapat bervariasi.)
Solusi sementara adalah menyeret Inggris ke atas daftar bahasa, lalu buka Terminal, lalu pindahkan Lithuania kembali ke atas. Maka hanya Terminal yang akan menggunakan bahasa Inggris. Namun, itu akan diatur ulang ke Lithuania jika Anda Keluar dan memulai ulang Terminal.
Pendekatan gigih adalah memberi tahu Terminal untuk tidak mengatur variabel lingkungan lokal, dengan mematikan
Kemudian lokal akan default ke "C" tanpa bahasa yang ditentukan, dan sebagian besar program kemudian akan default ke bahasa Inggris.
Perhatikan bahwa mematikan ini berarti bahwa beberapa program tidak akan mengetahui yang menggunakan Terminal pengkodean karakter dan akan menganggap bahwa itu ASCII atau ISO-Latin-1 saja. Jadi jika Terminal menggunakan UTF-8 (default), program-program itu mungkin atau mungkin tidak berperilaku seperti yang diinginkan.
Jika ini sebagian besar tentang
wget
, saya sarankan Anda membuat salinan profil pengaturan default, matikan pengaturan lokal di profil khusus Anda, dan hanya gunakan profil itu saat menggunakanwget
, sehingga Anda dapat terus menggunakan UTF-8 dengan dukungan penuh saat menggunakan program lain, menggunakan pengaturan default.Seperti yang disebutkan orang lain, Anda juga dapat mengganti pengaturan lokal awal yang disediakan oleh Terminal dalam skrip startup shell. Untuk zsh, masukkan ke ~ / .zshrc. Untuk bash, gunakan ~ / .bashrc (dan jika Anda belum memilikinya, buat ~ / .bash_profile yang menjalankan ~ / .bashrc).
Lihat halaman x-man: // 1 / lokal untuk informasi lebih lanjut tentang masing-masing nilai lingkungan lokal.
Namun, jika Anda hanya ingin
unset LANG
mengaturnya menjadi "C", itu biasanya berlaku untuk semua shell dan program Anda, sedangkan sebagian besar waktu Anda mungkin ingin menggunakan UTF-8 dan meminta Terminal mengatur variabel lokal untuk dicocokkan, untuk mendapatkan tingkat kerja sama, kesetiaan, dan fungsionalitas tertinggi.Oleh karena itu, jika Anda akan pergi rute itu, saya sarankan Anda menulis kode untuk mengedit, daripada mengganti, nilai awal, sehingga Anda menyimpan informasi pengodean ("UTF-8") dan hanya memaksa bahasa ke bahasa Inggris, daripada mengatur variabel ke "C".
Misalnya, ini berfungsi dalam zsh dan bash:
Kapan
LANG="lt_LT.UTF-8"
, ini akan mengubahnya menjadiLANG="en_US.UTF-8"
. Saya tidak punyawget
tersedia untuk menguji ini, tetapi ini sudah cukup.Melakukannya dengan cara ini berarti bahwa jika Anda mengubah preferensi pengkodean karakter di Terminal, Anda tidak akan menimpanya dalam skrip startup shell Anda.
sumber
LANG
perintah redefinisi:echo ${LANG/*./en_US.}
mengganti nama budaya saat ini denganen_US
terlepas dari apa itu; bekerja dibash
,ksh
,zsh
.Sudah diatur di sini ...
Jika Anda ingin lebih banyak atau lebih sedikit opsi di pulldown, buka tab Encodings untuk melihat lebih banyak dari karunia.
sumber
LANG=
dan nilai-nilai lainnya semua default"C"
.Saya memecahkan masalah ini dengan mengatur bahasa di file profil saya. Yang memuat setiap kali saya memulai terminal.
sumber
LC_ALL
menimpaLANG
, jadi perintah pertama Anda tidak akan berpengaruh.POSIX
sama denganC
dan yang tidak mengatasi Unicode sama sekali.Lebih didasarkan pada pengalaman Linux, jika Anda tidak ingin mengubah lokalisasi Anda sepenuhnya dengan LC_LANG, tetapi ingin hanya memiliki pesan sistem dalam bahasa Inggris, Anda hanya perlu mengatur
sumber
LC_MESSAGES
variabel yang mengontrol dalam pesan bahasa apa yang harus dikeluarkan (jika dipasang).Menggunakan server debian dalam bahasa perancis dan klien macsox bash, saya "hanya" harus menambahkan ini ke .bash_profile saya di direktori pengguna macosx:
Terpecahkan.
sumber
Jawaban lainnya benar, yaitu tentang
Terminal
pengaturan untuk menetapkan variabel lingkungan lokal saat startup dan menggunakan shell/etc/profile
. Namun, ada cara lain yang layak dipahami - terutama jika "masalah" dialami karenassh
login jarak jauh .OpenSSH (seperti yang digunakan pada Linux, BSD dan macOS) dapat mengirim variabel lingkungan dari lingkungan klien ke shell yang dimulai oleh server. Ini hanya melakukan ini jika klien dikonfigurasi untuk mengirim mereka dan server dikonfigurasi untuk menerimanya. Klien (
~/.ssh/config
) perlu memiliki:dan server (
/etc/ssh/sshd_config
) perlu:Jika keduanya ada di tempat maka lokal klien disebarkan ke shell login di server ssh:
Pengaturan server yang diperlukan tidak ada di sana secara default di Snow Leopard ; itu ada di Sierra . Ingatlah untuk memulai kembali server SSH setelah memodifikasi
/etc/sshd_config
!!!sumber