Version Description
- Fix for javascript error introduced in 2.9.4
Download this release
Release Info
| Developer | edo888 |
| Plugin | |
| Version | 2.9.5 |
| Comparing to | |
| See all releases | |
Code changes from version 2.9.3 to 2.9.5
- gtranslate.php +183 -48
- readme.txt +9 -1
gtranslate.php
CHANGED
|
@@ -3,14 +3,14 @@
|
|
| 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.9.
|
| 7 |
Author: Translate AI Multilingual Solutions
|
| 8 |
Author URI: https://gtranslate.io
|
| 9 |
Text Domain: gtranslate
|
| 10 |
|
| 11 |
*/
|
| 12 |
|
| 13 |
-
/* Copyright 2010 -
|
| 14 |
|
| 15 |
This program is free software; you can redistribute it and/or modify
|
| 16 |
it under the terms of the GNU General Public License as published by
|
|
@@ -299,6 +299,49 @@ if(language_codes2.length == 0)
|
|
| 299 |
|
| 300 |
var languages_map = {en_x: 0, en_y: 0, ar_x: 100, ar_y: 0, bg_x: 200, bg_y: 0, zhCN_x: 300, zhCN_y: 0, zhTW_x: 400, zhTW_y: 0, hr_x: 500, hr_y: 0, cs_x: 600, cs_y: 0, da_x: 700, da_y: 0, nl_x: 0, nl_y: 100, fi_x: 100, fi_y: 100, fr_x: 200, fr_y: 100, de_x: 300, de_y: 100, el_x: 400, el_y: 100, hi_x: 500, hi_y: 100, it_x: 600, it_y: 100, ja_x: 700, ja_y: 100, ko_x: 0, ko_y: 200, no_x: 100, no_y: 200, pl_x: 200, pl_y: 200, pt_x: 300, pt_y: 200, ro_x: 400, ro_y: 200, ru_x: 500, ru_y: 200, es_x: 600, es_y: 200, sv_x: 700, sv_y: 200, ca_x: 0, ca_y: 300, tl_x: 100, tl_y: 300, iw_x: 200, iw_y: 300, id_x: 300, id_y: 300, lv_x: 400, lv_y: 300, lt_x: 500, lt_y: 300, sr_x: 600, sr_y: 300, sk_x: 700, sk_y: 300, sl_x: 0, sl_y: 400, uk_x: 100, uk_y: 400, vi_x: 200, vi_y: 400, sq_x: 300, sq_y: 400, et_x: 400, et_y: 400, gl_x: 500, gl_y: 400, hu_x: 600, hu_y: 400, mt_x: 700, mt_y: 400, th_x: 0, th_y: 500, tr_x: 100, tr_y: 500, fa_x: 200, fa_y: 500, af_x: 300, af_y: 500, ms_x: 400, ms_y: 500, sw_x: 500, sw_y: 500, ga_x: 600, ga_y: 500, cy_x: 700, cy_y: 500, be_x: 0, be_y: 600, is_x: 100, is_y: 600, mk_x: 200, mk_y: 600, yi_x: 300, yi_y: 600, hy_x: 400, hy_y: 600, az_x: 500, az_y: 600, eu_x: 600, eu_y: 600, ka_x: 700, ka_y: 600, ht_x: 0, ht_y: 700, ur_x: 100, ur_y: 700};
|
| 301 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 302 |
function RefreshDoWidgetCode() {
|
| 303 |
var new_line = "\\n";
|
| 304 |
var widget_preview = '<!-- GTranslate: https://gtranslate.io/ -->'+new_line;
|
|
@@ -310,11 +353,12 @@ function RefreshDoWidgetCode() {
|
|
| 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;
|
| 314 |
var show_in_menu = jQuery('#show_in_menu').val();
|
| 315 |
var floating_language_selector = jQuery('#floating_language_selector').val();
|
| 316 |
var native_language_names = jQuery('#native_language_names:checked').length > 0 ? true : false;
|
| 317 |
-
var analytics = jQuery('#analytics:checked').length > 0 ? true : false;
|
| 318 |
var detect_browser_language = jQuery('#detect_browser_language:checked').length > 0 ? true : false;
|
| 319 |
var email_translation = jQuery('#email_translation:checked').length > 0 ? true : false;
|
| 320 |
var switcher_text_color = jQuery('#switcher_text_color').val();
|
|
@@ -335,20 +379,32 @@ function RefreshDoWidgetCode() {
|
|
| 335 |
|
| 336 |
if(pro_version || enterprise_version) {
|
| 337 |
translation_method = 'redirect';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 338 |
jQuery('#new_window_option').show();
|
| 339 |
jQuery('#url_translation_option').show();
|
| 340 |
jQuery('#hreflang_tags_option').show();
|
| 341 |
jQuery('#email_translation_option').show();
|
| 342 |
if(email_translation)
|
| 343 |
jQuery('#email_translation_debug_option').show();
|
| 344 |
-
|
|
|
|
| 345 |
} else {
|
|
|
|
| 346 |
jQuery('#new_window_option').hide();
|
| 347 |
jQuery('#url_translation_option').hide();
|
| 348 |
jQuery('#hreflang_tags_option').hide();
|
| 349 |
jQuery('#email_translation_option').hide();
|
| 350 |
jQuery('#email_translation_debug_option').hide();
|
| 351 |
-
//jQuery('#auto_switch_option').show();
|
| 352 |
}
|
| 353 |
|
| 354 |
if(widget_look == 'dropdown' || widget_look == 'flags_dropdown' || widget_look == 'globe' || widget_look == 'lang_names' || widget_look == 'lang_codes') {
|
|
@@ -419,8 +475,12 @@ function RefreshDoWidgetCode() {
|
|
| 419 |
if(pro_version) {
|
| 420 |
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
|
| 421 |
if(lang != default_language && href.endsWith('/'+lang)) href += '/';
|
| 422 |
-
} else if(enterprise_version)
|
| 423 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 424 |
|
| 425 |
widget_preview += '<a href="'+href+'" onclick="doGTranslate(\''+default_language+'|'+lang+'\');return false;" title="'+lang_name+'" class="glink nturl notranslate">';
|
| 426 |
|
|
@@ -579,8 +639,12 @@ function RefreshDoWidgetCode() {
|
|
| 579 |
if(pro_version) {
|
| 580 |
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
|
| 581 |
if(lang != default_language && href.endsWith('/'+lang)) href += '/';
|
| 582 |
-
} else if(enterprise_version)
|
| 583 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 584 |
|
| 585 |
widget_preview += '<a href="'+href+'" onclick="changeGTLanguage(\''+default_language+'|'+lang+'\', this);return false;" title="'+lang_name+'" class="glink nturl'+(default_language == lang ? ' selected' : '')+'">';
|
| 586 |
|
|
@@ -739,8 +803,12 @@ function RefreshDoWidgetCode() {
|
|
| 739 |
if(pro_version) {
|
| 740 |
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
|
| 741 |
if(lang != default_language && href.endsWith('/'+lang)) href += '/';
|
| 742 |
-
} else if(enterprise_version)
|
| 743 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 744 |
|
| 745 |
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' : '')+'">';
|
| 746 |
|
|
@@ -780,33 +848,26 @@ function RefreshDoWidgetCode() {
|
|
| 780 |
widget_code += '<script>'+new_line;
|
| 781 |
if(pro_version && translation_method == 'redirect' && new_window) {
|
| 782 |
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;
|
| 783 |
-
if(
|
| 784 |
-
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(typeof _gaq!='undefined'){_gaq.push(['_trackEvent', 'GTranslate', lang, location.pathname+location.search]);}else {if(typeof ga!='undefined')ga('send', 'event', 'GTranslate', lang, location.pathname+location.search);}var plang=location.pathname.split('/')[1];if(plang.length !=2 && plang != 'zh-CN' && plang != 'zh-TW' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';if(lang == '"+default_language+"')openTab(location.protocol+'//'+location.host+gt_request_uri);else openTab(location.protocol+'//'+location.host+'/'+lang+gt_request_uri);}"+new_line;
|
| 785 |
-
else
|
| 786 |
-
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];var plang=location.pathname.split('/')[1];if(plang.length !=2 && plang != 'zh-CN' && plang != 'zh-TW' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';if(lang == '"+default_language+"')openTab(location.protocol+'//'+location.host+gt_request_uri);else openTab(location.protocol+'//'+location.host+'/'+lang+gt_request_uri);}"+new_line;
|
| 787 |
} else if(pro_version && translation_method == 'redirect') {
|
| 788 |
-
if(
|
| 789 |
-
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(typeof _gaq!='undefined'){_gaq.push(['_trackEvent', 'GTranslate', lang, location.pathname+location.search]);}else {if(typeof ga!='undefined')ga('send', 'event', 'GTranslate', lang, location.pathname+location.search);}var plang=location.pathname.split('/')[1];if(plang.length !=2 && plang != 'zh-CN' && plang != 'zh-TW' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';if(lang == '"+default_language+"')location.href=location.protocol+'//'+location.host+gt_request_uri;else location.href=location.protocol+'//'+location.host+'/'+lang+gt_request_uri;}"+new_line;
|
| 790 |
-
else
|
| 791 |
-
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];var plang=location.pathname.split('/')[1];if(plang.length !=2 && plang != 'zh-CN' && plang != 'zh-TW' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';if(lang == '"+default_language+"')location.href=location.protocol+'//'+location.host+gt_request_uri;else location.href=location.protocol+'//'+location.host+'/'+lang+gt_request_uri;}"+new_line;
|
| 792 |
} else if(enterprise_version && translation_method == 'redirect' && new_window) {
|
| 793 |
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;
|
| 794 |
-
if(
|
| 795 |
-
widget_code += "
|
| 796 |
-
|
| 797 |
-
|
|
|
|
| 798 |
} else if(enterprise_version && translation_method == 'redirect') {
|
| 799 |
-
if(
|
| 800 |
-
widget_code += "
|
| 801 |
-
|
| 802 |
-
|
|
|
|
| 803 |
} else if(translation_method == 'onfly') {
|
| 804 |
widget_code += "function GTranslateGetCurrentLang() {var keyValue = document['cookie'].match('(^|;) ?googtrans=([^;]*)(;|$)');return keyValue ? keyValue[2].split('/')[2] : null;}"+new_line;
|
| 805 |
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;
|
| 806 |
-
if(
|
| 807 |
-
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;
|
| 808 |
-
else
|
| 809 |
-
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;
|
| 810 |
if(widget_look == 'dropdown_with_flags') {
|
| 811 |
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;
|
| 812 |
} else if(widget_look == 'popup') {
|
|
@@ -836,6 +897,7 @@ function ShowWidgetPreview(widget_preview) {
|
|
| 836 |
|
| 837 |
jQuery('#pro_version').attr('checked', '$pro_version'.length > 0);
|
| 838 |
jQuery('#enterprise_version').attr('checked', '$enterprise_version'.length > 0);
|
|
|
|
| 839 |
jQuery('#url_translation').attr('checked', '$url_translation'.length > 0);
|
| 840 |
jQuery('#add_hreflang_tags').attr('checked', '$add_hreflang_tags'.length > 0);
|
| 841 |
jQuery('#email_translation').attr('checked', '$email_translation'.length > 0);
|
|
@@ -844,7 +906,6 @@ jQuery('#new_window').attr('checked', '$new_window'.length > 0);
|
|
| 844 |
jQuery('#show_in_menu').val('$show_in_menu');
|
| 845 |
jQuery('#floating_language_selector').val('$floating_language_selector');
|
| 846 |
jQuery('#native_language_names').attr('checked', '$native_language_names'.length > 0);
|
| 847 |
-
jQuery('#analytics').attr('checked', '$analytics'.length > 0);
|
| 848 |
jQuery('#detect_browser_language').attr('checked', '$detect_browser_language'.length > 0);
|
| 849 |
jQuery('#add_new_line').attr('checked', '$add_new_line'.length > 0);
|
| 850 |
jQuery('#default_language').val('$default_language');
|
|
@@ -862,13 +923,25 @@ jQuery('#dropdown_hover_color').val('$dropdown_hover_color');
|
|
| 862 |
jQuery('#dropdown_background_color').val('$dropdown_background_color');
|
| 863 |
|
| 864 |
if(jQuery('#pro_version:checked').length || jQuery('#enterprise_version:checked').length) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 865 |
jQuery('#new_window_option').show();
|
| 866 |
jQuery('#url_translation_option').show();
|
| 867 |
jQuery('#hreflang_tags_option').show();
|
| 868 |
jQuery('#email_translation_option').show();
|
| 869 |
if(jQuery('#email_translation:checked').length)
|
| 870 |
jQuery('#email_translation_debug_option').show();
|
| 871 |
-
|
|
|
|
| 872 |
}
|
| 873 |
|
| 874 |
if('$widget_look' == 'dropdown' || '$widget_look' == 'flags_dropdown' || '$widget_look' == 'globe' || '$widget_look' == 'lang_names' || '$widget_look' == 'lang_codes') {
|
|
@@ -1129,6 +1202,10 @@ EOT;
|
|
| 1129 |
<td class="option_name">* <?php _e('Sub-domain URL structure', 'gtranslate'); ?>:<br><code><small>http://<b>es</b>.example.com/</small></code></td>
|
| 1130 |
<td><input id="enterprise_version" name="enterprise_version" value="1" type="checkbox" onclick="if(jQuery('#pro_version').is(':checked') && jQuery('#enterprise_version').is(':checked'))jQuery('#pro_version').prop('checked', false);RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/> <a href="https://gtranslate.io/?xyz=998#pricing" target="_blank" title="If you already have a subscription, you can enable this.">* <?php _e('for paid plans only', 'gtranslate'); ?></a></td>
|
| 1131 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1132 |
<tr id="url_translation_option" style="display:none;">
|
| 1133 |
<td class="option_name"><?php _e('Enable URL Translation', 'gtranslate'); ?>:</td>
|
| 1134 |
<td><input id="url_translation" name="url_translation" value="1" type="checkbox"/></td>
|
|
@@ -1149,10 +1226,6 @@ EOT;
|
|
| 1149 |
<td class="option_name"><?php _e('Open in new window', 'gtranslate'); ?>:</td>
|
| 1150 |
<td><input id="new_window" name="new_window" value="1" type="checkbox" onclick="RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/></td>
|
| 1151 |
</tr>
|
| 1152 |
-
<tr>
|
| 1153 |
-
<td class="option_name"><?php _e('Analytics', 'gtranslate'); ?>:</td>
|
| 1154 |
-
<td><input id="analytics" name="analytics" value="1" type="checkbox" onclick="RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/></td>
|
| 1155 |
-
</tr>
|
| 1156 |
<tr id="auto_switch_option">
|
| 1157 |
<td class="option_name"><?php _e('Auto switch to browser language', 'gtranslate'); ?>:</td>
|
| 1158 |
<td><input id="detect_browser_language" name="detect_browser_language" value="1" type="checkbox" onclick="RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/></td>
|
|
@@ -1313,6 +1386,31 @@ EOT;
|
|
| 1313 |
</div>
|
| 1314 |
</div>
|
| 1315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1316 |
<div id="poststuff" class="switcher_color_options">
|
| 1317 |
<div class="postbox">
|
| 1318 |
<h3 id="settings"><?php _e('Color options', 'gtranslate'); ?> ( <a href="#" onclick="return light_color_scheme()">light</a> | <a href="#" onclick="return dark_color_scheme()">dark</a> )</h3>
|
|
@@ -1431,6 +1529,7 @@ EOT;
|
|
| 1431 |
<li><a href="https://my.gtranslate.io/" target="_blank"><?php _e('User dashboard', 'gtranslate'); ?></a></li>
|
| 1432 |
<li><a href="https://gtranslate.io/?xyz=998#pricing" target="_blank"><?php _e('Compare plans', 'gtranslate'); ?></a></li>
|
| 1433 |
<li><a href="https://gtranslate.io/website-translation-quote" target="_blank"><?php _e('Website Translation Quote', 'gtranslate'); ?></a></li>
|
|
|
|
| 1434 |
<li><a href="https://wordpress.org/support/plugin/gtranslate/reviews/" target="_blank"><?php _e('Reviews', 'gtranslate'); ?></a></li>
|
| 1435 |
</ul>
|
| 1436 |
</td>
|
|
@@ -1463,6 +1562,8 @@ EOT;
|
|
| 1463 |
<script><?php echo $script; ?></script>
|
| 1464 |
<style>
|
| 1465 |
#widget_preview a:focus {box-shadow:none;outline:none;}
|
|
|
|
|
|
|
| 1466 |
.switcher_color_options button {box-shadow:none !important;border:1px solid #b4b9be !important;border-radius:0 !important;}
|
| 1467 |
.switcher_color_options h3 a {text-decoration:none;font-weight:400;}
|
| 1468 |
.switcher_color_options h3 a:hover {text-decoration:underline;}
|
|
@@ -1483,6 +1584,12 @@ EOT;
|
|
| 1483 |
|
| 1484 |
.connectedSortable1, .connectedSortable1 li, .connectedSortable2, .connectedSortable2 li {margin:0;padding:0;}
|
| 1485 |
.connectedSortable1 li label, .connectedSortable2 li label {cursor:move;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1486 |
</style>
|
| 1487 |
|
| 1488 |
<script>window.intercomSettings = {app_id: "r70azrgx", 'platform': 'wordpress', 'translate_from': '<?php echo $default_language; ?>', 'is_sub_directory': <?php echo (empty($pro_version) ? '0' : '1'); ?>, 'is_sub_domain': <?php echo (empty($enterprise_version) ? '0' : '1'); ?>};(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/r70azrgx';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script>
|
|
@@ -1499,6 +1606,8 @@ EOT;
|
|
| 1499 |
|
| 1500 |
$data['pro_version'] = isset($_POST['pro_version']) ? intval($_POST['pro_version']) : '';
|
| 1501 |
$data['enterprise_version'] = isset($_POST['enterprise_version']) ? intval($_POST['enterprise_version']) : '';
|
|
|
|
|
|
|
| 1502 |
$data['url_translation'] = isset($_POST['url_translation']) ? intval($_POST['url_translation']) : '';
|
| 1503 |
$data['add_hreflang_tags'] = isset($_POST['add_hreflang_tags']) ? intval($_POST['add_hreflang_tags']) : '';
|
| 1504 |
$data['email_translation'] = isset($_POST['email_translation']) ? intval($_POST['email_translation']) : '';
|
|
@@ -1507,7 +1616,6 @@ EOT;
|
|
| 1507 |
$data['show_in_menu'] = isset($_POST['show_in_menu']) ? sanitize_text_field($_POST['show_in_menu']) : '';
|
| 1508 |
$data['floating_language_selector'] = isset($_POST['floating_language_selector']) ? sanitize_text_field($_POST['floating_language_selector']) : 'no';
|
| 1509 |
$data['native_language_names'] = isset($_POST['native_language_names']) ? intval($_POST['native_language_names']) : '';
|
| 1510 |
-
$data['analytics'] = isset($_POST['analytics']) ? intval($_POST['analytics']) : '';
|
| 1511 |
$data['detect_browser_language'] = isset($_POST['detect_browser_language']) ? intval($_POST['detect_browser_language']) : '';
|
| 1512 |
$data['add_new_line'] = isset($_POST['add_new_line']) ? intval($_POST['add_new_line']) : '';
|
| 1513 |
$data['default_language'] = isset($_POST['default_language']) ? sanitize_text_field($_POST['default_language']) : 'en';
|
|
@@ -1584,6 +1692,8 @@ EOT;
|
|
| 1584 |
|
| 1585 |
$data['pro_version'] = isset($data['pro_version']) ? $data['pro_version'] : '';
|
| 1586 |
$data['enterprise_version'] = isset($data['enterprise_version']) ? $data['enterprise_version'] : '';
|
|
|
|
|
|
|
| 1587 |
$data['url_translation'] = isset($data['url_translation']) ? $data['url_translation'] : '';
|
| 1588 |
$data['add_hreflang_tags'] = isset($data['add_hreflang_tags']) ? $data['add_hreflang_tags'] : '';
|
| 1589 |
$data['email_translation'] = isset($data['email_translation']) ? $data['email_translation'] : '';
|
|
@@ -1592,7 +1702,6 @@ EOT;
|
|
| 1592 |
$data['show_in_menu'] = isset($data['show_in_menu']) ? $data['show_in_menu'] : ((isset($data['show_in_primary_menu']) and $data['show_in_primary_menu'] == 1) ? 'primary' : '');
|
| 1593 |
$data['floating_language_selector'] = isset($data['floating_language_selector']) ? $data['floating_language_selector'] : 'no';
|
| 1594 |
$data['native_language_names'] = isset($data['native_language_names']) ? $data['native_language_names'] : '';
|
| 1595 |
-
$data['analytics'] = isset($data['analytics']) ? $data['analytics'] : '';
|
| 1596 |
$data['detect_browser_language'] = isset($data['detect_browser_language']) ? $data['detect_browser_language'] : '';
|
| 1597 |
$data['add_new_line'] = isset($data['add_new_line']) ? $data['add_new_line'] : '1';
|
| 1598 |
|
|
@@ -1911,7 +2020,7 @@ class GTranslate_Notices {
|
|
| 1911 |
|
| 1912 |
public function gt_admin_notices() {
|
| 1913 |
|
| 1914 |
-
$deactivate_plugins= array('WP Translator' => 'wptranslator/WPTranslator.php', 'TranslatePress' => 'translatepress-multilingual/index.php', 'Google Language Translator' => 'google-language-translator/google-language-translator.php', 'Google Website Translator' => 'google-website-translator/google-website-translator.php', 'Weglot' => 'weglot/weglot.php', 'TransPosh' => 'transposh-translation-filter-for-wordpress/transposh.php');
|
| 1915 |
foreach($deactivate_plugins as $name => $plugin_file) {
|
| 1916 |
if(is_plugin_active($plugin_file)) {
|
| 1917 |
$deactivate_link = wp_nonce_url('plugins.php?action=deactivate&plugin='.urlencode($plugin_file ).'&plugin_status=all&paged=1&s=', 'deactivate-plugin_' . $plugin_file);
|
|
@@ -2189,9 +2298,16 @@ if($data['add_hreflang_tags'] and ($data['pro_version'] or $data['enterprise_ver
|
|
| 2189 |
$href = '';
|
| 2190 |
$domain = str_replace('www.', '', $_SERVER['HTTP_HOST']);
|
| 2191 |
|
| 2192 |
-
if($data['enterprise_version'])
|
| 2193 |
-
|
| 2194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2195 |
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $_SERVER['HTTP_HOST'] . '/' . $lang, $current_url);
|
| 2196 |
|
| 2197 |
if(!empty($href) and $lang != $data['default_language']) {
|
|
@@ -2272,10 +2388,20 @@ if(($data['pro_version'] or $data['enterprise_version']) and $data['detect_brows
|
|
| 2272 |
|
| 2273 |
if($data['pro_version'])
|
| 2274 |
header('Location: ' . home_url() . '/' . $accept_language . '/');
|
| 2275 |
-
if($data['enterprise_version'] and isset($_SERVER['HTTP_HOST']))
|
| 2276 |
-
header('Location: ' . str_replace('://'.$_SERVER['HTTP_HOST'], '://'.$accept_language.'.'.preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']), site_url()));
|
| 2277 |
|
| 2278 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2279 |
|
| 2280 |
exit;
|
| 2281 |
}
|
|
@@ -2550,9 +2676,18 @@ if($data['pro_version'] or $data['enterprise_version']) {
|
|
| 2550 |
if($data['enterprise_version']) {
|
| 2551 |
// solve wp_get_referer issue
|
| 2552 |
function gt_allowed_redirect_hosts($hosts) {
|
| 2553 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2554 |
if(isset($_SERVER['HTTP_X_GT_LANG']))
|
| 2555 |
-
$gt_hosts[] = $_SERVER['HTTP_X_GT_LANG'] . '.' .
|
| 2556 |
|
| 2557 |
return array_merge($hosts, $gt_hosts);
|
| 2558 |
}
|
| 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.9.5
|
| 7 |
Author: Translate AI Multilingual Solutions
|
| 8 |
Author URI: https://gtranslate.io
|
| 9 |
Text Domain: gtranslate
|
| 10 |
|
| 11 |
*/
|
| 12 |
|
| 13 |
+
/* Copyright 2010 - 2021 GTranslate Inc. ( website: https://gtranslate.com )
|
| 14 |
|
| 15 |
This program is free software; you can redistribute it and/or modify
|
| 16 |
it under the terms of the GNU General Public License as published by
|
| 299 |
|
| 300 |
var languages_map = {en_x: 0, en_y: 0, ar_x: 100, ar_y: 0, bg_x: 200, bg_y: 0, zhCN_x: 300, zhCN_y: 0, zhTW_x: 400, zhTW_y: 0, hr_x: 500, hr_y: 0, cs_x: 600, cs_y: 0, da_x: 700, da_y: 0, nl_x: 0, nl_y: 100, fi_x: 100, fi_y: 100, fr_x: 200, fr_y: 100, de_x: 300, de_y: 100, el_x: 400, el_y: 100, hi_x: 500, hi_y: 100, it_x: 600, it_y: 100, ja_x: 700, ja_y: 100, ko_x: 0, ko_y: 200, no_x: 100, no_y: 200, pl_x: 200, pl_y: 200, pt_x: 300, pt_y: 200, ro_x: 400, ro_y: 200, ru_x: 500, ru_y: 200, es_x: 600, es_y: 200, sv_x: 700, sv_y: 200, ca_x: 0, ca_y: 300, tl_x: 100, tl_y: 300, iw_x: 200, iw_y: 300, id_x: 300, id_y: 300, lv_x: 400, lv_y: 300, lt_x: 500, lt_y: 300, sr_x: 600, sr_y: 300, sk_x: 700, sk_y: 300, sl_x: 0, sl_y: 400, uk_x: 100, uk_y: 400, vi_x: 200, vi_y: 400, sq_x: 300, sq_y: 400, et_x: 400, et_y: 400, gl_x: 500, gl_y: 400, hu_x: 600, hu_y: 400, mt_x: 700, mt_y: 400, th_x: 0, th_y: 500, tr_x: 100, tr_y: 500, fa_x: 200, fa_y: 500, af_x: 300, af_y: 500, ms_x: 400, ms_y: 500, sw_x: 500, sw_y: 500, ga_x: 600, ga_y: 500, cy_x: 700, cy_y: 500, be_x: 0, be_y: 600, is_x: 100, is_y: 600, mk_x: 200, mk_y: 600, yi_x: 300, yi_y: 600, hy_x: 400, hy_y: 600, az_x: 500, az_y: 600, eu_x: 600, eu_y: 600, ka_x: 700, ka_y: 600, ht_x: 0, ht_y: 700, ur_x: 100, ur_y: 700};
|
| 301 |
|
| 302 |
+
function SyncCustomDomains() {
|
| 303 |
+
jQuery('#custom_domains_status_sync').show();
|
| 304 |
+
|
| 305 |
+
jQuery.ajax({
|
| 306 |
+
url: 'https://tdns.gtranslate.net/tdn-bin/load-custom-domains',
|
| 307 |
+
type: 'GET',
|
| 308 |
+
dataType: 'json',
|
| 309 |
+
headers: {"X-GT-Domain": window.gt_debug_main_domain||location.hostname},
|
| 310 |
+
success: function(data) {
|
| 311 |
+
jQuery('#custom_domains_status_sync').hide();
|
| 312 |
+
|
| 313 |
+
if(data.err) { // todo: nice alert box
|
| 314 |
+
if(data.err == 'no license')
|
| 315 |
+
alert('No subscription found for "' + (window.gt_debug_main_domain||location.hostname) + '". Please subscribe at https://gtranslate.io/');
|
| 316 |
+
else if(data.err == 'no settings')
|
| 317 |
+
alert('Make sure your subscription for "' + (window.gt_debug_main_domain||location.hostname) + '" has Language Hosting feature and Custom domains are configured in your GTranslate dashboard: https://my.gtranslate.io/settings#advanced');
|
| 318 |
+
else
|
| 319 |
+
alert(data.err);
|
| 320 |
+
|
| 321 |
+
jQuery('#custom_domains').prop('checked', false);
|
| 322 |
+
RefreshDoWidgetCode();
|
| 323 |
+
|
| 324 |
+
return;
|
| 325 |
+
}
|
| 326 |
+
|
| 327 |
+
jQuery('#custom_domains_data').val(JSON.stringify(data));
|
| 328 |
+
jQuery('#custom_domains_list_tbl tr.lang_domain_row').remove();
|
| 329 |
+
for(l in data)
|
| 330 |
+
jQuery('#custom_domains_list_tbl tr:last').after('<tr class="lang_domain_row"><td>'+l+'</td><td>'+data[l]+'</td></tr>');
|
| 331 |
+
jQuery('.custom_domains_list').show();
|
| 332 |
+
},
|
| 333 |
+
error: function(e) {
|
| 334 |
+
alert('Something strange happened, please try again later.');
|
| 335 |
+
|
| 336 |
+
jQuery('#custom_domains').prop('checked', false);
|
| 337 |
+
RefreshDoWidgetCode();
|
| 338 |
+
|
| 339 |
+
jQuery('#custom_domains_status_sync').hide();
|
| 340 |
+
jQuery('.custom_domains_list').hide();
|
| 341 |
+
}
|
| 342 |
+
});
|
| 343 |
+
}
|
| 344 |
+
|
| 345 |
function RefreshDoWidgetCode() {
|
| 346 |
var new_line = "\\n";
|
| 347 |
var widget_preview = '<!-- GTranslate: https://gtranslate.io/ -->'+new_line;
|
| 353 |
var monochrome_flags = jQuery('#monochrome_flags:checked').length > 0 ? true : false;
|
| 354 |
var pro_version = jQuery('#pro_version:checked').length > 0 ? true : false;
|
| 355 |
var enterprise_version = jQuery('#enterprise_version:checked').length > 0 ? true : false;
|
| 356 |
+
var custom_domains = jQuery('#custom_domains:checked').length > 0 ? true : false;
|
| 357 |
+
var custom_domains_data = JSON.parse(jQuery('#custom_domains_data').val()||'{}');
|
| 358 |
var new_window = jQuery('#new_window:checked').length > 0 ? true : false;
|
| 359 |
var show_in_menu = jQuery('#show_in_menu').val();
|
| 360 |
var floating_language_selector = jQuery('#floating_language_selector').val();
|
| 361 |
var native_language_names = jQuery('#native_language_names:checked').length > 0 ? true : false;
|
|
|
|
| 362 |
var detect_browser_language = jQuery('#detect_browser_language:checked').length > 0 ? true : false;
|
| 363 |
var email_translation = jQuery('#email_translation:checked').length > 0 ? true : false;
|
| 364 |
var switcher_text_color = jQuery('#switcher_text_color').val();
|
| 379 |
|
| 380 |
if(pro_version || enterprise_version) {
|
| 381 |
translation_method = 'redirect';
|
| 382 |
+
if(enterprise_version) {
|
| 383 |
+
jQuery('#custom_domains_option').show();
|
| 384 |
+
if(custom_domains)
|
| 385 |
+
jQuery('.custom_domains_list').show();
|
| 386 |
+
else
|
| 387 |
+
jQuery('.custom_domains_list').hide();
|
| 388 |
+
} else {
|
| 389 |
+
jQuery('#custom_domains_option').hide();
|
| 390 |
+
jQuery('.custom_domains_list').hide();
|
| 391 |
+
}
|
| 392 |
+
|
| 393 |
jQuery('#new_window_option').show();
|
| 394 |
jQuery('#url_translation_option').show();
|
| 395 |
jQuery('#hreflang_tags_option').show();
|
| 396 |
jQuery('#email_translation_option').show();
|
| 397 |
if(email_translation)
|
| 398 |
jQuery('#email_translation_debug_option').show();
|
| 399 |
+
else
|
| 400 |
+
jQuery('#email_translation_debug_option').hide();
|
| 401 |
} else {
|
| 402 |
+
jQuery('#custom_domains_option').hide();
|
| 403 |
jQuery('#new_window_option').hide();
|
| 404 |
jQuery('#url_translation_option').hide();
|
| 405 |
jQuery('#hreflang_tags_option').hide();
|
| 406 |
jQuery('#email_translation_option').hide();
|
| 407 |
jQuery('#email_translation_debug_option').hide();
|
|
|
|
| 408 |
}
|
| 409 |
|
| 410 |
if(widget_look == 'dropdown' || widget_look == 'flags_dropdown' || widget_look == 'globe' || widget_look == 'lang_names' || widget_look == 'lang_codes') {
|
| 475 |
if(pro_version) {
|
| 476 |
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
|
| 477 |
if(lang != default_language && href.endsWith('/'+lang)) href += '/';
|
| 478 |
+
} else if(enterprise_version) {
|
| 479 |
+
if(custom_domains && typeof custom_domains_data == 'object' && custom_domains_data[lang])
|
| 480 |
+
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), custom_domains_data[lang]);
|
| 481 |
+
else
|
| 482 |
+
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.', '://');
|
| 483 |
+
}
|
| 484 |
|
| 485 |
widget_preview += '<a href="'+href+'" onclick="doGTranslate(\''+default_language+'|'+lang+'\');return false;" title="'+lang_name+'" class="glink nturl notranslate">';
|
| 486 |
|
| 639 |
if(pro_version) {
|
| 640 |
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
|
| 641 |
if(lang != default_language && href.endsWith('/'+lang)) href += '/';
|
| 642 |
+
} else if(enterprise_version) {
|
| 643 |
+
if(custom_domains && typeof custom_domains_data == 'object' && custom_domains_data[lang])
|
| 644 |
+
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), custom_domains_data[lang]);
|
| 645 |
+
else
|
| 646 |
+
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.', '://');
|
| 647 |
+
}
|
| 648 |
|
| 649 |
widget_preview += '<a href="'+href+'" onclick="changeGTLanguage(\''+default_language+'|'+lang+'\', this);return false;" title="'+lang_name+'" class="glink nturl'+(default_language == lang ? ' selected' : '')+'">';
|
| 650 |
|
| 803 |
if(pro_version) {
|
| 804 |
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(0, 3).join('/'), '$site_url'.split('/').slice(0, 3).join('/')+'/'+lang);
|
| 805 |
if(lang != default_language && href.endsWith('/'+lang)) href += '/';
|
| 806 |
+
} else if(enterprise_version) {
|
| 807 |
+
if(custom_domains && typeof custom_domains_data == 'object' && custom_domains_data[lang])
|
| 808 |
+
href = (lang == default_language) ? '$site_url' : '$site_url'.replace('$site_url'.split('/').slice(2, 3)[0].replace('www.', ''), custom_domains_data[lang]);
|
| 809 |
+
else
|
| 810 |
+
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.', '://');
|
| 811 |
+
}
|
| 812 |
|
| 813 |
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' : '')+'">';
|
| 814 |
|
| 848 |
widget_code += '<script>'+new_line;
|
| 849 |
if(pro_version && translation_method == 'redirect' && new_window) {
|
| 850 |
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;
|
| 851 |
+
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(typeof ga=='function'){ga('send', 'event', 'GTranslate', lang, location.pathname+location.search);}var plang=location.pathname.split('/')[1];if(plang.length !=2 && plang != 'zh-CN' && plang != 'zh-TW' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';if(lang == '"+default_language+"')openTab(location.protocol+'//'+location.host+gt_request_uri);else openTab(location.protocol+'//'+location.host+'/'+lang+gt_request_uri);}"+new_line;
|
|
|
|
|
|
|
|
|
|
| 852 |
} else if(pro_version && translation_method == 'redirect') {
|
| 853 |
+
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(typeof ga=='function'){ga('send', 'event', 'GTranslate', lang, location.pathname+location.search);}var plang=location.pathname.split('/')[1];if(plang.length !=2 && plang != 'zh-CN' && plang != 'zh-TW' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';if(lang == '"+default_language+"')location.href=location.protocol+'//'+location.host+gt_request_uri;else location.href=location.protocol+'//'+location.host+'/'+lang+gt_request_uri;}"+new_line;
|
|
|
|
|
|
|
|
|
|
| 854 |
} else if(enterprise_version && translation_method == 'redirect' && new_window) {
|
| 855 |
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;
|
| 856 |
+
if(custom_domains && typeof custom_domains_data == 'object') {
|
| 857 |
+
widget_code += "var gt_custom_domains = "+JSON.stringify(custom_domains_data)+";"+new_line;
|
| 858 |
+
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(typeof ga=='function'){ga('send', 'event', 'GTranslate', lang, location.hostname+location.pathname+location.search);}if(gt_custom_domains[lang]){openTab(location.protocol+'//'+gt_custom_domains[lang]+gt_request_uri);}else{openTab(location.protocol+'//'+(lang == '"+default_language+"' ? '' : lang+'.')+'"+location.hostname+"'+gt_request_uri);}}"+new_line;
|
| 859 |
+
} else
|
| 860 |
+
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(typeof ga=='function'){ga('send', 'event', 'GTranslate', lang, location.hostname+location.pathname+location.search);}var plang=location.hostname.split('.')[0];if(plang.length !=2 && plang.toLowerCase() != 'zh-cn' && plang.toLowerCase() != 'zh-tw' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';openTab(location.protocol+'//'+(lang == '"+default_language+"' ? '' : lang+'.')+location.hostname.replace('www.', '').replace(RegExp('^' + plang + '[.]'), '')+gt_request_uri);}"+new_line;
|
| 861 |
} else if(enterprise_version && translation_method == 'redirect') {
|
| 862 |
+
if(custom_domains && typeof custom_domains_data == 'object') {
|
| 863 |
+
widget_code += "var gt_custom_domains = "+JSON.stringify(custom_domains_data)+";"+new_line;
|
| 864 |
+
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(typeof ga=='function'){ga('send', 'event', 'GTranslate', lang, location.hostname+location.pathname+location.search);}if(gt_custom_domains[lang]){location.href=location.protocol+'//'+gt_custom_domains[lang]+gt_request_uri;}else{location.href=location.protocol+'//'+(lang == '"+default_language+"' ? '' : lang+'.')+'"+location.hostname+"'+gt_request_uri;}}"+new_line;
|
| 865 |
+
} else
|
| 866 |
+
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(typeof ga=='function'){ga('send', 'event', 'GTranslate', lang, location.hostname+location.pathname+location.search);}var plang=location.hostname.split('.')[0];if(plang.length !=2 && plang.toLowerCase() != 'zh-cn' && plang.toLowerCase() != 'zh-tw' && plang != 'hmn' && plang != 'haw' && plang != 'ceb')plang='"+default_language+"';location.href=location.protocol+'//'+(lang == '"+default_language+"' ? '' : lang+'.')+location.hostname.replace('www.', '').replace(RegExp('^' + plang + '[.]'), '')+gt_request_uri;}"+new_line;
|
| 867 |
} else if(translation_method == 'onfly') {
|
| 868 |
widget_code += "function GTranslateGetCurrentLang() {var keyValue = document['cookie'].match('(^|;) ?googtrans=([^;]*)(;|$)');return keyValue ? keyValue[2].split('/')[2] : null;}"+new_line;
|
| 869 |
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;
|
| 870 |
+
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=='function'){ga('send', 'event', '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;
|
|
|
|
|
|
|
|
|
|
| 871 |
if(widget_look == 'dropdown_with_flags') {
|
| 872 |
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;
|
| 873 |
} else if(widget_look == 'popup') {
|
| 897 |
|
| 898 |
jQuery('#pro_version').attr('checked', '$pro_version'.length > 0);
|
| 899 |
jQuery('#enterprise_version').attr('checked', '$enterprise_version'.length > 0);
|
| 900 |
+
jQuery('#custom_domains').attr('checked', '$custom_domains'.length > 0);
|
| 901 |
jQuery('#url_translation').attr('checked', '$url_translation'.length > 0);
|
| 902 |
jQuery('#add_hreflang_tags').attr('checked', '$add_hreflang_tags'.length > 0);
|
| 903 |
jQuery('#email_translation').attr('checked', '$email_translation'.length > 0);
|
| 906 |
jQuery('#show_in_menu').val('$show_in_menu');
|
| 907 |
jQuery('#floating_language_selector').val('$floating_language_selector');
|
| 908 |
jQuery('#native_language_names').attr('checked', '$native_language_names'.length > 0);
|
|
|
|
| 909 |
jQuery('#detect_browser_language').attr('checked', '$detect_browser_language'.length > 0);
|
| 910 |
jQuery('#add_new_line').attr('checked', '$add_new_line'.length > 0);
|
| 911 |
jQuery('#default_language').val('$default_language');
|
| 923 |
jQuery('#dropdown_background_color').val('$dropdown_background_color');
|
| 924 |
|
| 925 |
if(jQuery('#pro_version:checked').length || jQuery('#enterprise_version:checked').length) {
|
| 926 |
+
if(jQuery('#enterprise_version:checked').length) {
|
| 927 |
+
jQuery('#custom_domains_option').show();
|
| 928 |
+
if(jQuery('#custom_domains:checked').length)
|
| 929 |
+
jQuery('.custom_domains_list').show();
|
| 930 |
+
else
|
| 931 |
+
jQuery('.custom_domains_list').hide();
|
| 932 |
+
} else {
|
| 933 |
+
jQuery('#custom_domains_option').hide();
|
| 934 |
+
jQuery('.custom_domains_list').hide();
|
| 935 |
+
}
|
| 936 |
+
|
| 937 |
jQuery('#new_window_option').show();
|
| 938 |
jQuery('#url_translation_option').show();
|
| 939 |
jQuery('#hreflang_tags_option').show();
|
| 940 |
jQuery('#email_translation_option').show();
|
| 941 |
if(jQuery('#email_translation:checked').length)
|
| 942 |
jQuery('#email_translation_debug_option').show();
|
| 943 |
+
else
|
| 944 |
+
jQuery('#email_translation_debug_option').hide();
|
| 945 |
}
|
| 946 |
|
| 947 |
if('$widget_look' == 'dropdown' || '$widget_look' == 'flags_dropdown' || '$widget_look' == 'globe' || '$widget_look' == 'lang_names' || '$widget_look' == 'lang_codes') {
|
| 1202 |
<td class="option_name">* <?php _e('Sub-domain URL structure', 'gtranslate'); ?>:<br><code><small>http://<b>es</b>.example.com/</small></code></td>
|
| 1203 |
<td><input id="enterprise_version" name="enterprise_version" value="1" type="checkbox" onclick="if(jQuery('#pro_version').is(':checked') && jQuery('#enterprise_version').is(':checked'))jQuery('#pro_version').prop('checked', false);RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/> <a href="https://gtranslate.io/?xyz=998#pricing" target="_blank" title="If you already have a subscription, you can enable this.">* <?php _e('for paid plans only', 'gtranslate'); ?></a></td>
|
| 1204 |
</tr>
|
| 1205 |
+
<tr id="custom_domains_option" style="display:none;">
|
| 1206 |
+
<td class="option_name"><?php _e('Custom domains', 'gtranslate'); ?>:<br><code><small>http://example.<b>es</b>/</small></code></td>
|
| 1207 |
+
<td><input id="custom_domains" name="custom_domains" value="1" type="checkbox" onclick="if(jQuery('#custom_domains').is(':checked'))SyncCustomDomains();RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/> <span id="custom_domains_status_sync" style="display:none;"><span class="dashicons dashicons-update gt-icon-spin"></span> <?php _e('Synchronizing...', 'gtranslate'); ?></span> <input type="hidden" id="custom_domains_data" name="custom_domains_data" value="<?php echo esc_attr(stripslashes($data['custom_domains_data'])); ?>"></td>
|
| 1208 |
+
</tr>
|
| 1209 |
<tr id="url_translation_option" style="display:none;">
|
| 1210 |
<td class="option_name"><?php _e('Enable URL Translation', 'gtranslate'); ?>:</td>
|
| 1211 |
<td><input id="url_translation" name="url_translation" value="1" type="checkbox"/></td>
|
| 1226 |
<td class="option_name"><?php _e('Open in new window', 'gtranslate'); ?>:</td>
|
| 1227 |
<td><input id="new_window" name="new_window" value="1" type="checkbox" onclick="RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/></td>
|
| 1228 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1229 |
<tr id="auto_switch_option">
|
| 1230 |
<td class="option_name"><?php _e('Auto switch to browser language', 'gtranslate'); ?>:</td>
|
| 1231 |
<td><input id="detect_browser_language" name="detect_browser_language" value="1" type="checkbox" onclick="RefreshDoWidgetCode()" onchange="RefreshDoWidgetCode()"/></td>
|
| 1386 |
</div>
|
| 1387 |
</div>
|
| 1388 |
|
| 1389 |
+
<div id="poststuff" class="custom_domains_list" style="display:none;">
|
| 1390 |
+
<div class="postbox">
|
| 1391 |
+
<h3 id="settings"><?php _e('Language hosting', 'gtranslate'); ?></h3>
|
| 1392 |
+
<div class="inside">
|
| 1393 |
+
<table id="custom_domains_list_tbl" style="width:100%;" cellpadding="0">
|
| 1394 |
+
<tr>
|
| 1395 |
+
<th><?php _e('Language', 'gtranslate'); ?></th>
|
| 1396 |
+
<th><?php _e('Domain', 'gtranslate'); ?></th>
|
| 1397 |
+
</tr>
|
| 1398 |
+
<?php
|
| 1399 |
+
if(isset($data['custom_domains_data']) and !empty($data['custom_domains_data'])) {
|
| 1400 |
+
$custom_domains_data = json_decode(stripslashes($data['custom_domains_data']), true);
|
| 1401 |
+
|
| 1402 |
+
if(is_array($custom_domains_data))
|
| 1403 |
+
foreach($custom_domains_data as $k => $v)
|
| 1404 |
+
echo '<tr class="lang_domain_row"><td>'.esc_html($k).'</td><td>'.esc_html($v).'</td></tr>';
|
| 1405 |
+
}
|
| 1406 |
+
?>
|
| 1407 |
+
</table>
|
| 1408 |
+
<br>
|
| 1409 |
+
<input type="button" class="button-secondary" value="Synchronize" onclick="SyncCustomDomains();RefreshDoWidgetCode();" title="<?php esc_attr_e('Synchronize custom domains with GTranslate dashboard: https://my.gtranslate.io', 'gtranslate'); ?>">
|
| 1410 |
+
</div>
|
| 1411 |
+
</div>
|
| 1412 |
+
</div>
|
| 1413 |
+
|
| 1414 |
<div id="poststuff" class="switcher_color_options">
|
| 1415 |
<div class="postbox">
|
| 1416 |
<h3 id="settings"><?php _e('Color options', 'gtranslate'); ?> ( <a href="#" onclick="return light_color_scheme()">light</a> | <a href="#" onclick="return dark_color_scheme()">dark</a> )</h3>
|
| 1529 |
<li><a href="https://my.gtranslate.io/" target="_blank"><?php _e('User dashboard', 'gtranslate'); ?></a></li>
|
| 1530 |
<li><a href="https://gtranslate.io/?xyz=998#pricing" target="_blank"><?php _e('Compare plans', 'gtranslate'); ?></a></li>
|
| 1531 |
<li><a href="https://gtranslate.io/website-translation-quote" target="_blank"><?php _e('Website Translation Quote', 'gtranslate'); ?></a></li>
|
| 1532 |
+
<li><a href="https://gtranslate.io/detect-browser-language" target="_blank"><?php _e('Detect browser language', 'gtranslate'); ?></a></li>
|
| 1533 |
<li><a href="https://wordpress.org/support/plugin/gtranslate/reviews/" target="_blank"><?php _e('Reviews', 'gtranslate'); ?></a></li>
|
| 1534 |
</ul>
|
| 1535 |
</td>
|
| 1562 |
<script><?php echo $script; ?></script>
|
| 1563 |
<style>
|
| 1564 |
#widget_preview a:focus {box-shadow:none;outline:none;}
|
| 1565 |
+
#custom_domains_list_tbl th {text-align:left;}
|
| 1566 |
+
#custom_domains_list_tbl td {padding:5px 0;}
|
| 1567 |
.switcher_color_options button {box-shadow:none !important;border:1px solid #b4b9be !important;border-radius:0 !important;}
|
| 1568 |
.switcher_color_options h3 a {text-decoration:none;font-weight:400;}
|
| 1569 |
.switcher_color_options h3 a:hover {text-decoration:underline;}
|
| 1584 |
|
| 1585 |
.connectedSortable1, .connectedSortable1 li, .connectedSortable2, .connectedSortable2 li {margin:0;padding:0;}
|
| 1586 |
.connectedSortable1 li label, .connectedSortable2 li label {cursor:move;}
|
| 1587 |
+
|
| 1588 |
+
@keyframes gt-icon-spin-animation {
|
| 1589 |
+
0% {transform:rotate(0deg);}
|
| 1590 |
+
100% {transform:rotate(359deg);}
|
| 1591 |
+
}
|
| 1592 |
+
.gt-icon-spin {animation:gt-icon-spin-animation 2s infinite linear;}
|
| 1593 |
</style>
|
| 1594 |
|
| 1595 |
<script>window.intercomSettings = {app_id: "r70azrgx", 'platform': 'wordpress', 'translate_from': '<?php echo $default_language; ?>', 'is_sub_directory': <?php echo (empty($pro_version) ? '0' : '1'); ?>, 'is_sub_domain': <?php echo (empty($enterprise_version) ? '0' : '1'); ?>};(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/r70azrgx';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script>
|
| 1606 |
|
| 1607 |
$data['pro_version'] = isset($_POST['pro_version']) ? intval($_POST['pro_version']) : '';
|
| 1608 |
$data['enterprise_version'] = isset($_POST['enterprise_version']) ? intval($_POST['enterprise_version']) : '';
|
| 1609 |
+
$data['custom_domains'] = isset($_POST['custom_domains']) ? intval($_POST['custom_domains']) : '';
|
| 1610 |
+
$data['custom_domains_data'] = isset($_POST['custom_domains_data']) ? sanitize_text_field($_POST['custom_domains_data']) : '';
|
| 1611 |
$data['url_translation'] = isset($_POST['url_translation']) ? intval($_POST['url_translation']) : '';
|
| 1612 |
$data['add_hreflang_tags'] = isset($_POST['add_hreflang_tags']) ? intval($_POST['add_hreflang_tags']) : '';
|
| 1613 |
$data['email_translation'] = isset($_POST['email_translation']) ? intval($_POST['email_translation']) : '';
|
| 1616 |
$data['show_in_menu'] = isset($_POST['show_in_menu']) ? sanitize_text_field($_POST['show_in_menu']) : '';
|
| 1617 |
$data['floating_language_selector'] = isset($_POST['floating_language_selector']) ? sanitize_text_field($_POST['floating_language_selector']) : 'no';
|
| 1618 |
$data['native_language_names'] = isset($_POST['native_language_names']) ? intval($_POST['native_language_names']) : '';
|
|
|
|
| 1619 |
$data['detect_browser_language'] = isset($_POST['detect_browser_language']) ? intval($_POST['detect_browser_language']) : '';
|
| 1620 |
$data['add_new_line'] = isset($_POST['add_new_line']) ? intval($_POST['add_new_line']) : '';
|
| 1621 |
$data['default_language'] = isset($_POST['default_language']) ? sanitize_text_field($_POST['default_language']) : 'en';
|
| 1692 |
|
| 1693 |
$data['pro_version'] = isset($data['pro_version']) ? $data['pro_version'] : '';
|
| 1694 |
$data['enterprise_version'] = isset($data['enterprise_version']) ? $data['enterprise_version'] : '';
|
| 1695 |
+
$data['custom_domains'] = isset($data['custom_domains']) ? $data['custom_domains'] : '';
|
| 1696 |
+
$data['custom_domains_data'] = isset($data['custom_domains_data']) ? $data['custom_domains_data'] : '';
|
| 1697 |
$data['url_translation'] = isset($data['url_translation']) ? $data['url_translation'] : '';
|
| 1698 |
$data['add_hreflang_tags'] = isset($data['add_hreflang_tags']) ? $data['add_hreflang_tags'] : '';
|
| 1699 |
$data['email_translation'] = isset($data['email_translation']) ? $data['email_translation'] : '';
|
| 1702 |
$data['show_in_menu'] = isset($data['show_in_menu']) ? $data['show_in_menu'] : ((isset($data['show_in_primary_menu']) and $data['show_in_primary_menu'] == 1) ? 'primary' : '');
|
| 1703 |
$data['floating_language_selector'] = isset($data['floating_language_selector']) ? $data['floating_language_selector'] : 'no';
|
| 1704 |
$data['native_language_names'] = isset($data['native_language_names']) ? $data['native_language_names'] : '';
|
|
|
|
| 1705 |
$data['detect_browser_language'] = isset($data['detect_browser_language']) ? $data['detect_browser_language'] : '';
|
| 1706 |
$data['add_new_line'] = isset($data['add_new_line']) ? $data['add_new_line'] : '1';
|
| 1707 |
|
| 2020 |
|
| 2021 |
public function gt_admin_notices() {
|
| 2022 |
|
| 2023 |
+
$deactivate_plugins= array('WP Translator' => 'wptranslator/WPTranslator.php', 'TranslatePress' => 'translatepress-multilingual/index.php', 'Google Language Translator' => 'google-language-translator/google-language-translator.php', 'Google Website Translator' => 'google-website-translator/google-website-translator.php', 'Weglot' => 'weglot/weglot.php', 'TransPosh' => 'transposh-translation-filter-for-wordpress/transposh.php', 'Advanced Google Translate' => 'advanced-google-translate/advanced-google-translate.php', 'My WP Translate' => 'my-wp-translate/my-wp-translate.php');
|
| 2024 |
foreach($deactivate_plugins as $name => $plugin_file) {
|
| 2025 |
if(is_plugin_active($plugin_file)) {
|
| 2026 |
$deactivate_link = wp_nonce_url('plugins.php?action=deactivate&plugin='.urlencode($plugin_file ).'&plugin_status=all&paged=1&s=', 'deactivate-plugin_' . $plugin_file);
|
| 2298 |
$href = '';
|
| 2299 |
$domain = str_replace('www.', '', $_SERVER['HTTP_HOST']);
|
| 2300 |
|
| 2301 |
+
if($data['enterprise_version']) {
|
| 2302 |
+
if($data['custom_domains'] and !empty($data['custom_domains_data'])) {
|
| 2303 |
+
$custom_domains_data = json_decode(stripslashes($data['custom_domains_data']), true);
|
| 2304 |
+
if(isset($custom_domains_data[$lang]))
|
| 2305 |
+
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $custom_domains_data[$lang], $current_url);
|
| 2306 |
+
else
|
| 2307 |
+
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $lang . '.' . $domain, $current_url);
|
| 2308 |
+
} else
|
| 2309 |
+
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $lang . '.' . $domain, $current_url);
|
| 2310 |
+
} elseif($data['pro_version'])
|
| 2311 |
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $_SERVER['HTTP_HOST'] . '/' . $lang, $current_url);
|
| 2312 |
|
| 2313 |
if(!empty($href) and $lang != $data['default_language']) {
|
| 2388 |
|
| 2389 |
if($data['pro_version'])
|
| 2390 |
header('Location: ' . home_url() . '/' . $accept_language . '/');
|
|
|
|
|
|
|
| 2391 |
|
| 2392 |
+
if($data['enterprise_version'] and isset($_SERVER['HTTP_HOST'])) {
|
| 2393 |
+
if($data['custom_domains'] and !empty($data['custom_domains_data'])) {
|
| 2394 |
+
$custom_domains_data = json_decode(stripslashes($data['custom_domains_data']), true);
|
| 2395 |
+
if(isset($custom_domains_data[$accept_language]))
|
| 2396 |
+
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $custom_domains_data[$accept_language], site_url());
|
| 2397 |
+
else
|
| 2398 |
+
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $accept_language . '.' . preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']), site_url());
|
| 2399 |
+
} else
|
| 2400 |
+
$href = str_ireplace('://' . $_SERVER['HTTP_HOST'], '://' . $accept_language . '.' . preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']), site_url());
|
| 2401 |
+
header('Location: ' . $href);
|
| 2402 |
+
}
|
| 2403 |
+
|
| 2404 |
+
header('Vary: Accept-Language');
|
| 2405 |
|
| 2406 |
exit;
|
| 2407 |
}
|
| 2676 |
if($data['enterprise_version']) {
|
| 2677 |
// solve wp_get_referer issue
|
| 2678 |
function gt_allowed_redirect_hosts($hosts) {
|
| 2679 |
+
$data = get_option('GTranslate');
|
| 2680 |
+
GTranslate::load_defaults($data);
|
| 2681 |
+
|
| 2682 |
+
if($data['custom_domains'] and !empty($data['custom_domains_data'])) {
|
| 2683 |
+
$custom_domains_data = json_decode(stripslashes($data['custom_domains_data']), true);
|
| 2684 |
+
$gt_hosts = array_values($custom_domains_data);
|
| 2685 |
+
} else {
|
| 2686 |
+
$gt_hosts = array();
|
| 2687 |
+
}
|
| 2688 |
+
|
| 2689 |
if(isset($_SERVER['HTTP_X_GT_LANG']))
|
| 2690 |
+
$gt_hosts[] = $_SERVER['HTTP_X_GT_LANG'] . '.' . preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
|
| 2691 |
|
| 2692 |
return array_merge($hosts, $gt_hosts);
|
| 2693 |
}
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ 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.8
|
| 7 |
-
Stable tag: 2.9.
|
| 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
|
|
@@ -251,6 +251,14 @@ If you want us to translate your website professionally or provide you a proofre
|
|
| 251 |
8. User Dashboard
|
| 252 |
|
| 253 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 254 |
= 2.9.3 =
|
| 255 |
* Avoid minification of Google Translate javascript library by LiteSpeed Cache and WP Rocket cache plugins in the free version
|
| 256 |
|
| 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.8
|
| 7 |
+
Stable tag: 2.9.5
|
| 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
|
| 251 |
8. User Dashboard
|
| 252 |
|
| 253 |
== Changelog ==
|
| 254 |
+
= 2.9.5 =
|
| 255 |
+
* Fix for javascript error introduced in 2.9.4
|
| 256 |
+
|
| 257 |
+
= 2.9.4 =
|
| 258 |
+
* New interface for paid plans to easily configure custom domains for languages
|
| 259 |
+
* Adding Vary: Accept-Language response header when auto redirecting to browser language
|
| 260 |
+
* Google Analytics event tracking is on by default when analytics.js is present on the website, old ga.js support is removed
|
| 261 |
+
|
| 262 |
= 2.9.3 =
|
| 263 |
* Avoid minification of Google Translate javascript library by LiteSpeed Cache and WP Rocket cache plugins in the free version
|
| 264 |
|
