Zenityを使用したYandexのbashへの翻訳

に関する2つの記事を読んだ後自分で試してみるといいと思いました。これに適したタスクを見つけることができませんでしたが、興味深いことに、ボタン付きの窓の構築はすでに疲れていました。 そのため、参考までに、Zenityを使用した私の最初の役に立たないbashスクリプトを提供します。



私はFirefoxをMy-translatorと呼ばれるコンテキストメニューのテキストを翻訳するための素晴らしいアドオンとして使用しています。それは軽量で便利で、気に入っています。 そして先日、Linuxに同様の機能が欲しかったのですが、手も頭もあり、bash + zenity + wget + Yandex.Translateを選択しました。



まず、Yandexにapiがあるかどうかを確認する必要があります。サイトで同様のセクションが見つかりませんでした(おそらく見栄えが悪いのでしょうか?)。 hurlサービスを使用すると、text、lang、srvの3つの主要なパラメーターを渡す必要があることにすぐに気付きました。 テキストにはテキストを含める必要があります。langは母国語であり、「en-ru」形式の翻訳言語です。srvパラメーターは、翻訳を使用することを示します-「tr-text」。 この簡単で理解しやすいもので、先に進みましょう。



少なくとも私にとっては、スクリプトは小さくて効率的であることが判明しました。



#!/bin/bash # Translate text with Yandex API _zenity="/usr/bin/zenity" _out="/tmp/translate.output.$$" text=$(${_zenity} --title "Enter text" --entry --entry-text="$(xclip -o)" ) if [ $? -eq 0 ] then wget -O ${_out} http://translate.yandex.ru/tr.json/translate --post-data="srv=tr-text&lang=en-ru&text=$text" sed -i 's/"//g' ${_out} ${_zenity} --width=600 --height=240 \ --title "Translation for $text" \ --text-info --filename=${_out} /bin/rm ${_out} fi
      
      







bashでは強力ではありませんが、Googleで検索できます。

6行目では、xclipユーティリティを使用して、目的のテキストを選択し、ホットキーを押すと、テキストが既に挿入されたフィールドが表示されます。 私が知らないbashスクリプトを使用してhttpリクエストを行う他の方法はありますが、wgetはそれをうまく行います。

それだけです。それから、スクリプトを実行するためのショートカットを追加してください。 誰か助けてくれたら嬉しいです。



All Articles