Translate WordPress with GTranslate - Version 2.8.58

Version Description

  • New monochrome flags option
  • Avoids using /RegEx/ in JavaScript to not cause conflicts with WP Rocket optimizer
Download this release

Release Info

Developer edo888
Plugin Icon 128x128 Translate WordPress with GTranslate
Version 2.8.58
Comparing to
See all releases

Code changes from version 2.8.57 to 2.8.58

Files changed (2) hide show
  1. gtranslate.php +46 -35
  2. readme.txt +14 -9
gtranslate.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: GTranslate
4
  Plugin URI: https://gtranslate.io/?xyz=998
5
  Description: Makes your website <strong>multilingual</strong> and available to the world using Google Translate. For support visit <a href="https://wordpress.org/support/plugin/gtranslate">GTranslate Support</a>.
6
- Version: 2.8.57
7
  Author: Translate AI Multilingual Solutions
8
  Author URI: https://gtranslate.io
9
  Text Domain: gtranslate
@@ -307,6 +307,7 @@ function RefreshDoWidgetCode() {
307
  var widget_look = jQuery('#widget_look').val();
308
  var default_language = jQuery('#default_language').val();
309
  var flag_size = jQuery('#flag_size').val();
 
310
  var pro_version = jQuery('#pro_version:checked').length > 0 ? true : false;
311
  var enterprise_version = jQuery('#enterprise_version:checked').length > 0 ? true : false;
312
  var new_window = jQuery('#new_window:checked').length > 0 ? true : false;
@@ -374,9 +375,9 @@ function RefreshDoWidgetCode() {
374
  }
375
 
376
  if(widget_look == 'dropdown' || widget_look == 'lang_names' || widget_look == 'lang_codes' || widget_look == 'globe') {
377
- jQuery('#flag_size_option').hide();
378
  } else {
379
- jQuery('#flag_size_option').show();
380
  }
381
 
382
  if(widget_look == 'dropdown_with_flags') {
@@ -411,9 +412,10 @@ function RefreshDoWidgetCode() {
411
  lang_name = gt_lang_array[lang];
412
 
413
  var href = '#';
414
- if(pro_version)
415
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
416
- else if(enterprise_version)
 
417
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), lang + '.' + '$site_url'.split('/').slice(2, 3)[0].replace('www.', '')).replace('://www.', '://');
418
 
419
  widget_preview += '<a href="'+href+'" onclick="doGTranslate(\''+default_language+'|'+lang+'\');return false;" title="'+lang_name+'" class="glink nturl notranslate">';
@@ -476,7 +478,7 @@ function RefreshDoWidgetCode() {
476
 
477
  // Adding onfly html and css
478
  if(translation_method == 'onfly') {
479
- widget_code += '<style type="text/css">'+new_line;
480
  widget_code += "#goog-gt-tt {display:none !important;}"+new_line;
481
  widget_code += ".goog-te-banner-frame {display:none !important;}"+new_line;
482
  widget_code += ".goog-te-menu-value:hover {text-decoration:none !important;}"+new_line;
@@ -485,20 +487,24 @@ function RefreshDoWidgetCode() {
485
  widget_code += "#google_translate_element2 {display:none!important;}"+new_line;
486
  widget_code += '</style>'+new_line+new_line;
487
  widget_code += '<div id="google_translate_element2"></div>'+new_line;
488
- widget_code += '<script type="text/javascript">'+new_line;
489
  widget_code += 'function googleTranslateElementInit2() {new google.translate.TranslateElement({pageLanguage: \'';
490
  widget_code += default_language;
491
  widget_code += '\',autoDisplay: false';
492
  widget_code += "}, 'google_translate_element2');}"+new_line;
493
  widget_code += '<\/script>';
494
- widget_code += '<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"><\/script>'+new_line;
 
 
 
 
495
  }
496
 
497
  if(widget_look == 'globe') {
498
  widget_preview += '<span class="gsatelites"></span><span class="gglobe"></span>';
499
 
500
  // Adding css
501
- widget_preview += '<style type="text/css">'+new_line;
502
  widget_preview += '.gglobe {background-image:url($wp_plugin_url/gtglobe.svg);opacity:0.8;border-radius:50%;height:40px;width:40px;cursor:pointer;display:block;-moz-transition: all 0.3s;-webkit-transition: all 0.3s;transition: all 0.3s;}'+new_line;
503
  widget_preview += '.gglobe:hover {opacity:1;-moz-transform: scale(1.2);-webkit-transform: scale(1.2);transform: scale(1.2);}'+new_line;
504
  widget_preview += '.gsatelite {background-color:#777777;opacity:0.95;border-radius:50%;height:24px;width:24px;cursor:pointer;position:absolute;z-index:100000;display:none;-moz-transition: all 0.3s;-webkit-transition: all 0.3s;transition: all 0.3s;}'+new_line;
@@ -506,7 +512,7 @@ function RefreshDoWidgetCode() {
506
  widget_preview += '</style>'+new_line+new_line;
507
 
508
  // Adding javascript
509
- widget_preview += '<script type="text/javascript">'+new_line;
510
  widget_preview += "function renderGSatelites($, e) { $('.gsatelite').remove();"+new_line;
511
  widget_preview += "var centerPosition = $('.gglobe').position();"+new_line;
512
  widget_preview += "centerPosition.left += Math.floor($('.gglobe').width() / 2) - 10;"+new_line;
@@ -566,9 +572,10 @@ function RefreshDoWidgetCode() {
566
  lang_name = gt_lang_array[lang];
567
 
568
  var href = '#';
569
- if(pro_version)
570
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
571
- else if(enterprise_version)
 
572
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), lang + '.' + '$site_url'.split('/').slice(2, 3)[0].replace('www.', '')).replace('://www.', '://');
573
 
574
  widget_preview += '<a href="'+href+'" onclick="changeGTLanguage(\''+default_language+'|'+lang+'\', this);return false;" title="'+lang_name+'" class="glink nturl'+(default_language == lang ? ' selected' : '')+'">';
@@ -624,7 +631,8 @@ function RefreshDoWidgetCode() {
624
  popup_columns = 5;
625
 
626
  // style
627
- widget_preview += '<style type="text/css">'+new_line;
 
628
  widget_preview += '.gt_black_overlay {display:none;position:fixed;top:0%;left:0%;width:100%;height:100%;background-color:black;z-index:2017;-moz-opacity:0.8;opacity:.80;filter:alpha(opacity=80);}'+new_line;
629
  widget_preview += '.gt_white_content {display:none;position:fixed;top:50%;left:50%;width:'+popup_width+'px;height:'+popup_height+'px;margin:-'+(popup_height/2)+'px 0 0 -'+(popup_width/2)+'px;padding:6px 16px;border-radius:5px;background-color:white;color:black;z-index:19881205;overflow:auto;text-align:left;}'+new_line;
630
  widget_preview += '.gt_white_content a {display:block;padding:5px 0;border-bottom:1px solid #e7e7e7;white-space:nowrap;}'+new_line;
@@ -637,7 +645,7 @@ function RefreshDoWidgetCode() {
637
  widget_preview += '</style>'+new_line+new_line;
638
 
639
  // javascript
640
- widget_preview += '<script type="text/javascript">'+new_line;
641
  widget_preview += "function openGTPopup(a) {jQuery('.gt_white_content a img').each(function() {if(!jQuery(this)[0].hasAttribute('src'))jQuery(this).attr('src', jQuery(this).attr('data-gt-lazy-src'))});if(a === undefined){document.getElementById('gt_lightbox').style.display='block';document.getElementById('gt_fade').style.display='block';}else{jQuery(a).parent().find('#gt_lightbox').css('display', 'block');jQuery(a).parent().find('#gt_fade').css('display', 'block');}}"+new_line;
642
  widget_preview += "function closeGTPopup() {jQuery('.gt_white_content').css('display', 'none');jQuery('.gt_black_overlay').css('display', 'none');}"+new_line;
643
  widget_preview += "function changeGTLanguage(pair, a) {doGTranslate(pair);jQuery('a.switcher-popup').html(jQuery(a).html()+'<span style=\"color:#666;font-size:8px;font-weight:bold;\">&#9660;</span>');closeGTPopup();}"+new_line;
@@ -670,20 +678,15 @@ function RefreshDoWidgetCode() {
670
  }
671
 
672
  // Adding slider css
673
- widget_preview += '<style type="text/css">'+new_line;
674
  widget_preview += '.switcher {font-family:Arial;font-size:'+font_size+'pt;text-align:left;cursor:pointer;overflow:hidden;width:'+widget_width+'px;line-height:17px;}'+new_line;
675
  widget_preview += '.switcher a {text-decoration:none;display:block;font-size:'+font_size+'pt;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}'+new_line;
676
- widget_preview += '.switcher a img {vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:0.8;}'+new_line;
677
  widget_preview += '.switcher a:hover img {opacity:1;}'+new_line;
678
- //widget_preview += '.switcher .selected {background:#fff url($wp_plugin_url/switcher.png) repeat-x;position:relative;z-index:9999;}'+new_line;
679
  widget_preview += '.switcher .selected {background:'+switcher_background_color+' linear-gradient(180deg, '+switcher_background_shadow_color+' 0%, '+switcher_background_color+' 70%);position:relative;z-index:9999;}'+new_line;
680
- //widget_preview += '.switcher .selected a {border:1px solid '+switcher_border_color+';background:url($wp_plugin_url/arrow_down.png) '+(widget_width - 2 * 5 - 2 * 1 - 5)+'px center no-repeat;color:'+switcher_text_color+';padding:3px 5px;width:'+(widget_width - 2 * 5 - 2 * 1)+'px;}'+new_line;
681
  widget_preview += '.switcher .selected a {border:1px solid '+switcher_border_color+';color:'+switcher_text_color+';padding:3px 5px;width:'+(widget_width - 2 * 5 - 2 * 1)+'px;}'+new_line;
682
- //////widget_preview += '.switcher .selected a:after {height:'+flag_size+'px;display:inline-block;position:absolute;right:10px;width:15px;background-position:50%;background-size:'+arrow_size+'px;background-image:url($wp_plugin_url/arrow_down.svg);background-repeat:no-repeat;color:'+switcher_text_color+';line-height:37px;content:""!important;transition:all .2s;}'+new_line;
683
  widget_preview += '.switcher .selected a:after {height:'+flag_size+'px;display:inline-block;position:absolute;right:'+(flag_size < 20 ? 5 : 10)+'px;width:15px;background-position:50%;background-size:'+arrow_size+'px;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' width=\'16\' height=\'16\' viewBox=\'0 0 285 285\'><path d=\'M282 76.5l-14.2-14.3a9 9 0 0 0-13.1 0L142.5 174.4 30.3 62.2a9 9 0 0 0-13.2 0L3 76.5a9 9 0 0 0 0 13.1l133 133a9 9 0 0 0 13.1 0l133-133a9 9 0 0 0 0-13z\' style=\'fill:'+escape(switcher_arrow_color)+'\'/></svg>");background-repeat:no-repeat;content:""!important;transition:all .2s;}'+new_line;
684
- //widget_preview += '.switcher .selected a.open {background-image:url($wp_plugin_url/arrow_up.png)}'+new_line;
685
  widget_preview += '.switcher .selected a.open:after {-webkit-transform: rotate(-180deg);transform:rotate(-180deg);}'+new_line;
686
- //widget_preview += '.switcher .selected a:hover {background:#f0f0f0 url($wp_plugin_url/arrow_down.png) '+(widget_width - 2 * 5 - 2 * 1 - 5)+'px center no-repeat;}'+new_line;
687
  widget_preview += '.switcher .selected a:hover {background:'+switcher_background_hover_color+'}'+new_line;
688
  widget_preview += '.switcher .option {position:relative;z-index:9998;border-left:1px solid '+switcher_border_color+';border-right:1px solid '+switcher_border_color+';border-bottom:1px solid '+switcher_border_color+';background-color:'+dropdown_background_color+';display:none;width:'+(widget_width - 2 * 1)+'px;max-height:198px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;overflow-y:auto;overflow-x:hidden;}'+new_line;
689
  widget_preview += '.switcher .option a {color:'+dropdown_text_color+';padding:3px 5px;}'+new_line;
@@ -729,9 +732,10 @@ function RefreshDoWidgetCode() {
729
  lang_name = gt_lang_array[lang];
730
 
731
  var href = '#';
732
- if(pro_version)
733
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
734
- else if(enterprise_version)
 
735
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), lang + '.' + '$site_url'.split('/').slice(2, 3)[0].replace('www.', '')).replace('://www.', '://');
736
 
737
  widget_preview += '<a href="'+href+'" onclick="doGTranslate(\''+default_language+'|'+lang+'\');jQuery(\'div.switcher div.selected a\').html(jQuery(this).html());return false;" title="'+lang_name+'" class="nturl'+(default_language == lang ? ' selected' : '')+'">';
@@ -760,7 +764,7 @@ function RefreshDoWidgetCode() {
760
  widget_preview += '</div>'+new_line;
761
 
762
  // Adding slider javascript
763
- widget_preview += '<script type="text/javascript">'+new_line;
764
  widget_preview += "jQuery('.switcher .selected').click(function() {jQuery('.switcher .option a img').each(function() {if(!jQuery(this)[0].hasAttribute('src'))jQuery(this).attr('src', jQuery(this).attr('data-gt-lazy-src'))});if(!(jQuery('.switcher .option').is(':visible'))) {jQuery('.switcher .option').stop(true,true).delay(100).slideDown(500);jQuery('.switcher .selected a').toggleClass('open')}});"+new_line;
765
  widget_preview += "jQuery('.switcher .option').bind('mousewheel', function(e) {var options = jQuery('.switcher .option');if(options.is(':visible'))options.scrollTop(options.scrollTop() - e.originalEvent.wheelDelta);return false;});"+new_line;
766
  widget_preview += "jQuery('body').not('.switcher').click(function(e) {if(jQuery('.switcher .option').is(':visible') && e.target != jQuery('.switcher .option').get(0)) {jQuery('.switcher .option').stop(true,true).delay(100).slideUp(500);jQuery('.switcher .selected a').toggleClass('open')}});"+new_line;
@@ -769,7 +773,7 @@ function RefreshDoWidgetCode() {
769
 
770
  // Adding javascript
771
  widget_code += new_line+new_line;
772
- widget_code += '<script type="text/javascript">'+new_line;
773
  if(pro_version && translation_method == 'redirect' && new_window) {
774
  widget_code += "function openTab(url) {var form=document.createElement('form');form.method='post';form.action=url;form.target='_blank';document.body.appendChild(form);form.submit();}"+new_line;
775
  if(analytics)
@@ -796,9 +800,9 @@ function RefreshDoWidgetCode() {
796
  widget_code += "function GTranslateGetCurrentLang() {var keyValue = document['cookie'].match('(^|;) ?googtrans=([^;]*)(;|$)');return keyValue ? keyValue[2].split('/')[2] : null;}"+new_line;
797
  widget_code += "function GTranslateFireEvent(element,event){try{if(document.createEventObject){var evt=document.createEventObject();element.fireEvent('on'+event,evt)}else{var evt=document.createEvent('HTMLEvents');evt.initEvent(event,true,true);element.dispatchEvent(evt)}}catch(e){}}"+new_line;
798
  if(analytics)
799
- widget_code += "function doGTranslate(lang_pair){if(lang_pair.value)lang_pair=lang_pair.value;if(lang_pair=='')return;var lang=lang_pair.split('|')[1];if(GTranslateGetCurrentLang() == null && lang == lang_pair.split('|')[0])return;if(typeof ga!='undefined'){ga('send', 'event', 'GTranslate', lang, location.hostname+location.pathname+location.search);}else{if(typeof _gaq!='undefined')_gaq.push(['_trackEvent', 'GTranslate', lang, location.hostname+location.pathname+location.search]);}var teCombo;var sel=document.getElementsByTagName('select');for(var i=0;i<sel.length;i++)if(/goog-te-combo/.test(sel[i].className)){teCombo=sel[i];break;}if(document.getElementById('google_translate_element2')==null||document.getElementById('google_translate_element2').innerHTML.length==0||teCombo.length==0||teCombo.innerHTML.length==0){setTimeout(function(){doGTranslate(lang_pair)},500)}else{teCombo.value=lang;GTranslateFireEvent(teCombo,'change');GTranslateFireEvent(teCombo,'change')}}"+new_line;
800
  else
801
- widget_code += "function doGTranslate(lang_pair){if(lang_pair.value)lang_pair=lang_pair.value;if(lang_pair=='')return;var lang=lang_pair.split('|')[1];if(GTranslateGetCurrentLang() == null && lang == lang_pair.split('|')[0])return;var teCombo;var sel=document.getElementsByTagName('select');for(var i=0;i<sel.length;i++)if(/goog-te-combo/.test(sel[i].className)){teCombo=sel[i];break;}if(document.getElementById('google_translate_element2')==null||document.getElementById('google_translate_element2').innerHTML.length==0||teCombo.length==0||teCombo.innerHTML.length==0){setTimeout(function(){doGTranslate(lang_pair)},500)}else{teCombo.value=lang;GTranslateFireEvent(teCombo,'change');GTranslateFireEvent(teCombo,'change')}}"+new_line;
802
  if(widget_look == 'dropdown_with_flags') {
803
  widget_code += "if(GTranslateGetCurrentLang() != null)jQuery(document).ready(function() {var lang_html = jQuery('div.switcher div.option').find('img[alt=\"'+GTranslateGetCurrentLang()+'\"]').parent().html();if(typeof lang_html != 'undefined')jQuery('div.switcher div.selected a').html(lang_html.replace('data-gt-lazy-', ''));});"+new_line;
804
  } else if(widget_look == 'popup') {
@@ -841,6 +845,7 @@ jQuery('#add_new_line').attr('checked', '$add_new_line'.length > 0);
841
  jQuery('#default_language').val('$default_language');
842
  jQuery('#widget_look').val('$widget_look');
843
  jQuery('#flag_size').val('$flag_size');
 
844
  jQuery('#switcher_text_color').val('$switcher_text_color');
845
  jQuery('#switcher_arrow_color').val('$switcher_arrow_color');
846
  jQuery('#switcher_border_color').val('$switcher_border_color');
@@ -887,9 +892,9 @@ if('$widget_look' == 'flags_dropdown') {
887
  }
888
 
889
  if('$widget_look' == 'dropdown' || '$widget_look' == 'lang_names' || '$widget_look' == 'lang_codes' || '$widget_look' == 'globe') {
890
- jQuery('#flag_size_option').hide();
891
  } else {
892
- jQuery('#flag_size_option').show();
893
  }
894
 
895
  if(jQuery('#native_language_names:checked').length) {
@@ -1178,6 +1183,10 @@ EOT;
1178
  </select>
1179
  </td>
1180
  </tr>
 
 
 
 
1181
  <tr id="flag_languages_option" style="display:none;">
1182
  <td class="option_name" colspan="2"><div><?php _e('Flag languages', 'gtranslate'); ?>: <a onclick="jQuery('.connectedSortable1 input').attr('checked', true);RefreshDoWidgetCode()" style="cursor:pointer;text-decoration:underline;"><?php _e('Check All', 'gtranslate'); ?></a> | <a onclick="jQuery('.connectedSortable1 input').attr('checked', false);RefreshDoWidgetCode()" style="cursor:pointer;text-decoration:underline;"><?php _e('Uncheck All', 'gtranslate'); ?></a> <span style="float:right;"><b>HINT</b>: To reorder the languages simply drag and drop them in the list below.</span></div><br />
1183
  <div>
@@ -1266,7 +1275,7 @@ EOT;
1266
 
1267
  </div>
1268
 
1269
- <script type="text/javascript">
1270
  function gt_validate_form() {
1271
  if(document.getElementById('use_encoding').checked)
1272
  document.getElementById('widget_code').value = btoa(encodeURIComponent(document.getElementById('widget_code').value));
@@ -1434,8 +1443,8 @@ EOT;
1434
  </div>
1435
  </div>
1436
 
1437
- <script type="text/javascript"><?php echo $script; ?></script>
1438
- <style type="text/css">
1439
  #widget_preview a:focus {box-shadow:none;outline:none;}
1440
  .switcher_color_options button {box-shadow:none !important;border:1px solid #b4b9be !important;border-radius:0 !important;}
1441
  .switcher_color_options h3 a {text-decoration:none;font-weight:400;}
@@ -1487,6 +1496,7 @@ EOT;
1487
  $data['translation_method'] = 'onfly';
1488
  $data['widget_look'] = isset($_POST['widget_look']) ? sanitize_text_field($_POST['widget_look']) : 'flags_dropdown';
1489
  $data['flag_size'] = isset($_POST['flag_size']) ? intval($_POST['flag_size']) : '16';
 
1490
  $data['incl_langs'] = (isset($_POST['incl_langs']) and is_array($_POST['incl_langs'])) ? $_POST['incl_langs'] : array($data['default_language']);
1491
  $data['fincl_langs'] = (isset($_POST['fincl_langs']) and is_array($_POST['fincl_langs'])) ? $_POST['fincl_langs'] : array($data['default_language']);
1492
  $data['alt_flags'] = (isset($_POST['alt_flags']) and is_array($_POST['alt_flags'])) ? $_POST['alt_flags'] : array();
@@ -1578,6 +1588,7 @@ EOT;
1578
 
1579
  $data['widget_look'] = isset($data['widget_look']) ? $data['widget_look'] : 'dropdown_with_flags';
1580
  $data['flag_size'] = isset($data['flag_size']) ? $data['flag_size'] : '24';
 
1581
  $data['widget_code'] = isset($data['widget_code']) ? $data['widget_code'] : '';
1582
  $data['incl_langs'] = isset($data['incl_langs']) ? $data['incl_langs'] : array('en', 'es', 'it', 'pt', 'de', 'fr', 'ru', 'nl', 'ar', 'zh-CN');
1583
  $data['fincl_langs'] = isset($data['fincl_langs']) ? $data['fincl_langs'] : array('en', 'es', 'it', 'pt', 'de', 'fr', 'ru', 'nl', 'ar', 'zh-CN');
@@ -2048,7 +2059,7 @@ if(!empty($data['show_in_menu'])) {
2048
  $items .= '</li>';
2049
 
2050
  if($data['widget_look'] == 'flags_dropdown') {
2051
- $items .= '<style type="text/css">.menu-item-gtranslate a {display:inline !important;padding:0 !important;margin:0 !important;}</style>';
2052
  }
2053
 
2054
  } else {
@@ -2112,7 +2123,7 @@ if($data['pro_version'] or $data['enterprise_version']) {
2112
  add_action('admin_head', 'gtranslate_request_uri_var');
2113
 
2114
  function gtranslate_request_uri_var() {
2115
- echo "<script type='text/javascript'>var gt_request_uri = '".addslashes($_SERVER['REQUEST_URI'])."';</script>";
2116
  }
2117
  }
2118
 
@@ -2317,7 +2328,7 @@ if($data['pro_version'] or $data['enterprise_version']) {
2317
  $json = $jsons[$i];
2318
  $js = $jss[$i];
2319
 
2320
- $return .= "<script id='$attribute_id' type='application/json'>$json</script>\n<script type='text/javascript'>$js</script>\n";
2321
  }
2322
 
2323
  return $return . $tag;
3
  Plugin Name: GTranslate
4
  Plugin URI: https://gtranslate.io/?xyz=998
5
  Description: Makes your website <strong>multilingual</strong> and available to the world using Google Translate. For support visit <a href="https://wordpress.org/support/plugin/gtranslate">GTranslate Support</a>.
6
+ Version: 2.8.58
7
  Author: Translate AI Multilingual Solutions
8
  Author URI: https://gtranslate.io
9
  Text Domain: gtranslate
307
  var widget_look = jQuery('#widget_look').val();
308
  var default_language = jQuery('#default_language').val();
309
  var flag_size = jQuery('#flag_size').val();
310
+ var monochrome_flags = jQuery('#monochrome_flags:checked').length > 0 ? true : false;
311
  var pro_version = jQuery('#pro_version:checked').length > 0 ? true : false;
312
  var enterprise_version = jQuery('#enterprise_version:checked').length > 0 ? true : false;
313
  var new_window = jQuery('#new_window:checked').length > 0 ? true : false;
375
  }
376
 
377
  if(widget_look == 'dropdown' || widget_look == 'lang_names' || widget_look == 'lang_codes' || widget_look == 'globe') {
378
+ jQuery('#flag_size_option,#flag_monochrome_option').hide();
379
  } else {
380
+ jQuery('#flag_size_option,#flag_monochrome_option').show();
381
  }
382
 
383
  if(widget_look == 'dropdown_with_flags') {
412
  lang_name = gt_lang_array[lang];
413
 
414
  var href = '#';
415
+ if(pro_version) {
416
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
417
+ if(lang != default_language && href.endsWith('/'+lang)) href += '/';
418
+ } else if(enterprise_version)
419
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), lang + '.' + '$site_url'.split('/').slice(2, 3)[0].replace('www.', '')).replace('://www.', '://');
420
 
421
  widget_preview += '<a href="'+href+'" onclick="doGTranslate(\''+default_language+'|'+lang+'\');return false;" title="'+lang_name+'" class="glink nturl notranslate">';
478
 
479
  // Adding onfly html and css
480
  if(translation_method == 'onfly') {
481
+ widget_code += '<style>'+new_line;
482
  widget_code += "#goog-gt-tt {display:none !important;}"+new_line;
483
  widget_code += ".goog-te-banner-frame {display:none !important;}"+new_line;
484
  widget_code += ".goog-te-menu-value:hover {text-decoration:none !important;}"+new_line;
487
  widget_code += "#google_translate_element2 {display:none!important;}"+new_line;
488
  widget_code += '</style>'+new_line+new_line;
489
  widget_code += '<div id="google_translate_element2"></div>'+new_line;
490
+ widget_code += '<script>'+new_line;
491
  widget_code += 'function googleTranslateElementInit2() {new google.translate.TranslateElement({pageLanguage: \'';
492
  widget_code += default_language;
493
  widget_code += '\',autoDisplay: false';
494
  widget_code += "}, 'google_translate_element2');}"+new_line;
495
  widget_code += '<\/script>';
496
+ widget_code += '<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"><\/script>'+new_line;
497
+ }
498
+
499
+ if(monochrome_flags && (widget_look == 'flags' || widget_look == 'flags_dropdown' || widget_look == 'flags_name' || widget_look == 'flags_code')) {
500
+ widget_preview += new_line+'<style>a.glink img {filter:grayscale(100%);-webkit-filter:grayscale(100%);}</style>'+new_line;
501
  }
502
 
503
  if(widget_look == 'globe') {
504
  widget_preview += '<span class="gsatelites"></span><span class="gglobe"></span>';
505
 
506
  // Adding css
507
+ widget_preview += '<style>'+new_line;
508
  widget_preview += '.gglobe {background-image:url($wp_plugin_url/gtglobe.svg);opacity:0.8;border-radius:50%;height:40px;width:40px;cursor:pointer;display:block;-moz-transition: all 0.3s;-webkit-transition: all 0.3s;transition: all 0.3s;}'+new_line;
509
  widget_preview += '.gglobe:hover {opacity:1;-moz-transform: scale(1.2);-webkit-transform: scale(1.2);transform: scale(1.2);}'+new_line;
510
  widget_preview += '.gsatelite {background-color:#777777;opacity:0.95;border-radius:50%;height:24px;width:24px;cursor:pointer;position:absolute;z-index:100000;display:none;-moz-transition: all 0.3s;-webkit-transition: all 0.3s;transition: all 0.3s;}'+new_line;
512
  widget_preview += '</style>'+new_line+new_line;
513
 
514
  // Adding javascript
515
+ widget_preview += '<script>'+new_line;
516
  widget_preview += "function renderGSatelites($, e) { $('.gsatelite').remove();"+new_line;
517
  widget_preview += "var centerPosition = $('.gglobe').position();"+new_line;
518
  widget_preview += "centerPosition.left += Math.floor($('.gglobe').width() / 2) - 10;"+new_line;
572
  lang_name = gt_lang_array[lang];
573
 
574
  var href = '#';
575
+ if(pro_version) {
576
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
577
+ if(lang != default_language && href.endsWith('/'+lang)) href += '/';
578
+ } else if(enterprise_version)
579
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), lang + '.' + '$site_url'.split('/').slice(2, 3)[0].replace('www.', '')).replace('://www.', '://');
580
 
581
  widget_preview += '<a href="'+href+'" onclick="changeGTLanguage(\''+default_language+'|'+lang+'\', this);return false;" title="'+lang_name+'" class="glink nturl'+(default_language == lang ? ' selected' : '')+'">';
631
  popup_columns = 5;
632
 
633
  // style
634
+ widget_preview += '<style>'+new_line;
635
+ if(monochrome_flags) widget_preview += 'a.glink img {filter:grayscale(100%);-webkit-filter:grayscale(100%);}'+new_line;
636
  widget_preview += '.gt_black_overlay {display:none;position:fixed;top:0%;left:0%;width:100%;height:100%;background-color:black;z-index:2017;-moz-opacity:0.8;opacity:.80;filter:alpha(opacity=80);}'+new_line;
637
  widget_preview += '.gt_white_content {display:none;position:fixed;top:50%;left:50%;width:'+popup_width+'px;height:'+popup_height+'px;margin:-'+(popup_height/2)+'px 0 0 -'+(popup_width/2)+'px;padding:6px 16px;border-radius:5px;background-color:white;color:black;z-index:19881205;overflow:auto;text-align:left;}'+new_line;
638
  widget_preview += '.gt_white_content a {display:block;padding:5px 0;border-bottom:1px solid #e7e7e7;white-space:nowrap;}'+new_line;
645
  widget_preview += '</style>'+new_line+new_line;
646
 
647
  // javascript
648
+ widget_preview += '<script>'+new_line;
649
  widget_preview += "function openGTPopup(a) {jQuery('.gt_white_content a img').each(function() {if(!jQuery(this)[0].hasAttribute('src'))jQuery(this).attr('src', jQuery(this).attr('data-gt-lazy-src'))});if(a === undefined){document.getElementById('gt_lightbox').style.display='block';document.getElementById('gt_fade').style.display='block';}else{jQuery(a).parent().find('#gt_lightbox').css('display', 'block');jQuery(a).parent().find('#gt_fade').css('display', 'block');}}"+new_line;
650
  widget_preview += "function closeGTPopup() {jQuery('.gt_white_content').css('display', 'none');jQuery('.gt_black_overlay').css('display', 'none');}"+new_line;
651
  widget_preview += "function changeGTLanguage(pair, a) {doGTranslate(pair);jQuery('a.switcher-popup').html(jQuery(a).html()+'<span style=\"color:#666;font-size:8px;font-weight:bold;\">&#9660;</span>');closeGTPopup();}"+new_line;
678
  }
679
 
680
  // Adding slider css
681
+ widget_preview += '<style>'+new_line;
682
  widget_preview += '.switcher {font-family:Arial;font-size:'+font_size+'pt;text-align:left;cursor:pointer;overflow:hidden;width:'+widget_width+'px;line-height:17px;}'+new_line;
683
  widget_preview += '.switcher a {text-decoration:none;display:block;font-size:'+font_size+'pt;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}'+new_line;
684
+ widget_preview += '.switcher a img {vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:0.8;'+(monochrome_flags ? 'filter:grayscale(100%);-webkit-filter:grayscale(100%);' : '' )+'}'+new_line;
685
  widget_preview += '.switcher a:hover img {opacity:1;}'+new_line;
 
686
  widget_preview += '.switcher .selected {background:'+switcher_background_color+' linear-gradient(180deg, '+switcher_background_shadow_color+' 0%, '+switcher_background_color+' 70%);position:relative;z-index:9999;}'+new_line;
 
687
  widget_preview += '.switcher .selected a {border:1px solid '+switcher_border_color+';color:'+switcher_text_color+';padding:3px 5px;width:'+(widget_width - 2 * 5 - 2 * 1)+'px;}'+new_line;
 
688
  widget_preview += '.switcher .selected a:after {height:'+flag_size+'px;display:inline-block;position:absolute;right:'+(flag_size < 20 ? 5 : 10)+'px;width:15px;background-position:50%;background-size:'+arrow_size+'px;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' width=\'16\' height=\'16\' viewBox=\'0 0 285 285\'><path d=\'M282 76.5l-14.2-14.3a9 9 0 0 0-13.1 0L142.5 174.4 30.3 62.2a9 9 0 0 0-13.2 0L3 76.5a9 9 0 0 0 0 13.1l133 133a9 9 0 0 0 13.1 0l133-133a9 9 0 0 0 0-13z\' style=\'fill:'+escape(switcher_arrow_color)+'\'/></svg>");background-repeat:no-repeat;content:""!important;transition:all .2s;}'+new_line;
 
689
  widget_preview += '.switcher .selected a.open:after {-webkit-transform: rotate(-180deg);transform:rotate(-180deg);}'+new_line;
 
690
  widget_preview += '.switcher .selected a:hover {background:'+switcher_background_hover_color+'}'+new_line;
691
  widget_preview += '.switcher .option {position:relative;z-index:9998;border-left:1px solid '+switcher_border_color+';border-right:1px solid '+switcher_border_color+';border-bottom:1px solid '+switcher_border_color+';background-color:'+dropdown_background_color+';display:none;width:'+(widget_width - 2 * 1)+'px;max-height:198px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;overflow-y:auto;overflow-x:hidden;}'+new_line;
692
  widget_preview += '.switcher .option a {color:'+dropdown_text_color+';padding:3px 5px;}'+new_line;
732
  lang_name = gt_lang_array[lang];
733
 
734
  var href = '#';
735
+ if(pro_version) {
736
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
737
+ if(lang != default_language && href.endsWith('/'+lang)) href += '/';
738
+ } else if(enterprise_version)
739
  href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), lang + '.' + '$site_url'.split('/').slice(2, 3)[0].replace('www.', '')).replace('://www.', '://');
740
 
741
  widget_preview += '<a href="'+href+'" onclick="doGTranslate(\''+default_language+'|'+lang+'\');jQuery(\'div.switcher div.selected a\').html(jQuery(this).html());return false;" title="'+lang_name+'" class="nturl'+(default_language == lang ? ' selected' : '')+'">';
764
  widget_preview += '</div>'+new_line;
765
 
766
  // Adding slider javascript
767
+ widget_preview += '<script>'+new_line;
768
  widget_preview += "jQuery('.switcher .selected').click(function() {jQuery('.switcher .option a img').each(function() {if(!jQuery(this)[0].hasAttribute('src'))jQuery(this).attr('src', jQuery(this).attr('data-gt-lazy-src'))});if(!(jQuery('.switcher .option').is(':visible'))) {jQuery('.switcher .option').stop(true,true).delay(100).slideDown(500);jQuery('.switcher .selected a').toggleClass('open')}});"+new_line;
769
  widget_preview += "jQuery('.switcher .option').bind('mousewheel', function(e) {var options = jQuery('.switcher .option');if(options.is(':visible'))options.scrollTop(options.scrollTop() - e.originalEvent.wheelDelta);return false;});"+new_line;
770
  widget_preview += "jQuery('body').not('.switcher').click(function(e) {if(jQuery('.switcher .option').is(':visible') && e.target != jQuery('.switcher .option').get(0)) {jQuery('.switcher .option').stop(true,true).delay(100).slideUp(500);jQuery('.switcher .selected a').toggleClass('open')}});"+new_line;
773
 
774
  // Adding javascript
775
  widget_code += new_line+new_line;
776
+ widget_code += '<script>'+new_line;
777
  if(pro_version && translation_method == 'redirect' && new_window) {
778
  widget_code += "function openTab(url) {var form=document.createElement('form');form.method='post';form.action=url;form.target='_blank';document.body.appendChild(form);form.submit();}"+new_line;
779
  if(analytics)
800
  widget_code += "function GTranslateGetCurrentLang() {var keyValue = document['cookie'].match('(^|;) ?googtrans=([^;]*)(;|$)');return keyValue ? keyValue[2].split('/')[2] : null;}"+new_line;
801
  widget_code += "function GTranslateFireEvent(element,event){try{if(document.createEventObject){var evt=document.createEventObject();element.fireEvent('on'+event,evt)}else{var evt=document.createEvent('HTMLEvents');evt.initEvent(event,true,true);element.dispatchEvent(evt)}}catch(e){}}"+new_line;
802
  if(analytics)
803
+ widget_code += "function doGTranslate(lang_pair){if(lang_pair.value)lang_pair=lang_pair.value;if(lang_pair=='')return;var lang=lang_pair.split('|')[1];if(GTranslateGetCurrentLang() == null && lang == lang_pair.split('|')[0])return;if(typeof ga!='undefined'){ga('send', 'event', 'GTranslate', lang, location.hostname+location.pathname+location.search);}else{if(typeof _gaq!='undefined')_gaq.push(['_trackEvent', 'GTranslate', lang, location.hostname+location.pathname+location.search]);}var teCombo;var sel=document.getElementsByTagName('select');for(var i=0;i<sel.length;i++)if(sel[i].className.indexOf('goog-te-combo')!=-1){teCombo=sel[i];break;}if(document.getElementById('google_translate_element2')==null||document.getElementById('google_translate_element2').innerHTML.length==0||teCombo.length==0||teCombo.innerHTML.length==0){setTimeout(function(){doGTranslate(lang_pair)},500)}else{teCombo.value=lang;GTranslateFireEvent(teCombo,'change');GTranslateFireEvent(teCombo,'change')}}"+new_line;
804
  else
805
+ widget_code += "function doGTranslate(lang_pair){if(lang_pair.value)lang_pair=lang_pair.value;if(lang_pair=='')return;var lang=lang_pair.split('|')[1];if(GTranslateGetCurrentLang() == null && lang == lang_pair.split('|')[0])return;var teCombo;var sel=document.getElementsByTagName('select');for(var i=0;i<sel.length;i++)if(sel[i].className.indexOf('goog-te-combo')!=-1){teCombo=sel[i];break;}if(document.getElementById('google_translate_element2')==null||document.getElementById('google_translate_element2').innerHTML.length==0||teCombo.length==0||teCombo.innerHTML.length==0){setTimeout(function(){doGTranslate(lang_pair)},500)}else{teCombo.value=lang;GTranslateFireEvent(teCombo,'change');GTranslateFireEvent(teCombo,'change')}}"+new_line;
806
  if(widget_look == 'dropdown_with_flags') {
807
  widget_code += "if(GTranslateGetCurrentLang() != null)jQuery(document).ready(function() {var lang_html = jQuery('div.switcher div.option').find('img[alt=\"'+GTranslateGetCurrentLang()+'\"]').parent().html();if(typeof lang_html != 'undefined')jQuery('div.switcher div.selected a').html(lang_html.replace('data-gt-lazy-', ''));});"+new_line;
808
  } else if(widget_look == 'popup') {
845
  jQuery('#default_language').val('$default_language');
846
  jQuery('#widget_look').val('$widget_look');
847
  jQuery('#flag_size').val('$flag_size');
848
+ jQuery('#monochrome_flags').attr('checked', '$monochrome_flags'.length > 0);
849
  jQuery('#switcher_text_color').val('$switcher_text_color');
850
  jQuery('#switcher_arrow_color').val('$switcher_arrow_color');
851
  jQuery('#switcher_border_color').val('$switcher_border_color');
892
  }
893
 
894
  if('$widget_look' == 'dropdown' || '$widget_look' == 'lang_names' || '$widget_look' == 'lang_codes' || '$widget_look' == 'globe') {
895
+ jQuery('#flag_size_option,#flag_monochrome_option').hide();
896
  } else {
897
+ jQuery('#flag_size_option,#flag_monochrome_option').show();
898
  }
899
 
900
  if(jQuery('#native_language_names:checked').length) {
1183
  </select>
1184
  </td>
1185
  </tr>
1186
+ <tr id="flag_monochrome_option">
1187
+ <td class="option_name"><?php _e('Monochrome flags', 'gtranslate'); ?>:</td>
1188
+ <td><input id="monochrome_flags" name="monochrome_flags" value="1" type="checkbox" onclick="RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/></td>
1189
+ </tr>
1190
  <tr id="flag_languages_option" style="display:none;">
1191
  <td class="option_name" colspan="2"><div><?php _e('Flag languages', 'gtranslate'); ?>: <a onclick="jQuery('.connectedSortable1 input').attr('checked', true);RefreshDoWidgetCode()" style="cursor:pointer;text-decoration:underline;"><?php _e('Check All', 'gtranslate'); ?></a> | <a onclick="jQuery('.connectedSortable1 input').attr('checked', false);RefreshDoWidgetCode()" style="cursor:pointer;text-decoration:underline;"><?php _e('Uncheck All', 'gtranslate'); ?></a> <span style="float:right;"><b>HINT</b>: To reorder the languages simply drag and drop them in the list below.</span></div><br />
1192
  <div>
1275
 
1276
  </div>
1277
 
1278
+ <script>
1279
  function gt_validate_form() {
1280
  if(document.getElementById('use_encoding').checked)
1281
  document.getElementById('widget_code').value = btoa(encodeURIComponent(document.getElementById('widget_code').value));
1443
  </div>
1444
  </div>
1445
 
1446
+ <script><?php echo $script; ?></script>
1447
+ <style>
1448
  #widget_preview a:focus {box-shadow:none;outline:none;}
1449
  .switcher_color_options button {box-shadow:none !important;border:1px solid #b4b9be !important;border-radius:0 !important;}
1450
  .switcher_color_options h3 a {text-decoration:none;font-weight:400;}
1496
  $data['translation_method'] = 'onfly';
1497
  $data['widget_look'] = isset($_POST['widget_look']) ? sanitize_text_field($_POST['widget_look']) : 'flags_dropdown';
1498
  $data['flag_size'] = isset($_POST['flag_size']) ? intval($_POST['flag_size']) : '16';
1499
+ $data['monochrome_flags'] = isset($_POST['monochrome_flags']) ? intval($_POST['monochrome_flags']) : '';
1500
  $data['incl_langs'] = (isset($_POST['incl_langs']) and is_array($_POST['incl_langs'])) ? $_POST['incl_langs'] : array($data['default_language']);
1501
  $data['fincl_langs'] = (isset($_POST['fincl_langs']) and is_array($_POST['fincl_langs'])) ? $_POST['fincl_langs'] : array($data['default_language']);
1502
  $data['alt_flags'] = (isset($_POST['alt_flags']) and is_array($_POST['alt_flags'])) ? $_POST['alt_flags'] : array();
1588
 
1589
  $data['widget_look'] = isset($data['widget_look']) ? $data['widget_look'] : 'dropdown_with_flags';
1590
  $data['flag_size'] = isset($data['flag_size']) ? $data['flag_size'] : '24';
1591
+ $data['monochrome_flags'] = isset($data['monochrome_flags']) ? $data['monochrome_flags'] : '';
1592
  $data['widget_code'] = isset($data['widget_code']) ? $data['widget_code'] : '';
1593
  $data['incl_langs'] = isset($data['incl_langs']) ? $data['incl_langs'] : array('en', 'es', 'it', 'pt', 'de', 'fr', 'ru', 'nl', 'ar', 'zh-CN');
1594
  $data['fincl_langs'] = isset($data['fincl_langs']) ? $data['fincl_langs'] : array('en', 'es', 'it', 'pt', 'de', 'fr', 'ru', 'nl', 'ar', 'zh-CN');
2059
  $items .= '</li>';
2060
 
2061
  if($data['widget_look'] == 'flags_dropdown') {
2062
+ $items .= '<style>.menu-item-gtranslate a {display:inline !important;padding:0 !important;margin:0 !important;}</style>';
2063
  }
2064
 
2065
  } else {
2123
  add_action('admin_head', 'gtranslate_request_uri_var');
2124
 
2125
  function gtranslate_request_uri_var() {
2126
+ echo "<script>var gt_request_uri = '".addslashes($_SERVER['REQUEST_URI'])."';</script>";
2127
  }
2128
  }
2129
 
2328
  $json = $jsons[$i];
2329
  $js = $jss[$i];
2330
 
2331
+ $return .= "<script id='$attribute_id' type='application/json'>$json</script>\n<script>$js</script>\n";
2332
  }
2333
 
2334
  return $return . $tag;
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: edo888
3
  Author: Translate AI Multilingual Solutions
4
  Tags: translate, translate wordpress, multilingual, translation, translate language, bilingual, localization, translation proxy, localisation, multilanguage, google translate
5
  Requires at least: 2.8.1
6
- Tested up to: 5.4
7
- Stable tag: 2.8.57
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
  Donate link: https://gtranslate.io/?xyz=998#pricing
@@ -117,17 +117,17 @@ If you have any issues, please do not hesitate to use our [Support Forum](https:
117
 
118
  == Frequently Asked Questions ==
119
 
120
- = It doesn't work, what to do? =
121
  Please check [GTranslate Support Forum](https://wordpress.org/support/plugin/gtranslate) and feel free to create a new topic if you cannot find answers.
122
 
123
  = What is GTranslate? =
124
- GTranslate is a multilingual solution for your website.
125
 
126
  * Multilingual solution makes your website available to the world
127
  * One click translation helps visitors to read your site in their native language
128
  * Free automatic translation translates your site instantly upon installation
129
  * Professional translation by a human being is available 24/7
130
- * Customizable layout lets you choose the suitable layout for your site
131
  * Analytics with Google provides insight into your audience and user activity
132
 
133
  [vimeo http://vimeo.com/30132555]
@@ -158,9 +158,10 @@ You can get an instant website translation estimate by using our [Website Word C
158
  = Which languages are supported? =
159
  Here is the list: Afrikaans, Albanian, Amharic, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Catalan, Cebuano, Chichewa, Chinese (Simplified), Chinese (Traditional), Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, Frisian, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Kurdish (Kurmanji), Kyrgyz, Lao, Latin, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Myanmar (Burmese), Nepali, Norwegian, Pashto, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Samoan, Scottish Gaelic, Serbian, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sudanese, Swahili, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Xhosa, Yiddish, Yoruba, Zulu
160
 
161
- = Is it SEO compatible? =
162
  Our free version doesn't give any SEO advantage.
163
- For SEO features and multilingual SEO you need to use our paid versions which have all the SEO advantages.
 
164
  Unlike other translate plugins, we provide you all the possible tools to match with your multilingual SEO strategy.
165
  For example you can have your translated content available via sub-directories (https://example.com/es, https://example.com/fr) or sub-domains (https://it.example.com, https://fr.example.com) or even you can host the translated versions on a top level country specific domain or any other domain like (https://example.fr, https://example.de), which will increase your chances to rank higher in local search engine's results pages.
166
 
@@ -194,8 +195,8 @@ Yes, you need to wrap the text you don't want to be translated with &lt;span cla
194
  With our paid versions you will have more control on the content which you do not want to translate. We have Skip Phrases, Skip Translations by CSS selectors and also Skip Pages features available.
195
  You can read more about skipping translations on [How to skip translations?](https://docs.gtranslate.io/en/articles/1349930-how-to-skip-translations)
196
 
197
- = Which plugins are supported? =
198
- All plugins are supported.
199
 
200
  Our technology allows us to translate what is visible on the page, since we are parsing the end result when your website is already generated and it doesn't matter how the content is generated and by which plugin. We can translate all HTML websites.
201
  If you notice that something is not translated, please contact our live chat and we will be happy to solve any issues. Usually the not translated content is being loaded on your website from 3rd party sources.
@@ -251,6 +252,10 @@ If you want us to translate your website professionally or provide you a proofre
251
  8. User Dashboard
252
 
253
  == Changelog ==
 
 
 
 
254
  = 2.8.57 =
255
  * New control options for flag size and colors of the "Nice dropdown with flags" language switcher
256
  * Removed old PNG images for dropdown arrow and gradient background, now using SVG and CSS instead
3
  Author: Translate AI Multilingual Solutions
4
  Tags: translate, translate wordpress, multilingual, translation, translate language, bilingual, localization, translation proxy, localisation, multilanguage, google translate
5
  Requires at least: 2.8.1
6
+ Tested up to: 5.5
7
+ Stable tag: 2.8.58
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
  Donate link: https://gtranslate.io/?xyz=998#pricing
117
 
118
  == Frequently Asked Questions ==
119
 
120
+ = It doesn't translate, what to do? =
121
  Please check [GTranslate Support Forum](https://wordpress.org/support/plugin/gtranslate) and feel free to create a new topic if you cannot find answers.
122
 
123
  = What is GTranslate? =
124
+ GTranslate can translate your website into multiple languages and make it multilingual.
125
 
126
  * Multilingual solution makes your website available to the world
127
  * One click translation helps visitors to read your site in their native language
128
  * Free automatic translation translates your site instantly upon installation
129
  * Professional translation by a human being is available 24/7
130
+ * Customizable language switcher lets you choose the suitable layout for your site
131
  * Analytics with Google provides insight into your audience and user activity
132
 
133
  [vimeo http://vimeo.com/30132555]
158
  = Which languages are supported? =
159
  Here is the list: Afrikaans, Albanian, Amharic, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Catalan, Cebuano, Chichewa, Chinese (Simplified), Chinese (Traditional), Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, Frisian, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Kurdish (Kurmanji), Kyrgyz, Lao, Latin, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Myanmar (Burmese), Nepali, Norwegian, Pashto, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Samoan, Scottish Gaelic, Serbian, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sudanese, Swahili, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Xhosa, Yiddish, Yoruba, Zulu
160
 
161
+ = Is GTranslate SEO compatible? =
162
  Our free version doesn't give any SEO advantage.
163
+
164
+ For SEO features and multilingual SEO you need to go with a paid version which have all the SEO advantages. Our paid version will translate your website and allow search engines to discover and index the translated content.
165
  Unlike other translate plugins, we provide you all the possible tools to match with your multilingual SEO strategy.
166
  For example you can have your translated content available via sub-directories (https://example.com/es, https://example.com/fr) or sub-domains (https://it.example.com, https://fr.example.com) or even you can host the translated versions on a top level country specific domain or any other domain like (https://example.fr, https://example.de), which will increase your chances to rank higher in local search engine's results pages.
167
 
195
  With our paid versions you will have more control on the content which you do not want to translate. We have Skip Phrases, Skip Translations by CSS selectors and also Skip Pages features available.
196
  You can read more about skipping translations on [How to skip translations?](https://docs.gtranslate.io/en/articles/1349930-how-to-skip-translations)
197
 
198
+ = Which plugins can it translate? =
199
+ All plugins are supported including popular plugins like WooCommerce, Yoast SEO.
200
 
201
  Our technology allows us to translate what is visible on the page, since we are parsing the end result when your website is already generated and it doesn't matter how the content is generated and by which plugin. We can translate all HTML websites.
202
  If you notice that something is not translated, please contact our live chat and we will be happy to solve any issues. Usually the not translated content is being loaded on your website from 3rd party sources.
252
  8. User Dashboard
253
 
254
  == Changelog ==
255
+ = 2.8.58 =
256
+ * New monochrome flags option
257
+ * Avoids using /RegEx/ in JavaScript to not cause conflicts with WP Rocket optimizer
258
+
259
  = 2.8.57 =
260
  * New control options for flag size and colors of the "Nice dropdown with flags" language switcher
261
  * Removed old PNG images for dropdown arrow and gradient background, now using SVG and CSS instead