如何使用一些命令行工具(如curl)从Google Translate 获取翻译后的字符串(例如英语到西班牙语)?我查看了页面源代码,但谷歌翻译似乎没有将翻译结果包含在其 html 源代码中,即使结果呈现在屏幕上。所以
curl "https://translate.google.com/#auto/es/stay%20calm"
没用——只是给了我 html 源代码,既没有原始字符串,也没有翻译后的字符串。而且我听说他们的 API 不是免费的所以我不想使用它。我听说还有微软的翻译服务,但如果可能的话我想坚持使用谷歌的翻译服务。
答案1
您可以在您的~/.bashrc
function gtr {
sl=en
tl=$1
shift
base_url="https://translate.googleapis.com/translate_a/single?client=gtx&sl=$sl&tl=$tl&dt=t&q="
ua='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0'
qry=$( echo "$*" | sed -e "s/\ /+/g" )
full_url=$base_url$qry
response=$(curl -sA "$ua" "$full_url")
echo "$response" | sed 's/","/\n/g' | sed -E 's/\[|\]|"//g' | head -1
}
用法
$: gtr es hi this is a test
Hola esto es una prueba