js 前端 Google 翻译 Api

引入文件

// src/libs/google-translate/index.js

var querystring = require("querystring");var axios = require("axios");var languages = require("./languages");function translate(text, opts) {opts = opts || {};var e;[opts.from, opts.to].forEach(function (lang) {if (lang && !languages.isSupported(lang)) {e = new Error();e.code = 400;e.message = "The language '" + lang + "' is not supported";}});if (e) {return new Promise(function (resolve, reject) {reject(e);});}opts.from = opts.from || "auto";opts.to = opts.to || "en";opts.from = languages.getCode(opts.from);opts.to = languages.getCode(opts.to);// 完整的地址是 http://translate.google.com/translate_a/single// 如果是浏览器端发出的请求可以让后端配置代理let url = "/translate_a/single";const data = {client: "gtx",dt: "t",dj: 1,ie: "UTF-8",sl: opts.from,tl: opts.to,q: text,};url = `${url}?${querystring.stringify(data)}`;return axios.get(url).then(function (res) {const { sentences } = res.data;let result = {};if (sentences && sentences[0]) {const { trans, orig } = sentences[0];result = { trans, orig };}return result;}).catch(function (err) {console.log("err", err);var e = new Error();if (err.statusCode !== undefined && err.statusCode !== 200) {e.code = "BAD_REQUEST";} else {e.code = "BAD_NETWORK";}throw e;});
}module.exports = translate;
module.exports.languages = languages;

// src/libs/google-translate/languages.js

/**** Generated from https://translate.google.com** The languages that Google Translate supports (as of 5/15/16) alongside with their ISO 639-1 codes* See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes*/var langs = {auto: "Automatic",af: "Afrikaans",sq: "Albanian",am: "Amharic",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: "Sundanese",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",
};/*** Returns the ISO 639-1 code of the desiredLang – if it is supported by Google Translate* @param {string} desiredLang – the name or the code of the desired language* @returns {string|boolean} The ISO 639-1 code of the language or false if the language is not supported*/
function getCode(desiredLang) {if (!desiredLang) {return false;}desiredLang = desiredLang.toLowerCase();if (langs[desiredLang]) {return desiredLang;}var keys = Object.keys(langs).filter(function (key) {if (typeof langs[key] !== "string") {return false;}return langs[key].toLowerCase() === desiredLang;});return keys[0] || false;
}/*** Returns true if the desiredLang is supported by Google Translate and false otherwise* @param desiredLang – the ISO 639-1 code or the name of the desired language* @returns {boolean}*/
function isSupported(desiredLang) {return Boolean(getCode(desiredLang));
}module.exports = langs;
module.exports.isSupported = isSupported;
module.exports.getCode = getCode;

使用

  • 浏览器端发出的请求可以让后端配置代理
const translate = require("@/libs/google-translate");translate(this.original, { from: "en", to: this.targetLang }).then((res) => {}).catch((err) => {}).finally(() => {});

js Google 翻译 Api相关推荐

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

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

  2. Google 翻译API Demo

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

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

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

  4. Google翻译API使用案例

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

  5. Google翻译API的使用

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

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

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

  7. 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)

    需求: 1)偶尔需要查英文生词: 2)有时候想不起来中文对应的英文: 3)不想回到浏览器打开一堆网页: 4)谷歌翻译挂了. 偶尔需要的需求: 1)短句翻译. 因为谷歌翻译挂了,首先,排除最热门的翻译插 ...

  8. node调用谷歌翻译Api,实现自动国际化

    原因: 项目国际化过程繁琐,每次都需要人工去google翻译,导致工作效率不高. 需求: 1.减少人工的重复劳动,提高工作效率. 2.使用脚本调用谷歌翻译接口自动化翻译. 3.free,作为程序员肯定 ...

  9. 基于百度翻译API的node插件

    基于百度翻译API的node插件 背景 做过国际化的项目就明白要把每处的文案翻译成不同的语言版本,如果只是一点点,自己去百度上翻译成对应语言版本,copy过来就ok了,但是如果这个项目文案特别多的话, ...

  10. 微软翻译api的使用介绍和注意事项

    google翻译api已经收费了,而微软翻译api目前是免费的,支持几种不同的方式访问,如果感兴趣可以自己封装下协议处理.官方介绍: http://msdn.microsoft.com/en-us/l ...

最新文章

  1. 中秋祝福网页制作_10大中秋H5模板分享,助力吸粉10000+
  2. JAVA数据库编程(JDBC技术)-入门笔记
  3. 服务器建立共享后无法写入文件,Win7 局域网共享问题,XP访问Win7复制或写入一会文件之后出现无法访问,您没有权限,或者说服务器空间不足...
  4. MySQL的my.cnf文件(解决5.7.18下没有my-default.cnf)
  5. 分享:一款快速传输大文件、支持英文版的工具
  6. H264/ACC数据使用librtmp推流到服务器
  7. 3d激光雷达开发(voxel滤波)
  8. 2018春招-赛码网-例题-水仙花数
  9. 使用Nginx配置反向代理,完成端口转发
  10. 大华流媒体服务器连接显示器,如何从海康平台上拉流接入RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR?...
  11. wordpress添加Auto Highslide图片灯箱效果
  12. MOSS的备份与还原
  13. LaTeX--1--了解LaTeX
  14. 一文读懂Apache Kylin
  15. electron 文件另存为
  16. 技校考计算机专业大专考什么科目,高职专科考试科目有哪些 考什么内容
  17. git ssh远程登录
  18. 考研公共部分科目分支分布以及计算机408分值分布
  19. Qt入门视频教程地址分享
  20. 爬梯:Docker全解析(一)

热门文章

  1. 集体智慧编程 简介
  2. DirectSound 播放声音杂音问题.
  3. html+css+js 实现鼠标拖尾效果(源码)
  4. Linux脚本的创建
  5. github入门教程最全中文版(官方)
  6. C语言·数组·密码编译(阿斯克码法)
  7. 【C语言】ASCII码表
  8. Unity3d 好友管理系统
  9. i2c-tools下载安装及使用调试
  10. 央妈:银联,想说爱你不容易