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 ~/.bashrchoặ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_ALLtrê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 ~/.bashrcbí 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_profilebí danh sẽ được áp dụng khi đăng nhập.
.bash.rcthay 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.
.bashrcngay 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_ALLbiế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_ALLcó 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" manvà 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=Ctrước lệnh, ví dụ:
LC_ALL=C git status
sẽ cho kết quả
# On branch master
nothing to commit, working directory clean
CNgô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-Languagetiê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_MESSAGESvà$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
gettextthư 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 gettexttrong 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ácPOtệ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 gettextsử 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.
LANGlà 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/profilehoặ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ênLANGvà ả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ụnglocaledefchương trình. Nhưng đơn giản hơn và đạt được hiệu quả tương tự, đặtLANGbiến thànhes_ES.UTF-8vàLC_MESSAGESbiế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_ALLlà 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 GNUautoconfsử 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_ALLtrong/etc/profilehoặ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 đặtLANGvà tùy chọn một sốLC_xxxbiến khác .
LANGtrong phiên bash / shell / DOS mà bạn đang sử dụng gittrong (hoặc khởi chạy git-guitừ), 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 ~/.bashrchoặ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 ubuntuvà 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_GBtrong ~/.bashrcphải làm gì? Điều đó không chỉ xác định biến cục bộ LANGsao?
Đâ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 ~/.bashrcchạy bất cứ khi nào bạn mở thiết bị đầu cuối
Hy vọng nó sẽ giúp