Acho que você está perdendo LESSCHARSET=utf-8
em seu ambiente. Pelo menos no meu host FreeBSD usando esta configuração me permite visualizar as páginas de manual no caminho certo.
Estou tentando obter uma exibição adequada de caracteres nacionais com o FreeBSD man . Eu tentei executar o seguinte em 8.1 e 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 -P-h -Wall -mtty-char -man -Tascii -P-c | less
Mas imprime:
Program man jest systemowA przeglAdarkA stron podrAcznika ekranowego.KaA1/4dy argument...
A mesma página de manual é exibida corretamente em um host Linux:
Program man jest systemową przeglądarką stron podręcznika ekranowego. Każdy argument...
Foi-me dito por uma pessoa experiente que os manpages no 9.0 devem ser exibidos para serem exibidos corretamente. O que estou perdendo?
Acho que você está perdendo LESSCHARSET=utf-8
em seu ambiente. Pelo menos no meu host FreeBSD usando esta configuração me permite visualizar as páginas de manual no caminho certo.
O argumento -Tascii
para groff
parece suspeito.
Em uma investigação mais aprofundada, parece que man
define esse parâmetro com base em onde, no MANPATH, ele encontrou a página do manual.
Por exemplo, no meu sistema, -Tutf8
é usado sempre que a saída de depuração mostra
Found manpage /usr/share/man/en.UTF-8/man1/...
mas -Tascii
é usado quando mostra
Found manpage /usr/share/man/man1/...
Nesse caso, acho que o problema é que man
não vê nenhum nome de código de idioma no caminho para a página man, portanto, o padrão é o código do idioma ASCII / C.
Como solução alternativa, tente isto:
mkdir -p pl.UTF-8/man1
cp man.1 pl.UTF-8/man
man -d -M. man