Java 实现翻译功能

1、首先需要申请一个三方API,这里以百度API举例

其他API

2、百度API注册

注册地址

3、注册实名后,申请成为开发者【个人/企业】

申请成功之后可以申请高级版,标准版免费调用量为5万字符/月,高级版免费调用量为100万字符/月

4、申请成功之后会有一个AppID和密钥

在这里插入图片描述

5、根据百度开发者API文档编写代码

百度官方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就是翻译之后的字符串,这里只做了中文转英文的演示如果需要转成其他语言或者其他语言转中文,需要修改代码中 originaltranslation 的值,根据实际情况修改即可
在这里插入图片描述

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值