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.
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).
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.
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.
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:
Nenhum comentário foi encontrado.