← All posts tagged locale

Self-Perfection
Linux code locale
Вот как настроить локаль? Казалось бы, всё просто: открываешь мануал https://wiki.archlinux.org/index.php/Locale , там написано "вот в этот файлик впишите локаль, какую хотите". Ну открываем и вписываем.

Но есть нюансик:
$ grep -i 'ru_ru.*utf' /etc/locale.gen
ru_RU.UTF-8 UTF-8
$ locale -a | grep -i 'ru_ru.*utf'
ru_RU.utf8

Для меня естественен подход посмотреть доступные локали и просто из этого списка скопипастить желаемую. Вот только нотация вывода locale -a отличается от нотации, указываемой во всех манах и locale.gen: character set указывается строчными буквами и без дефиса.

После копипастинга получается что-то вроде export LC_ALL=ru_RU.utf8 и всё вроде бы работает так, как предполагалось. Вроде бы. Потому что изредка вылезают странные баги. 6 лет назад из-за копипастинга локали из locale -a у меня не работал ввод кириллицы в приложения, запущенные под wine ( http://ru-ubuntu.livejournal.com/241325.html ). Теперь я внезапно заметил, что lesspipe у меня не отображает содержимое текстовых *.gz.

Логики в этой различной нотации нет, ни в каких манах об этом нюансе не говорится, никаких ISO на запись названия character set я сходу не вижу. Короче, понять и запомнить это невозможно. Я даже не понимаю, кто в этой ситуации не прав: lesspipe, не совсем надёжно разбирающий значение локали, которая должна быть эквивалентна ru_RU.UTF-8, или же я, некорректно настроивший свою систему.

Разбираться, слать ли патч в документацию или в lesspipe я не хочу, боюсь это может занять не один день. В общем просто имейте ввиду, что есть такая ловушка в настройке ваших линуксов.