Komut çıkış dilini anadilden ingilizceye çevir


84

Komut çıkış dilini anadilimden İngilizce'ye nasıl değiştirebilirim, böylece Ubuntu'yu sor sorumu İngilizce komut çıktısıyla (hata mesajları) gönderebilirim?


5
Bu biraz yanıltıcıdır. İnsanların bunu yapması aslında gerekli değildir . (OP'lerin kendilerini bu şekilde yüklemelerini istememiz gerektiğini düşünüyorsanız, lütfen kimseye yapmalarını söylemeden önce meta gönderin.) Bu şekilde değişebilirler LANGve yardımcı olabilirler, ancak kopyalanan hata mesajlarının İngilizce olmasını istemeyiz . Biz gerektiren yazar neler yazmış (genellikle kapanış soruların yerine çevirmek rağmen) İngilizce olması. Yani İspanyolca terminal metni ile İngilizce yazılmış bir soru, İspanyolca İngilizce terminal metni ile yazılmış bir soru değildir.
Eliah Kagan

4
@EliahKagan evet, haklısınız, ama yine de yararlı olduğunu düşünüyorum.
BuZZ-dEE 5:13

2
Katılıyorum, insanların bunu yapabilmeleri için faydalıdır ve bu soruyu göndermiş olmanız iyi olur! Ancak, önemli insanlar değil mi var gerektiren bu yapmalarını (ama do soruları ve cevapları kendilerini İngilizce yazılmış gerektirir).
Eliah Kagan

8
@EliahKagan Aksine, gerçek hata mesajları göndermek çok önemlidir ve bu mesajları İngilizce olarak göndermek oldukça önemlidir , çünkü bu sitenin ana izleyicisinin tanıyabileceği ve test edebileceği şey budur. (Ve asla, asla tekrar çevrilmiş bir hata mesajı yayınlamayın. Her zaman kopyala-yapıştır, çünkü tam ifadeler, noktalama işaretleri, hatta boşluklar bile önemli olabilir.)
Gilles

Yanıtlar:


74

export LC_ALL=Cyeterlidir. Sonraki tüm komutlar İngilizce olarak verilecektir.

Daha fazla bilgi: "LC_ALL = C" ne yapıyor?

Ana dile geri dönmek istiyorsanız, LC_ALLdeğişkeni çözün :

unset LC_ALL

13

terminal için bash işlevi

DE ve EN yerel ayarları arasında geçiş yapmak için benim bash işlevim.

Bu kodu tercih ettiğiniz dillerle genişletebilirsiniz. Bunu kullanmak için, içine ~/.bashrc(veya ~/.bash_profile) -

_configure_locale ENİngilizceye geçmek için ile arayın .

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
}

Genel olarak ben her 3 ortam değişkenleri değiştirmeye önermek LC_ALL, LANG, LANGUAGEbazı programların davranış düzenleme önlemek için.

Dilinize adapte

Kodu ana dilinize genişletmek oldukça basittir. Aşağıdaki komutu çağırarak gerekli değerleri bulabilirsiniz.

env |egrep -e 'LC_ALL|LANG'

Senaryonun Almanca (DE) dilinden başka bir dilde mi değişmesi gerekiyor? Ana dilden bağımsız bir çözüm arıyorum.
BuZZ-dEE

@ BuZZ-dEE: Biçime caseuyması için girişi belirterek ve belirterek bunu kolayca uyarlayabilirsiniz (ve muhtemelen gerekir) <lang>_<country>. Öyleyse UTF-8 varsayarak bunu geçebilirsiniz. Düzenli bir çözüme gerçekten meraklıysanız locale -a, istenen yerel ayarın gerçekten yüklendiğinden emin olmak için muhtemelen kullanıcı girişini kontrol etmelisiniz .
Orospu

@ buzz-dee: güncellenmiş cevabı gör
H.-Dirk Schmitt

7

Bir terminal Ctrl+ Alt+ açın Tve şunu yazın:

LANG=en_US.UTF-8 bash

veya :

LC_ALL=C bash

Şimdi terminal çıkışı ingilizcedir. İle kontrol edebilirsiniz locale.

Bunu kalıcıalias bir şekilde yapmak için bir komut yapmak mümkündür . Aç .bashrctercih editörü ile dosya ve orada aşağıdaki kodu yerleştirin:

alias basheng='LANG=en_US.UTF-8 bash'

veya :

alias basheng='LC_ALL=C bash'

Bash kabuğunu yeniden başlatın. Şimdi emriniz var basheng. Bir ingilizce bash kabuk almak için bash yazın. İngilizce kabuk türünü bırakmak için exit.

Kaynak:


Ayar LANGolduğunu değil tüm çıkış şansa yeterli.
bit maskesi

@ bitmask şudur: LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bashdaha iyi?
BuZZ-dEE

2
Aslında, bu olmalı LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL.
Orospu 6'13'te bit maskesi

Sadece LC_ALL = C bash benim için çalışıyor.
16:00

5

Bu, ortam değişkeni ile ayarlanabilen yerel ayarlarla yapılandırılır . Dört değişken katmanı vardır; ilk ayarlanan önceliğe sahiptir:

  • LANGUAGE- kullanmayın, nadiren kullanışlıdır ve böceklere neden olabilir. Ne yazık ki, Ubuntu’nun bazı sürümleri ayarladı, bu yüzden onu ayarlamanız gerekebilir.
  • LC_ALL- öncelikli olarak varsayılan yerel ayarda çalıştırmak isteyen programlar tarafından kullanılacak olan, kategoriye özgü ayarları geçersiz kılar. Genel ayarlar olarak kullanılmak üzere tasarlanmamıştır.
  • İle başlayan Kategori özgü değişkenler LC_: LC_CTYPE, LC_MESSAGES, LC_TIME, ....
  • LANG - Genel kullanıcı ayarlarında kullanılmak üzere tüm kategoriler için varsayılan yerel ayarı ayarlar.

Tüm mesajları çevrilmemiş olan “sade” yerel ayar, varsayılan zaman ve sayı biçimleri, karakter kümesi olarak ASCII vb C. Denir . Bu yerel ayar her sistemde bulunur.

Böylece, İngilizce bir mesaj içeren bir program çalıştırmak için,

unset LANGUAGE; LC_MESSAGES=C myprogram --option

veya

unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram

Tüm yerelleştirme kapalı bir programı çalıştırmak için,

env -u LANGUAGE LC_ALL=C myprogram --option

ancak bunun karakter kodlamasını ASCII olarak değiştirdiğine dikkat edin (yani Unicode, latin-1 vb. değil).

Bkz. Yerel ayarımı neye ayarlamalıyım ve bunun ne gibi sonuçları var? yerel ayarlara daha ayrıntılı bir bakış için.


DİL kullanmayın ?? Hangi işletim sistemi üzerinde çalıştığınızı bilmiyorum, ancak Ubuntu'da LANGUAGE, yükleyici ve çeşitli GUI'ler aracılığıyla her zaman varsayılan olarak kullanılır. Hangi böcekler onlar? Bağlandığınız cevabı da okudum ve faydalı genel bilgiler içeriyor olsa bile, öneri bir Ubuntu masaüstünde iyi bir tavsiye değil.
Gunnar Hjalmarsson

@GunnarHjalmarsson Temel problem LANGUAGE, öncelikli olarak ele alınmasıdır LC_ALL; bu, programların LC_ALLöngörülebilir çıktılar alması ve ardından beklenen çıktıyı almadıkları için şaşırtmaları nedeniyle hatalara neden olmasıdır .
Gilles

Pekala, Ubuntu GUI'leri hem LANG hem de LANGUAGE'yi tutarlı bir şekilde (ve LC_MESSAGES, LANG'den miras alıyorlardı) belirledi; DİL'in ayarlanma sebebi, Dil Desteği'nin öncelikli bir liste belirlemek için bir arayüze sahip olmasıdır.
Gunnar Hjalmarsson,

@ GünnarHjalmarsson biliyorum. LANGUAGEYine de ayar yapmak kötü bir fikir, çünkü faydalar çok ince, böcekler sinir bozucu ve bulmak zor olabilir. Haklısın ama üzücü söylemeliyim LANGUAGE.
Gilles

Buradaki cevaplar, tasarım sorunlarını tartışmak için uygun bir yer değil. Bu tür tartışmalar, örneğin ubuntu-devel-tartışma'da daha iyi yapılır . Kullanıcılara yardımcı olmak için, optimal olup olmadığını düşünseniz de cevabın mevcut tasarıma dayanması gerektiğini düşünüyorum. Ve lütfen "bazı sürümlerin", muhtemelen Kubuntu hariç, Ubuntu masaüstünün ve türevlerinin desteklenen sürümleri olduğunu unutmayın.
Gunnar Hjalmarsson,

1

En kolay yol, Alt + F2 tuşlarına basarak ve bu komutu çalıştırarak terminali açmaktır :

env LANGUAGE=en gnome-terminal

1

senin içinde ~/.bashrc

unset LC_ALL
export LC_MESSAGES=C

sonra

source ~/.bashrc

Kontrol et

$ 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=

Neden önce üzülsün?

LC_ALL Tek tek LC_ * ayarlarını geçersiz kılar: LC_ALL ayarlanmışsa, aşağıdakilerden hiçbirinin bir etkisi olmaz.

https://help.ubuntu.com/community/Locale


Bu cevabın neden indirildiğini bilmiyorum. Evet biraz daha açıklama kullanabilirdi, ancak kabul edilen cevabın aksine, onu nasıl kalıcı hale getireceğini ve daha spesifik olduğunu gösteriyor.
Xerus

0
  1. Soldaki dişli simgesine tıklayın (Unity panelindeki sistem ayarları)
  2. Dil Desteği'ne tıklayın
  3. Bölgesel Biçimleri Seç
  4. "Ekran numaralarını, tarihleri ​​ve para birimi tutarını ..." İngilizceye ayarlayın.
  5. Oturumu kapatıp tekrar giriş yap (Gerekli!)

Bitti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.