Version Description
- Fixed an issue with the Language by Get Parameter add-on
- Added compatibility with WooCommerce PDF invoice and WooCommerce's order notes.
- Added stop_translating_page and before_running_hooks hooks.
- Refactored hooks-loader to easily remove hook
Download this release
Release Info
Developer | madalin.ungureanu |
Plugin | TranslatePress – Translate Multilingual sites |
Version | 1.4.3 |
Comparing to | |
See all releases |
Code changes from version 1.4.2 to 1.4.3
- assets/js/trp-translate-dom-changes.js +17 -14
- class-translate-press.php +1 -1
- includes/class-hooks-loader.php +30 -24
- includes/class-translation-render.php +10 -5
- includes/class-url-converter.php +1 -0
- includes/functions.php +50 -8
- index.php +1 -1
- languages/translatepress-multilingual.pot +16 -16
- readme.txt +8 -2
assets/js/trp-translate-dom-changes.js
CHANGED
@@ -105,7 +105,9 @@ function TRP_Translator(){
|
|
105 |
}
|
106 |
|
107 |
if ( ! translation_found ){
|
|
|
108 |
queried_string.node.textContent = initial_value;
|
|
|
109 |
}
|
110 |
}
|
111 |
// this should always be outside the for loop
|
@@ -139,17 +141,7 @@ function TRP_Translator(){
|
|
139 |
jQuery(mutation.addedNodes[i]).find('a').context.href = _this.update_query_string('trp-edit-translation', 'preview', jQuery(mutation.addedNodes[i]).find('a').context.href);
|
140 |
}
|
141 |
|
142 |
-
|
143 |
-
var attr_array = ['data-no-translation', 'data-no-dynamic-translation', 'data-trpgettextoriginal', 'data-trp-translate-id'];
|
144 |
-
var skip_string = false;
|
145 |
-
for (var at = 0; at < attr_array.length ; at++ ){
|
146 |
-
var current_attribute = node.attr( attr_array[ at ] );
|
147 |
-
if ( (typeof current_attribute !== typeof undefined && current_attribute !== false) || node.parents( '[' + attr_array[ at ] + ']').length > 0 ){
|
148 |
-
skip_string = true;
|
149 |
-
break;
|
150 |
-
}
|
151 |
-
}
|
152 |
-
if ( skip_string ){
|
153 |
continue;
|
154 |
}
|
155 |
|
@@ -170,7 +162,7 @@ function TRP_Translator(){
|
|
170 |
var all_nodes = jQuery( mutation.addedNodes[i]).find( '*').addBack();
|
171 |
var all_strings = all_nodes.contents().filter(function(){
|
172 |
if( this.nodeType === 3 && /\S/.test(this.nodeValue) ){
|
173 |
-
if (
|
174 |
return this;
|
175 |
}
|
176 |
}});
|
@@ -196,9 +188,20 @@ function TRP_Translator(){
|
|
196 |
}
|
197 |
};
|
198 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
function get_string_from_node( node ){
|
200 |
if( node.nodeType === 3 && /\S/.test(node.nodeValue) ){
|
201 |
-
if (
|
202 |
return node;
|
203 |
}
|
204 |
}
|
@@ -269,7 +272,7 @@ function TRP_Translator(){
|
|
269 |
observer.observe( document.body , config );
|
270 |
|
271 |
jQuery( document ).ajaxComplete(function( event, request, settings ) {
|
272 |
-
if( window.parent.jQuery('#trp-preview-iframe').length != 0 ) {
|
273 |
var settingsdata = "" + settings.data;
|
274 |
if( typeof settings.data == 'undefined' || jQuery.isEmptyObject( settings.data ) || settingsdata.indexOf('action=trp_') === -1 ) {
|
275 |
window.parent.jQuery('#trp-preview-iframe').trigger('trp_page_loaded');
|
105 |
}
|
106 |
|
107 |
if ( ! translation_found ){
|
108 |
+
_this.pause_observer();
|
109 |
queried_string.node.textContent = initial_value;
|
110 |
+
_this.unpause_observer();
|
111 |
}
|
112 |
}
|
113 |
// this should always be outside the for loop
|
141 |
jQuery(mutation.addedNodes[i]).find('a').context.href = _this.update_query_string('trp-edit-translation', 'preview', jQuery(mutation.addedNodes[i]).find('a').context.href);
|
142 |
}
|
143 |
|
144 |
+
if ( skip_string(node) ){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
continue;
|
146 |
}
|
147 |
|
162 |
var all_nodes = jQuery( mutation.addedNodes[i]).find( '*').addBack();
|
163 |
var all_strings = all_nodes.contents().filter(function(){
|
164 |
if( this.nodeType === 3 && /\S/.test(this.nodeValue) ){
|
165 |
+
if ( ! skip_string(this) ){
|
166 |
return this;
|
167 |
}
|
168 |
}});
|
188 |
}
|
189 |
};
|
190 |
|
191 |
+
function skip_string(node){
|
192 |
+
// skip nodes containing these attributes
|
193 |
+
var selectors = trp_data.trp_skip_selectors;
|
194 |
+
for (var i = 0; i < selectors.length ; i++ ){
|
195 |
+
if ( jQuery(node).closest( selectors[ i ] ).length > 0 ){
|
196 |
+
return true;
|
197 |
+
}
|
198 |
+
}
|
199 |
+
return false;
|
200 |
+
}
|
201 |
+
|
202 |
function get_string_from_node( node ){
|
203 |
if( node.nodeType === 3 && /\S/.test(node.nodeValue) ){
|
204 |
+
if ( ! skip_string(node) ){
|
205 |
return node;
|
206 |
}
|
207 |
}
|
272 |
observer.observe( document.body , config );
|
273 |
|
274 |
jQuery( document ).ajaxComplete(function( event, request, settings ) {
|
275 |
+
if( typeof window.parent.jQuery !== "undefined" && window.parent.jQuery('#trp-preview-iframe').length != 0 ) {
|
276 |
var settingsdata = "" + settings.data;
|
277 |
if( typeof settings.data == 'undefined' || jQuery.isEmptyObject( settings.data ) || settingsdata.indexOf('action=trp_') === -1 ) {
|
278 |
window.parent.jQuery('#trp-preview-iframe').trigger('trp_page_loaded');
|
class-translate-press.php
CHANGED
@@ -41,7 +41,7 @@ class TRP_Translate_Press{
|
|
41 |
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
42 |
define( 'TRP_PLUGIN_BASE', plugin_basename( __DIR__ . '/index.php' ) );
|
43 |
define( 'TRP_PLUGIN_SLUG', 'translatepress-multilingual' );
|
44 |
-
define( 'TRP_PLUGIN_VERSION', '1.4.
|
45 |
|
46 |
wp_cache_add_non_persistent_groups(array('trp'));
|
47 |
|
41 |
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
42 |
define( 'TRP_PLUGIN_BASE', plugin_basename( __DIR__ . '/index.php' ) );
|
43 |
define( 'TRP_PLUGIN_SLUG', 'translatepress-multilingual' );
|
44 |
+
define( 'TRP_PLUGIN_VERSION', '1.4.3' );
|
45 |
|
46 |
wp_cache_add_non_persistent_groups(array('trp'));
|
47 |
|
includes/class-hooks-loader.php
CHANGED
@@ -47,33 +47,39 @@ class TRP_Hooks_Loader{
|
|
47 |
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
|
48 |
}
|
49 |
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
*
|
55 |
* @param string $hook Hook name.
|
|
|
|
|
56 |
*/
|
57 |
-
public function remove_hook( $hook ){
|
58 |
|
59 |
-
$this->filters = $this->unset_hook_from_array( $this->filters, $hook );
|
60 |
-
$this->actions = $this->unset_hook_from_array( $this->actions, $hook );
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Remove $hook from action or filter array
|
65 |
-
*
|
66 |
-
* @param array $array Action or filters array.
|
67 |
-
* @param string $hook Hook to remove.
|
68 |
-
* @return array Action or filters without the hook.
|
69 |
-
*/
|
70 |
-
private function unset_hook_from_array( $array, $hook ) {
|
71 |
-
foreach ( $array as $key => $filter ){
|
72 |
-
if ( $filter['hook'] == $hook ){
|
73 |
-
unset( $array[$key] );
|
74 |
-
}
|
75 |
-
}
|
76 |
-
return array_values( $array );
|
77 |
}
|
78 |
|
79 |
/**
|
@@ -104,7 +110,7 @@ class TRP_Hooks_Loader{
|
|
104 |
* Hooked on plugins_loaded filter, priority 15
|
105 |
*/
|
106 |
public function run() {
|
107 |
-
|
108 |
foreach ( $this->filters as $hook ) {
|
109 |
if ( $hook['component'] == null ){
|
110 |
add_filter( $hook['hook'], $hook['callback'], $hook['priority'], $hook['accepted_args'] );
|
47 |
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
|
48 |
}
|
49 |
|
50 |
+
/**
|
51 |
+
* Remove $hook from action or filter array
|
52 |
+
*
|
53 |
+
* @param array $array Action or filters array.
|
54 |
+
* @param string $hook Hook to remove.
|
55 |
+
* @param string $callback Function callback to remove (optional). If not set, it will remove all callbacks hooked to $hook.
|
56 |
+
* @param string $component Component to remove (optional). If not set, it will remove all components with the callbacks function name $callback.
|
57 |
+
* @return array Action or filters without the hook.
|
58 |
+
*/
|
59 |
+
private function unset_hook_from_array( $array, $hook, $callback, $component ) {
|
60 |
+
foreach ( $array as $key => $filter ){
|
61 |
+
if ( $filter['hook'] == $hook ){
|
62 |
+
if ( !$callback || ( $callback && $filter['callback'] == $callback ) ) {
|
63 |
+
if ( !$component || ( $component && $filter['component'] == $component ) ) {
|
64 |
+
unset( $array[ $key ] );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
69 |
+
return array_values( $array );
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Remove actions or filters registered functions for this hook.
|
74 |
*
|
75 |
* @param string $hook Hook name.
|
76 |
+
* @param string $callback Function callback to remove (optional). If not set, it will remove all callbacks hooked to $hook.
|
77 |
+
* @param string $component Component to remove (optional). If not set, it will remove all components with the callbacks function name $callback.
|
78 |
*/
|
79 |
+
public function remove_hook( $hook, $callback = null, $component = null ){
|
80 |
|
81 |
+
$this->filters = $this->unset_hook_from_array( $this->filters, $hook, $callback, $component );
|
82 |
+
$this->actions = $this->unset_hook_from_array( $this->actions, $hook, $callback, $component );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
|
85 |
/**
|
110 |
* Hooked on plugins_loaded filter, priority 15
|
111 |
*/
|
112 |
public function run() {
|
113 |
+
do_action( 'trp_before_running_hooks', $this );
|
114 |
foreach ( $this->filters as $hook ) {
|
115 |
if ( $hook['component'] == null ){
|
116 |
add_filter( $hook['hook'], $hook['callback'], $hook['priority'], $hook['accepted_args'] );
|
includes/class-translation-render.php
CHANGED
@@ -261,6 +261,10 @@ class TRP_Translation_Render{
|
|
261 |
* @return string Translated HTML page.
|
262 |
*/
|
263 |
public function translate_page( $output ){
|
|
|
|
|
|
|
|
|
264 |
global $trp_editor_notices;
|
265 |
|
266 |
/* replace our special tags so we have valid html */
|
@@ -1014,11 +1018,12 @@ class TRP_Translation_Render{
|
|
1014 |
}
|
1015 |
}
|
1016 |
$trp_data = array(
|
1017 |
-
'trp_ajax_url'
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
|
|
1022 |
);
|
1023 |
if ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'preview' ) {
|
1024 |
$trp_data['trp_ajax_url'] = $trp_data['trp_wp_ajax_url'];
|
261 |
* @return string Translated HTML page.
|
262 |
*/
|
263 |
public function translate_page( $output ){
|
264 |
+
if ( apply_filters( 'trp_stop_translating_page', false, $output ) ){
|
265 |
+
return $output;
|
266 |
+
}
|
267 |
+
|
268 |
global $trp_editor_notices;
|
269 |
|
270 |
/* replace our special tags so we have valid html */
|
1018 |
}
|
1019 |
}
|
1020 |
$trp_data = array(
|
1021 |
+
'trp_ajax_url' => apply_filters('trp_ajax_url', TRP_PLUGIN_URL . 'includes/trp-ajax.php' ),
|
1022 |
+
'trp_wp_ajax_url' => apply_filters('trp_wp_ajax_url', admin_url('admin-ajax.php')),
|
1023 |
+
'trp_language_to_query' => $language_to_query,
|
1024 |
+
'trp_original_language' => $this->settings['default-language'],
|
1025 |
+
'trp_current_language' => $TRP_LANGUAGE,
|
1026 |
+
'trp_skip_selectors' => apply_filters( 'trp_skip_selectors_from_dynamic_translation', array( '[data-no-translation]', '[data-no-dynamic-translation]', '[data-trpgettextoriginal]', '[data-trp-translate-id]' ), $TRP_LANGUAGE, $this->settings )
|
1027 |
);
|
1028 |
if ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'preview' ) {
|
1029 |
$trp_data['trp_ajax_url'] = $trp_data['trp_wp_ajax_url'];
|
includes/class-url-converter.php
CHANGED
@@ -315,6 +315,7 @@ class TRP_Url_Converter {
|
|
315 |
$new_url = $url;
|
316 |
}
|
317 |
|
|
|
318 |
wp_cache_set('get_url_for_language_' . $hash, $new_url . $trp_link_is_processed, 'trp');
|
319 |
return $new_url . $trp_link_is_processed ;
|
320 |
|
315 |
$new_url = $url;
|
316 |
}
|
317 |
|
318 |
+
$new_url = apply_filters( 'trp_get_url_for_language', $new_url, $url, $language, $this->get_abs_home(), $this->get_lang_from_url_string($url), $this->get_url_slug( $language ) );
|
319 |
wp_cache_set('get_url_for_language_' . $hash, $new_url . $trp_link_is_processed, 'trp');
|
320 |
return $new_url . $trp_link_is_processed ;
|
321 |
|
includes/functions.php
CHANGED
@@ -625,15 +625,57 @@ function trp_bulk_debug($debug = false, $logger = array()){
|
|
625 |
* Compatibility with WooCommerce PDF Invoices & Packing Slips
|
626 |
* https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/
|
627 |
*
|
628 |
-
* @since 1.4.
|
629 |
*
|
630 |
-
* @param string $html
|
631 |
-
* @param object $instance
|
632 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
633 |
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
|
|
|
|
|
|
|
|
|
|
639 |
}
|
625 |
* Compatibility with WooCommerce PDF Invoices & Packing Slips
|
626 |
* https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/
|
627 |
*
|
628 |
+
* @since 1.4.3
|
629 |
*
|
|
|
|
|
630 |
*/
|
631 |
+
// fix attachment name in email
|
632 |
+
add_filter( 'wpo_wcpdf_filename', 'trp_woo_pdf_invoices_and_packing_slips_compatibility' );
|
633 |
+
|
634 |
+
// fix #trpgettext inside invoice pdf
|
635 |
+
add_filter( 'wpo_wcpdf_get_html', 'trp_woo_pdf_invoices_and_packing_slips_compatibility');
|
636 |
+
function trp_woo_pdf_invoices_and_packing_slips_compatibility($title){
|
637 |
+
if ( class_exists( 'TRP_Translation_Manager' ) ) {
|
638 |
+
return TRP_Translation_Manager::strip_gettext_tags($title);
|
639 |
+
}
|
640 |
+
}
|
641 |
+
|
642 |
+
// fix font of pdf breaking because of str_get_html() call inside translate_page()
|
643 |
+
add_filter( 'trp_stop_translating_page', 'trp_woo_pdf_invoices_and_packing_slips_compatibility_dont_translate_pdf', 10, 2 );
|
644 |
+
function trp_woo_pdf_invoices_and_packing_slips_compatibility_dont_translate_pdf( $bool, $output ){
|
645 |
+
if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'generate_wpo_wcpdf' ) {
|
646 |
+
return true;
|
647 |
+
}
|
648 |
+
return $bool;
|
649 |
+
}
|
650 |
+
|
651 |
+
|
652 |
+
/**
|
653 |
+
* Compatibility with WooCommerce order notes
|
654 |
+
*
|
655 |
+
* When a new order is placed in secondary languages, in admin area WooCommerce->Orders->Edit Order, the right sidebar contains Order notes which can contain #trpst tags.
|
656 |
+
*
|
657 |
+
* @since 1.4.3
|
658 |
+
*/
|
659 |
+
|
660 |
+
// old orders
|
661 |
+
add_filter( 'woocommerce_get_order_note', 'trp_woo_notes_strip_trpst' );
|
662 |
+
// new orders
|
663 |
+
add_filter( 'woocommerce_new_order_note_data', 'trp_woo_notes_strip_trpst' );
|
664 |
+
function trp_woo_notes_strip_trpst( $note_array ){
|
665 |
+
foreach ( $note_array as $item => $value ){
|
666 |
+
$note_array[$item] = TRP_Translation_Manager::strip_gettext_tags( $value );
|
667 |
+
}
|
668 |
+
return $note_array;
|
669 |
+
}
|
670 |
|
671 |
+
/**
|
672 |
+
* Compatibility with WooCommerce country list on checkout.
|
673 |
+
*
|
674 |
+
* Skip detection by translate-dom-changes of the list of countries
|
675 |
+
*
|
676 |
+
*/
|
677 |
+
add_filter( 'trp_skip_selectors_from_dynamic_translation', 'trp_woo_skip_dynamic_translation' );
|
678 |
+
function trp_woo_skip_dynamic_translation( $skip_selectors ){
|
679 |
+
$add_skip_selectors = array( '#select2-billing_country-results', '#select2-shipping_country-results' );
|
680 |
+
return array_merge( $skip_selectors, $add_skip_selectors );
|
681 |
}
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: TranslatePress - Multilingual
|
4 |
Plugin URI: https://translatepress.com/
|
5 |
Description: Experience a better way of translating your WordPress site, with full support for WooCommerce and site builders.
|
6 |
-
Version: 1.4.
|
7 |
Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
|
8 |
Author URI: https://cozmoslabs.com/
|
9 |
Text Domain: translatepress-multilingual
|
3 |
Plugin Name: TranslatePress - Multilingual
|
4 |
Plugin URI: https://translatepress.com/
|
5 |
Description: Experience a better way of translating your WordPress site, with full support for WooCommerce and site builders.
|
6 |
+
Version: 1.4.3
|
7 |
Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
|
8 |
Author URI: https://cozmoslabs.com/
|
9 |
Text Domain: translatepress-multilingual
|
languages/translatepress-multilingual.pot
CHANGED
@@ -25,55 +25,55 @@ msgstr ""
|
|
25 |
msgid "All Languages"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: ../tp-add-on-seo-pack/class-seo-pack.php:
|
29 |
msgid "The Yoast SEO Sitemaps will now contain the default language slug: example.com/en/sitemap_index.xml <br/> This works perfectly, just take it into account when you submit the sitemap to Google."
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: includes/class-ald-settings.php:37
|
33 |
msgid "First by browser language, then IP address (recommended)"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: includes/class-ald-settings.php:38
|
37 |
msgid "First by IP address, then browser language"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: includes/class-ald-settings.php:39
|
41 |
msgid "Only by browser language"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: includes/class-ald-settings.php:40
|
45 |
msgid "Only by IP address"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: includes/class-ald-settings.php:110
|
49 |
msgid "<div class=\"warning\">WARNING. Cannot determine your language preference based on your current IP.<br>This is most likely because the website is on a local environment.</div>"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: partials/license-settings-page.php:4, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:4, ../tp-add-on-extra-languages/partials/license-settings-page.php:4, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:4, ../tp-add-on-seo-pack/partials/license-settings-page.php:4, ../translatepress/partials/addons-settings-page.php:3, ../translatepress/partials/main-settings-page.php:5, ../translatepress/partials/test-google-key-settings-page.php:10, ../translatepress/partials/trp-remove-duplicate-rows.php:3, ../translatepress/partials/trp-update-database.php:3,
|
53 |
msgid "TranslatePress Settings"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: partials/license-settings-page.php:10, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:10, ../tp-add-on-extra-languages/partials/license-settings-page.php:10, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:10, ../tp-add-on-seo-pack/partials/license-settings-page.php:10,
|
57 |
msgid "License Key"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: partials/license-settings-page.php:15, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:15, ../tp-add-on-extra-languages/partials/license-settings-page.php:15, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:15, ../tp-add-on-seo-pack/partials/license-settings-page.php:15,
|
61 |
msgid "Enter your license key."
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: partials/license-settings-page.php:22, partials/license-settings-page.php:31, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:22, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:31, ../tp-add-on-extra-languages/partials/license-settings-page.php:22, ../tp-add-on-extra-languages/partials/license-settings-page.php:31, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:22, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:31, ../tp-add-on-seo-pack/partials/license-settings-page.php:22, ../tp-add-on-seo-pack/partials/license-settings-page.php:31,
|
65 |
msgid "Activate License"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: partials/license-settings-page.php:28, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:28, ../tp-add-on-extra-languages/partials/license-settings-page.php:28, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:28, ../tp-add-on-seo-pack/partials/license-settings-page.php:28,
|
69 |
msgid "Deactivate License"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: partials/settings-option.php:2
|
73 |
msgid "Method of language detection"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: partials/settings-option.php:14
|
77 |
msgid "Select how the language should be detected for first time visitors.<br>The visitor's last displayed language will be remembered through cookies."
|
78 |
msgstr ""
|
79 |
|
@@ -607,14 +607,14 @@ msgstr ""
|
|
607 |
msgid "Update database"
|
608 |
msgstr ""
|
609 |
|
610 |
-
#:
|
611 |
msgid " TranslatePress Settings"
|
612 |
msgstr ""
|
613 |
|
614 |
-
#:
|
615 |
msgid "Translator"
|
616 |
msgstr ""
|
617 |
|
618 |
-
#:
|
619 |
msgid "Allow this user to translate the website."
|
620 |
msgstr ""
|
25 |
msgid "All Languages"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: ../tp-add-on-seo-pack/class-seo-pack.php:171
|
29 |
msgid "The Yoast SEO Sitemaps will now contain the default language slug: example.com/en/sitemap_index.xml <br/> This works perfectly, just take it into account when you submit the sitemap to Google."
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: ../tp-add-on-automatic-language-detection/includes/class-ald-settings.php:37
|
33 |
msgid "First by browser language, then IP address (recommended)"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: ../tp-add-on-automatic-language-detection/includes/class-ald-settings.php:38
|
37 |
msgid "First by IP address, then browser language"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: ../tp-add-on-automatic-language-detection/includes/class-ald-settings.php:39
|
41 |
msgid "Only by browser language"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: ../tp-add-on-automatic-language-detection/includes/class-ald-settings.php:40
|
45 |
msgid "Only by IP address"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../tp-add-on-automatic-language-detection/includes/class-ald-settings.php:110
|
49 |
msgid "<div class=\"warning\">WARNING. Cannot determine your language preference based on your current IP.<br>This is most likely because the website is on a local environment.</div>"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../tp-add-on-automatic-language-detection/partials/license-settings-page.php:4, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:4, ../tp-add-on-extra-languages/partials/license-settings-page.php:4, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:4, ../tp-add-on-seo-pack/partials/license-settings-page.php:4, ../translatepress/partials/addons-settings-page.php:3, ../translatepress/partials/main-settings-page.php:5, ../translatepress/partials/test-google-key-settings-page.php:10, ../translatepress/partials/trp-remove-duplicate-rows.php:3, ../translatepress/partials/trp-update-database.php:3, partials/license-settings-page.php:4
|
53 |
msgid "TranslatePress Settings"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../tp-add-on-automatic-language-detection/partials/license-settings-page.php:10, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:10, ../tp-add-on-extra-languages/partials/license-settings-page.php:10, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:10, ../tp-add-on-seo-pack/partials/license-settings-page.php:10, partials/license-settings-page.php:10
|
57 |
msgid "License Key"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../tp-add-on-automatic-language-detection/partials/license-settings-page.php:15, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:15, ../tp-add-on-extra-languages/partials/license-settings-page.php:15, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:15, ../tp-add-on-seo-pack/partials/license-settings-page.php:15, partials/license-settings-page.php:15
|
61 |
msgid "Enter your license key."
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../tp-add-on-automatic-language-detection/partials/license-settings-page.php:22, ../tp-add-on-automatic-language-detection/partials/license-settings-page.php:31, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:22, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:31, ../tp-add-on-extra-languages/partials/license-settings-page.php:22, ../tp-add-on-extra-languages/partials/license-settings-page.php:31, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:22, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:31, ../tp-add-on-seo-pack/partials/license-settings-page.php:22, ../tp-add-on-seo-pack/partials/license-settings-page.php:31, partials/license-settings-page.php:22, partials/license-settings-page.php:31
|
65 |
msgid "Activate License"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ../tp-add-on-automatic-language-detection/partials/license-settings-page.php:28, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:28, ../tp-add-on-extra-languages/partials/license-settings-page.php:28, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:28, ../tp-add-on-seo-pack/partials/license-settings-page.php:28, partials/license-settings-page.php:28
|
69 |
msgid "Deactivate License"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../tp-add-on-automatic-language-detection/partials/settings-option.php:2
|
73 |
msgid "Method of language detection"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../tp-add-on-automatic-language-detection/partials/settings-option.php:14
|
77 |
msgid "Select how the language should be detected for first time visitors.<br>The visitor's last displayed language will be remembered through cookies."
|
78 |
msgstr ""
|
79 |
|
607 |
msgid "Update database"
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: includes/class-translator-accounts.php:119
|
611 |
msgid " TranslatePress Settings"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: includes/class-translator-accounts.php:123, includes/class-translator-accounts.php:124
|
615 |
msgid "Translator"
|
616 |
msgstr ""
|
617 |
|
618 |
+
#: includes/class-translator-accounts.php:128
|
619 |
msgid "Allow this user to translate the website."
|
620 |
msgstr ""
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: cozmoslabs, razvan.mo, madalin.ungureanu, cristophor
|
|
3 |
Donate link: https://www.cozmoslabs.com/
|
4 |
Tags: translate, translation, multilingual, automatic translation, bilingual, front-end translation, google translate, language
|
5 |
Requires at least: 3.1.0
|
6 |
-
Tested up to: 5.0
|
7 |
-
Stable tag: 1.4.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -125,6 +125,12 @@ For more information please check out [TranslatePress - Multilingual plugin docu
|
|
125 |
6. Menu Language Switcher
|
126 |
|
127 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
= 1.4.2 =
|
129 |
* Fixes the issue with not being able to publish pages when Use subdirectory for default language is set to yes and Gutenberg is installed
|
130 |
* Fixed an issue with Elementor and Use subdirectory for default language set to yes
|
3 |
Donate link: https://www.cozmoslabs.com/
|
4 |
Tags: translate, translation, multilingual, automatic translation, bilingual, front-end translation, google translate, language
|
5 |
Requires at least: 3.1.0
|
6 |
+
Tested up to: 5.1.0
|
7 |
+
Stable tag: 1.4.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
125 |
6. Menu Language Switcher
|
126 |
|
127 |
== Changelog ==
|
128 |
+
= 1.4.3 =
|
129 |
+
* Fixed an issue with the Language by Get Parameter add-on
|
130 |
+
* Added compatibility with WooCommerce PDF invoice and WooCommerce's order notes.
|
131 |
+
* Added stop_translating_page and before_running_hooks hooks.
|
132 |
+
* Refactored hooks-loader to easily remove hook
|
133 |
+
|
134 |
= 1.4.2 =
|
135 |
* Fixes the issue with not being able to publish pages when Use subdirectory for default language is set to yes and Gutenberg is installed
|
136 |
* Fixed an issue with Elementor and Use subdirectory for default language set to yes
|