Bagaimana saya bisa mengganti bahasa output perintah dari bahasa asli saya ke bahasa Inggris, jadi saya bisa mengirim pertanyaan Tanya Ubuntu saya dengan output perintah bahasa Inggris (pesan kesalahan)?
Bagaimana saya bisa mengganti bahasa output perintah dari bahasa asli saya ke bahasa Inggris, jadi saya bisa mengirim pertanyaan Tanya Ubuntu saya dengan output perintah bahasa Inggris (pesan kesalahan)?
Jawaban:
export LC_ALL=C
cukup. Semua output perintah selanjutnya akan dalam bahasa Inggris.
Informasi lebih lanjut: Apa yang dilakukan "LC_ALL = C"?
Jika Anda ingin kembali ke bahasa asli, hapus setel LC_ALL
variabel:
unset LC_ALL
Inilah fungsi bash saya untuk beralih antara DE dan EN lokal.
Anda dapat memperluas kode ini dengan bahasa pilihan Anda. Untuk menggunakan ini, letakkan di ~/.bashrc
(atau ~/.bash_profile
) Anda -
Sebut dengan _configure_locale EN
untuk beralih ke Bahasa Inggris.
function _configure_locale() { # [profile]
local profile=${1:-EN}
case ${profile} in
DE|DE_DE|de_DE)
LC_ALL="de_DE.UTF-8"
LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_US:en"
;;
EN|EN_US|en|en_US)
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
;;
*)
echo "ALERT" "${FUNCNAME}: unknown profile '${profile}'"
;;
esac
LC_PAPER="de_DE.UTF-8"; # independent from locale
LESSCHARSET="utf-8"; # independent from locale
MM_CHARSET="utf-8" # independent from locale
echo "locale settings" "${LANG}";
export LC_ALL LANG LANGUAGE LC_PAPER LESSCHARSET MM_CHARSET
}
Secara umum saya sarankan untuk mengubah semua 3 variabel lingkungan LC_ALL
, LANG
, LANGUAGE
untuk menghindari misbehaviours dari beberapa program.
Memperluas kode ke bahasa ibu Anda cukup sederhana. Anda dapat menemukan nilai-nilai yang dibutuhkan dengan menjalankan perintah berikut
env |egrep -e 'LC_ALL|LANG'
case
dan menentukan input agar sesuai dengan <lang>_<country>
format. Kemudian Anda bisa melewatinya, dengan asumsi UTF-8. Jika Anda benar-benar tertarik pada solusi yang rapi, Anda mungkin harus memeriksa input pengguna terhadap locale -a
untuk memastikan lokal yang diminta benar-benar diinstal.
Buka terminal Ctrl+ Alt+ Tdan ketik:
LANG=en_US.UTF-8 bash
atau :
LC_ALL=C bash
Sekarang keluaran terminal dalam bahasa Inggris. Anda dapat memeriksanya locale
.
Dimungkinkan untuk membuat perintah untuk melakukan itu dengan permanenalias
. Buka .bashrc
file dengan editor pilihan Anda dan masukkan kode berikut di sana:
alias basheng='LANG=en_US.UTF-8 bash'
atau :
alias basheng='LC_ALL=C bash'
Mulai ulang shell Bash. Sekarang Anda memiliki perintah basheng
. Ketikkan di Bash untuk mendapatkan shell Bash berbahasa Inggris. Untuk meninggalkan tipe shell bahasa inggris exit
.
Sumber:
LANG
ini tidak cukup untuk kesempatan semua output.
LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash
lebih baik?
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL
.
Ini dikonfigurasikan melalui pengaturan lokal , yang dapat diatur melalui variabel lingkungan. Ada empat lapisan variabel; yang pertama yang diutamakan:
LANGUAGE
- jangan menggunakannya, ini jarang berguna dan dapat menyebabkan bug. Sayangnya, beberapa versi Ubuntu mengaturnya, jadi Anda mungkin perlu menghapusnya.LC_ALL
- mengesampingkan pengaturan khusus kategori, yang dimaksudkan terutama untuk digunakan oleh program yang ingin dijalankan di lokal default. Tidak dimaksudkan untuk digunakan sebagai pengaturan global.LC_
: LC_CTYPE
, LC_MESSAGES
, LC_TIME
, ....LANG
- Menetapkan lokal default untuk semua kategori, dimaksudkan untuk digunakan dalam pengaturan pengguna global.Lokal "polos", dengan semua pesan yang tidak diterjemahkan, waktu standar dan format angka, ASCII sebagai set karakter, dll disebut C
. Lokal ini hadir di setiap sistem.
Jadi, untuk menjalankan program dengan pesan dalam bahasa Inggris, jalankan
unset LANGUAGE; LC_MESSAGES=C myprogram --option
atau
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
Untuk menjalankan program dengan semua pelokalan dimatikan, jalankan
env -u LANGUAGE LC_ALL=C myprogram --option
tetapi berhati-hatilah karena ini akan mengubah pengkodean karakter ke ASCII (jadi tidak ada Unicode, latin-1, dll.).
Lihat Apa yang harus saya atur lokal saya dan apa implikasi melakukannya? untuk ikhtisar lokal yang lebih terperinci.
LANGUAGE
adalah ia harus diutamakan LC_ALL
, yang menyebabkan bug karena program diatur LC_ALL
untuk mendapatkan hasil yang dapat diprediksi dan kemudian menjadi bingung karena mereka tidak mendapatkan hasil yang diharapkan.
LANGUAGE
adalah ide yang buruk, karena manfaatnya sangat tipis sedangkan bug dapat mengganggu dan sulit ditemukan. Anda benar, saya harus menyebutkan unsetting LANGUAGE
.
Cara termudah adalah dengan membuka terminal dengan menekan Alt + F2 dan menjalankan perintah ini:
env LANGUAGE=en gnome-terminal
di Anda ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
kemudian
source ~/.bashrc
Periksa
$ locale
LANG=pl_PL.utf8
LANGUAGE=
LC_CTYPE="pl_PL.utf8"
LC_NUMERIC="pl_PL.utf8"
LC_TIME="pl_PL.utf8"
LC_COLLATE="pl_PL.utf8"
LC_MONETARY="pl_PL.utf8"
LC_MESSAGES=C
LC_PAPER="pl_PL.utf8"
LC_NAME="pl_PL.utf8"
LC_ADDRESS="pl_PL.utf8"
LC_TELEPHONE="pl_PL.utf8"
LC_MEASUREMENT="pl_PL.utf8"
LC_IDENTIFICATION="pl_PL.utf8"
LC_ALL=
Mengapa tidak disetel lebih dulu?
LC_ALL Mengesampingkan pengaturan LC_ * individual: jika LC_ALL diatur, tidak ada di bawah ini yang memiliki efek.
LANG
seperti ini, dan itu mungkin membantu, tetapi kami tidak memerlukan pesan kesalahan yang disalin dalam bahasa Inggris. Kami mensyaratkan apa yang ditulis penulis dalam bahasa Inggris (meskipun kami biasanya menerjemahkannya alih-alih menutup pertanyaan). Jadi pertanyaan yang ditulis dalam bahasa Inggris dengan teks terminal Spanyol baik-baik saja, sedangkan pertanyaan yang ditulis dalam bahasa Spanyol dengan teks terminal bahasa Inggris tidak.