2009-05-15 2 views
23

Я чувствую себя глупым, спрашивая об этом, но здесь он идет. Я использую gcc/g ++ в Linux, и поскольку моя установка находится на испанском языке (мой родной язык), gcc печатает предупреждения и ошибки на испанском языке. Я предпочитаю читать их по-английски по двум причинам:Выбор языка сообщений в gcc и g ++

  1. Английские сообщения гораздо проще для Google.
  2. Испанский перевод более или менее ужасен.

Любая помощь? Я задумался об этом, но всякая «языковая» тема о gcc и g ++ относится к языку программирования, а не к человеческому языку.

ответ

17

Конец GCC страница руководства содержит обзор его локали переменных среды:

  • LANG
  • LC_CTYPE
  • LC_MESSAGES
  • LC_ALL управления

Эти переменные среды способ, которым GCC использует информацию о локализации, которая позволяет GCC для работы с различными национальными конвенциями. GCC проверяет категории локалей LC_CTYPE и LC_MESSAGES, если это было настроено для этого. Эти категории локалей могут быть установлены на любое значение, поддерживаемое вашей установкой. Типичным значением является en_GB.UTF-8 для английского языка в Великобритании, закодированное в UTF-8.

Переменная окружения LC_CTYPE указывает классификацию символов. GCC использует его для определения границ символов в строке; это необходимо для некоторых многобайтовых кодировок, содержащих символы цитаты и escape-кода, которые иначе интерпретируются как конец строки или escape-код.

Переменная среды LC_MESSAGES указывает язык, который будет использоваться в диагностических сообщениях.

Если задана переменная окружения LC_ALL, она переопределяет значение LC_CTYPE и LC_MESSAGES; в противном случае LC_CTYPE и LC_MESSAGES по умолчанию значение переменной среды LANG. Если ни одна из этих переменных не задана, GCC по умолчанию использует традиционное поведение C English.

Я делаю это:

LC_MESSAGES=C gcc-command-here 
+0

Weird LC_MESSAGES = C не повлиял на сообщение об ошибке в UTF-8, в то время как LC_ALL = C определенно сделал трюк, спасибо! – dolzenko

4

Чтобы изменить ССАГПЗ переводы на английский язык, чтобы необходимо установить переменную окружения LANG на английском языке:

$ экспорт LANG = EN

добавить в файл .profile, и он всегда будет на английском языке.

+2

Или менее интрузивно 'LANG = en [ARGS ...]' при работе непосредственно в оболочке. –

Смежные вопросы