Национальные символы в manpages

Я пытаюсь получить правильное отображение национальных символов с человеком FreeBSD. Я попытался выполнить следующее на 8.1 и 9.0:

# PAGER=less LANG="pl_PL.UTF-8" man -d -M. ./man.1 -- Using architecture: i386:i386 -- Using pager: less -- Using manual sections: 1:1aout:8:2:3:n:4:5:6:7:9:l -- Using locale paths: pl_PL.UTF-8:pl.UTF-8:en.UTF-8:. -- Using standard page width -- Searching for ./man.1 -- Found a usable page, displaying that -- Command: /usr/bin/zcat -f ./man.1 | tbl | groff -S -Ph -Wall -mtty-char -man -Tascii -Pc | less 

Но он печатает:

Program man jest systemowA przeglAdarkA stron podrAcznika ekranowego.KaA1 / 4dy аргумент …

Такая же man-страница отображается правильно на хосте Linux:

Program man jest systemową przeglądarką stron podręcznika ekranowego. Кайды аргумент …

Мне сказал опытный человек, который должен отображаться на 9.0. Что мне не хватает?

Я думаю, что вам не хватает LESSCHARSET=utf-8 в вашей среде. По крайней мере, на моем хосте FreeBSD, используя этот параметр, я могу правильно просмотреть страницы руководства.

Аргумент -Tascii для groff выглядит подозрительно.

Что касается дальнейшего исследования, кажется, что man задает этот параметр, основываясь на том, где в MANPATH он нашел справочную страницу.

Например, в моей системе -Tutf8 используется всякий раз, когда выводится вывод отладки

 Found manpage /usr/share/man/en.UTF-8/man1/... 

но -Tascii используется, когда он показывает

 Found manpage /usr/share/man/man1/... 

В этом случае я считаю, что проблема заключается в том, что man не видит никакого языкового имени в пути к странице руководства, поэтому по умолчанию он соответствует языку ASCII / C.

В качестве обходного пути попробуйте следующее:

 mkdir -p pl.UTF-8/man1 cp man.1 pl.UTF-8/man man -d -M. man