Bash脚本调用百度翻译API进行中文到英文的翻译

2023-12-13 03:52:49

写一个bash脚本调用百度翻译API进行中文到英文的翻译,首先需要进行相关的申请。看百度给出的文档链接: 百度翻译API文档

在这里插入图片描述
需要先注册一个百度账号,然后申请APPID。脚本中会用到appid和key这两个值。按照文档给出的提示可以获得。如下是脚本:


#! /bin/bash

function printRedMessage {
	if [ $# -eq 0 ]; then
		return
	fi
	echo -e "\e[31m$1\e[0m"
}

function printGreenMessage {
	if [ $# -eq 0 ]; then
		return
	fi
	echo -e "\e[32m$1\e[0m"
}


if [ $# -eq 0 ]; then
	printRedMessage "请输入需要翻译的中文内容."
	exit 1
elif [ $# -gt 1 ]; then
	printRedMessage "参数太多, 只支持一个参数."
	exit 2
fi

str="$1"

rand_val=$RANDOM
app_id="XXXXXXXXXX"
key="XXXXXXXXXXXX"
fanyi_url="https://fanyi-api.baidu.com/api/trans/vip/translate"
sign=$(echo -ne "$app_id$str$rand_val$key" | md5sum | grep -oP "^\w+")

result=$(curl --silent --insecure --request POST "$fanyi_url" \
						--form "q=$str" \
						--form "from=auto" \
						--form "to=en" \
						--form "appid=$app_id" \
						--form "salt=$rand_val" \
						--form "sign=$sign")

# 格式化输出结果
echo "$result" | jq

需要把脚本中对应的appid和key这两个变量替换成自己申请的appid和key值。

在这里插入图片描述
以本人的ubuntu环境为例,因为脚本中使用了curl和jq这两个命令,系统中可能没有安装,
使用 sudo apt install curl jq 安装一下,下面是测试脚本的运行效果:

在这里插入图片描述
输出结果是一个json字符串,其中的"dst"字段就是百度翻译给出的结果。
下面是返回的json:

{
  "from": "zh",
  "to": "en",
  "trans_result": [
    {
      "src": "脚本调用百度翻译API,测试翻译效果如何",
      "dst": "Script calls Baidu Translate API to test the translation effect"
    }
  ]
}

再测试一个翻译:
在这里插入图片描述
下面是返回的json:

{
  "from": "zh",
  "to": "en",
  "trans_result": [
    {
      "src": "是骡子是马拉出来遛遛, 看看百度翻译API的能力到底如何",
      "dst": "Is it a mule or a horse pulled out for a walk? Let's see how good Baidu Translate API is"
    }
  ]
}

文章来源:https://blog.csdn.net/focusing_on_cpp/article/details/134886627
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。