# Настройка языка сообщений, выдаваемых компилятором

В описании фигурируют такие понятия как “английский язык с кодировкой KOI8-R” и “английский язык с кодировкой UTF-8”. В компиляторе есть русскоязычные сообщения, которые ещё не были переведены на английский язык. По смыслу эти два понятия означают “выдача на английском языке, но в случае, если нет перевода, выдача на русском языке в кодировке KOI8-R и UTF-8 соответственно”

Настройка языка сообщений, выдаваемых компилятором, осуществляется по следующему алгоритму:

1. Если имеется непустая переменная окружения `LC_ALL`, то по её значению настраиваем язык и завершаем разбор. Значения:

   - `ru_RU.KOI8-R`, `ru_RU.KOI8_R`, `ru_RU.KOI8R` - язык русский, кодировка KOI8-R

   - `ru_RU.UTF-8`, `ru_RU.UTF_8`, `ru_RU.UTF8`, `ru_RU` - язык русский, кодировка UTF-8

   - `en_US` - язык английский, кодировка KOI8-R

   - прочие значения - язык английский, кодировка UTF-8

2. Если имеется непустая переменная окружения `LC_MESSAGES`, то по её значению настраиваем язык и завершаем разбор. Значения:

   - `ru_RU.KOI8-R`, `ru_RU.KOI8_R`, `ru_RU.KOI8R` - язык русский, кодировка KOI8-R

   - `ru_RU.UTF-8`, `ru_RU.UTF_8`, `ru_RU.UTF8`, `ru_RU` - язык русский, кодировка UTF-8

   - `en_US` - язык английский, кодировка KOI8-R

   - прочие значения - язык английский, кодировка UTF-8

3. Если имеется непустая переменная окружения `LANG`, то по её значению настраиваем язык и завершаем разбор. Значения:

   - `ru_RU.KOI8-R`, `ru_RU.KOI8_R`, `ru_RU.KOI8R` - язык русский, кодировка KOI8-R

   - `ru_RU.UTF-8`, `ru_RU.UTF_8`, `ru_RU.UTF8`, `ru_RU` - язык русский, кодировка UTF-8

   - `en_US` - язык английский, кодировка KOI8-R

   - прочие значения - язык английский, кодировка UTF-8

4. Язык английский, кодировка UTF-8