// ==UserScript==
// @name U校园测试助手(听说无限播放音频+读写强力翻译)
// @namespace http://tampermonkey.net/
// @version 3.1.8
// @description U校园视听说测试中无限次数播放音频,读写测试中各种翻译。
// @author Priate
// @match *://uexercise.unipus.cn/*
// @grant none
// @require https://cdn.jsdelivr.net/npm/jquery.md5@1.0.2/index.min.js
// @license MIT
// ==/UserScript==
(function () {
'use strict';
const trans_appid = '20200420000425147'; //百度翻译开放平台上申请的APPID
const trans_key = '3gAE6Z7ol4xHEm3fuHWp'; //百度翻译开放平台上申请的密钥
//自定义设置,将参数设为0(或false)代表关闭该功能,1(或true)代表开启该功能
const setting = {
allow_multiple_play : 1, //听力允许多次播放
translate_option : 1, //听力选项翻译
composite_dictation : 1, //复合式听写翻译段落
long_reading : 1, //长篇阅读翻译段落及选项
reading_comprehension : 1, //阅读理解翻译选项及段落
select_word : 1, //选词填空翻译选项及段落
paragraph_translate : 1, //段落翻译(中翻英)
writing : 1, //写作翻译(中翻英)
}
setTimeout(function(){
//听力允许多次播放
setting.allow_multiple_play ? allow_multiple_play() : false;
//听力选项翻译
setting.translate_option ? translate_option() : false;
//复合式听写功能辅助
setting.composite_dictation ? composite_dictation() : false;
//长篇阅读功能辅助
setting.long_reading ? long_reading() : false;
//阅读理解功能辅助
setting.reading_comprehension ? reading_comprehension() : false;
//选词填空功能辅助
setting.select_word ? select_word() : false;
//段落翻译功能辅助
setting.paragraph_translate ? paragraph_translate() : false;
//写作功能辅助
setting.writing ? writing() : false;
//设置样式
set_style();
}, 2000)
//允许多次播放
function allow_multiple_play(){
$(".itest-hear-reslist").each(function () {
$(this).mouseover(function (param) {
$(this).removeClass('disabled-active');
})
});
//添加音频audio标签
$(".itest-hear-reslist").each(function () {
var option_musics = $(this).children('span').text().match(/(http.*?\.mp3)/g);
if(option_musics){
var new_option_musics = []
option_musics.forEach((item)=>{
if(new_option_musics.indexOf(item) === -1 && !item.match(/(http.*?question\.mp3)/g)){
new_option_musics.unshift(item);
}
})
var option_ques = $(this).parent().children('.itest-ques')[0];
for(var option_music in new_option_musics){
option_ques.innerHTML = "<audio controls='controls' src='" + new_option_musics[option_music] + "'>您的浏览器不支持 audio 标签。</audio>" + option_ques.innerHTML;
}
}
});
}
//复合式听写功能辅助
function composite_dictation(){
//为复合式听写添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "复合式听写"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.itest-ques').prepend("</br><button class='composite_dictation_btn'>翻译</br>内容</button>");
})
}
})
//为翻译内容按钮注册功能
$(document).on("click",".composite_dictation_btn",function(){
$(this).removeClass('composite_dictation_btn').addClass('composite_dictation_hide_btn').html("清空</br>翻译");
var context_list = "";
var re = new RegExp("[0-9][0-9]\\)","g");
var re2 = new RegExp("\n","g");
var re3 = new RegExp("<.*?>","g");
$(this).next().next().find('span').children('div').each(function(){
//将偶数的br替换为hr
$(this).children('br:even').replaceWith('<hr>')
context_list = $(this).html().split('<br>');
$.each(context_list,function(index, value){
context_list[index] = value.replace(re, "(XXX)").replace(re2, " ").replace(re3, "") + '\n';
})
});
for (var contents in context_list) {
(function (contents, btn) {
setTimeout(function () {
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list[contents] + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list[contents],
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = "";
if (data.error_code == "54003") {
res_word = "<div style='color:red'>请求频率过快,请重试</div>";
}else if(data.error_code == "52003"){
res_word = "<div style='color:red'>请检查您的appid是否正确,或服务是否开通</div>";
}else if(data.trans_result) {
res_word = "<div style='color:blue'>" + data.trans_result[0].dst + "</div>";
}else if(data.error_code == "52001"){
res_word = "<div style='color:red'>错误码:" + data.error_code + "</div>";
}else if(data.error_code){
res_word = "<div style='color:red'>错误码:" + data.error_code + "</div>";
}
btn.next().next().find("span").children('div').each(function () {
$($(this).children('br')[contents]).before(res_word);
});
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
}, 1500 * contents);
})(contents, $(this))
}
})
//为翻译内容隐藏按钮注册功能
$(document).on("click",".composite_dictation_hide_btn",function(){
$(this).removeClass('composite_dictation_hide_btn').addClass('composite_dictation_btn').html("翻译<br>全文");
$(this).next().next().find("div[style='text-align:justify']").each(function () {
$.each($(this).children('hr'), function(index, value){
$(value).replaceWith('<br>');
})
$.each($(this).children('div'), function(index, value){
$(value).remove();
})
});
})
}
//单选题选项翻译
function translate_option(){
//为短对话添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "短对话"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.nu').append("</br><button class='option_translate_btn'>翻译</br>选项</button>");
})
}
})
//为长对话添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "长对话"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.nu').append("</br><button class='option_translate_btn'>翻译</br>选项</button>");
})
}
})
//为短文理解添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "短文理解"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.nu').append("</br><button class='option_translate_btn'>翻译</br>选项</button>");
})
}
})
//为长文章添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "长文章"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.nu').append("</br><button class='option_translate_btn'>翻译</br>选项</button>");
})
}
})
//为听力选项翻译注册功能
$(document).on("click",".option_translate_btn",function(){
$(this).removeClass('option_translate_btn').addClass('option_hide_btn').html("清空</br>翻译")
var context_list = "";
$(this).parent().parent().parent().find('label').each(function () {
context_list += $(this).text() + '\n';
});
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var options = $(this).parent().parent().parent().children('.option')
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
var str = "";
if (data.error_code == "54003") {
str = "</br><label style='color: red;'> 请求频率过快,请重试</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.error_code == "52003"){
str = "</br><label style='color: red;'> 请检查您的appid是否正确,或服务是否开通</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push("</br><label style='color: blue;'> " + e.dst + "</label>")
})
}else if(data.error_code){
str = "</br><label style='color: red;'> 错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。</label>";
options.each(function(){
res_word.push(str);
})
}
$.each(options, function(index, value){
$(value).append(res_word[index])
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
});
//为听力选项隐藏按钮注册功能
$(document).on("click",".option_hide_btn",function(){
$(this).removeClass('option_hide_btn').addClass('option_translate_btn').html("翻译</br>选项")
$(this).parent().parent().parent().children('.option').each(function () {
$.each($(this).children('label'), function(index, value){
if(index != 0){
$(value).remove();
}
})
$.each($(this).children('br'), function(index, value){
$(value).remove();
})
});
});
}
//长篇阅读功能辅助
function long_reading(){
//为长篇阅读添加翻译按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "长篇阅读"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).prepend("<br><button class='long_reading_translate_btn'>翻译<br>全文</button>");
$(value).find('.con-right').before("<br><button class='long_reading_option_btn'>翻译<br>选项</button>");
})
}
})
//为长篇阅读翻译按钮注册功能
$(document).on("click",".long_reading_translate_btn",function(){
$(this).removeClass('long_reading_translate_btn').addClass('long_reading_hide_btn').html("清空<br>翻译");
var context_list = [];
$(this).next().find("div[style='text-align:justify']").each(function () {
//将偶数的br替换为hr
$(this).children('br:even').replaceWith('<hr>')
context_list = $(this).html().split('<br>');
var re = new RegExp("\n","g");
$.each(context_list,function(index, value){
context_list[index] = value.replace(re, " ");
})
});
for (var contents in context_list) {
(function (contents, btn) {
setTimeout(function () {
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list[contents] + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list[contents],
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = "";
if (data.error_code == "54003") {
res_word = "<div style='color:red'>请求频率过快,请重试</div>";
}else if(data.error_code == "52003"){
res_word = "<div style='color:red'>请检查您的appid是否正确,或服务是否开通</div>";
}else if(data.trans_result) {
res_word = "<div style='color:blue'>" + data.trans_result[0].dst + "</div>";
}else if(data.error_code == "52001"){
res_word = "<div style='color:red'>错误码:" + data.error_code + "</div>";
}else if(data.error_code){
res_word = "<div style='color:red'>错误码:" + data.error_code + "</div>";
}
btn.next().find("div[style='text-align:justify']").each(function () {
$($(this).children('br')[contents]).after(res_word);
//解决最后一个的问题
if($(this).children('br')[contents] == undefined){
$(this).append(res_word);
}
});
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
}, 1500 * contents);
})(contents, $(this))
}
})
//为长篇阅读隐藏翻译按钮注册功能
$(document).on("click",".long_reading_hide_btn",function(){
$(this).removeClass('long_reading_hide_btn').addClass('long_reading_translate_btn').html("翻译<br>全文");
$(this).next().find("div[style='text-align:justify']").each(function () {
$.each($(this).children('hr'), function(index, value){
$(value).replaceWith('<br>');
})
$.each($(this).children('div'), function(index, value){
$(value).remove();
})
});
})
//为长篇阅读选项翻译注册功能
$(document).on("click",".long_reading_option_btn",function(){
$(this).removeClass('long_reading_option_btn').addClass('long_reading_option_hide_btn').html("清空</br>翻译")
var context_list = "";
$(this).next().find('span').each(function () {
context_list += $(this).context.innerText + '\n';
});
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var options = $(this).next().find('.option-head');
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
var str = "";
if (data.error_code == "54003") {
str = "</br><label style='color: red;'>请求频率过快,请重试</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.error_code == "52003"){
str = "</br><label style='color: red;'>请检查您的appid是否正确,或服务是否开通</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push("</br><label style='color: blue;'>" + e.dst + "</label>")
})
}else if(data.error_code){
str = "</br><label style='color: red;'>错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。</label>";
options.each(function(){
res_word.push(str);
})
}
$.each(options, function(index, value){
$(value).append(res_word[index])
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
});
//为长篇阅读选项翻译隐藏按钮注册功能
$(document).on("click",".long_reading_option_hide_btn",function(){
$(this).removeClass('long_reading_option_hide_btn').addClass('long_reading_option_btn').html("翻译</br>选项")
$(this).next().find(".option-head").each(function () {
$.each($(this).find('label'), function(index, value){
$(value).remove();
})
$.each($(this).children('br:even'), function(index, value){
$(value).remove();
})
});
});
}
//阅读理解功能辅助
function reading_comprehension(){
//为阅读理解添加翻译按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "阅读理解"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).prepend("<br><button class='reading_comprehension_translate_btn'>翻译<br>全文</button>");
$(value).find('.nu').append("</br><button class='reading_comprehension_option_btn'>翻译</br>选项</button>");
})
}
})
//为阅读理解翻译按钮注册功能
$(document).on("click",".reading_comprehension_translate_btn",function(){
$(this).removeClass('reading_comprehension_translate_btn').addClass('reading_comprehension_hide_btn').html("清空<br>翻译");
var context_list = "";
$(this).next().find(".article").each(function () {
$(this).children('p').each(function(){
var re = new RegExp("\n","g");
var str = $(this).text().replace(re, "") + '\n';
context_list += str;
})
});
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var options = $(this).next().find('p[style="text-align:justify"]');
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
var str = "";
if (data.error_code == "54003") {
str = "<label style='color: red;'>请求频率过快,请重试</label></br>";
options.each(function(){
res_word.push(str);
})
}else if(data.error_code == "52003"){
str = "<label style='color: red;'>请检查您的appid是否正确,或服务是否开通</label></br>";
options.each(function(){
res_word.push(str);
})
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push("<label style='color: blue;'>" + e.dst + "</label></br>")
})
}else if(data.error_code){
str = "<label style='color: red;'>错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。</label></br>";
options.each(function(){
res_word.push(str);
})
}
$.each(options, function(index, value){
$(value).append(res_word[index])
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
})
//为阅读理解隐藏按钮注册功能
$(document).on("click",".reading_comprehension_hide_btn",function(){
$(this).removeClass('reading_comprehension_hide_btn').addClass('reading_comprehension_translate_btn').html("翻译</br>选项")
$(this).next().find('p[style="text-align:justify"]').each(function () {
$.each($(this).find('label'), function(index, value){
$(value).remove();
})
$.each($(this).children('br:odd'), function(index, value){
$(value).remove();
})
});
});
//为阅读理解选项翻译注册功能
$(document).on("click",".reading_comprehension_option_btn",function(){
$(this).removeClass('reading_comprehension_option_btn').addClass('reading_comprehension_option_hide_btn').html("清空</br>翻译")
var context_list = "";
$(this).parent().parent().parent().find('label').each(function () {
context_list += $(this).text() + '\n';
});
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var options = $(this).parent().parent().parent().children('.option')
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
var str = "";
if (data.error_code == "54003") {
str = "</br><label style='color: red;'> 请求频率过快,请重试</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.error_code == "52003"){
str = "</br><label style='color: red;'> 请检查您的appid是否正确,或服务是否开通</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push("</br><label style='color: blue;'> " + e.dst + "</label>")
})
}else if(data.error_code){
str = "</br><label style='color: red;'> 错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。</label>";
options.each(function(){
res_word.push(str);
})
}
$.each(options, function(index, value){
$(value).append(res_word[index])
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
});
//为听力选项隐藏按钮注册功能
$(document).on("click",".reading_comprehension_option_hide_btn",function(){
$(this).removeClass('reading_comprehension_option_hide_btn').addClass('reading_comprehension_option_btn').html("翻译</br>选项")
$(this).parent().parent().parent().children('.option').each(function () {
$.each($(this).children('label'), function(index, value){
if(index != 0){
$(value).remove();
}
})
$.each($(this).children('br'), function(index, value){
$(value).remove();
})
});
});
}
function set_style(){
//设置样式
$('.option_translate_btn').css({
"background": "#FFCCCC",
"cursor": "pointer",
})
$('.long_reading_translate_btn').css({
"color": "#fff",
"background": "#FFCCCC",
"cursor": "pointer",
})
$('.long_reading_option_btn').css({
"color": "#fff",
"background": "#0066CC",
"cursor": "pointer",
})
$('.reading_comprehension_translate_btn').css({
"color": "#fff",
"background": "#FF6666",
"cursor": "pointer",
})
$('.reading_comprehension_option_btn').css({
"color": "#fff",
"background": "#003333",
"cursor": "pointer",
})
$('.paragraph_translate_btn').css({
"background": "#CCCCCC",
"cursor": "pointer",
})
$('.select_word_content_btn').css({
"background": "#66FF99",
"cursor": "pointer",
})
$('.select_word_translate_btn').css({
"background": "#CCFF00",
"cursor": "pointer",
})
$('audio').css({
"margin-left": "50px",
})
}
//选词填空功能辅助
function select_word(){
//为选词填空添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "选词填空(15选10)"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.itest-15xuan10').prepend("<br><button class='select_word_translate_btn'>翻译单词</button>");
$(value).find('.xx').after("</br><button class='select_word_content_btn'>翻译内容</button>");
})
}
})
//为单词翻译注册功能
$(document).on("click",".select_word_translate_btn",function(){
$(this).removeClass('select_word_translate_btn').addClass('select_word_hide_btn').html("清空翻译")
var context_list = "";
$(this).next().find('a').each(function () {
context_list += $(this).text() + '\n';
});
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var options = $(this).next().find('li')
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
var str = "";
if (data.error_code == "54003") {
str = "</br><label style='color: red;'>频率过快</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.error_code == "52003"){
str = "</br><label style='color: red;'>检查appid</label>";
options.each(function(){
res_word.push(str);
})
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push("</br><label style='color: blue;'>" + e.dst + "</label>")
})
}else if(data.error_code){
str = "</br><label style='color: red;'>错误码:" + data.error_code + "</label>";
options.each(function(){
res_word.push(str);
})
}
$.each(options, function(index, value){
$(value).append(res_word[index])
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
});
//为单词翻译隐藏按钮注册功能
$(document).on("click",".select_word_hide_btn",function(){
$(this).removeClass('select_word_hide_btn').addClass('select_word_translate_btn').html("翻译单词")
$(this).next().find('li').each(function () {
$.each($(this).children('label'), function(index, value){
$(value).remove();
})
$.each($(this).children('br'), function(index, value){
$(value).remove();
})
});
});
//为翻译内容按钮注册功能
$(document).on("click",".select_word_content_btn",function(){
$(this).removeClass('select_word_content_btn').addClass('select_word_content_hide_btn').html("清空翻译");
var context_list = "";
var re = new RegExp("[0-9][0-9]\\)","g");
var re2 = new RegExp("\n","g");
$(this).next().children('p[style="text-align:justify"]').each(function(){
var str = $(this).text().replace(re, "(XXX)").replace(re2, " ") + '\n';
context_list += str;
});
var trans_salt = (new Date).getTime();
var trans_from = 'en';
var trans_to = 'zh';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var options = $(this).next().find('p[style="text-align:justify"]');
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
var str = "";
if (data.error_code == "54003") {
str = "<label style='color: red;'>请求频率过快,请重试</label></br>";
options.each(function(){
res_word.push(str);
})
}else if(data.error_code == "52003"){
str = "<label style='color: red;'>请检查您的appid是否正确,或服务是否开通</label></br>";
options.each(function(){
res_word.push(str);
})
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push("<label style='color: blue;'>" + e.dst + "</label></br>")
})
}else if(data.error_code){
str = "<label style='color: red;'>错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。</label></br>";
options.each(function(){
res_word.push(str);
})
}
$.each(options, function(index, value){
$(value).append(res_word[index])
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
})
//为翻译内容隐藏按钮注册功能
$(document).on("click",".select_word_content_hide_btn",function(){
$(this).removeClass('select_word_content_hide_btn').addClass('select_word_content_btn').html("翻译内容")
$(this).next().find('p[style="text-align:justify"]').each(function () {
$.each($(this).children('label'), function(index, value){
$(value).remove();
})
$.each($(this).children('br:odd'), function(index, value){
$(value).remove();
})
});
});
}
//段落翻译功能辅助
function paragraph_translate(){
//为段落翻译添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "段落翻译"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.nu').append("</br><button class='paragraph_translate_btn'>翻译</br>全文</button>");
})
}
})
//为翻译全文按钮注册功能
$(document).on("click",".paragraph_translate_btn",function(){
$(this).removeClass('paragraph_translate_btn').addClass('paragraph_translate_hide_btn').html("清空</br>翻译");
var context_list = "";
var re = new RegExp("\\(.*?\\)","g");
var re2 = new RegExp("(.*?)","g");
var re3 = new RegExp("\n","g");
$(this).parent().next().find('div[style="text-align:justify"]').each(function(){
var str = $(this).text().replace(re, "").replace(re2, "").replace(re3, "") + '\n';
context_list += str;
});
var trans_salt = (new Date).getTime();
var trans_from = 'zh';
var trans_to = 'en';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var textarea_trans = $(this).parent().parent().find('textarea');
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = "";
if (data.error_code == "54003") {
res_word = "请求频率过快,请重试";
}else if(data.error_code == "52003"){
res_word = "请检查您的appid是否正确,或服务是否开通";
}else if(data.trans_result) {
res_word = data.trans_result[0].dst;
}else if(data.error_code){
res_word = "错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。";
}
$.each(textarea_trans, function(index, value){
$(value).val(res_word);
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
})
//为清空翻译内容按钮注册功能
$(document).on("click",".paragraph_translate_hide_btn",function(){
$(this).removeClass('paragraph_translate_hide_btn').addClass('paragraph_translate_btn').html("翻译</br>全文")
$(this).parent().parent().find('textarea').each(function () {
$(this).val("");
});
});
}
//写作功能辅助
function writing(){
//为写作翻译添加按钮
$.each($('.itest-section'), function(index, value){
if($(value).attr('part1') == "写作"){
$.each($(value).children('.itest-ques-set'), function(index, value){
$(value).find('.nu').append("<br><button class='writing_translate_btn'>中翻英</button>");
$(value).find('textarea').val("清空该行,在此处输入中文后点击「中翻英」按钮即可翻译");
})
}
})
//为写作翻译按钮注册功能
$(document).on("click",".writing_translate_btn",function(){
var context_list = "";
var re = new RegExp("\n","g");
$(this).parent().parent().find('textarea').each(function(){
var str = $(this).val() + '\n';
context_list += str;
});
var trans_salt = (new Date).getTime();
var trans_from = 'zh';
var trans_to = 'en';
var trans_str = trans_appid + context_list + trans_salt + trans_key;
var trans_sign = $.md5(trans_str);
var textarea_trans = $(this).parent().parent().find('textarea');
$.ajax({
type: "post",
async: false,
url: "https://api.fanyi.baidu.com/api/trans/vip/translate",
dataType: "jsonp",
data: {
q: context_list,
from: trans_from,
to: trans_to,
appid: trans_appid,
salt: trans_salt,
sign: trans_sign
},
success: function (data) {
var res_word = [];
if (data.error_code == "54003") {
res_word.push("请求频率过快,请重试");
}else if(data.error_code == "52003"){
res_word.push("请检查您的appid是否正确,或服务是否开通");
}else if(data.trans_result) {
data.trans_result.forEach(function(e){
res_word.push(e.dst);
})
}else if(data.error_code){
res_word.push("错误码:" + data.error_code + ",请于http://api.fanyi.baidu.com/doc/21核对。");
}
$.each(textarea_trans, function(index, value){
$(value).val('');
res_word.forEach(function(e){
var str = $(value).val() + '\n' + e;
$(value).val(str)
})
})
},
error: function () {
alert('百度翻译接口测试失败,请检测appid和key!');
}
});
})
}
})();