如何在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.   埃桑蒂尔

    优秀一点。 谢谢