Дата и время публикации:
Управление настройкой языка
1. Что лечим?!
Некорректное отображения символов на русском языке в интерфейсе командной строки (англ. Command Line Interface, CLI).
2. Как лечим?!
Корректное отображение символов устанавливается путем настройки локализации к родному языку, которые можно, например, установить в ручную через переменную окружения LANG.
Для английского языка, как показано в листинге 2.1
Листинг 2.1
user@home ~$ export LANG=en_US.UTF-8
Для русского языка, как показано в листинге 2.2
Листинг 2.2
user@home ~$ export LANG=ru_RU.UTF-8
Для постоянного сохранения устанновленных языковых предпочтений, переменную LANG и выбранную языковую локаль записать в файл ~/.bashrc и перезапустить терминал или текущую сессию.
Для выбора из поддерживаемых языковых локалей в командной строке вызвать команду, как показано в листинге 2.3
user@home ~$ locale -a C C.UTF-8 en_US.utf8 POSIX ru_RU.utf8
Чтобы получить список всех доступных языковых локализации, которые могут быть найдены в директории /usr/share/locale или /usr/lib/locale/.При этом, для установки новой локализации интерфейса в дистрибутиве Debian необходимо перенастроить пакет locales, как показано в листинге 2.4.
sudo dpkg-reconfigure locales
Вместе с переменной LANG будут установлены так же остальные переменные, начинающиеся с LC_, например LC_ALL, которая устанавливает для всех переменных, начинающихся LC_, одну и ту же языковую локаль, что и LANG. Но, самое главное так же будет установлена LC_MESSAGES, которая отвечает за определение какую языковую локализацию следует использовать gettext, который, например, позволяет транслировать строки в скриптах. При этом сами локализации строк должны находится /usr/share/locale/ru/LC_MESSAGES в специально созданных файлах с расширением .ro
Как готовить файлах с расширением .ro и использовать транслируемые строки об этом уже другая история...
3. Библиография
[1] Unix&Linux.How to have console messages in English?
[2] Конференция iXBT.com.Мусор на экране Midnight Commander через putty
[3] StackOverflow. How to set locale in the current terminal's session?
[4] SuperUser. Сhanging the current set locale on a Linux(Ubuntu)
[4] ShellHacks.Linux: Смена Языка и Кодировки Системы — Locale