百度 翻译 api 使用

公司业务  , 需要翻译全球城市。 由于城市太多,所以人翻不太现实。需要调用百度翻译接口。 

但是百度翻译接口翻译质量不一定高。

最好还是能从开放数据库下载出来城市数据。

一下是翻译城市的代码。 自用的话需要一些调整。

    @GetMapping(value = "/translation")
    public ResponseResult translation()
    {

        //查出所有待翻译城市
        List<UesCityCode> uesCityCodeList = iUesCityCodeService.queryByWhere(" 1=1 ");
        for(int i=0; i<uesCityCodeList.size() ; i++)
        {
            UesCityCode uesCityCode= uesCityCodeList.get(i);
            String url = "http://api.fanyi.baidu.com/api/trans/vip/translate";
            String appid = "xxxxxxxxxxxxxxxxx";
            String pwd = "xxxxxxxxxxxxxxxx"; //秘钥
            String query = "";   //待翻译字段
            String from = "en"; //源语言
            String to = "zh";   //目标语言
            String salt = "";
            String sign = "";
            String dst= "";  //翻译后的字段
            query = uesCityCode.getCity_en();
            salt = UUID.randomUUID().toString();
            sign = appid + query + salt + pwd ;
            sign = DigestUtils.md5DigestAsHex(sign.getBytes());
            url+= "?q="+query+"&from=" + from +"&to=" + to+"&appid=" +appid+"&salt="+salt+"&sign="+sign;
            JSONObject obj = restTemplate.getForObject(url , JSONObject.class );
            JSONArray arrayList = obj.getJSONArray("trans_result");
            Map map = (Map) arrayList.get(0);
            dst = map.get("dst").toString();

            //更新库中的城市名
            uesCityCode.setCity_zh(dst);
            iUesCityCodeService.update(uesCityCode);
            System.out.println(dst + "-----------------------------------------------");
            try {
                //休眠1秒,百度个人标准版api限制qps 为1
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值