среда, 30 июня 2010 г.

корректное отображение русских man-страниц: решение

давеча, я хотел было перевести перевести man-pages-ru в юникод дабы избавиться от iconv в конвейере при отображении man-страниц. хотел, да не тут то было. на практике выяснилось, что nroff не работает с юникодом и значит от конвейера никак не избавиться. самое оптимальное решение я увидел здесь. там предлагается iconv заменить enconv. оказалось - это то, что надо. во-первых enconv автоматом определяет кодировку текста, достаточно задать язык ru, во-вторых это избавляет меня от необходимости ставить glibc-2.
т.о. для правильного отображения переведенных man-страниц необходимы пакеты:
- man-1.6f исправленная под локаль ru_RU.UTF-8,
- enca - пакет автоопределения и преобразования кодировки,
- man-pages-ru
все пакеты на настоящий момент доступны на странице проекта.

среда, 23 июня 2010 г.

Переводы man-страниц

Вчера поставил пакет переводных man-страниц man-pages-ru-0.98 и мне это не понравилось :( Переводы в кодировке koi8-r, ничего против не имею, но ситуация такая: разные программы кидают в директорию /usr/man/ru документацию в различной кодировке, mc например поставляет man-страницу в utf8, vim одновременно и в koi8-r и utf8 и конечно обе версии в какие-то свои директории типа /usr/man/ru.KOI8-R и /usr/man/ru.UTF8
Таким образом программа man их вообще не видит. Это ладно. Для отображения koi8-r страниц потребовалась программа iconv из состава пакета glibc-2 который: во-первых - огромный, во-вторых - нужен только для компиляции и к обычной работе системы никак не причастен. Про то что сама программа man не выводит свои сообщения в юникоде уже молчу.
Подумав, решил все маны перевести в юникод, но есть проблема: как автоматом определить исходную кодировку документа. попробую grep'ом проверять на содержание букв русского алфавита, должно сработать.
Этот последний вопрос который осталось решить перед выходом консольного релиза. Ну, еще тестировать надо будет на "живом" железе.