จะมีข้อความคอนโซลเป็นภาษาอังกฤษได้อย่างไร


13

ฉันเป็นคนฝรั่งเศสและใช้ระบบ Debian ของฉันเป็นภาษาฝรั่งเศส

อย่างไรก็ตามฉันต้องการมีข้อความแสดงข้อผิดพลาดเป็นภาษาอังกฤษ ช่วยให้ฉันสามารถโพสต์พวกเขาในเว็บไซต์ที่พูดภาษาอังกฤษ

ฉันจะเปลี่ยนภาษาของฉันได้อย่างไร ฉันแม่นยำฉันไม่ต้องการให้ระบบของฉันเป็นภาษาอังกฤษทั้งหมด


1
export LANGUAGE=English
Stéphane Chazelas

@StephaneChazelas โปรดระบุความแม่นยำของเอฟเฟกต์และผลกระทบของคำสั่งของคุณ (อาจเป็นคำตอบมากกว่าในความคิดเห็น)
ppr

คำตอบ:


10

คุณต้องเปลี่ยนตัวแปร LANG ในเชลล์ปัจจุบัน

ใส่

export LANG=en_US.UTF-8

ในเชลล์ไฟล์ rc ของคุณ (สำหรับ bash มัน~/.bashrc) และรีสตาร์ทเซสชันเทอร์มินัล (หรือเพียงแค่จัดหาไฟล์ rc อีกครั้งด้วยsource ~/.bashrcหรือแม้แต่แค่รีสตาร์ท bash ด้วยexec bash)

โปรดทราบว่าคุณต้องสร้างสถานที่นี้มาก่อน

export LANG=Cนอกจากนี้คุณสามารถใช้

นอกจากนี้ยังมีตัวแปร LANG อื่น ๆ (จาก 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
การใช้LANGตัวแปรสภาพแวดล้อมเพียงเพื่อการตั้งค่า (ที่ต้องการ) ภาษาของโปรแกรมที่ทำงานในคอนโซลนั้นผิด นั่นคือสิ่งที่LC_MESSAGESและLANGUAGEตัวแปรสภาพแวดล้อมมีไว้สำหรับ ดูตัวแปรโลแคล 'LANGUAGE' - วิธีการตั้งค่าภาษาอังกฤษเป็นภาษาหลัก? ข้อผิดพลาดใน gettext? .
Piotr Dobrogost

2
การเพิ่มความคิดเห็นเพื่อเตือนผู้อ่านว่าแม้ว่าจะเป็นคำตอบที่ยอมรับได้ แต่ก็ไม่ถูกต้อง LC_ALL=Cควรใช้แทนunset LC_ALLการรีเซ็ต ดูunix.stackexchange.com/q/87745/168003
el-teedee

9

คุณสามารถเรียกแอปพลิเคชันด้วยไวยากรณ์ต่อไปนี้:

ตัวอย่างเช่นคุณต้องการ manpages ภาษาอังกฤษ (เพียงแค่คำสั่งเดียว):

user@host:~# LC_ALL=C man ls

หรือคุณพบข้อผิดพลาด (ระบบของฉันเป็นภาษาเยอรมัน):

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

มีประโยชน์ (แต่ฉันยอมรับคำตอบอื่นเพราะคำถามของฉันเกี่ยวกับการทำสิ่งนี้อย่างถาวร)
ppr

2
"C" มากกว่า "c", "c" ไม่ทำงานบน Debian ของฉัน 8
Tristan

ฉันแนะนำให้แก้ไขLC_ALL=CแทนLC_ALL=cซึ่งล้มเหลวเช่นกันสำหรับฉันด้วยข้อความbash: warning: setlocale: LC_ALL: cannot change locale (c)
el-teedee

-3

ลองอ้างอิงสิ่งนี้: 1) https://wiki.debian.org/ChangeLanguage

กล่าวโดยย่อคือคุณต้องการตั้งค่า LOCALE ของคุณ (ผ่าน LANG) โดยเฉพาะอย่างยิ่งใน. bashrc ของคุณ

export LANG=en_US.UTF-8

ตกลง แต่ฉันไม่ต้องการเปลี่ยนภาษาของระบบ ฉันแค่ต้องการมีข้อความแสดงข้อผิดพลาดเป็นภาษาอังกฤษ การเปลี่ยนภาษาของระบบมีผลกระทบมากมาย
ppr

ฉันเชื่อว่าการวางไว้ใน. bashrc ของคุณจะมีผลกับเชลล์ของคุณเท่านั้นเช่นเดียวกับคำสั่งใด ๆ ที่อ่าน. bashrc หากคุณละเว้น "ส่งออก" จะไม่ถูกเผยแพร่ไปยังคำสั่งที่คุณเริ่มจากเชลล์นั้น
C. Kelly

@ckelly ที่เปลี่ยนแปลงสิ่งต่าง ๆ นอกเหนือจากภาษาข้อความแสดงข้อผิดพลาด ตัวอย่างเช่นคำสั่งซื้อเรียงลำดับการจัดรูปแบบตัวเลข ...
derobert

@ppr ok แต่ฉันไม่ต้องการเปลี่ยนภาษาของระบบ - ทำไมคุณถึงยอมรับคำตอบที่ให้ "การแก้ปัญหา" แบบเดียวกัน?
Piotr Dobrogost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.