LINUX.ORG.RU

Русский ман в нелокализованном дистре


0

1

Реквестирую олдовых линуксоидов, кто разбирается в тонкостях локализации!

Есть ман на русском (в UTF-8). Less показывает его нормально:

less /usr/local/share/man/man1/bla.1
При этом man вместо русских показывает знаки вопроса:
man bla
w3mman bla
Не кажет как в голой консоли, так и в эмуляторе терминала.

Собственно вопрос: как с наименьшими телодвижениями научить man показывать русские маны на нелокализованной (скажем, свежеустановленной английской бубунте) системе.

Такой финт не прокатил:

LANG="ru_RU.UTF-8" LC_ALL="ru_RU.UTF-8" man bla
Локаль в системе:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

★★

man -L локаль

не то?

У меня нет разноязычных манов чтобы проверить.

Bebop ★★ ()

Раньше использовал костыль с `enca' (в man.conf):

DEFINE nroff enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8

n01r ★★ ()
Ответ на: комментарий от n01r

Создал:
~$ cat /home/user/.man.conf
DEFINE nroff piconv -f UTF-8 -t KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | piconv -f KOI8-R -t UTF-8

Запускаю ман так:
man -C /home/user/.man.conf bla

Все равно знаки вопроса.

Хотя вот по такой команде в консоль вываливается нормально отформатированный ман:
cat /usr/local/share/man/man1/bla.1 | piconv -f UTF-8 -t KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | piconv -f KOI8-R -t UTF-8

Или я неправильно понял логику вашего костыля?

Tayler ★★ ()

Бросьте это дело. man на русском может быть старым/с ошибками/не полным. В то время, как английский будет наиболее новым, полным (из доступных в дистрибутиве) и с меньшим количеством ошибок.

Dimanc ★★ ()
Ответ на: комментарий от Dimanc

А вообще интересно: ваш man поддерживает юникод?

Dimanc ★★ ()

я не проверял все с нуля, но в процессе работы с убунтой выпилил все пакеты с поддержкой языков и создал с нуля только нужные локали с помощью localedef, ручной правки /var/lib/locales/supported.d и locale-gen

предложенный ниже ман для мс замечательно открывается с LANG=en_US.utf8

vsemprivet ()
Ответ на: комментарий от Tayler

> ~$ cat /home/user/.man.conf

Хм... это один из параметров, стоит скопировать системный и заменить в нем определение `nroff'.

n01r ★★ ()

Черт, прошу прощения.
Кажется это мой косяк. Не подумал положить русский ман в поддиректорию mandir/ru =(
А man, предполагая на каком языке manpage, разные опции совместимости передает manconv'у (еще до того, как передать ман nroff'у).
Но всем спасибо, особенно за ссылки, они многое прояснили.

Tayler ★★ ()
Ответ на: комментарий от Pinkbyte

>Это тот еще костыль - юзайте man-db если гента
Тем не менее он отлично работает. Да и костылем по сути не является, один пакет меняется на другой. Кроме того, там есть и другие способы.

unikoid ★★★ ()
Ответ на: комментарий от unikoid

ты внимательно читаешь? костыль был по ссылке ;) а man-db - современная замена man'у ...

Theli ()
Ответ на: комментарий от Theli

Просто в начале ссылки тоже написано про man-db. Я подумал, что он считает, что man-db костыль

unikoid ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.