#!/bin/sh
if [ -z "$1" ] ; then
echo "Error: need an arg (Russian phrase)" >&2
exit 1
elif [ $# -gt 1 ] ; then
echo "Error: too many args. need just an arg (Russian phrase)" >&2
exit 1
fi
TEXT="$1"
UA='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)'
curl -Ss -m 10 -A "$UA" http://translate.google.com/ -d js=n -d prev=_t -d hl=en -d ie=UTF-8 -d text="$TEXT" -d file= -d sl=ru -d tl=en | awk 'NR == 8' | sed 's/.*<span id=result_box class="short_text"><[^>]\+>\([^/]\+\)<\/.*/\1/' | xmlstarlet unesc
- curlで翻訳したいフレーズをPOST
- awkとsedで結果をパース
- xmlstarletで文字参照("'"みたいなの)を解除
テスト翻訳
$ ./gtrans 'здравств'まずまず動いた!LANG=ja_JP.UTF-8のシェルでテスト翻訳しました。
hello
$ ./gtrans 'я из Японии'
I'm from Japan
$ ./gtrans 'только хорошие умирают молодыми'
only the good die young
$ ./gtrans
Error: need an arg (Russian phrase)
$ ./gtrans a b
Error: too many args. need just an arg (Russian phrase)
ロシア版ポトリスのチャット自動翻訳に向け、ググル先生翻訳へPOSTするデーターの確認用に書いてみました。
環境
OS: Linux
debian-lenny