traduz_man - traduzir man pages

Publicado por Raimundo Alves Portela (última atualização em 21/05/2012)

[ Hits: 6.258 ]

Homepage: http://portelanet.com

Download traduz_man.sh




Script idealizado após tentativa de ajuda no tópico:   http://www.vivaolinux.com.br/topico/Iniciantes-no-Linux/Traducao-do-man/

Para usar basta chamar o script seguido do nome do comando no qual deseja que a tradução de seu manual seja feito.

Sintaxe de uso:

./traduz_man.sh comando

No final será gerado um arquivo com o nome man_COMANDO.txt, onde COMANDO é o nome do comando que você informou ao script.

Obs.: A tradução é feita usando o translate.google.com, o serviço do google é muito bom, mas alguns termos não deveriam ser traduzidos e tem a organização do texto, etc, portanto a tradução não será perfeita, mas já ajuda ;-)

  



Esconder código-fonte

#/bin/bash
# Desenvolvido por: Raimundo Portela <rai3mb@gmail.com>
# Script idealizado após tentativa de ajudar no tópico: 
# http://www.vivaolinux.com.br/topico/Iniciantes-no-Linux/Traducao-do-man/
# Para usar basta chamar o script seguido do nome do comando no qual deseja
# que a tradução de seu manual seja feito.
# Sintaxe de uso: ./traduz_man.sh comando
#-----------------------------------------------------------------------

[ -z $1 ] && echo "Sintaxe de uso $0 comando" && exit 1
COMANDO=$1
ARQ_TEMP='/tmp/man_temp.html'
MAN_TEMP='/tmp/man_temp'
ARQ_RESULT="man_$COMANDO".txt
> "$ARQ_RESULT"
# verifica se existe manual para o comando fornecido
if ! man $COMANDO > "$MAN_TEMP" 2>/dev/null
then
   echo "Comando [$COMANDO] sem manual disponível"
   exit 1
fi
i=0
while read LINHA
do
   # linha vazia
   echo "$LINHA" | egrep -q '^$' && echo >> "$ARQ_RESULT" && continue
   echo $LINHA | egrep -q '^\-.*\-\-.*' && echo "$LINHA" >> "$ARQ_RESULT" && continue
   echo $LINHA | egrep -q '^\-\-.*' && echo "$LINHA" >> "$ARQ_RESULT" && continue

   wget --header='Accept-Charset: iso-8859-1' -q -U Mozilla -O "$ARQ_TEMP" "http://translate.google.com/?ie=UTF-8&tl=pt&q=$LINHA"
   # Transforma codificação do arquivo para utf-8
   [ $i -eq 0 ] && cp "$ARQ_TEMP" /tmp/teste
   cat "$ARQ_TEMP" | iconv -f iso8859-1 -t UTF-8 -o "$ARQ_TEMP"
   sed -i 's/<[^>]*>//g' "$ARQ_TEMP"
   egrep -o 'ArabicAlpha.{2,200}Undo edits' "$ARQ_TEMP" | sed 's/ArabicAlpha//g' | sed 's/Undo edits//g' >> "$ARQ_RESULT"
   i=1
done < "$MAN_TEMP"

# trata alguns caracteres
sed -i 's/"/"/g' "$ARQ_RESULT"
sed -i 's/</</g' "$ARQ_RESULT"
sed -i 's/>/>/g' "$ARQ_RESULT"

Scripts recomendados

Array com lista de diretórios

Pós-instalação do openSUSE Tumbleweed

modem hsp 56-onboard

Nmap para iniciantes

Removendo o ambiente Mate Desktop completamente


  

Comentários
[1] Comentário enviado por removido em 21/05/2012 - 13:44h

muito bom cara... bem interessante!

[2] Comentário enviado por julio_hoffimann em 21/05/2012 - 22:10h

Oi Raimundo,

Parabéns pelo script, aqui vão algumas dicas para melhorá-lo...

1) Use o comando tempfile para criar arquivos temporários de maneira segura:

FILENAME=$(tempfile --prefix man- --suffix .html)

2) Talvez seja interessante não criar um arquivo de texto no diretório, mas redirecionar o conteúdo para um pager:

less $FILENAME

[3] Comentário enviado por removido em 21/05/2012 - 23:46h

Muito bom mesmo!

Estava procurando algo assim e não tinha me ocorrido fazer uso do wget. Bem simples.

Valeu.

[4] Comentário enviado por xxoin em 29/05/2012 - 03:55h

Excelente. O valor dessa contribuição está tanto em sua "utilidade" quanto na "possibilidade de reaproveitamento".


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts