在linux过程中难免会碰到陌生的单词,此时不得不打开翻译软件或网页请求翻译,但这样切换界面比较麻烦,也浪费时间;
今天头脑发热,尝试着在网上找命令行翻译工具,但无果;无意中,某python在论坛中看到有网友用python调用”有道翻译API”接口的翻译脚本,但该笔者的python脚本写的非常复杂,故萌生了自己写shell脚本的念头;经过1小时,写出了下面简陋但能凑合着用的命令行在线翻译脚本;
大概思路如下:
1、拥有道翻译API接口【申请翻译API传送门】;
2、通过get方式请求翻译【注:只能通过get方式请求】;
3、过滤翻译结果;
代码如下:
#!/bin/bash #Verson:2.8 #Auther:Jev Tse #Pragram:This is a chinese-english translation scripts.TMP=$(mktemp /tmp/tmp.XXXXXXXX) URL='http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=<doctype>&version=1.1&q=' wget -q -O $TMP "$URL$*" if cat $TMP | grep '\<ex\>' &>/dev/null ;then cat $TMP | grep -Po '(?<=\<ex\>\<\!\[CDATA).*(?=\]\>)' | head -1 else cat $TMP | grep -Po '(?<=\<paragraph\>\<\!\[CDATA).*(?=\]\>)' | head -1 fi rm $TMP unset TMP URL
注:
<keyfrom> 即申请时的应用名称
<key> 申请得到的API key
<doctype> 请求类型:xml
如<keyfrom>为linux,<key>为88888888,则url为:
url='http://fanyi.youdao.com/openapi.do?keyfrom=linux&key=88888888&type=data&doctype=xml&version=1.1&q='
将该脚本保存在/usr/bin/下,即可;『也可以通过修改PATH环境变量』
下面是简单测试效果:
原创文章,作者:Jev Tse,如若转载,请注明出处:http://www.178linux.com/69418