更多好文章发现请点击原文链接:https://blog.wanvale.com/archives/368/

概述

最近要用到机器翻译api做一个PV比较小的模块,看了一下大厂售卖翻译api都是以万为单位计费,而且资源包有时限,鉴于Google翻译国内已经可以访问,于是决定调用Google翻译的api。

太长不看

对于不喜欢看过程的同学,可以直接拿api地址调用。

中译英:https://translate.google.cn/translate_a/single?client=gtx&sl=zh-CN&tl=en&dt=t&q=QUERY_STRING
英译中:https://translate.google.cn/translate_a/single?client=gtx&sl=en&tl=zh-CN&dt=t&q=QUERY_STRING

替换QUERY_STRING为要翻译的字符串即可。

参数解析

对于Google翻译,只需要提供几个必要参数就可以获取结果了:

  • client:客户端,通常为at;
  • sl:source language,源语言;
  • tl:target language,目标语言;
  • dt:返回数据,这里指定为t表示对源的翻译结果;
  • q:查询字符串。

client一般指定为at或t,此处使用的gtx可以解除查询次数限制,但有概率造成获取到的结果不正确。
使用这个api最大的好处是不需要tk,但是返回的内容比较简单,对PV较小的项目使用是足够的。

Java实现

对于Java实现,使用的是HttpClient发送接收请求,如果是Maven项目,需要引入依赖:

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.3.5</version>
</dependency>
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version>
</dependency>

接下来就可以愉快的编写调用函数了

public Map<String, String> translate(String trans) throws IOException {Map<String, String> map = new ConcurrentHashMap<>();CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpGet = new HttpGet("https://translate.google.cn/translate_a/single?client=gtx&sl=zh-CN&tl=en&dt=t&q=" + trans);CloseableHttpResponse response = httpclient.execute(httpGet);if (response.getStatusLine().getStatusCode() == 200) {//请求体内容String content = EntityUtils.toString(response.getEntity(), "UTF-8");JSONArray array = JSONArray.parseArray(content);array = array.getJSONArray(0).getJSONArray(0);map.put("source", array.getString(1));map.put("target", array.getString(0));System.out.println("原文:" + array.getString(1));System.out.println("译文:" + array.getString(0));}response.close();httpclient.close();return map;
}

Python实现

对于Python实现,直接使用requests发送请求,json解析就可以了

import requests
import jsondef translate(query_string):url = 'https://translate.google.cn/translate_a/single?'param = 'client=gtx&sl=zh-CN&tl=en&dt=t&q=' + query_stringresponse = requests.get(url + param)result = json.loads(response.text)return {"source": result[0][0][1],"target": result[0][0][0],}if __name__ == '__main__':trans = translate("你好世界")print(trans.get("source"))print(trans.get("target"))

Google翻译api接入及Java、Python实现相关推荐

  1. Google 翻译API Demo

    接上篇 Google翻译API(B/S调用和C/S调用) 上篇里提到的接口调用方法是get方式,这样有个问题,每次请求翻译的内容不能超过url允许的长度.需要改成post方式才行,但是google没有 ...

  2. 在C#中使用Google翻译API

    目录 介绍 要求 示例翻译函数 兴趣点 介绍 我们想轻松地将文本字符串翻译成另一种语言.从Google 翻译API返回的结果非常晦涩.它们采用JSON锯齿状数组的形式.当您必须翻译多个句子时,甚至更加 ...

  3. Google翻译API(B/S调用和C/S调用)

    浏览器调用: <html><head><script type="text/javascript" src="http://www.goog ...

  4. Google翻译API的使用

    今天学习了下Google翻译的API,有所收获,也有些问题.      总结了下,主要有两种调用方式:B/S方式(在网页中),C/S方式(在Java程序中). 第一种:B/S方式. Google Aj ...

  5. Google翻译API使用案例

    简单整理了下Google翻译的API使用方法.简单的说就是一个Ajax请求: 效果图: 源代码:都附上了注释还是比较好看懂的.将该代码复制成html即可运行. <html> <hea ...

  6. 百度翻译API限量后,python调用有道翻译详解

    背景 8月1日,百度翻译API宣布"调整" 刚开始,以为是调用百度API代码出问题了,一直报错 后查,免费还有,但是从旧时不限量 改为5万字符/月,原来是"羊毛被薅光了& ...

  7. Zotero翻译插件Zotero PDF Translate无法正常翻译,百度、彩云、腾讯翻译api接入

    文章目录 1 存在问题 2 解决办法 2.1 百度API 2.1.1 注册[百度翻译开发平台](https://fanyi-api.baidu.com/) 2.1.2 登录并申请通用翻译API和垂直领 ...

  8. python 调用Google Translate API进行翻译

    调用Google 翻译API进行翻译 #!/usr/bin/python #coding: UTF-8 import sys reload(sys) sys.setdefaultencoding('u ...

  9. 百度翻译 API 的申请 与 百度通用翻译 API 的接入

    百度翻译 API 的申请 与 百度通用翻译 API 的接入 申请 进入百度翻译开放平台,选择 立刻使用. 选择我的服务,开通 通用翻译,填信息后秒过. 建议 实名认证,提高免费额度. 通过后,可以在开 ...

  10. Android google翻译踩坑之旅

    # Android google翻译踩坑之旅   最近由于工作需求,需要为游戏Android平台接入Google翻译的SDK,由于关于翻译的文章非常少,访问官方文档又需要翻墙,更可气的是找到的博客写了 ...

最新文章

  1. easyUI的图标设置
  2. 11月碎碎念-谈职场礼貌
  3. UINavigationController
  4. 5、java中的数组
  5. git进入项目目录 windows_Windows下Git 怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)...
  6. 安装提示没有安装包docker(转载)
  7. 代码质量度量标准_Google研发度量改进实践
  8. Django中的ORM进阶操作
  9. RecyclerView,ListView,GridView等UI控件使用及其优化和图片错位--
  10. 世界各国各地区名称代码对应表
  11. bootice添加黑苹果引导_Clover Configurator黑苹果 Clover 引导配置工具
  12. 微型计算机输入输出的工业标准是7位,工业用微型计算机试题3
  13. java用dockerfile生成镜像_【HAVENT原创】创建 Dockerfile 生成新的镜像,并发布到 DockerHub...
  14. Pywin32操控Excel——2. 筛选与排序
  15. Hijack攻击揭秘
  16. ble学习笔记九----------ble协议栈之OSAL的运行机理
  17. PerfDog测试安卓模拟器初体验
  18. [图形学] 基于物理的渲染(PBR)
  19. 计算机模拟虚拟筛选操作流程
  20. socket网络编程封装错误处理函数

热门文章

  1. 【租房必看】有了这份租房指南,再也不怕被坑了!(建议收藏)
  2. 新路由3 高恪魔改固件+底包
  3. Iper3打流时所支持的UDP协议是真的UDP吗?
  4. MySQL入门总结和学习笔记
  5. 微信小程序视频直播开发实现流程
  6. 单片机编程软件很简单(16),Keil单片机编程软件建立工程项目
  7. 数据结构题集c语言版考试答案,数据结构题集(C语言版)答案.pdf
  8. Oracle之分析函数
  9. 联想r720游戏音效增强功能消失的解决
  10. 《游戏设计艺术(第2版)》——学习笔记(32)第32章 游戏改变玩家