Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $.fn.extend({
- translate: function(sourceLang, targetLang) {
- if($(this).text().trim().length < 1 || !isNaN(parseInt($(this).text().trim())) || sourceLang == targetLang)
- return;
- let $function = this;
- $($function).each(function() {
- let $each = this;
- $.ajax({
- url: 'https://translate.yandex.net/api/v1.5/tr.json/translate',
- method: 'GET',
- dataType: 'JSONP',
- crossDomain: true,
- data: {
- key: /* my-secret-key */,
- text: $($each).text(),
- lang: sourceLang + '-' + targetLang
- },
- success: function(response) {
- try {
- if(response.code !== 200)
- throw "Response: " + response.code;
- $($each).text(response.text[0])
- } catch(error) {
- console.error('Translation error on element: ', $($function).text());
- console.error('Message returned by the server:', error);
- }
- },
- error: function(xhr, status, error) {
- console.error('Translation error on element: ', $($function).text());
- console.error('Message returned by the server:', xhr.responseText);
- }
- });
- });
- }
- });
- $(document).ready(function() {
- let lang = $('html').attr('lang').split('-')[0];
- $('td td:visible').translate(lang, "en");
- });
- let iv = setInterval(function() {
- let lang = $('html').attr('lang').split('-')[0];
- let rows = $('tbody td:visible');
- if(rows.length > 0) {
- rows.translate(lang, "en");
- clearInterval(iv);
- }
- }, 1000);
- let isTranslated = false;
- while(!isTranslated) {
- let lang = $('html').attr('lang').split('-')[0];
- let rows = $('tbody td:visible');
- if(rows.length > 0) {
- rows.delay(1000).translate(lang, "en");
- isTranslated = true;
- }
- }
Add Comment
Please, Sign In to add comment