Як мати консольні повідомлення англійською мовою?


13

Я французький і використовую свою систему Debian французькою мовою.

Однак я хотів би, щоб повідомлення про помилки в терміналі були англійською мовою. Це дозволяє мені розміщувати їх на англомовних веб-сайтах.

Як я можу змінити мову, щоб це зробити? Я точно кажу, я не хочу мати всю свою систему англійською мовою.


1
export LANGUAGE=English
Стефан Шазелас

@StephaneChazelas Будь ласка, уточніть точний ефект та вплив вашої команди (можливо, у відповіді більше, ніж у коментарі).
ппр

Відповіді:


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? .
Пьотр Доброгост

2
Додаючи коментар, щоб попередити читача, що навіть якщо на нього прийнято відповідь, це невірно. LC_ALL=Cслід використовувати замість с unset LC_ALLдля скидання. Дивіться unix.stackexchange.com/q/87745/168003
el-teedee

9

Ви можете зателефонувати до програми із таким синтаксисом:

Наприклад, ви хочете мати англійські вказівки (лише для однієї команди):

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

Корисна (але я прийняла іншу відповідь, оскільки моє запитання стосувалося постійного виконання цього завдання).
ппр

2
більше "C", ніж "c", "c" не працює на моїй Debian 8.
Tristan

Я запропонував редагування, LC_ALL=Cзамість LC_ALL=cякої не bash: warning: setlocale: LC_ALL: cannot change locale (c)
вдалося

-3

Спробуйте посилатися на це: 1) https://wiki.debian.org/ChangeLanguage

Коротше кажучи, ви хочете встановити свій LOCALE (через LANG), бажано у вашому .bashrc.

export LANG=en_US.UTF-8

добре, але я не хочу змінювати мову системи. Я просто хочу, щоб повідомлення про помилку було англійською мовою. Зміна мови системи має безліч наслідків.
ппр

Я вважаю, що його розміщення у вашому .bashrc вплине лише на вашу оболонку, а також на будь-які команди, які читають .bashrc. Якщо ви не будете "експортувати", він не поширюватиметься на команди, запущені з цієї оболонки.
C. Келлі

@ckelly Це змінює купу речей, крім мови повідомлення про помилку. Наприклад, сортування замовлень, форматування чисел, ...
derobert

@ppr гаразд, але я не хочу змінювати свою системну мову - Чому тоді ви прийняли відповідь, яка дає те саме "рішення"?
Пьотр Доброгост
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.