Spesso ci si ritrova a dover tradurre al volo piccole parti di testo che capitano qui e là per il sistema operativo e di dover, se non si dispone di un software di traduzione simultanea, eseguire un procedimento relativamente lungo: copiare la parte di testo, accedere ad un traduttore online tramite il browser e, infine, incollarla.
Ebbene, in questa guida vi insegneremo a semplificare notevolmente questo processo e a tradurre parti di testo selezionato su Ubuntu senza aprire il browser, dovunque questo testo si trovi – da un documento LibreOffice a un PDF, passando per una finestra di sistema, una pagina web o quant’altro!
Il criterio è semplice: grazie ad uno script e alle API di Google, basterà impostare una scorciatoia da tastiera per ricevere il testo bello e tradotto nell’area di notifica oppure in una finestra separata, con la possibilità anche di copiarlo automaticamente negli appunti. Unico requisito: essere collegati a Internet, poiché la traduzione avverrà tramite il servizio Google Translate.
Tenendo a mente che il procedimento vale per Ubuntu, Debian e per la maggior parte delle loro derivate, vediamo insieme come fare!
Tradurre parti di testo selezionato su Ubuntu senza aprire il browser
La prima cosa da fare è installare l’occorrente di base per implementare il tutto; da terminale, è sufficiente digitare
sudo apt-get install libnotify-bin wget xsel
A questo punto, sempre da terminale, andiamo a creare ed aprire il file che ci permetterà di tradurre le parti di testo selezionate, digitando
sudo touch /usr/local/bin/traduz sudo xdg-open /usr/local/bin/traduz
Per sapere cosa scrivere nel file, dovremo decidere cosa far fare al nostro script, a scelta tra:
- mostrare semplicemente il testo tradotto nell’area di notifica;
- mostrare il testo tradotto nell’area di notifica e copiarlo automaticamente negli appunti;
- mostrare il testo tradotto in una finestra di Zenity, così da poterlo selezionare e copiare manualmente.
Prima di continuare, va specificato che gli script di seguito possono tradurre testo da qualsiasi lingua (tramite la traduzione automatica di Google) e, che per impostazione predefinita, la traduzione avverrà in lingua italiana. E’ comunque possibile modificare la lingua di destinazione modificando la stringa “it” – in grassetto su ogni script – con l’identificativo della lingua della destinazione (ad esempio: en per l’inglese, fr per il francese, es per lo spagnolo, ru per il russo e via dicendo).
Andiamo ad analizzare separatamente ciascuna delle opzioni.
1 – Script per mostrare soltanto il testo tradotto nell’area di notifica
Nel file traduz aperto in precedenza andremo a scrivere la parte di codice seguente:
#!/usr/bin/env bash notify-send --icon=info "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=it&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
Fatto ciò salviamo e chiudiamo il file, dopodiché rendiamolo eseguibile scrivendo a terminale il comando
sudo chmod a+x /usr/local/bin/traduz
2 – Script per mostrare il testo tradotto nell’area di notifica e copiarlo automaticamente negli appunti
Nel file traduz aperto in precedenza andremo a scrivere la parte di codice seguente:
#!/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=it&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo "$translate" | xclip -selection clipboard notify-send --icon=info "$text" "$translate\n\n****\nTesto copiato negli appunti"
Fatto ciò salviamo e chiudiamo il file, dopodiché installiamo il tool xclip e rendiamo eseguibile lo script scrivendo a terminale i comandi
sudo apt-get install xclip sudo chmod a+x /usr/local/bin/traduz
3 – Script per mostrare il testo tradotto in una finestra di Zenity
Nel file traduz aperto in precedenza andremo a scrivere la parte di codice seguente:
#!/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=en&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo -e "Testo originale:" "$text"'\n' > /tmp/notitrans echo "Traduzione:" "$translate" >> /tmp/notitrans zenity --text-info --title="Traduzione" --filename=/tmp/notitrans
Fatto ciò salviamo e chiudiamo il file, dopodiché installiamo il tool zenity e rendiamo eseguibile lo script scrivendo a terminale i comandi
sudo apt-get install zenity sudo chmod a+x /usr/local/bin/traduz
Associazione dello script ad una scorciatoia da tastiera
Ora avete creato lo script, lo avete salvato ed avete portato a termine le eventuali installazioni postume; lo step successivo è quello di impostare una scorciatoia da tastiera da utilizzare, dopo aver selezionato il testo (che può essere preso in un PDF, nel browser, in una finestra di sistema o da qualsiasi altro posto) da tradurre.
Per farlo dobbiamo localizzare il gestore delle scorciatoie da tastiera, presente in quasi tutti gli ambienti desktop. Per quanto riguarda i desktop Unity e GNOME, tale gestore può essere trovato in Impostazioni di sistema > Tastiera > Scorciatoie, scegliendo la voce “Scorciatoie personalizzate” dalla barra di navigazione a sinistra.
A questo punto basta fare click sul piccolo simbolo a forma di “+”, dopodiché scrivere nel campo “Nome” un nome che ci aiuti a ricordare a cosa serve la scorciatoia e nel campo “Comando” della finestra il nome dello script creato in precedenza, ovvero
traduz
nota: non c’è bisogno di specificare percorso poiché esso si trova tra gli eseguibili di sistema.
Adesso, per decidere la combinazione di tasti da applicare, fate click esattamente sulla voce “Disabilitato” in corrispondenza della scorciatoia appena creata.
Non appena comparirà la scritta “Nuovo acceleratore…”, battete a tastiera la combinazione che intendete utilizzare – nel mio caso, CTRL+ALT+Shift+T.
Fatto, da questo momento in poi vi basterà selezionare del testo in qualsiasi punto del sistema operativo (una finestra del browser, un documento, una finestra con testo selezionabile e quant’altro) e digitare la combinazione definita in precedenza per ottenere la traduzione tramite notifica, tramite notifica con copia diretta negli appunti o in Zenity.