Chciałbym zmienić język git (na angielski) w mojej instalacji Linuksa bez zmiany języka dla innych programów i nie mogłem znaleźć ustawień. Jak to zrobić?
Chciałbym zmienić język git (na angielski) w mojej instalacji Linuksa bez zmiany języka dla innych programów i nie mogłem znaleźć ustawień. Jak to zrobić?
Odpowiedzi:
Dodaj te linie do swojego ~/.bashrc
lub, ~/.bash_profile
aby wymusić na git wyświetlanie wszystkich wiadomości w języku angielskim:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
Alias musi zostać zastąpiony LC_ALL
w niektórych systemach, gdy LC_ALL
ustawiona jest zmienna środowiskowa , która ma pierwszeństwo przed LANG
. Więcej informacji można znaleźć w specyfikacji UNIX - zmienne środowiskowe .
# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'
Jeśli dodałeś te linie do ~/.bashrc
aliasu, zostanie on zdefiniowany, gdy zostanie uruchomiona nowa interaktywna powłoka. W przypadku, gdy dodałeś go do ~/.bash_profile
aliasu, zostanie zastosowany podczas logowania.
.bash.rc
zamiast .bashrc
). Musisz także zamknąć i ponownie uruchomić powłokę, aby program .bashrc
został wykonany. Dodałem też uwagę na ten temat.
.bashrc
nawet przy ponownym uruchomieniu. Aliasy działają. Po prostu język się nie zmienia.
.bashrc
zostanie wykonany pomyślnie, możesz dodać test taki jak echo "This is .bashrc"
na końcu pliku. Możesz również zlecić wykonanie go na żądanie bez konieczności ponownego uruchamiania terminala lub całego systemu przez . .bashrc
. Na koniec sugerowałbym próbę ustawienia LC_ALL
zmiennej środowiskowej zamiast LANG
, ponieważ pierwsza z nich ma pierwszeństwo.
.bashrc
. Jeśli LC_ALL
ma pierwszeństwo, to będzie problem, jest ustawiony na mój język. Ale wtedy nie chcę zmieniać ogólnego ustawienia języka ... Czy nie mogę go nadpisać dla jednego programu?
$ LC_ALL="en_US" man
a potem$ man
Jeśli chcesz mieć tylko jedno polecenie w języku angielskim, możesz po prostu napisać LC_ALL=C
przed poleceniem, na przykład:
LC_ALL=C git status
spowoduje
# On branch master
nothing to commit, working directory clean
Ustawienia regionalne są używane w C
języku angielskim i są zawsze dostępne bez instalowania dodatkowych pakietów językowych
(patrz https://askubuntu.com/a/142814/34298 )
Aby zmienić to dla całej bieżącej sesji basha, po prostu wprowadź
LANG=C
Aby zmienić go na przykład na niemiecki wpisz
LANG=de_DE.UTF-8
LC_ALL=C
sugestię, ponieważ mam pewne problemy z lokalizacją, LC_ALL="en_US"
ostatnio już nie działało.
Dodanie tej linii rozwiązało problem dla mnie:
$ more ~/.bash_profile
export LANG=en_US
Uwaga: od Git 2.3.1+ (Q1 / Q2 2015), Git doda nagłówek Accept-Language, jeśli to możliwe.
Zobacz commit f18604b autorstwa Yi EungJun ( eungjun-yi
)
Dodać
Accept-Language
nagłówek, który wskazuje preferowane języki użytkownika określa$LANGUAGE
,$LC_ALL
,$LC_MESSAGES
i$LANG
.Daje to serwerom git szansę na wyświetlanie zdalnych komunikatów o błędach w preferowanym języku użytkownika.
Masz ustawienia regionalne dla git gui lub innych GUI ,ale nie dla wiersza poleceń, biorąc pod uwagę, że było to jedno z pytań GitSurvey 2010
localization of command-line messages (i18n) 258 3.6%
Oczywiście od 2010 roku, jak po/README
opisuje:
Zanim będzie można przetłumaczyć łańcuchy, należy je najpierw zaznaczyć do tłumaczenia.
Git używa interfejsu internacjonalizacji, który otacza
gettext
bibliotekę systemową , więc większość porad z twojej dokumentacji gettext (na temat systemów GNUinfo gettext
w terminalu) ma zastosowanie.
Na miejscu od wersji 1.7.9+ (styczeń 2012):
Git używa
gettext
do tłumaczenia komunikatów z najczęściej używanych interfejsów na język użytkownika, jeśli tłumaczenia są dostępne, a ustawienia regionalne są odpowiednio ustawione .
Dystrybutorzy mogą dodawać nowePO
pliki,po/
aby dodawać nowe tłumaczenia.
Jeśli więc twoja aktualizacja zepsuła tłumaczenie, sprawdź, co gettext
używa:
Zobacz na przykład „ Zmienne środowiskowe ustawień regionalnych ”
Ustawienia regionalne składają się z kilku kategorii ustawień regionalnych, zobacz Aspekty. Gdy program wyszukuje wartości zależne od ustawień regionalnych, robi to zgodnie z następującymi zmiennymi środowiskowymi w kolejności priorytetów:
LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Zmienne, których wartość jest ustawiona, ale jest pusta, są ignorowane w tym wyszukiwaniu.
LANG
jest normalną zmienną środowiskową do określania ustawień regionalnych. Jako użytkownik zwykle ustawiasz tę zmienną (chyba że inne zmienne zostały już ustawione przez system, w/etc/profile
lub podobnych plikach inicjalizacyjnych).
LC_CTYPE
,LC_NUMERIC
,LC_TIME
,LC_COLLATE
,LC_MONETARY
,LC_MESSAGES
, I tak dalej, są zmienne środowiskowe przeznaczone do zastąpieniaLANG
i wpływając tylko jedną kategorię lokalizacji.
Na przykład załóżmy, że jesteś szwedzkim użytkownikiem w Hiszpanii i chcesz, aby Twoje programy obsługiwały liczby i daty zgodnie z hiszpańskimi konwencjami i tylko komunikaty powinny być w języku szwedzkim. Następnie możesz utworzyć ustawienie regionalne o nazwie „sv_ES
” lub „sv_ES.UTF-8
” za pomocąlocaledef
programu. Ale jest prostsze i daje ten sam efekt, aby ustawićLANG
zmienną na,es_ES.UTF-8
aLC_MESSAGES
zmienną nasv_SE.UTF-8
; te dwie wersje językowe są już preinstalowane w systemie operacyjnym.
LC_ALL
jest zmienną środowiskową, która zastępuje wszystkie z nich. Jest zwykle używany w skryptach uruchamiających określone programy. Na przykład, skrypty configure generowanych przez GNUautoconf
użytkuLC_ALL
, aby upewnić się, że testy konfiguracyjne nie działają w locale sposobów zależnych.Niektóre systemy, niestety, ustawione
LC_ALL
w/etc/profile
lub w podobnych plików inicjujących. Dlatego jako użytkownik musisz usunąć ustawienie tej zmiennej, jeśli chcesz ustawićLANG
i opcjonalnie niektóre inneLC_xxx
zmienne.
LANG
sesję bash / shell / DOS, której używasz git
(lub uruchamiasz git-gui
z), tylko git
(lub git-gui
) będzie używać tego konkretnego ustawienia. Wszystkie inne programy będą dziedziczyć po zmiennych środowiskowych systemowych / użytkownika.
GIT domyślnie ustawia język angielski, jeśli nie może znaleźć języka lokalnego.
Więc jeśli chcesz, aby GIT był w języku angielskim, po prostu sabotuj plik językowy, z którym działa. W moim przypadku zawsze działał z językiem niemieckim (czyli: de.msg ).
Jeśli go usunąłem lub zmieniłem jego nazwę, domyślnie był ustawiony na angielski.
Tutaj zmieniłem nazwę pliku
C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo
.
/usr/local/Cellar/git/2.21.0/share/locale/
.
Jak zasugerował Bengt: Dodaj te linie do swojego ~/.bashrc
lub ~/.bash_profile
aby wymusić na gicie wyświetlanie wszystkich wiadomości w języku angielskim:
vim ~/.bashrc
- dla tego profilu (jeśli jesteś użytkownikiem ubuntu
i edytujesz to będzie to tylko dla tego użytkownika); dodaj te linie:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also
LANG=en_GB
i po zamknięciu pliku musisz napisać w powłoce:
source ~/.bashrc
aby przeładować nowe ustawienia lub wyjść z terminala i połączyć się ponownie :)
LANG=en_GB
w ~/.bashrc
robić? Czy to nie tylko definiuje zmienną lokalną LANG
?
Oto moje rozwiązanie, aby zmienić język git, wykonaj odpowiedź na to i to
1) nano ~/.bashrc
2) dodaj alias git='LANG=en_GB git'
do pliku
2) zapisz plik
4)source ~/.bashrc
Teraz twój dupek już zmienił język. Jednak JEŚLI po ponownym uruchomieniu terminala i już nie działa, musisz
4.1) nano ~/.profile
4.2) dodaj source ~/.bashrc
4.3) zapisz plik
będzie source ~/.bashrc
działać za każdym razem, gdy otworzysz terminal
Mam nadzieję, że to pomoże