Yanıtlar:
Dil ayarlarını değiştirmek için kullanılabilecek çeşitli ortam değişkenleri vardır. localeKomutu yürüterek mevcut yerel ayarlarınızı görebilirsiniz . Tüm yerel ayarları İngilizce olarak değiştirmek için kullanın LANG=C. Bu Cyerel ayar, ek dil paketleri kurulmadan daima kullanılabilir. (Ingilizce olmayan yerel ayarlara geçici olarak geçmek için, bkz. @ Mklement0 kullanıcısının gönderisi.)
Örnekler:
Varsayılan dil ayarlarıyla bir komut çalıştırmak ve geçerli yerel ayarları yazdırmak:
$ /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=
Bir programın dilini geçici olarak geçersiz kılar ve bunun gerçekten geçici olduğunu gösterir:
$ 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
Geçerli kabukta yürütülen tüm komutlar için yerel ayarları değiştirin ve tekrar kanıtları ekleyin:
$ 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=
LANGUAGEbir istisnadır : GNU gettext (etkin) değerinin (genellikle dolaylı olarak veya ile ayarlanır ) ya da (onun eş anlamlısı) olması dışındaLANGUAGE değere öncelik verir . Ayrıca , bu cevapta üzülmeyeceğini, varsayılan olarak ayarlandığını ve ayarlanmışsa, belirli bir yerel ayarın diline geçmek için ("C" / "POSIX" yerine) geçersiz kılmanız gerektiğini unutmayın . ne buldun LC_MESSAGESLANGLC_ALLCPOSIXLANGUAGE
LANGUAGEaçıkça ayarlanamadığı veya geçersiz kılmadığı sürece diğer yerler için çalışmaz . Sorunun genel unvanı göz önüne alındığında, insanların bu cevabı İngilizce olmayan bir dile geçmek için bulabilecekleri muhtemeldir, bu nedenle lütfen cevabınıza bu bilgiyi eklemeyi düşünün.
LANGUAGE:)
LANGUAGEörnek çıktınızın nldeğerini, yerel ayarınız olduğunda gerçek varsayılan değer olarak değiştirmenizi öneririm nl_NL.UTF-8.
OP'nin talep ettiği gibi talep üzerine ABD İngilizcesi'ne geçmek istiyorsanız Lekensteyn'in yararlı cevabı harika , ancak talep üzerine farklı bir dile geçmek istiyorsanız daha fazla çalışmaya ihtiyaç var.
İle başlayan önce mesaj tablolarını yüklemelisiniz sudo apt-get install language-pack-<lang-tag>nerede, <lang-tag>bir olan basit RTF 5646 dil alt etiketi gibi, esİspanyolca için.
GNU gettext merkezli programları standart olmayan öncelik vermek LANGUAGEortam değişkeni [1]
POSIX tanımlanan yerel ortam değişkenleri üzerinde LC_ALL, LC_MESSAGESve LANG(bu sırayla).
Olduğu göz önüne alındığında LANGUAGEUbuntu sistemlerinde varsayılan olarak ayarlanır [2] yani için, alt dize arasında LANG(örneğin ya bir basit dil etiketi yansıtan değer esbir dil-bölge etiketi (örn İspanyolca için) ya da de_DEAlmanca Almanya varyantı için), LANGUAGEfarklı bir dilin mesajlarının etkili olabilmesi için ayarını kaldırmanız veya geçersiz kılmanız gerekir . [3]
LANGUAGEÖrnek : İspanyolca ( es) mesajlarına geçici olarak geç:
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Not : Basit bir dil etiketi esyeterlidir, ancak bir bölge tanımlayıcısı (örneğin es_ARArjantin için) ve hatta karakter kümesi sonekini (örn es_AR.UTF-8.) Ekleyebilirsiniz .
Bununla birlikte, yerelleştirilmiş mesajlar yalnızca dil düzeyinde olabilir ve geri dönüş, dil kısmıyla eşleşen mesajları kullanmaktır ( esbu durumda).
LANGUAGEve ayarlayınLC_ALLBu alternatif çözüm önce tanımsızlaştırır LANGUAGE , sonra LC_ALLda dolaylı olarak LC_MESSAGES[4] ayarlamak için POSIX yerel ayar değişkenini kullanır :
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
Bu çözüm, tüm yerelleştirme yönlerini belirtilen yerel ayarlara (örneğin LC_TIMEtarih / saat biçimleri gibi ) ayarlama ve (dolaylı olarak) ayarının istenen dilin GNU olmayan programlarını LC_MESSAGESda bilgilendirmesi avantajına sahiptir.
Karakter kümesi soneki de dahil olmak üzere tam yerel ayar adının etkili olmasını ( ) (bunun aksine , basit bir dil etiketinin yeterli olduğu gibi ) nasıl LC_ALLgerektirdiğini unutmayın . Aynı ayara geçerlidir ve . Geçersiz / yüklü olmayan bir yerel ayar adı belirtmek, POSIX yerel ayarına ve dolayısıyla ABD İngilizcesine geri dönüşe neden olur.es_ES.UTF-8LANGUAGEesLC_MESSSAGESLANG
Lekensteyn cevabı da çalışır [1] nedeni olmayan unsetting / geçersiz LANGUAGEbir edilir durum : (etkin) ise LC_MESSAGESdeğer (genellikle dolaylı olarak ayarlanır LANGya da LC_ALL) olduğunu Cya da (eşanlamlısı) POSIXbağımsız değerinin, bu değer saygı LANGUAGE, varsa. Tersine, eğer (etkin) LC_MESSAGESdeğer başka bir spesifik yerel ise LANGUAGE, öncelik taşır.
[2] Bu uygun Ubuntu için geçerlidir , ancak diğer lezzetler için zorunlu değildir ; Lekensteyn belirten Kubuntu gelmez değil set LANGUAGE.
Muhtemelen, LANGUAGEgerektiği değil, onun yokluğunda verilen, varsayılan olarak ayarlanabilir LC_MESSAGESima değeri LANG(mevcut yerel belirler) değeri serbesttir.
[3] Ayrıca hakkını vererek İngilizce [ABD] geçiş için bu yaklaşımı kullanabilirsiniz LANGUAGE=Cveya LANGUAGE=POSIX(alternatif olarak LANG=C/ LANG=POSIXben anlamış değilim gerçi aktif olarak tanınan ya da sadece bir olsun,) geri dönüş mekanizması bu değerlerin yok olduğu göz önüne alındığında, bir dil etiketiyle başlama ; belki de daha iyi bir seçim olacaktır en_US.
[4] Bir var kenar bir ile yürütülebilir çağırmak için çalışmak: bu yaklaşım iş etmez durumda yolu - - nispi veya mutlak olmadığını bir oysa belirtilen dil DÖNMEDİĞİNE sadece dosya : yapar
LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utilityyapar olmayan bir mesaj çıkış (iş geçerli yerel ayarda) ise
LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility, (İspanyolca hata mesajı verir).
Birisi nedenini ve bunun için iyi bir neden olup olmadığını biliyorsa, bize bildirin.
LANGyaLANG_ALLda benim için çalışmıyor, henüzLANGUAGE. Bkz Neden benim için dilini değiştirmeye LANG ortam değişkeni değil kıldı?