Version Description
- Added translation support for PDF invoices in WooCommerce PDF Invoices plugin
- Fixed email translation issue with custom domains
- Fixed typo in Sundanese language name
Download this release
Release Info
Developer | edo888 |
Plugin | Translate WordPress with GTranslate |
Version | 2.9.13 |
Comparing to | |
See all releases |
Code changes from version 2.9.12 to 2.9.13
- gtranslate.php +105 -3
- readme.txt +6 -1
gtranslate.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: GTranslate
|
4 |
Plugin URI: https://gtranslate.io/?xyz=998
|
5 |
Description: Translate your website and make it multilingual. For support visit <a href="https://wordpress.org/support/plugin/gtranslate">GTranslate Support Forum</a>.
|
6 |
-
Version: 2.9.
|
7 |
Author: Translate AI Multilingual Solutions
|
8 |
Author URI: https://gtranslate.io
|
9 |
Text Domain: gtranslate
|
@@ -265,7 +265,7 @@ class GTranslate extends WP_Widget {
|
|
265 |
|
266 |
extract($data);
|
267 |
|
268 |
-
$gt_lang_array_json = '{"af":"Afrikaans","sq":"Albanian","am":"Amharic","ar":"Arabic","hy":"Armenian","az":"Azerbaijani","eu":"Basque","be":"Belarusian","bn":"Bengali","bs":"Bosnian","bg":"Bulgarian","ca":"Catalan","ceb":"Cebuano","ny":"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)","co":"Corsican","hr":"Croatian","cs":"Czech","da":"Danish","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","tl":"Filipino","fi":"Finnish","fr":"French","fy":"Frisian","gl":"Galician","ka":"Georgian","de":"German","el":"Greek","gu":"Gujarati","ht":"Haitian Creole","ha":"Hausa","haw":"Hawaiian","iw":"Hebrew","hi":"Hindi","hmn":"Hmong","hu":"Hungarian","is":"Icelandic","ig":"Igbo","id":"Indonesian","ga":"Irish","it":"Italian","ja":"Japanese","jw":"Javanese","kn":"Kannada","kk":"Kazakh","km":"Khmer","ko":"Korean","ku":"Kurdish (Kurmanji)","ky":"Kyrgyz","lo":"Lao","la":"Latin","lv":"Latvian","lt":"Lithuanian","lb":"Luxembourgish","mk":"Macedonian","mg":"Malagasy","ms":"Malay","ml":"Malayalam","mt":"Maltese","mi":"Maori","mr":"Marathi","mn":"Mongolian","my":"Myanmar (Burmese)","ne":"Nepali","no":"Norwegian","ps":"Pashto","fa":"Persian","pl":"Polish","pt":"Portuguese","pa":"Punjabi","ro":"Romanian","ru":"Russian","sm":"Samoan","gd":"Scottish Gaelic","sr":"Serbian","st":"Sesotho","sn":"Shona","sd":"Sindhi","si":"Sinhala","sk":"Slovak","sl":"Slovenian","so":"Somali","es":"Spanish","su":"
|
269 |
$gt_lang_array = get_object_vars(json_decode($gt_lang_array_json));
|
270 |
include dirname(__FILE__) . '/native_names_map.php'; // defines $native_names_map array
|
271 |
//echo '<pre>' . print_r($native_names_map, true) . '</pre>';
|
@@ -1196,7 +1196,7 @@ EOT;
|
|
1196 |
<option value="sl"><?php _e('Slovenian', 'gtranslate'); ?></option>
|
1197 |
<option value="so"><?php _e('Somali', 'gtranslate'); ?></option>
|
1198 |
<option value="es"><?php _e('Spanish', 'gtranslate'); ?></option>
|
1199 |
-
<option value="su"><?php _e('
|
1200 |
<option value="sw"><?php _e('Swahili', 'gtranslate'); ?></option>
|
1201 |
<option value="sv"><?php _e('Swedish', 'gtranslate'); ?></option>
|
1202 |
<option value="tg"><?php _e('Tajik', 'gtranslate'); ?></option>
|
@@ -2660,6 +2660,11 @@ if($data['pro_version'] or $data['enterprise_version']) {
|
|
2660 |
$server_id = intval(substr(md5(preg_replace('/^www\./', '', $_SERVER['HTTP_HOST'])), 0, 5), 16) % count($servers);
|
2661 |
$server = $servers[$server_id];
|
2662 |
$host = $_SERVER['HTTP_X_GT_LANG'] . '.' . preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
|
|
|
|
|
|
|
|
|
|
|
2663 |
$protocol = ((isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] == 'on' or $_SERVER['HTTPS'] == 1)) or (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https' : 'http';
|
2664 |
|
2665 |
$headers = array();
|
@@ -2741,6 +2746,103 @@ if($data['pro_version'] or $data['enterprise_version']) {
|
|
2741 |
return $args;
|
2742 |
}
|
2743 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2744 |
add_filter('wp_mail', 'gt_translate_emails', 10000, 1);
|
2745 |
}
|
2746 |
}
|
3 |
Plugin Name: GTranslate
|
4 |
Plugin URI: https://gtranslate.io/?xyz=998
|
5 |
Description: Translate your website and make it multilingual. For support visit <a href="https://wordpress.org/support/plugin/gtranslate">GTranslate Support Forum</a>.
|
6 |
+
Version: 2.9.13
|
7 |
Author: Translate AI Multilingual Solutions
|
8 |
Author URI: https://gtranslate.io
|
9 |
Text Domain: gtranslate
|
265 |
|
266 |
extract($data);
|
267 |
|
268 |
+
$gt_lang_array_json = '{"af":"Afrikaans","sq":"Albanian","am":"Amharic","ar":"Arabic","hy":"Armenian","az":"Azerbaijani","eu":"Basque","be":"Belarusian","bn":"Bengali","bs":"Bosnian","bg":"Bulgarian","ca":"Catalan","ceb":"Cebuano","ny":"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)","co":"Corsican","hr":"Croatian","cs":"Czech","da":"Danish","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","tl":"Filipino","fi":"Finnish","fr":"French","fy":"Frisian","gl":"Galician","ka":"Georgian","de":"German","el":"Greek","gu":"Gujarati","ht":"Haitian Creole","ha":"Hausa","haw":"Hawaiian","iw":"Hebrew","hi":"Hindi","hmn":"Hmong","hu":"Hungarian","is":"Icelandic","ig":"Igbo","id":"Indonesian","ga":"Irish","it":"Italian","ja":"Japanese","jw":"Javanese","kn":"Kannada","kk":"Kazakh","km":"Khmer","ko":"Korean","ku":"Kurdish (Kurmanji)","ky":"Kyrgyz","lo":"Lao","la":"Latin","lv":"Latvian","lt":"Lithuanian","lb":"Luxembourgish","mk":"Macedonian","mg":"Malagasy","ms":"Malay","ml":"Malayalam","mt":"Maltese","mi":"Maori","mr":"Marathi","mn":"Mongolian","my":"Myanmar (Burmese)","ne":"Nepali","no":"Norwegian","ps":"Pashto","fa":"Persian","pl":"Polish","pt":"Portuguese","pa":"Punjabi","ro":"Romanian","ru":"Russian","sm":"Samoan","gd":"Scottish Gaelic","sr":"Serbian","st":"Sesotho","sn":"Shona","sd":"Sindhi","si":"Sinhala","sk":"Slovak","sl":"Slovenian","so":"Somali","es":"Spanish","su":"Sundanese","sw":"Swahili","sv":"Swedish","tg":"Tajik","ta":"Tamil","te":"Telugu","th":"Thai","tr":"Turkish","uk":"Ukrainian","ur":"Urdu","uz":"Uzbek","vi":"Vietnamese","cy":"Welsh","xh":"Xhosa","yi":"Yiddish","yo":"Yoruba","zu":"Zulu"}';
|
269 |
$gt_lang_array = get_object_vars(json_decode($gt_lang_array_json));
|
270 |
include dirname(__FILE__) . '/native_names_map.php'; // defines $native_names_map array
|
271 |
//echo '<pre>' . print_r($native_names_map, true) . '</pre>';
|
1196 |
<option value="sl"><?php _e('Slovenian', 'gtranslate'); ?></option>
|
1197 |
<option value="so"><?php _e('Somali', 'gtranslate'); ?></option>
|
1198 |
<option value="es"><?php _e('Spanish', 'gtranslate'); ?></option>
|
1199 |
+
<option value="su"><?php _e('Sundanese', 'gtranslate'); ?></option>
|
1200 |
<option value="sw"><?php _e('Swahili', 'gtranslate'); ?></option>
|
1201 |
<option value="sv"><?php _e('Swedish', 'gtranslate'); ?></option>
|
1202 |
<option value="tg"><?php _e('Tajik', 'gtranslate'); ?></option>
|
2660 |
$server_id = intval(substr(md5(preg_replace('/^www\./', '', $_SERVER['HTTP_HOST'])), 0, 5), 16) % count($servers);
|
2661 |
$server = $servers[$server_id];
|
2662 |
$host = $_SERVER['HTTP_X_GT_LANG'] . '.' . preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
|
2663 |
+
if($data['custom_domains'] and !empty($data['custom_domains_data'])) {
|
2664 |
+
$custom_domains_data = json_decode(stripslashes($data['custom_domains_data']), true);
|
2665 |
+
if(isset($custom_domains_data[$_SERVER['HTTP_X_GT_LANG']]))
|
2666 |
+
$host = $custom_domains_data[$_SERVER['HTTP_X_GT_LANG']];
|
2667 |
+
}
|
2668 |
$protocol = ((isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] == 'on' or $_SERVER['HTTPS'] == 1)) or (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https' : 'http';
|
2669 |
|
2670 |
$headers = array();
|
2746 |
return $args;
|
2747 |
}
|
2748 |
|
2749 |
+
// woocommerce pdf invoice translation
|
2750 |
+
function gt_translate_invoice_pdf($html) {
|
2751 |
+
if(function_exists('curl_init') and isset($_SERVER['HTTP_X_GT_LANG'])) {
|
2752 |
+
$data = get_option('GTranslate');
|
2753 |
+
GTranslate::load_defaults($data);
|
2754 |
+
|
2755 |
+
// add notranslate for addresses
|
2756 |
+
$html = str_replace('-address"', 'notranslate -address"', $html);
|
2757 |
+
|
2758 |
+
include dirname(__FILE__) . '/url_addon/config.php';
|
2759 |
+
$server_id = intval(substr(md5(preg_replace('/^www\./', '', $_SERVER['HTTP_HOST'])), 0, 5), 16) % count($servers);
|
2760 |
+
$server = $servers[$server_id];
|
2761 |
+
$host = $_SERVER['HTTP_X_GT_LANG'] . '.' . preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
|
2762 |
+
if($data['custom_domains'] and !empty($data['custom_domains_data'])) {
|
2763 |
+
$custom_domains_data = json_decode(stripslashes($data['custom_domains_data']), true);
|
2764 |
+
if(isset($custom_domains_data[$_SERVER['HTTP_X_GT_LANG']]))
|
2765 |
+
$host = $custom_domains_data[$_SERVER['HTTP_X_GT_LANG']];
|
2766 |
+
}
|
2767 |
+
$protocol = ((isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] == 'on' or $_SERVER['HTTPS'] == 1)) or (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https' : 'http';
|
2768 |
+
|
2769 |
+
$headers = array();
|
2770 |
+
$headers[] = 'Host: ' . $host;
|
2771 |
+
// add real visitor IP header
|
2772 |
+
if(isset($_SERVER['HTTP_CLIENT_IP']) and !empty($_SERVER['HTTP_CLIENT_IP']))
|
2773 |
+
$viewer_ip_address = $_SERVER['HTTP_CLIENT_IP'];
|
2774 |
+
if(isset($_SERVER['HTTP_CF_CONNECTING_IP']) and !empty($_SERVER['HTTP_CF_CONNECTING_IP']))
|
2775 |
+
$viewer_ip_address = $_SERVER['HTTP_CF_CONNECTING_IP'];
|
2776 |
+
if(isset($_SERVER['HTTP_X_SUCURI_CLIENTIP']) and !empty($_SERVER['HTTP_X_SUCURI_CLIENTIP']))
|
2777 |
+
$viewer_ip_address = $_SERVER['HTTP_X_SUCURI_CLIENTIP'];
|
2778 |
+
if(!isset($viewer_ip_address))
|
2779 |
+
$viewer_ip_address = $_SERVER['REMOTE_ADDR'];
|
2780 |
+
|
2781 |
+
$headers[] = 'X-GT-Viewer-IP: ' . $viewer_ip_address;
|
2782 |
+
$headers[] = 'User-Agent: GTranslate-Email-Translate';
|
2783 |
+
|
2784 |
+
// add X-Forwarded-For
|
2785 |
+
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) and !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
|
2786 |
+
$headers[] = 'X-GT-Forwarded-For: ' . $_SERVER['HTTP_X_FORWARDED_FOR'];
|
2787 |
+
|
2788 |
+
$ch = curl_init();
|
2789 |
+
curl_setopt($ch, CURLOPT_URL, $protocol.'://'.$server.'.tdn.gtranslate.net'.wp_make_link_relative(plugins_url('gtranslate/url_addon/gtranslate-email.php').'?format=pdf_html&glang='.$_SERVER['HTTP_X_GT_LANG']));
|
2790 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
2791 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
2792 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
|
2793 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
2794 |
+
if(defined('CURL_IPRESOLVE_V4')) curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
2795 |
+
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/url_addon/cacert.pem');
|
2796 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
2797 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array('body' => base64_encode(do_shortcode("<subject>PDF Invoice</subject><message>$html</message>")), 'access_key' => md5(substr(NONCE_SALT, 0, 10) . substr(NONCE_KEY, 0, 5))));
|
2798 |
+
|
2799 |
+
if($data['email_translation_debug']) {
|
2800 |
+
$fh = fopen(dirname(__FILE__) . '/url_addon/debug.txt', 'a');
|
2801 |
+
curl_setopt($ch, CURLOPT_VERBOSE, true);
|
2802 |
+
curl_setopt($ch, CURLOPT_STDERR, $fh);
|
2803 |
+
}
|
2804 |
+
|
2805 |
+
$response = curl_exec($ch);
|
2806 |
+
$response_info = curl_getinfo($ch);
|
2807 |
+
curl_close($ch);
|
2808 |
+
|
2809 |
+
if($data['email_translation_debug']) {
|
2810 |
+
file_put_contents(dirname(__FILE__) . '/url_addon/debug.txt', 'Response PDF: ' . $response . "\n", FILE_APPEND);
|
2811 |
+
file_put_contents(dirname(__FILE__) . '/url_addon/debug.txt', 'Response_info PDF: ' . print_r($response_info, true) . "\n", FILE_APPEND);
|
2812 |
+
}
|
2813 |
+
|
2814 |
+
if(isset($response_info['http_code']) and $response_info['http_code'] == 200) {
|
2815 |
+
$response = json_decode($response, true);
|
2816 |
+
if(empty($response))
|
2817 |
+
return $html;
|
2818 |
+
|
2819 |
+
$response = base64_decode($response['email-body']);
|
2820 |
+
if($response === false)
|
2821 |
+
return $html;
|
2822 |
+
|
2823 |
+
if($data['pro_version'])
|
2824 |
+
$response = str_ireplace($host, $_SERVER['HTTP_HOST'] . '/' . $_SERVER['HTTP_X_GT_LANG'], $response);
|
2825 |
+
|
2826 |
+
preg_match_all('/<subject>(.*?)<\/subject><message>(.*?)<\/message>/s', $response, $matches);
|
2827 |
+
//file_put_contents(dirname(__FILE__) . '/url_addon/debug.txt', 'Matches: ' . print_r($matches, true) . "\n", FILE_APPEND);
|
2828 |
+
|
2829 |
+
if(isset($matches[1][0], $matches[2][0])) {
|
2830 |
+
$html = $matches[2][0];
|
2831 |
+
|
2832 |
+
// fix image
|
2833 |
+
$html = str_replace('<img src="https://' . $_SERVER['HTTP_HOST'], '<img src="', $html);
|
2834 |
+
|
2835 |
+
if($data['email_translation_debug']) {
|
2836 |
+
file_put_contents(dirname(__FILE__) . '/url_addon/debug.txt', 'Translated PDF HTML: ' . $html . "\n", FILE_APPEND);
|
2837 |
+
}
|
2838 |
+
}
|
2839 |
+
}
|
2840 |
+
}
|
2841 |
+
|
2842 |
+
return $html;
|
2843 |
+
}
|
2844 |
+
|
2845 |
+
add_filter('wpo_wcpdf_get_html', 'gt_translate_invoice_pdf', 10000, 1);
|
2846 |
add_filter('wp_mail', 'gt_translate_emails', 10000, 1);
|
2847 |
}
|
2848 |
}
|
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: 6.0
|
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,11 @@ If you want us to translate your website professionally or provide you a proofre
|
|
251 |
8. User Dashboard
|
252 |
|
253 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
254 |
= 2.9.12 =
|
255 |
* Fix for conflict with WP Rocket plugin when "Load JavaScript deferred" option is enabled
|
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: 6.0
|
7 |
+
Stable tag: 2.9.13
|
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.13 =
|
255 |
+
* Added translation support for PDF invoices in WooCommerce PDF Invoices plugin
|
256 |
+
* Fixed email translation issue with custom domains
|
257 |
+
* Fixed typo in Sundanese language name
|
258 |
+
|
259 |
= 2.9.12 =
|
260 |
* Fix for conflict with WP Rocket plugin when "Load JavaScript deferred" option is enabled
|
261 |
|