如何在Linux中使用鍵盤快捷鍵和通知翻譯文本

我有一個問題 Linux上的Google Chrome翻譯,通過一些修改,我設法改善了它,但是我不太喜歡這樣。 因此,我試圖找到一種替代方法,使我可以翻譯我不知道的單詞或某些文本。

為了解決這個問題,我們將教 如何使用鍵盤快捷鍵和通知在Linux中翻譯文本,為此,我將使用一個指南 安德魯(Alin Andrei) 一切都很好,我希望它能為您服務。 該指南由安德魯(Andrew)製作的多個腳本組成,並對以2012年為基礎的腳本進行了更正。

這種方法使我們可以翻譯任何可以選擇的文本(網頁上的文本,pdf,txt,應用程序等),因此它的用途可以很多。

如何在Linux中翻譯文本

如何在Linux中翻譯文本

該解決方案的優缺點

在此方法的優點中,我們可以強調:

  • 它允許翻譯任何可以選擇的文本(PDF,網頁,雜誌,libreoffice,應用內文本等)。
  • 由於使用了鍵盤快捷鍵,它可以快速翻譯文本。
  • 允許您查看系統通知中的翻譯。
  • 允許翻譯各種源語言。
  • 目標語言可以參數化。
  • 它是翻譯小單詞和短語的理想選擇。
  • 易於安裝和配置。

此方法的主要缺點是:

  • 您無法翻譯整個網頁。
  • 如果Google無法確定源語言,它將返回錯誤,因此將不翻譯文本。
  • 要使此方法起作用,需要互聯網連接。

在Linux中配置腳本翻譯文本

為了配置和運行腳本以使用鍵盤快捷鍵和通知翻譯所選文本,我們必須執行以下步驟:

  • Instalar las dependencias necesarias, en primer lugar instalar libnotify-bin (para enviar notificaciones de escritorio), wget (para recuperar la traducción de Google) y XSEL (que se utiliza para obtener el texto resaltado en ese momento). En Ubuntu y derivados puedes instalarlo usando el siguiente comando:
sudo apt-get install libnotify-bin wget xsel
  • 將以下代碼複製到控制台:
#!/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=es&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"

然後創建一個名為“ notitrans”的文件(您可以隨心所欲地調用它,在這種情況下,它將被稱為原始作者所說的),其中將包含之前的代碼。

如果您想翻譯成西班牙語以外的語言,則必須用自己喜歡的語言替換“ tl = es”,例如俄語用“ tl = ru”,法語用“ tl = fr”等。

  • 我們必須授予使用以下命令創建的文件的執行權限:
chmod +x ~/notitrans
  • 我們使用以下命令將腳本添加到$ PATH中
sudo mv ~/notitrans /usr/local/bin/
  • 我們的腳本已經準備好了,現在我們必須在使用鍵盤快捷鍵時將其激活,為此,我們必須創建一個自定義訪問權限。

對於Cinnamon,GNOME和Unity,您可以通過以下方式創建自定義鍵盤快捷鍵:  系統設置>鍵盤>鍵盤快捷方式>自定義快捷方式,我們必須點擊 添加自定義快捷方式。 在我輸入快捷方式名稱的位置, 翻譯 然後在訂單中放置«通知翻譯»或者我們為腳本指定的名稱:

添加鍵盤快捷鍵

添加鍵盤快捷鍵

在Linux中翻譯文本的腳本變體

Es muy fácil modificar el script para adaptarlo mejor a sus necesidades. A continuación encontrará un par de variaciones que ha creado  Andrew. Para usar estos script, simplemente siga los mismos pasos que anteriormente (incluyendo cambiar «es» al idioma en el que desea traducir el texto), pero no copie el código de script anterior sino que utilice el que corresponda:

使用Zenity可視化翻譯

在Linux中翻譯文本

為了查看我們在Zenity中的翻譯 我們必須遵循以下步驟:

  • 在系統上安裝Zenity。 在Ubuntu及其衍生版本中,您可以使用以下命令進行安裝:
sudo apt-get install zenity
  • 執行原始腳本中的所有步驟,但使用以下代碼
#!/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=es&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

查看通知中的翻譯並自動複製到剪貼板

要在系統通知中顯示翻譯並自動複製到剪貼板的變體中,我們必須執行以下步驟:

  • 在系統上安裝xclip。 在Ubuntu及其衍生版本中,您可以使用以下命令進行操作:
sudo apt-get install xclip
  • 執行原始腳本中的所有步驟,但使用以下代碼
#!/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 "$translate" | xclip -selection clipboard
notify-send --icon=info "$text" "$translate"

已經達到頂峰 希望本文使您能夠以所需的方式對想要的單詞或文本進行翻譯,如果任何人對腳本有任何疑問或修改,請不要猶豫,留下您的評論。

來源: webupd8


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   r 他說:

    非常感謝您的腳本; 它非常有用,非常感謝您的翻譯和本文,因為它們確實是使您對GNU Linux領域有所了解的真實文章。

    我建議您請更多翻譯和更多文章...

    問候和美好的一天。

  2.   曼努埃爾 他說:

    優秀+ 5,謝謝! 修復程序:“將以下代碼複製到控制台:”,它不在控制台中,而是在創建的文本文件中。

  3.   誇朱諾特 他說:

    很大的貢獻,對我來說一直很好。 我想澄清一個問題,是否可以使翻譯文本變大? 換句話說,使用Zenity我選擇了一個段落,它不能翻譯所有內容,僅翻譯了幾個句子,而使用Ubuntu自己的通知系統,它僅翻譯了第一句話。 有擴展的方法嗎?

    此致,並非常感謝您。

  4.   米勒·席爾瓦 他說:

    很好的貢獻!

  5.   奧斯卡·克魯茲(Oscar Cruz) 他說:

    我在找什麼!
    嗯,不是這樣,我一直在尋找一種僅在okular文檔(帶有某種插件)中做到這一點的方法,因為我通常會處理許多PDF。 但是,這有助於我將單詞翻譯成俄克拉荷馬語以外的東西。 這是一個傑出的貢獻

    我謝謝你 !!!

  6.   埃桑蒂爾 他說:

    優秀一點。 謝謝