API 地址:
https://translate.google.com/translate_a/single?
client=webapp&sl=zh-CN&tl=en&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=sos&
dt=ss&dt=t&source=bh&ssel=0&tsel=0&xid=45626150&kc=1&tk='+pp+'&q='+txt,
其中,最难获取的是 tk 的值( txt:要翻译的文本)
- sl:文本翻译之前的语言
- tl:文本需要翻译成的语言
分两步:第一步获取 TKK 的值;第二步:根据 TKK 的值获取 tk 的值。
一:获取 TKK 的值
TKK 获取方法:
tkk的值也会不时变化,我们可以打开Google Translate并在开发人员模式下找到它。
二:获取 tk 的值
var b = function (a, b) {for (var d = 0; d < b.length - 2; d += 3) {var c = b.charAt(d + 2),c = "a" <= c ? c.charCodeAt(0) - 87 : Number(c),c = "+" == b.charAt(d + 1) ? a >>> c : a << c;a = "+" == b.charAt(d) ? a + c & 4294967295 : a ^ c}return a
}var tk = function (a, TKK) {for (var e = TKK.split("."), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f < a.length; f++) {var c = a.charCodeAt(f);128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 < a.length && 56320 == (a.charCodeAt(f + 1) & 64512) ? (c = 65536 + ((c & 1023) << 10) + (a.charCodeAt(++f) & 1023), g[d++] = c >> 18 | 240, g[d++] = c >> 12 & 63 | 128) : g[d++] = c >> 12 | 224, g[d++] = c >> 6 & 63 | 128), g[d++] = c & 63 | 128)}a = h;for (d = 0; d < g.length; d++) a += g[d], a = b(a, "+-a^+6");a = b(a, "+-3^+b+-f");a ^= Number(e[1]) || 0;0 > a && (a = (a & 2147483647) + 2147483648);a %= 1E6;return a.toString() + "." + (a ^ h)
};
使用:
tk ( "感谢关注" , "441869.3048276441" );