Caracteres nacionais em manpages

3

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?

    
por askonecki 16.02.2012 / 16:49

2 respostas

1

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.

    
por 17.02.2012 / 10:53
0

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
    
por 17.04.2012 / 17:14