Traduza textos selecionados em seu Desktop Linux com atalho de teclado e notificações

Publicado por Eduardo Mozart de Oliveira em 10/10/2017

[ Hits: 7.827 ]

Blog: http://www.eduardomozartdeoliveira.wordpress.com/

 


Traduza textos selecionados em seu Desktop Linux com atalho de teclado e notificações



Recentemente, eu encontrei um pequeno script, bem interessante, que traduz qualquer texto que você selecionar. Após selecionar o texto, que pode ser em um navegador web, LibreOffice, documento PDF, terminal etc., e ao usar um atalho de teclado, a tradução é exibida em uma notificação no desktop.
Linux: Traduza qualquer texto que você selecionar no seu desktop Linux com um atalho de teclado e notificações
O script é ótimo para traduzir palavras e frases pequenas que você não pode compreender totalmente em Francês, Espanhol, Italiano ou qualquer outra linguagem suportada pelo Google Tradutor. Mas não espere que ele traduza páginas web inteiras, porque ele não pode, há outras ferramentas para isso.

Porém, há duas considerações, se o Google não conseguir determinar o idioma de origem, ele retornará um erro e, portanto, não traduzirá seu texto. Além disso, você precisa de uma conexão com a Internet para o script funcionar.

Passos

1. Para usar o script, primeiramente, instale o "libnotify-bin" (para que o script possa enviar notificações no desktop), wget (para obter a tradução da Google), xsel (usado para obter o texto selecionado atualmente) e xclip (copia automaticamente a tradução para a área de transferência).

No Ubuntu, Linux Mint, Deepin etc., instale-os executando os seguintes comandos:

sudo apt-get update
sudo apt-get install libnotify-bin wget xsel xclip

2. Em seguida, copie o código do script abaixo:

#!/usr/bin/env bash
text="$(xsel -o)"
translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=pt&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
notify-send --icon=info "$text" "$translate"
translate=$(echo -n $translate | awk '{$NF="";sub(/[ \t]+$/,"")}1')
echo -n "$translate" | xclip -selection clipboard

E cole-o em um novo arquivo - vamos chamá-lo de "notitrans" (bem, você pode nomeá-lo como quiser, mas assim será como nós nos referiremos a ele daqui pra frente).

No script acima, substitua "tl=pt" com o idioma que você deseja que o texto seja traduzido, por exemplo "tl=en" para Inglês, "tl=ru" para Russo, "tl=fr" para Francês etc.

3. Após realizar as alterações, salve o arquivo no seu diretório Home (/home/$USER) e torne-o executável com o seguinte comando:

chmod +x ~/notitrans

4. (opcional) Adicione o script ao seu $PATH - por exemplo, copie o script para /usr/local/bin/ (para disponibilizá-lo para todos os usuários), use o seguinte comando:

sudo mv ~/notitrans /usr/local/bin/

5. Para poder usar o script, você pode atribuir um atalho de teclado personalizado. Fazer isso, depende do seu ambiente desktop:

5.1 No Deepin, abra: Central de Controle (disponível na barra de tarefas) > Teclado e Idioma > Atalho > Adicionar Atalho Personalizado (botão na parte inferior do menu).

Aqui, digite o nome que você quiser e "notitrans" como o comando (caso tenha adicionado o comando "notitrans" ao $PATH).
Linux: Traduza qualquer texto que você selecionar no seu desktop Linux com um atalho de teclado e notificações
5.2 No GNOME (e Unity), você pode fazer isso em: Configurações do sistema > Teclado > Atalhos > Atalhos personalizados, onde você precisará clicar em "+" para adicionar um novo atalho.
Linux: Traduza qualquer texto que você selecionar no seu desktop Linux com um atalho de teclado e notificações
6. Aqui, digite o nome que você quiser e "notitrans" como o comando (caso tenha adicionado o comando "notitrans" ao $PATH) e atribua um atalho de teclado ao comando pressionando as teclas que você deseja atribuir. Certifique-se que o atalho de teclado não está em uso!

Opcional

Variações do script "traduzir texto selecionado".

É fácil adaptar o script para as suas necessidades. Abaixo, você encontrará uma variação criada pelo WebUpd8 (link abaixo), que você pode estender. Para usar o script abaixo, realize os passos acima (incluindo alterando "pt" para o idioma que você deseja traduzir o texto selecionado), mas não copie o script do passo 2, ao invés disso, use o script abaixo.
Linux: Traduza qualquer texto que você selecionar no seu desktop Linux com um atalho de teclado e notificações
Exibir a tradução com o Zenity (que permite copiar o texto) ao invés de usar notificações no desktop:

#!/usr/bin/env bash
text="$(xsel -o)"
translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=pt&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
echo -e "Original text:" "$text"'\n' > /tmp/notitrans
echo "Translation:" "$translate" >> /tmp/notitrans
zenity --text-info --title="Translation" --filename=/tmp/notitrans

Para ele funcionar, certifique-se que o Zenity está instalado no seu sistema. No Ubuntu, instale-o usando o seguinte comando:

sudo apt-get update
sudo apt-get install zenity

Referências

WEB UPD8. Translate Any Text You Select On Your Linux Desktop With A Keyboard Shortcut and Notifications. Acesso em: 08/09/2017. Disponível em: STACK OVERFLOW. Delete the last word of a line in shell. Acesso em: 08/09/2017. Disponível em: STACK OVERFLOW. Bash Script - Variable content as a command to run. Acesso em: 08/09/2017. Disponível em:
Outras dicas deste autor

Alterar mapeamento de teclas da extensão Media Keys do Firefox

Como abrir um arquivo .mht no Linux

VirtualBox não reconhece dispositivos USB do hospedeiro (host)

Instalando o Spark IM no Ubuntu

Adicionando memória virtual (SWAP) temporária no GNU/Linux

Leitura recomendada

FoFix: Evolução do Fretsonfire no Arch Linux

Fechar, minimizar e maximizar invertidos no Metacity

Entrelinhas no LaTeX

Convertendo imagens em linha de comando

Como resetar o modem Alcatel Speedtouch 510

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts