Объединение русских манов

В ArchLinux имеется пакет man-pages-ru включающий в себя

pacman -lQ man-pages-ru |grep z |wc -l
305  man файлов

А в ALtLinux man-pages-ru-0.98-alt13.noarch.rpm
519 man файлов

Для распаковки man-pages-ru-0.98-alt13.noarch.rpm потребуется пакет

sudo pacman -S rpmunpack

а дальше с помощью mc  можно извлечь директорию usr/share/man/ru
в /usr/share/man/ru тогда программа man будет находить справку на русском, но имеется проблема:
man файлы ArchLinxu сконвертированным в UTF8, а у AltLinux они в KOI8-R
Если подробно рассмотреть систему просмотра man страниц

sh -c (cd "/usr/share/man/ru" && (echo ".ll 9.9i"; echo ".nr LL 9.9i"; echo ".pl 1100i"; /bin/bzip2 -c -d '/usr/share/man/ru/man1/bash.1.bz2' echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | iconv -f utf8 -t koi8r | /usr/bin/nroff -Tlatin1 -mandoc -c | iconv -f koi8r -t utf8 | /bin/less -is)

то становится очевидным, что необходимо сохранить ВСЕ man страницы в одной кодировке и желательно, чтобы это был UTF-8

Эта интересная комманда формирует на основе man страницы удобочитаемый текст, и здесь видно, что сначала текст конертируется из UTF-8 >  KOI8-R а после обработки конвертируется обратно, так как системная локаль практически у всех современных человеков использует именно UTF-8

И так придётся конвертировать больше 5 сотен файлов, для этого придётся

  1. разархивировать командами gunzip file или bunzip2 file
  2. сконвертировать iconv -f koi8r -t utf8
  3. запаковать обратно gzip file или bzip2 file

Согласитесь это довольно муторно и вредно для желудка, я воспользовался скриптом написанным собой же

find ./ru -type f ./exec ./man_conv.sh {} \;

cat ./man_conv.sh

  1. #!/bin/sh
  2. case `echo "$1" | tr '[:upper:]' '[:lower:]'` in
  3.         *.gz)
  4.         echo $1
  5.         zcat "$1" | iconv -f koi8-r > /tmp/man.$$ && ( cat /tmp/man.$$| gzip > "$1" ; rm -f /tmp/man.$$ ) || echo "err: $1"
  6.         ;;
  7.         *.bz2)
  8.         echo $1
  9.         bzcat "$1" | iconv -f koi8-r > /tmp/man.$$ && ( cat /tmp/man.$$| bzip2 > "$1" ; rm -f /tmp/man.$$) || echo "err: $1"
  10.         ;;
  11. esac

Ну вот и всё, после конвертирования всю директорию man/ru в /usr/share/man/ru
Кстати, при просмотре man часто требуется осуществлять поиск, для этого нажми /искомый_текст Enter , чтобы продолжить поиск жми n

Для ленивых выкладываю сконвертированные в UTF-8 маны AltLinux

Инетрначионализация ArchLinux

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут