Ada beberapa variabel lingkungan yang tersedia untuk mengubah pengaturan bahasa. Anda dapat melihat pengaturan lokal Anda saat ini dengan menjalankan localeperintah. Untuk mengubah semua pengaturan lokal ke Bahasa Inggris, gunakan LANG=C. Ini Clokal selalu tersedia tanpa menginstal paket bahasa tambahan. (Untuk sementara waktu beralih ke lokal non-Inggris, lihat @ mklement0 .)
Contoh:
Menjalankan perintah dengan pengaturan bahasa default dan mencetak pengaturan lokal saat ini:
$ /nonexistent
bash: /nonexistent: Bestand of map bestaat niet
$ locale
LANG=nl_NL.UTF-8
LANGUAGE=
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=
Mengganti sementara bahasa untuk satu program dan menunjukkan bahwa itu benar-benar sementara:
$ LANG=C ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet
Ubah lokal untuk semua perintah yang dijalankan di shell saat ini dan sertakan bukti lagi:
$ LANG=C
$ ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
@ gertvdijk: Terima kasih untuk itu; alasan jawaban ini bekerja bahkan tanpa pengaturan LANGUAGEadalah pengecualian : GNU gettext memberikan prioritas pada LANGUAGEnilai kecuali jika nilai (efektif) LC_MESSAGES(biasanya ditetapkan secara tidak langsung melalui LANGatau LC_ALL) adalah salah satu Catau (sinonimnya) POSIX. Juga catatan yang LANGUAGEkebetulan diset dalam jawaban ini, padahal ini diatur secara default, dan jika sudah diatur, Anda harus mengesampingkan itu untuk beralih ke spesifik lokal ini bahasa (sebagai lawan "C" / "POSIX"), yang apa yang kamu temukan.
mklement0
Jawaban Anda berfungsi dengan baik ketika beralih ke lokal "C" (dengan pesan bahasa Inggris AS, seperti yang dipersyaratkan), tetapi tidak akan berfungsi untuk lokal lain kecuali jika LANGUAGEtidak disetel atau diganti secara eksplisit. Mengingat judul generik pertanyaan, kemungkinan orang akan menemukan jawaban ini juga ingin beralih ke bahasa non-Inggris, jadi silakan pertimbangkan untuk menambahkan informasi ini ke jawaban Anda.
mklement0
@ mklement0 Mengingat konteks pertanyaan (memposting pesan kesalahan bahasa Inggris), saya pikir postingan saat ini sudah cukup. Anda dapat menambahkan jawaban lain untuk menjelaskan perincian di sekitar LANGUAGEjika Anda mau :)
Lekensteyn
Saya telah menambahkan jawaban saya sendiri , seperti yang Anda sarankan. Jika Anda setuju dengan penilaian saya bahwa pembaca yang akan datang mungkin datang ke sini mencari untuk beralih ke bahasa apa pun (seperti yang telah ditunjukkan beberapa orang secara aktif), silakan tambahkan tautan ke jawaban saya untuk pertanyaan Anda. Selain itu, saya sarankan untuk mengubah nilai LANGUAGEoutput sampel Anda nl, yang merupakan nilai default aktual ketika lokal Anda berada nl_NL.UTF-8.
mklement0
9
Jawaban yang membantu Lekensteyn ini karya besar jika Anda ingin beralih ke bahasa Inggris AS pada permintaan, sebagai OP yang diminta, tetapi jika Anda ingin beralih ke yang berbeda bahasa pada permintaan , banyak pekerjaan yang diperlukan.
Sebelum mulai, Anda harus menginstal tabel pesan dengan sudo apt-get install language-pack-<lang-tag>, di mana <lang-tag>merupakan RTF 5646 bahasa sub tag sederhana , seperti esuntuk Spanyol.
Info latar belakang
GNU gettext utilitas berbasis mendahulukan tidak standar LANGUAGEvariabel lingkungan [1]
lebih variabel lingkungan lokal POSIX-didefinisikan LC_ALL, LC_MESSAGESdan LANG(dalam urutan itu).
Mengingat bahwa LANGUAGEdiatur secara default pada sistem Ubuntu [2] , yaitu untuk substring dari LANGnilai yang mencerminkan baik tag bahasa sederhana (misalnya, esuntuk Spanyol) atau tag wilayah-bahasa (misalnya, de_DEuntuk varian Jerman Jerman), Anda harus menghapus atau mengganti LANGUAGEagar pesan bahasa yang berbeda berlaku. [3]
Opsi 1: Setel LANGUAGE
Contoh : Beralih ke espesan Spanyol ( ) ad-hoc:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Catatan : Tag bahasa sederhana seperti essudah mencukupi, tetapi Anda dapat menambahkan pengidentifikasi wilayah (mis., es_ARUntuk Argentina), dan bahkan akhiran rangkaian karakter (mis., es_AR.UTF-8).
Namun, pesan yang dilokalkan mungkin hanya ada di tingkat bahasa , dan fallback adalah dengan menggunakan pesan yang cocok dengan bagian bahasa ( es, dalam kasus ini).
Opsi 2: Hapus LANGUAGEdan aturLC_ALL
Solusi alternatif ini tidak mendefinisikanLANGUAGE terlebih dahulu, dan kemudian menggunakan variabel lingkungan lokal POSIX LC_ALLuntuk secara implisit mengatur LC_MESSAGES[4] :
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Solusi ini memiliki keuntungan mengatur semua aspek lokalisasi ke lokal yang ditentukan (seperti LC_TIMEuntuk format tanggal / waktu) dan dengan pengaturan (secara implisit) LC_MESSAGESjuga menginformasikan program-program non- GNU dari bahasa yang diinginkan.
Perhatikan bagaimana LC_ALLmengharuskan tepat, nama lokal lengkap , termasuk akhiran charset, untuk menjadi efektif ( es_ES.UTF-8) (tidak seperti LANGUAGE, yang tag bahasa sederhana cukup (seperti es)). Hal yang sama berlaku untuk pengaturan LC_MESSSAGESdan LANG. Menentukan nama lokal yang tidak valid / tidak diinstal menyebabkan fallback ke lokal POSIX dan oleh karena itu bahasa Inggris AS.
Catatan kaki
[1] Alasan mengapa jawaban Lekensteyn bekerja bahkan tanpa membuka / mengesampingkan LANGUAGEadalah pengecualian : jika nilai (efektif) LC_MESSAGES(biasanya ditetapkan secara tidak langsung melalui LANGatau LC_ALL) adalah salah satu Catau (sinonimnya) POSIX, nilai itu dihormati, terlepas dari nilai LANGUAGE, jika ada. Sebaliknya, jika nilai (efektif) LC_MESSAGESadalah yang lain, lokal spesifik , LANGUAGEdiutamakan.
[2] Ini berlaku untuk Ubuntu yang tepat , tetapi tidak harus untuk rasa lainnya ; Lekensteyn menyatakan bahwa Kubuntu tidak tidak diatur LANGUAGE.
Diperdebatkan, LANGUAGEharus tidak diatur secara default, mengingat bahwa dalam ketiadaan yang LC_MESSAGESnilai tersirat oleh LANGnilai (yang menentukan lokal saat ini), dihormati.
[3] Anda juga dapat menggunakan pendekatan ini untuk beralih ke Bahasa Inggris [AS] dengan menetapkan salah satu LANGUAGE=Catau LANGUAGE=POSIX(sebagai alternatif untuk, LANG=C/ LANG=POSIX), meskipun saya tidak jelas apakah itu diakui secara aktif atau hanya mekanisme mundur , mengingat bahwa nilai-nilai ini tidak dapat memulai dengan tag bahasa ; mungkin pilihan yang lebih baik en_US.
[4] Ada tepi kasus di mana pendekatan ini tidak bekerja: Mencoba untuk memohon dieksekusi dengan path - apakah relatif atau absolut - TIDAK beralih ke bahasa tertentu, sedangkan nama file hanya melakukan: LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utilitytidak tidak bekerja (output pesan di lokal saat ini), sedangkan LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utilitytidak (menampilkan pesan kesalahan Spanyol).
Jika ada yang tahu mengapa dan apakah ada alasan bagus untuk ini, beri tahu kami.
LANG
atauLANG_ALL
tidak berfungsi untuk saya, belumLANGUAGE
. Lihat Mengapa mengganti variabel lingkungan LANG tidak mengubah bahasa untuk saya?LANGUAGE
adalah pengecualian : GNU gettext memberikan prioritas padaLANGUAGE
nilai kecuali jika nilai (efektif)LC_MESSAGES
(biasanya ditetapkan secara tidak langsung melaluiLANG
atauLC_ALL
) adalah salah satuC
atau (sinonimnya)POSIX
. Juga catatan yangLANGUAGE
kebetulan diset dalam jawaban ini, padahal ini diatur secara default, dan jika sudah diatur, Anda harus mengesampingkan itu untuk beralih ke spesifik lokal ini bahasa (sebagai lawan "C" / "POSIX"), yang apa yang kamu temukan.LANGUAGE
tidak disetel atau diganti secara eksplisit. Mengingat judul generik pertanyaan, kemungkinan orang akan menemukan jawaban ini juga ingin beralih ke bahasa non-Inggris, jadi silakan pertimbangkan untuk menambahkan informasi ini ke jawaban Anda.LANGUAGE
jika Anda mau :)LANGUAGE
output sampel Andanl
, yang merupakan nilai default aktual ketika lokal Anda beradanl_NL.UTF-8
.Jawaban yang membantu Lekensteyn ini karya besar jika Anda ingin beralih ke bahasa Inggris AS pada permintaan, sebagai OP yang diminta, tetapi jika Anda ingin beralih ke yang berbeda bahasa pada permintaan , banyak pekerjaan yang diperlukan.
Sebelum mulai, Anda harus menginstal tabel pesan dengan
sudo apt-get install language-pack-<lang-tag>
, di mana<lang-tag>
merupakan RTF 5646 bahasa sub tag sederhana , seperties
untuk Spanyol.Info latar belakang
GNU gettext utilitas berbasis mendahulukan tidak standar
LANGUAGE
variabel lingkungan [1] lebih variabel lingkungan lokal POSIX-didefinisikanLC_ALL
,LC_MESSAGES
danLANG
(dalam urutan itu).Mengingat bahwa
LANGUAGE
diatur secara default pada sistem Ubuntu [2] , yaitu untuk substring dariLANG
nilai yang mencerminkan baik tag bahasa sederhana (misalnya,es
untuk Spanyol) atau tag wilayah-bahasa (misalnya,de_DE
untuk varian Jerman Jerman), Anda harus menghapus atau menggantiLANGUAGE
agar pesan bahasa yang berbeda berlaku. [3]Opsi 1: Setel
LANGUAGE
Contoh : Beralih ke
es
pesan Spanyol ( ) ad-hoc:Catatan : Tag bahasa sederhana seperti
es
sudah mencukupi, tetapi Anda dapat menambahkan pengidentifikasi wilayah (mis.,es_AR
Untuk Argentina), dan bahkan akhiran rangkaian karakter (mis.,es_AR.UTF-8
).Namun, pesan yang dilokalkan mungkin hanya ada di tingkat bahasa , dan fallback adalah dengan menggunakan pesan yang cocok dengan bagian bahasa (
es
, dalam kasus ini).Opsi 2: Hapus
LANGUAGE
dan aturLC_ALL
Solusi alternatif ini tidak mendefinisikan
LANGUAGE
terlebih dahulu, dan kemudian menggunakan variabel lingkungan lokal POSIXLC_ALL
untuk secara implisit mengaturLC_MESSAGES
[4] :Solusi ini memiliki keuntungan mengatur semua aspek lokalisasi ke lokal yang ditentukan (seperti
LC_TIME
untuk format tanggal / waktu) dan dengan pengaturan (secara implisit)LC_MESSAGES
juga menginformasikan program-program non- GNU dari bahasa yang diinginkan.Perhatikan bagaimana
LC_ALL
mengharuskan tepat, nama lokal lengkap , termasuk akhiran charset, untuk menjadi efektif (es_ES.UTF-8
) (tidak sepertiLANGUAGE
, yang tag bahasa sederhana cukup (seperties
)). Hal yang sama berlaku untuk pengaturanLC_MESSSAGES
danLANG
. Menentukan nama lokal yang tidak valid / tidak diinstal menyebabkan fallback ke lokal POSIX dan oleh karena itu bahasa Inggris AS.Catatan kaki
[1] Alasan mengapa jawaban Lekensteyn bekerja bahkan tanpa membuka / mengesampingkan
LANGUAGE
adalah pengecualian : jika nilai (efektif)LC_MESSAGES
(biasanya ditetapkan secara tidak langsung melaluiLANG
atauLC_ALL
) adalah salah satuC
atau (sinonimnya)POSIX
, nilai itu dihormati, terlepas dari nilaiLANGUAGE
, jika ada. Sebaliknya, jika nilai (efektif)LC_MESSAGES
adalah yang lain, lokal spesifik ,LANGUAGE
diutamakan.[2] Ini berlaku untuk Ubuntu yang tepat , tetapi tidak harus untuk rasa lainnya ; Lekensteyn menyatakan bahwa Kubuntu tidak tidak diatur
LANGUAGE
.Diperdebatkan,
LANGUAGE
harus tidak diatur secara default, mengingat bahwa dalam ketiadaan yangLC_MESSAGES
nilai tersirat olehLANG
nilai (yang menentukan lokal saat ini), dihormati.[3] Anda juga dapat menggunakan pendekatan ini untuk beralih ke Bahasa Inggris [AS] dengan menetapkan salah satu
LANGUAGE=C
atauLANGUAGE=POSIX
(sebagai alternatif untuk,LANG=C
/LANG=POSIX
), meskipun saya tidak jelas apakah itu diakui secara aktif atau hanya mekanisme mundur , mengingat bahwa nilai-nilai ini tidak dapat memulai dengan tag bahasa ; mungkin pilihan yang lebih baiken_US
.[4] Ada tepi kasus di mana pendekatan ini tidak bekerja: Mencoba untuk memohon dieksekusi dengan path - apakah relatif atau absolut - TIDAK beralih ke bahasa tertentu, sedangkan nama file hanya melakukan:
LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
tidak tidak bekerja (output pesan di lokal saat ini), sedangkanLANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
tidak (menampilkan pesan kesalahan Spanyol).Jika ada yang tahu mengapa dan apakah ada alasan bagus untuk ini, beri tahu kami.
sumber