Yanıtlar:
Dil ayarlarını değiştirmek için kullanılabilecek çeşitli ortam değişkenleri vardır. locale
Komutu 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 C
yerel 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=
LANGUAGE
bir 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_MESSAGES
LANG
LC_ALL
C
POSIX
LANGUAGE
LANGUAGE
açı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 nl
değ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 LANGUAGE
ortam değişkeni [1]
POSIX tanımlanan yerel ortam değişkenleri üzerinde LC_ALL
, LC_MESSAGES
ve LANG
(bu sırayla).
Olduğu göz önüne alındığında LANGUAGE
Ubuntu 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 es
bir dil-bölge etiketi (örn İspanyolca için) ya da de_DE
Almanca Almanya varyantı için), LANGUAGE
farklı 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 es
yeterlidir, ancak bir bölge tanımlayıcısı (örneğin es_AR
Arjantin 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 ( es
bu durumda).
LANGUAGE
ve ayarlayınLC_ALL
Bu alternatif çözüm önce tanımsızlaştırır LANGUAGE
, sonra LC_ALL
da 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_TIME
tarih / saat biçimleri gibi ) ayarlama ve (dolaylı olarak) ayarının istenen dilin GNU olmayan programlarını LC_MESSAGES
da 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_ALL
gerektirdiğ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-8
LANGUAGE
es
LC_MESSSAGES
LANG
Lekensteyn cevabı da çalışır [1] nedeni olmayan unsetting / geçersiz LANGUAGE
bir edilir durum : (etkin) ise LC_MESSAGES
değer (genellikle dolaylı olarak ayarlanır LANG
ya da LC_ALL
) olduğunu C
ya da (eşanlamlısı) POSIX
bağımsız değerinin, bu değer saygı LANGUAGE
, varsa. Tersine, eğer (etkin) LC_MESSAGES
değ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, LANGUAGE
gerektiği değil, onun yokluğunda verilen, varsayılan olarak ayarlanabilir LC_MESSAGES
ima 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=C
veya LANGUAGE=POSIX
(alternatif olarak LANG=C
/ LANG=POSIX
ben 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_utility
yapar 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.
LANG
yaLANG_ALL
da 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ı?