1、首先需要申请一个三方API,这里以百度API举例
2、百度API注册
3、注册实名后,申请成为开发者【个人/企业】
申请成功之后可以申请高级版,标准版免费调用量为5万字符/月,高级版免费调用量为100万字符/月
4、申请成功之后会有一个AppID和密钥
5、根据百度开发者API文档编写代码
我知道你懒得看,这里直接上代码,后续直接修改appID和密钥即可直接调用此方法
注意:请求需要有间隔时间,否则会限流,一秒内不要超过2次
public static String fanyi(String name) {
String dstValue = null;
try {
String original = "zh"; // 原文语种
String translation = "en"; // 译文语种
String salt = "" + new Random().nextInt(10000); // 随机数
String appID = "20240823002130463"; // 应用ID
String pwd = "_JBliga82eSI9qPTphVI"; // 应用密钥
String sign = appID + name + salt + pwd; // 签名,后续需要将签名使用MD5加密
String url = "http://api.fanyi.baidu.com/api/trans/vip/translate?" + "q=" + name + "&" + "from=" + original
+ "&" + "to=" + translation + "&" + "appid=" + appID + "&" + "salt=" + salt + "&" + "sign=" + DigestUtils.md5Hex(sign);
// 发请求
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(new URI(url)).GET().build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
// 接收响应
String responseBody = response.body();
// 反序列化解析译文
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(responseBody, JsonObject.class);
// 这里做判断, 防止报空指针
if (jsonObject.getAsJsonArray("trans_result") != null) {
if (jsonObject.getAsJsonArray("trans_result").get(0) != null) {
if (jsonObject.getAsJsonArray("trans_result").get(0).getAsJsonObject() != null) {
if (jsonObject.getAsJsonArray("trans_result").get(0).getAsJsonObject().get("dst") != null) {
if (jsonObject.getAsJsonArray("trans_result").get(0).getAsJsonObject().get("dst").getAsString() != null) {
// 接收译文
dstValue = jsonObject.getAsJsonArray("trans_result").get(0).getAsJsonObject().get("dst").getAsString();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
// 返回
return dstValue;
}
返回的dstValue就是翻译之后的字符串,这里只做了中文转英文的演示如果需要转成其他语言或者其他语言转中文,需要修改代码中 original和 translation 的值,根据实际情况修改即可