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 mendefinisikan LANGUAGE 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.
LANGatauLANG_ALLtidak berfungsi untuk saya, belumLANGUAGE. Lihat Mengapa mengganti variabel lingkungan LANG tidak mengubah bahasa untuk saya?