Tôi muốn thay đổi ngôn ngữ git (sang tiếng Anh) trong cài đặt Linux của mình mà không thay đổi ngôn ngữ cho các chương trình khác và không thể tìm thấy cài đặt. Làm thế nào để làm nó?
Tôi muốn thay đổi ngôn ngữ git (sang tiếng Anh) trong cài đặt Linux của mình mà không thay đổi ngôn ngữ cho các chương trình khác và không thể tìm thấy cài đặt. Làm thế nào để làm nó?
Câu trả lời:
Thêm các dòng này vào của bạn ~/.bashrc
hoặc ~/.bash_profile
để buộc git hiển thị tất cả các tin nhắn bằng tiếng Anh:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
Bí danh cần được ghi đè LC_ALL
trên một số hệ thống, khi biến môi trường LC_ALL
được đặt, biến này được ưu tiên hơn LANG
. Xem Đặc tả UNIX - Biến Môi trường để được giải thích thêm.
# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'
Trong trường hợp bạn đã thêm các dòng này vào ~/.bashrc
bí danh sẽ được xác định khi một trình bao tương tác mới bắt đầu. Trong trường hợp bạn đã thêm nó vào ~/.bash_profile
bí danh sẽ được áp dụng khi đăng nhập.
.bash.rc
thay vì .bashrc
). Bạn cũng phải đóng và khởi động lại trình bao .bashrc
để thực thi. Tôi cũng đã thêm một ghi chú về điều này.
.bashrc
ngay cả khi khởi động lại. Bí danh hoạt động. Nó chỉ là ngôn ngữ không thay đổi.
.bashrc
được thực thi thành công, bạn có thể thêm một bài kiểm tra echo "This is .bashrc"
vào cuối tệp. Bạn cũng có thể thực thi nó theo yêu cầu mà không cần phải khởi động lại thiết bị đầu cuối hoặc toàn bộ hệ thống . .bashrc
. Cuối cùng, tôi khuyên bạn nên thử đặt LC_ALL
biến môi trường thay vì LANG
, vì biến đầu tiên được ưu tiên.
.bashrc
, thực sự. Nếu LC_ALL
có quyền ưu tiên thì đây sẽ là vấn đề, nó được đặt thành ngôn ngữ của tôi. Nhưng sau đó tôi không muốn thay đổi cài đặt ngôn ngữ chung ... Tôi có thể ghi đè nó cho một chương trình không?
$ LC_ALL="en_US" man
và sau đó$ man
Nếu bạn chỉ muốn có một lệnh bằng tiếng Anh, thay vào đó, bạn có thể viết LC_ALL=C
trước lệnh, ví dụ:
LC_ALL=C git status
sẽ cho kết quả
# On branch master
nothing to commit, working directory clean
C
Ngôn ngữ được sử dụng là tiếng Anh và luôn có sẵn mà không cần cài đặt thêm gói ngôn ngữ
(xem https://askubuntu.com/a/142814/34298 )
Để thay đổi nó cho toàn bộ phiên bash hiện tại, chỉ cần nhập
LANG=C
Để thay đổi nó, chẳng hạn thành tiếng Đức enter
LANG=de_DE.UTF-8
LC_ALL=C
đề xuất, vì tôi gặp một số vấn đề với ngôn ngữ, LC_ALL="en_US"
gần đây nó không hoạt động nữa.
Thêm dòng này đã giải quyết được vấn đề cho tôi:
$ more ~/.bash_profile
export LANG=en_US
Lưu ý: kể từ Git 2.3.1+ (Q1 / Q2 2015), Git sẽ thêm tiêu đề Accept-Language nếu có thể.
Xem cam kết f18604b bởi Yi EungJun ( eungjun-yi
)
Thêm
Accept-Language
tiêu đề cho biết ngôn ngữ ưa thích của người dùng được xác định bởi$LANGUAGE
,$LC_ALL
,$LC_MESSAGES
và$LANG
.Điều này tạo cơ hội cho máy chủ git hiển thị thông báo lỗi từ xa bằng ngôn ngữ ưa thích của người dùng.
Bạn có ngôn ngữ cho git gui hoặc các GUI khác ,nhưng không phải đối với dòng lệnh, coi đó là một trong những câu hỏi của GitSurvey 2010
localization of command-line messages (i18n) 258 3.6%
Tất nhiên, kể từ năm 2010, như po/README
mô tả:
Trước khi các chuỗi có thể được dịch, trước tiên chúng phải được đánh dấu để dịch.
Git sử dụng giao diện quốc tế hóa bao bọc
gettext
thư viện của hệ thống , vì vậy hầu hết các lời khuyên trong tài liệu gettext của bạn (trên hệ thống GNUinfo gettext
trong một thiết bị đầu cuối) đều áp dụng.
Được áp dụng kể từ git 1.7.9+ (tháng 1 năm 2012):
Git sử dụng
gettext
để dịch các thông báo giao diện phổ biến nhất của nó sang ngôn ngữ của người dùng nếu có bản dịch và ngôn ngữ được đặt phù hợp .
Các nhà phân phối có thể thả cácPO
tệp mới vàopo/
để thêm các bản dịch mới.
Vì vậy, nếu bản cập nhật của bạn làm rối bản dịch, hãy kiểm tra xem gettext
sử dụng gì :
Ví dụ : xem " Biến môi trường ngôn ngữ "
Một ngôn ngữ bao gồm một số danh mục ngôn ngữ, hãy xem Các khía cạnh. Khi một chương trình tìm kiếm các giá trị phụ thuộc ngôn ngữ, nó sẽ thực hiện điều này theo các biến môi trường sau, theo thứ tự ưu tiên:
LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Các biến có giá trị được đặt nhưng trống sẽ bị bỏ qua trong tra cứu này.
LANG
là biến môi trường bình thường để chỉ định ngôn ngữ. Là người dùng, bạn thường đặt biến này (trừ khi một số biến khác đã được hệ thống đặt, trong/etc/profile
hoặc các tệp khởi tạo tương tự).
LC_CTYPE
,LC_NUMERIC
,LC_TIME
,LC_COLLATE
,LC_MONETARY
,LC_MESSAGES
, Và như vậy, là các biến môi trường có nghĩa là để ghi đè lênLANG
và ảnh hưởng đến một mục locale duy nhất mà thôi.
Ví dụ: giả sử bạn là người dùng Thụy Điển ở Tây Ban Nha và bạn muốn các chương trình của mình xử lý các số và ngày tháng theo quy ước Tây Ban Nha và chỉ các tin nhắn phải bằng tiếng Thụy Điển. Sau đó, bạn có thể tạo một ngôn ngữ có tên 'sv_ES
' hoặc 'sv_ES.UTF-8
' bằng cách sử dụnglocaledef
chương trình. Nhưng đơn giản hơn và đạt được hiệu quả tương tự, đặtLANG
biến thànhes_ES.UTF-8
vàLC_MESSAGES
biến thànhsv_SE.UTF-8
; hai ngôn ngữ này đã được cài đặt sẵn với hệ điều hành.
LC_ALL
là một biến môi trường ghi đè tất cả những điều này. Nó thường được sử dụng trong các tập lệnh chạy các chương trình cụ thể. Ví dụ, cấu hình các tập lệnh được tạo bởi GNUautoconf
sử dụngLC_ALL
để đảm bảo rằng các bài kiểm tra cấu hình không hoạt động theo các cách phụ thuộc vào ngôn ngữ.Rất tiếc, một số hệ thống được đặt
LC_ALL
trong/etc/profile
hoặc trong các tệp khởi tạo tương tự. Là người dùng, do đó bạn phải bỏ đặt biến này nếu bạn muốn đặtLANG
và tùy chọn một sốLC_xxx
biến khác .
LANG
trong phiên bash / shell / DOS mà bạn đang sử dụng git
trong (hoặc khởi chạy git-gui
từ), chỉ git
(hoặc git-gui
) sẽ sử dụng cài đặt cụ thể đó. Tất cả các chương trình khác sẽ kế thừa từ các biến môi trường hệ thống / người dùng.
GIT mặc định là tiếng Anh nếu nó không thể tìm thấy ngôn ngữ Locale.
Vì vậy, nếu bạn muốn GIT bằng tiếng Anh, chỉ cần phá hoại tệp ngôn ngữ mà nó đang chạy. Trong trường hợp của tôi, nó luôn chạy với tiếng Đức (ví dụ: de.msg ).
Nếu tôi xóa nó hoặc đổi tên nó, thì nó sẽ được mặc định là tiếng anh.
Ở đây tôi đã đổi tên tệp
C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo
.
/usr/local/Cellar/git/2.21.0/share/locale/
.
Như Bengt đã đề xuất: Thêm những dòng này vào của bạn ~/.bashrc
hoặc ~/.bash_profile
để buộc git hiển thị tất cả các thông báo bằng tiếng Anh:
vim ~/.bashrc
- cho hồ sơ này (nếu bạn là người dùng ubuntu
và bạn chỉnh sửa thì nó sẽ chỉ dành cho người dùng này); thêm dòng này:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also
LANG=en_GB
và sau khi đóng tệp, bạn cần ghi vào shell:
source ~/.bashrc
để tải lại cài đặt mới hoặc thoát khỏi thiết bị đầu cuối và kết nối lại :)
LANG=en_GB
trong ~/.bashrc
phải làm gì? Điều đó không chỉ xác định biến cục bộ LANG
sao?
Đây là giải pháp của tôi để thay đổi ngôn ngữ git theo câu trả lời này và điều này
1) nano ~/.bashrc
2) thêm alias git='LANG=en_GB git'
vào tệp
2) lưu tệp
4)source ~/.bashrc
Bây giờ git của bạn đã thay đổi ngôn ngữ. Tuy nhiên, NẾU sau khi thiết bị đầu cuối khởi động lại của bạn và nó không hoạt động nữa, bạn cần phải
4.1) nano ~/.profile
4.2) thêm source ~/.bashrc
4.3) lưu tệp
nó sẽ source ~/.bashrc
chạy bất cứ khi nào bạn mở thiết bị đầu cuối
Hy vọng nó sẽ giúp