对于android来说,很多翻译接口要收费的。但是翻译还是有很多网页版的,因此爬虫便成为一种方式。谷歌翻译中国版不需要翻墙,谷歌翻译中有一个接口可以得到翻译后的json。

例子:
https://translate.google.cn/translate_a/single?client=gtx&sl=en&tl=zh&dt=t&q=Do%20not%20work%20overtime%20tonight

在浏览器打开会下载一个f.txt的文件,内容为:
[[[“今晚不要加班”,”Do not work overtime tonight”,null,null,3]],null,”en”]。
在android中使用流的方式接收,转化为json进行相应处理即可。

如果翻译很长比如:
https://translate.google.cn/translate_a/single?client=gtx&sl=en&tl=zh&dt=t&q=The%20world%27s%20first%20railless%20train%20is%20tested%20in%20Zhuzhou,%20Central%20China%27s%20Hunan%20province,%20on%20Oct%2023,%202017.%20The%2030-meter%20train%20has%20three%20carriages%20and%20is%20developed%20by%20CRRC%20Zhuzhou%20Locomotive%20Co%20Ltd.%20The%20train%20can%20move%20at%20a%20speed%20of%2070%20km/h%20and%20can%20carry%20up%20to%20500%20passengers.

返回内容会是这个样子的:
[[[“2017年10月23日,中国中部湖南省株洲市测试了世界上第一列无轨列车.30米长的列车有三个车厢,由中国中车株洲机车有限公司开发,列车时速可达70公里/”,”The world’s first railless train is tested in Zhuzhou, Central China’s Hunan province, on Oct 23, 2017. The 30-meter train has three carriages and is developed by CRRC Zhuzhou Locomotive Co Ltd. The train can move at a speed of 70 km/”,null,null,3],[“小时,可载500名乘客。”,”h and can carry up to 500 passengers.”,null,null,3]],null,”en”]
只要进行相应处理与拼接即可。

sl=en 为source language,可设置为auto。
tl=zh 为target language,设置为目标语言。
注意在android中使用HttpURLConnection的话,需要设置User-Agent如:HttpURLConnection.setRequestProperty(“User-Agent”, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36”);

支持的语言:
“auto”:””Automatic”,
“af”:”Afrikaans”,
“sq”:”Albanian”,
“ar”:”Arabic”,
“hy”:”Armenian”,
“az”:”Azerbaijani”,
“eu”:”Basque”,
“be”:”Belarusian”,
“bn”:”Bengali”,
“bs”:”Bosnian”,
“bg”:”Bulgarian”,
“ca”:”Catalan”,
“ceb”:”Cebuano”,
“ny”:”Chichewa”,
“zh-cn”:”Chinese Simplified”,
“zh-tw”:”Chinese Traditional”,
“co”:”Corsican”,
“hr”:”Croatian”,
“cs”:”Czech”,
“da”:”Danish”,
“nl”:”Dutch”,
“en”:”English”,
“eo”:”Esperanto”,
“et”:”Estonian”,
“tl”:”Filipino”,
“fi”:”Finnish”,
“fr”:”French”,
“fy”:”Frisian”,
“gl”:”Galician”,
“ka”:”Georgian”,
“de”:”German”,
“el”:”Greek”,
“gu”:”Gujarati”,
“ht”:”Haitian Creole”,
“ha”:”Hausa”,
“haw”:”Hawaiian”,
“iw”:”Hebrew”,
“hi”:”Hindi”,
“hmn”:”Hmong”,
“hu”:”Hungarian”,
“is”:”Icelandic”,
“ig”:”Igbo”,
“id”:”Indonesian”,
“ga”:”Irish”,
“it”:”Italian”,
“ja”:”Japanese”,
“jw”:”Javanese”,
“kn”:”Kannada”,
“kk”:”Kazakh”,
“km”:”Khmer”,
“ko”:”Korean”,
“ku”:”Kurdish (Kurmanji)”,
“ky”:”Kyrgyz”,
“lo”:”Lao”,
“la”:”Latin”,
“lv”:”Latvian”,
“lt”:”Lithuanian”,
“lb”:”Luxembourgish”,
“mk”:”Macedonian”,
“mg”:”Malagasy”,
“ms”:”Malay”,
“ml”:”Malayalam”,
“mt”:”Maltese”,
“mi”:”Maori”,
“mr”:”Marathi”,
“mn”:”Mongolian”,
“my”:”Myanmar (Burmese)”,
“ne”:”Nepali”,
“no”:”Norwegian”,
“ps”:”Pashto”,
“fa”:”Persian”,
“pl”:”Polish”,
“pt”:”Portuguese”,
“ma”:”Punjabi”,
“ro”:”Romanian”,
“ru”:”Russian”,
“sm”:”Samoan”,
“gd”:”Scots Gaelic”,
“sr”:”Serbian”,
“st”:”Sesotho”,
“sn”:”Shona”,
“sd”:”Sindhi”,
“si”:”Sinhala”,
“sk”:”Slovak”,
“sl”:”Slovenian”,
“so”:”Somali”,
“es”:”Spanish”,
“su”:”Sudanese”,
“sw”:”Swahili”,
“sv”:”Swedish”,
“tg”:”Tajik”,
“ta”:”Tamil”,
“te”:”Telugu”,
“th”:”Thai”,
“tr”:”Turkish”,
“uk”:”Ukrainian”,
“ur”:”Urdu”,
“uz”:”Uzbek”,
“vi”:”Vietnamese”,
“cy”:”Welsh”,
“xh”:”Xhosa”,
“yi”:”Yiddish”,
“yo”:”Yoruba”,
“zu”:”Zulu”

代码例子:

/*** 翻译回调*/public interface TranslateCallback{public void onTranslateDone(String result);
}
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Executors;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;public class TranslateUtil {public static final String TRANSLATE_BASE_URL = "https://translate.google.cn/"; // 不需要翻墙即可使用
//    public static final String TRANSLATE_SINGLE_URL = "https://translate.google.cn/translate_a/single?client=gtx&sl=en&tl=zh&dt=t&q=Do%20not%20work%20overtime%20tonight";public static final String USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";private static String LAN_AUTO = "auto";/*** 翻译,包含http请求,需要异步,返回""则为翻译失败* @param sourceLan 源语言,如en,自动检测为auto* @param targetLan 目标语言如zh* @param content 翻译文本* @return ""为翻译失败,其余成功*/public void translate(Context context, String sourceLan, String targetLan, String content, TranslateCallback callback) {TranslateTask task = new TranslateTask(context, sourceLan, targetLan, content, callback);task.executeOnExecutor(Executors.newCachedThreadPool());}/*** 使用异步任务来翻译,翻译完成后回调callback*/class TranslateTask extends AsyncTask<Void, Void, String> {String sourceLan;String targetLan;String content;Context context;TranslateCallback callback;private LoadingDalog loadingDalog = null; // 这个请自己定义加载中对话框,或者干脆不使用TranslateTask(Context context, String sourceLan, String targetLan, String content, TranslateCallback callback){this.context = context;this.content = content;this.callback = callback;this.sourceLan = sourceLan;this.targetLan = targetLan;}@Overrideprotected String doInBackground(Void... params) {String result = "";if (content == null || content.equals("")) {return result;}try {String googleResult = "";// 新建一个URL对象URL url = new URL(getTranslateUrl(sourceLan, targetLan, content));// 打开一个HttpURLConnection连接HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();// 设置连接主机超时时间urlConn.setConnectTimeout(5 * 1000);//设置从主机读取数据超时urlConn.setReadTimeout(5 * 1000);// 设置是否使用缓存  默认是trueurlConn.setUseCaches(false);// 设置为Post请求urlConn.setRequestMethod("GET");//urlConn设置请求头信息urlConn.setRequestProperty("User-Agent", USER_AGENT);//设置请求中的媒体类型信息。
//            urlConn.setRequestProperty("Content-Type", "application/json");//设置客户端与服务连接类型
//            urlConn.addRequestProperty("Connection", "Keep-Alive");// 开始连接urlConn.connect();// 判断请求是否成功int statusCode = urlConn.getResponseCode();if (statusCode == 200) {// 获取返回的数据googleResult = streamToString(urlConn.getInputStream());}// 关闭连接urlConn.disconnect();// 处理返回结果,拼接JSONArray jsonArray = new JSONArray(googleResult).getJSONArray(0);for (int i = 0; i < jsonArray.length(); i++) {result += jsonArray.getJSONArray(i).getString(0);}} catch (Exception e) {
//            result = "翻译失败";e.printStackTrace();result = "";}Log.d("TAG", "翻译结果:" + result);return result;}@Overrideprotected void onPostExecute(String result) {if (loadingDalog != null && loadingDalog.isShowing()) {loadingDalog.cancel();}if (callback != null){callback.onTranslateDone(result);}super.onPostExecute(result);}@Overrideprotected void onPreExecute() {super.onPreExecute();String str = context.getString(R.string.translating);try {loadingDalog = new LoadingDalog(context);// Dialog使用、初始化loadingDalog.setMessage(str);loadingDalog.show();} catch (Exception e) {e.printStackTrace();}}}/*** 将输入流转换成字符串** @param is 从网络获取的输入流* @return 字符串*/public static String streamToString(InputStream is) {try {ByteArrayOutputStream out = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = is.read(buffer)) != -1) {out.write(buffer, 0, len);}out.close();is.close();byte[] byteArray = out.toByteArray();return new String(byteArray);} catch (Exception e) {return null;}}public void translate(Context context, String targetLan, String content, TranslateCallback callback) {translate(context, LAN_AUTO, targetLan, content, callback);}private static String getTranslateUrl(String sourceLan, String targetLan, String content) {try {return TRANSLATE_BASE_URL + "translate_a/single?client=gtx&sl=" + sourceLan + "&tl=" + targetLan + "&dt=t&q=" + URLEncoder.encode(content, "UTF-8");} catch (Exception e) {return TRANSLATE_BASE_URL + "translate_a/single?client=gtx&sl=" + sourceLan + "&tl=" + targetLan + "&dt=t&q=" + content;}
}
// 使用
TranslateCallback translateCallback = new TranslateCallback() {@Overridepublic void onTranslateDone(String result) {// result是翻译结果,在这里使用翻译结果,比如使用对话框显示翻译结果}
}
new TranslateUtil().translate(activity, "auto", "en", "待翻译内容", translateCallback);

谷歌翻译接口使用(android为例)相关推荐

  1. Google自动翻译工具:对接谷歌翻译接口,实现本地化运行

    Google自动翻译工具通过对接谷歌翻译api接口,实现Google翻译本地化运行,通过Google自动翻译工具我们可以对我们的txt/word/excl等多格式文本进行批量的翻译,并且会保留翻译格式 ...

  2. 复活天若OCR的谷歌翻译接口

    文章目录 1. 资源 2. 效果 3. 前言 4. 网络相关 4.1. 网络判断 4.2. 网络设置 5. 修改 5.1. 代码修改原理 5.2. 代码修改 1. 资源 这里直接放出来我已经修改编译好 ...

  3. Python实现google翻译,免费多线程使用谷歌翻译接口

    文章说明 本文实现的方式大部分源码是从借鉴别人的博客,再他们的基础上修复了不能翻译的问题和其他的一些bug.但是原文找不到了,没法粘贴原文地址了,非常抱歉. 本文章解决的问题有: 翻译不来,在之前基础 ...

  4. Android中谷歌翻译接口使用(使用谷歌翻译接口,App做文本翻译)

    原文章:https://blog.csdn.net/pifutan/article/details/78554691.结合原文按照自己需求,实现功能.效果如下: 功能实现: 使用Android自带Sp ...

  5. php调用谷歌翻译接口_一个google翻译的php调用方式

    直接看代码<?php /** * translate() * * 翻译函数 * * @param mixed $text 待翻译的内容 * @param string $language 翻译的 ...

  6. 教你找到免费的Google Translate API(谷歌翻译接口)+C#版的Google翻译函数

    http://www.crifan.com/teach_you_how_to_find_free_google_translate_api/ (还没试过有时间试下.....) 今日,在想要在C#中,利 ...

  7. Python调用谷歌翻译接口

    安装 翻译 语法识别 语种缩略表示 官方文档 安装 pip install googletrans 翻译 from googletrans import Translator translator = ...

  8. python 谷歌翻译接口_谷歌翻译python接口

    原博文 2017-08-31 10:39 − 项目地址: https://github.com/ssut/py-googletrans 安装: sudo pip install googletrans ...

  9. 谷歌翻译接口识别语言php,利用谷歌翻译接口实现网站多语言切换

    js利用<?php $language_trans_array = array( array('value' =>'sl=&tl=de', 'text' =>'German' ...

最新文章

  1. 使用 USB 设备安装 Windows 10虚拟机
  2. Windows下RStudio环境安装
  3. Makefile的伪目标
  4. 8.2.5: Spring3.0新增的@DependsOn和@Lazy
  5. github建立静态网站,域名解析和跳转
  6. linux cer证书转为jks,常见SSL证书格式介绍以及SSL证书格式转化方法
  7. python抽荣耀水晶_教你2种免费拿荣耀水晶的方法,获奖概率让人惊喜,一般人我不告诉他...
  8. 【Henu ACM Round#18 F】Arthur and Walls
  9. Java课程设计——学生信息系统(团队)
  10. Android 中文 API (20) —— DatePicker
  11. php框架laravel构造者,Laravel框架的体系结构
  12. android 连接已保存的wifi,手机连接WiFi显示已保存但是连接不上
  13. 一种智能花盆参考设计
  14. 农业银行查询开户支行的方法
  15. GitHub上AI岗位面试笔记(机器学习算法/深度学习/ NLP/计算机视觉)
  16. 带你从Vue入门到进阶
  17. ubuntu 下tftp服务器配置笔记
  18. 苹果icloud邮箱抓取
  19. 金陵科技学院计算机系男女比,【为男女比例正名】揭秘南京26所高校男女生比例!...
  20. Oracle数据库连接的账号密码过期的解决教程

热门文章

  1. Assert 的用法
  2. SQL注入回顾篇(一)
  3. icpc2018-焦作-E Resistors in Parallel-数论+大数
  4. 汇编语言of常用指令
  5. 组合数的几种常规求法
  6. Arnold材质节点篇- 动态模糊Motion blur
  7. Java类初始化顺序(变量赋值与静态代码块的执行时间)
  8. Java岗面试12家大厂成功跳槽,含泪整理面经
  9. IDea 工具debug模式详细说明
  10. 美通企业日报 | 内容质量是亚太媒体最重视的指标;“豆蔻青”将成2020年度色彩...