在命令行中翻译和查词典(十多行 shell 代码)

2016-08-23 15:39:55 +08:00
 yantze

在命令行中翻译和查词典

Google api

trs () {
    words=`echo $* | sed 's/ /+/g'`
    sl='en' # 'auto' 自动检测但翻译比较差
    tl='zh-CN'
    url="http://translate.google.cn/translate_a/single"
    params="client=p&sl=$sl&tl=$tl&hl=en&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&source=btn&ssel=0&tsel=0&kc=1&tk=829750.693266&q=$words"
    header='User-Agent:Mozilla/4.0'
    curl --silent -H $header "$url?$params" | sed -e 's/[,]\{2,\}/,/g' -e 's/\[,/\[/g' | jq '.[0]'
}

示例:

yantze@xxx $ trs simple
[
  [
    "简单",
    "simple",
    2
  ],
  [
    "Jiǎndān",
    "ˈsimpəl"
  ]
]

Youdao api

dict () {
    words=$*
    key='1648104049'
    keyfrom='aobailaile'
    url="http://fanyi.youdao.com/openapi.do"
    params="keyfrom=$keyfrom&key=$key&type=data&doctype=json&version=1.1"
    curl --silent --data-urlencode "q=$words" "$url?$params" | jq -C '.'
}

示例:

yantze@xxx $ dict complex
{
  "translation": [
    "复杂的"
  ],
  "basic": {
    "us-phonetic": "kəm'plɛks; 'kɑm,plɛks",
    "phonetic": "'kɒmpleks",
    "uk-phonetic": "'kɒmpleks",
    "explains": [
      "n. 复合体;综合设施",
      "adj. 复杂的;合成的"
    ]
  }
}

As REPL 可交互的方式查询

trsl () {
    while true ;do read words; trs $words; done
}

使用方法

More

为了简单可控所以成文,下面是一些功能全面的软件:

源代码: https://gist.github.com/yantze/6114ed61499f1600d0dc6e071647b190

4065 次点击
所在节点    分享创造
2 条回复
jemyzhang
2016-08-24 14:15:41 +08:00
git hub 上 antigen 安装后,trans 卡主,是不是要翻墙?
yantze
2016-08-24 17:03:18 +08:00
@jemyzhang 'trans' 如果你指的是 translate-shell ,是需要翻的,我看作者提供的 -x 代理选项没有效果,应该是这个程序使用的的 gawk 命令没有起作用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/301209

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX