Làm thế nào để có tin nhắn console bằng tiếng Anh?


13

Tôi là người Pháp và sử dụng hệ thống Debian của mình bằng tiếng Pháp.

Tuy nhiên, tôi muốn có thông báo lỗi trong thiết bị đầu cuối bằng tiếng Anh. Nó cho phép tôi đăng chúng trên các trang web nói tiếng Anh.

Làm thế nào tôi có thể thay đổi địa phương của tôi để làm như vậy? Tôi chính xác tôi không muốn có tất cả hệ thống của mình bằng tiếng Anh.


1
export LANGUAGE=English
Stéphane Chazelas 17/12/13

@StephaneChazelas Vui lòng chính xác hiệu quả và tác động chính xác của lệnh của bạn (có lẽ trong câu trả lời nhiều hơn trong nhận xét).
ppr 17/12/13

Câu trả lời:


10

Bạn phải thay đổi biến LANG trong shell hiện tại.

Đặt

export LANG=en_US.UTF-8

trong tệp RC shell của bạn (đối với bash nó ~/.bashrc) và khởi động lại phiên cuối (hoặc chỉ nguồn tệp RC một lần nữa với source ~/.bashrchoặc thậm chí chỉ cần khởi động lại bash với exec bash)

Lưu ý rằng bạn phải tạo miền địa phương này trước đó.

Ngoài ra bạn có thể sử dụng export LANG=C.

Ngoài ra còn có các biến LANG khác (từ man bash):

   LANG   Used to determine the  locale  category  for  any  category  not
          specifically selected with a variable starting with LC_.
   LC_ALL This  variable  overrides  the  value  of LANG and any other LC_
          variable specifying a locale category.
   LC_COLLATE
          This variable determines the collation order used  when  sorting
          the  results  of pathname expansion, and determines the behavior
          of  range  expressions,  equivalence  classes,   and   collating
          sequences within pathname expansion and pattern matching.
   LC_CTYPE
          This  variable  determines  the interpretation of characters and
          the behavior of character classes within pathname expansion  and
          pattern matching.
   LC_MESSAGES
          This  variable  determines  the locale used to translate double-
          quoted strings preceded by a $.
   LC_NUMERIC
          This variable determines the locale  category  used  for  number
          formatting.

1
Sử dụng LANGbiến môi trường chỉ để cài đặt ngôn ngữ (ưu tiên) của các chương trình chạy trong bảng điều khiển là sai. Đó là những gì LC_MESSAGESLANGUAGEbiến môi trường có nghĩa là cho. Xem Biến cục bộ 'LANGUAGE' - làm cách nào để đặt tiếng Anh làm ngôn ngữ chính? Một lỗi trong gettext? .
Piotr Dobrogost

2
Thêm một bình luận để cảnh báo người đọc rằng ngay cả khi nó được chấp nhận câu trả lời, điều này không đúng. LC_ALL=Cnên được sử dụng thay thế unset LC_ALLđể thiết lập lại. Xem unix.stackexchange.com/q/87745/168003
el-teedee

9

Bạn có thể gọi một ứng dụng với cú pháp sau:

Ví dụ: bạn muốn các trang man tiếng Anh (chỉ cho một lệnh):

user@host:~# LC_ALL=C man ls

Hoặc bạn gặp lỗi (hệ thống của tôi bằng tiếng Đức):

user@host:~$ ls -la /root/
ls: Öffnen von Verzeichnis /root/ nicht möglich: Keine Berechtigung

user@host:~$ LC_ALL=C ls -l /root/
ls: cannot open directory /root/: Permission denied

Hữu ích (nhưng tôi đã chấp nhận một câu trả lời khác vì câu hỏi của tôi là về việc làm này vĩnh viễn).
ppr 17/12/13

2
nhiều "C" hơn "c", "c" không hoạt động trên Debian 8.
Tristan

Tôi đã đề xuất một chỉnh sửa LC_ALL=Cthay vì LC_ALL=cthất bại với tôi bằng tin nhắnbash: warning: setlocale: LC_ALL: cannot change locale (c)
el-teedee

-3

Hãy thử tham khảo điều này: 1) https://wiki.debian.org/ChangeL Language

Nói tóm lại, bạn muốn đặt LOCALE (thông qua LANG), tốt nhất là trong .bashrc của bạn.

export LANG=en_US.UTF-8

ok nhưng tôi không muốn thay đổi ngôn ngữ hệ thống của tôi. Tôi chỉ muốn có một số thông báo lỗi bằng tiếng Anh. Thay đổi ngôn ngữ hệ thống có rất nhiều hậu quả.
ppr 17/12/13

Tôi tin rằng việc đặt nó trong .bashrc của bạn sẽ chỉ ảnh hưởng đến trình bao của bạn, cũng như bất kỳ lệnh nào đọc .bashrc. Nếu bạn bỏ qua "xuất", nó sẽ không được truyền đến các lệnh bạn bắt đầu từ trình bao đó.
C. Kelly

@ckelly Điều đó thay đổi một loạt các thứ bên cạnh ngôn ngữ thông báo lỗi. Ví dụ: sắp xếp thứ tự, định dạng số, ...
derobert 17/12/13

@ppr ok, nhưng tôi không muốn thay đổi ngôn ngữ hệ thống của mình - Tại sao sau đó bạn lại chấp nhận một câu trả lời đưa ra cùng một "giải pháp"?
Piotr Dobrogost
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.