Git'in komut satırı arayüzünün dili nasıl değiştirilir?


103

Diğer programların dilini değiştirmeden Linux kurulumumda git dilini (İngilizce olarak) değiştirmek istiyorum ve ayarları bulamadım. Nasıl yapılır?


1
Yerel ayarı değiştirmek istiyorsunuz. Sanırım bu soruyu süper kullanıcıya tekrar gönderirdim.
JosefAssad

Yanıtlar:


145

Tüm iletileri İngilizce görüntülemeye zorlamak için bu satırları ekleyin ~/.bashrcveya ~/.bash_profilegit:

# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'

Diğer adın , öncelikli olan LC_ALLortam değişkeni LC_ALLayarlandığında bazı sistemlerde geçersiz kılınması gerekir LANG. Daha fazla açıklama için UNIX Spesifikasyonu - Ortam Değişkenleri'ne bakın.

# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'

Bu satırları ~/.bashrcdiğer ada eklemeniz durumunda, yeni bir etkileşimli kabuk başlatıldığında tanımlanacaktır. Eğer onu ekledi ~/.bash_profilegiriş yaparken uygulanacak takma.


Dosya adında ( .bash.rcyerine .bashrc) bir yazım hatası var . Ayrıca, .bashrcyürütülmesi için kabuğu kapatıp yeniden başlatmanız gerekir. Buna da bir not ekledim.
Bengt

.bashrcYeniden başlatırken bile denedim . Takma adlar işe yarar. Sadece dil değişmiyor.
user905686

.bashrcAlma işleminin başarıyla yürütüldüğünü doğrulamak echo "This is .bashrc"için, dosyanın sonuna benzer bir test ekleyebilirsiniz . Ayrıca, terminali veya tüm sistemi yeniden başlatmanıza gerek kalmadan talep üzerine çalıştırabilirsiniz . .bashrc. Son olarak, ilki önceliğe sahip olduğu için LC_ALLbunun yerine ortam değişkenini ayarlamayı öneririm LANG.
Bengt

Benimle her şey yolunda .bashrc, gerçekten. LC_ALLÖnceliği varsa o zaman sorun bu olacak, dilime göre ayarlanmıştır. Ama sonra genel dil ayarını değiştirmek istemiyorum ... Bir program için bunun üzerine yazamaz mıyım?
user905686

1
Dili, önerilen yöntemi kullanarak yan etkiler olmadan ayarlayabilirsiniz, çünkü bu değişkenler yalnızca komutun sona erdirilmesi için geçtiği sürece geçerlidir. Koşarak deneyin $ LC_ALL="en_US" manve sonra$ man
Bengt

20

Yalnızca İngilizce olarak bir komuta sahip olmak istiyorsanız LC_ALL=C, komuttan önce yazabilirsiniz , örneğin:

LC_ALL=C git status

sonuçlanacak

# On branch master
nothing to commit, working directory clean

Kullanılan yerel ayar Cİngilizcedir ve ek dil paketleri yüklemeden her zaman kullanılabilir
(bkz. Https://askubuntu.com/a/142814/34298 )

Bunu tüm mevcut bash oturumu için değiştirmek için şunu girin:

LANG=C

Örneğin almanca yapmak için şunu girin:

LANG=de_DE.UTF-8

LC_ALL=CÖneriniz için teşekkürler , yerel LC_ALL="en_US"ayarlarla ilgili bazı problemlerim olduğu için artık son zamanlarda işe yaramadı.
user905686

11

Bu satırı eklemek benim için sorunu çözdü:

$ more ~/.bash_profile
export LANG=en_US

2
Soru yalnızca git için dilin nasıl değiştirileceğidir - daha net olması için güncelledim.
user905686

6

Not: Git 2.3.1+ (Q1 / Q2 2015) 'den bu yana, Git mümkünse Accept-Language başlığını ekleyecektir. Yi EungJun ( ) tarafından yapılan commit f18604b'ye
bakıneungjun-yi

Bir ekleme Accept-Languagekullanıcının tercih ettiği dil ile tanımlanan gösterir başlığı $LANGUAGE, $LC_ALL, $LC_MESSAGESve $LANG.

Bu, git sunucularına uzak hata mesajlarını kullanıcının tercih ettiği dilde görüntüleme şansı verir.


Git gui veya diğer GUI'ler için yerel ayarınız var ,ancak komut satırı için değil, GitSurvey 2010'un sorularından biri olduğu düşünüldüğünde

localization of command-line messages (i18n)    258     3.6%    

Tabii ki, 2010'dan beri po/READMEanlatıldığı gibi:

Dizeler çevrilmeden önce çeviri için işaretlenmeleri gerekir.

Git, sistemin genelini saran bir uluslararasılaştırma arayüzü kullanır. gettext kitaplığını , bu nedenle gettext belgelerinizdeki ( info gettextbir terminaldeki GNU sistemlerinde ) tavsiyelerin çoğu geçerlidir.

O zamandan beri yerinde 1.7.9+ sürümünden (Ocak 2012) :

Git, gettextçeviriler mevcutsa ve yerel ayar uygun şekilde ayarlanmışsa, en yaygın arayüz mesajlarını kullanıcının diline çevirmek için kullanır .
Distribütörler yeni bırakabilirPOpo/ yeni çeviriler eklemek için dosyalar .

Dolayısıyla, güncellemeniz çeviriyi bozduysa, neyin gettextkullanıldığını kontrol edin :
Örneğin, bkz. Yerel Ayar Ortamı Değişkenleri "

Bir yerel ayar birkaç yerel kategoriden oluşur, bkz. Unsurlar. Bir program yerel ayara bağlı değerleri aradığında, bunu öncelik sırasına göre aşağıdaki ortam değişkenlerine göre yapar:

LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG 

Değeri ayarlanmış ancak boş olan değişkenler bu aramada göz ardı edilir.

LANGbir yerel ayarı belirlemek için normal ortam değişkenidir. Bir kullanıcı olarak, normalde bu değişkeni ayarlarsınız (diğer değişkenlerden bazıları sistem tarafından önceden ayarlanmamışsa,/etc/profile veya benzer başlatma dosyalarında ).

LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, Ve benzeri geçersiz kılmak için geliyordu ortam değişkenleridir LANGve sadece tek bir yerel kategori etkileyen.
Örneğin, İspanya'da İsveçli bir kullanıcı olduğunuzu ve programlarınızın sayıları ve tarihleri ​​İspanyol kurallarına göre işlemesini istediğinizi ve yalnızca mesajların İsveççe olması gerektiğini varsayalım. Daha sonra programı kullanarak ' sv_ES' veya ' sv_ES.UTF-8' adlı bir yerel ayar oluşturabilirsiniz localedef. Ama basittir ve ayarlamak için, aynı etkiyi elde LANGetmek değişkeni es_ES.UTF-8ve LC_MESSAGESdeğişken için sv_SE.UTF-8; bu iki yerel ayar, işletim sistemi ile önceden yüklenmiş olarak gelir.

LC_ALLtüm bunları geçersiz kılan bir ortam değişkenidir. Genellikle belirli programları çalıştıran komut dosyalarında kullanılır. Örneğin, GNU autoconfkullanımı tarafından oluşturulan komut dosyalarını yapılandırınLC_ALL emin yapılandırma testleri yerel bağımlı şekillerde işletmek olmadığını yapmak.

Bazı sistemler, maalesef, set LC_ALLiçinde /etc/profileveya benzeri başlatma dosyaları. Bu nedenle, bir kullanıcı olarak, LANGdiğer LC_xxxdeğişkenleri ve isteğe bağlı olarak bazı değişkenleri ayarlamak istiyorsanız bu değişkeni kaldırmanız gerekir .


Peki transalasyon nereden geliyor? Sormamın nedeni, güncellemeden önce ve sonra İngilizce gitmiş olmamdı, dilime değişti, ama bu hoşuma gitmedi.
user905686

@ user905686 üzgünüm, benim hatam. Git, gettext ile yerel ayarı destekler. Bu yüzden ortam değişkenlerinizi kontrol edin. Düzenlenmiş cevabımda hangisini kontrol edeceğimi detaylandırıyorum.
VonC

Ya git için dili değiştirmek istersem, ancak diğer programlar için değiştirmemek istersem? Yani benim için çeviriler bazı şeyleri bozuyor, bu yüzden git'in her zaman (hangi program çağırırsa çağırsın) LANG = C ve diğer her şeyin ana dilimde olmasını istiyorum. Herhangi bir fikir?
Droggl

@Droggl Kullandığınız (veya başlattığınız ) LANGbash / shell / DOS oturumunda ayarladığınız sürece , yalnızca (veya ) o belirli ayarı kullanacaktır. Diğer tüm programlar, sistem / kullanıcı ortamı değişkenlerinden miras alır. gitgit-guigitgit-gui
VonC

4

Çalıştır LC_MESSAGES=C git, LC_ALL = C veya LANG = C değil ve dosyaları silmeye veya yeniden adlandırmaya gerek yok.

Bu komut, çıktı Git mesajlarını İngilizce olarak değiştirir.


2

Yerel dili bulamazsa GIT varsayılan olarak İngilizcedir.

Dolayısıyla, GIT'in İngilizce olmasını istiyorsanız, birlikte çalıştığı dil dosyasını sabote edin. Benim durumumda her zaman almanca ile çalışıyordu (yani: de.msg ).

Onu sildiysem veya yeniden adlandırırsam, varsayılan olarak ingilizce oldu.

görüntü açıklamasını buraya girin

Burada dosyayı yeniden adlandırdım

görüntü açıklamasını buraya girin


Git for Windows 2.x (64 bit) ile bu olacaktır C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo.
Koraktor

Bu yaklaşımın avantajı, bir git güncellemesinden sonra çevirinin geri dönmesi (ve belki de iyileştirilmesi) olabilir, böylece onu kullanmak veya yeniden kaldırmak isteyip istemediğinize yeniden karar verebilirsiniz.
user905686

Kaynak kodunu kontrol ettim, görünüşe göre git İngilizce'yi desteklemiyor: github.com/git-l10n/git-po/tree/master/po Hatta ben Çince ve İsveççe'den önce İngilizceyi kullanmak istiyorum (en_GB: en: zh_HK: zh_CN: zh: sv_SE: sv), git hala bana Çince gösteriyor.
Michael Tsang

Homebrew aracılığıyla Git yüklü Mac OSx'te yerel ayarları içinde buldum /usr/local/Cellar/git/2.21.0/share/locale/.
Magnus W

0

Bengt'in önerdiği gibi: Bu satırları hesabınıza ekleyin ~/.bashrcveya ~/.bash_profilegit'i tüm mesajları İngilizce göstermeye zorlamak için: vim ~/.bashrc- bu profil için (kullanıcı ubuntuiseniz ve bunu düzenlerseniz, yalnızca bu kullanıcı için olacaktır); şu satırları ekleyin:

# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also 
LANG=en_GB

ve dosyayı kapattıktan sonra shell'e yazmanız gerekir:

source ~/.bashrc 

yeni ayarları yeniden yüklemek veya terminalden çıkıp tekrar bağlanmak için :)


Ek nedir LANG=en_GBiçinde ~/.bashrcyapmak gerekiyordu? Bu sadece yerel değişkeni tanımlamıyor LANGmu?
user905686

0

İşte değişim git dil takip benim çözüm cevap edilir bu ve bu

1) nano ~/.bashrc
2) alias git='LANG=en_GB git'dosyaya ekleyin
2) dosyayı kaydedin
4)source ~/.bashrc

Şimdi gitiniz zaten dili değiştirdi. Ancak, terminalinizi yeniden başlattıktan sonra artık çalışmıyorsa, yapmanız gereken

4.1) nano ~/.profile
4.2) ekleyin source ~/.bashrc
4.3) dosyayı kaydedin

yapacak source ~/.bashrc Eğer terminali açtığınızda koşmak

Umarım yardımcı olur

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.