traduz_man - traduzir man pages

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

[ Hits: 6.565 ]

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

Compactado e descompactador bem interessantee

Calendário Dialog

Front-end tosco para Xmame (kdialog)

Converte permissões de octal para textual e vice-versa

Ordena os números em ordem ascendente!


  

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