TranslatePress – Translate Multilingual sites - Version 1.4.4

Version Description

  • Added more filters
  • Make sure we do not insert empty strings in the gettext translation table
  • Added support for Affiliate tracking
Download this release

Release Info

Developer madalin.ungureanu
Plugin Icon 128x128 TranslatePress – Translate Multilingual sites
Version 1.4.4
Comparing to
See all releases

Code changes from version 1.4.3 to 1.4.4

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.3' );
45
 
46
  wp_cache_add_non_persistent_groups(array('trp'));
47
 
@@ -186,10 +186,8 @@ class TRP_Translate_Press{
186
  /* handle dynamic texts with gettext */
187
  $this->loader->add_filter( 'locale', $this->languages, 'change_locale' );
188
 
189
- $this->loader->add_action( 'init', $this->translation_manager, 'create_gettext_translated_global' );
190
- $this->loader->add_action( 'admin_init', $this->translation_manager, 'create_gettext_translated_global' );
191
- $this->loader->add_action( 'init', $this->translation_manager, 'apply_gettext_filter_on_frontend' );
192
- $this->loader->add_action( 'admin_init', $this->translation_manager, 'apply_gettext_filter' );
193
  $this->loader->add_action( 'shutdown', $this->translation_manager, 'machine_translate_gettext', 100 );
194
 
195
 
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.4' );
45
 
46
  wp_cache_add_non_persistent_groups(array('trp'));
47
 
186
  /* handle dynamic texts with gettext */
187
  $this->loader->add_filter( 'locale', $this->languages, 'change_locale' );
188
 
189
+ $this->loader->add_action( 'init', $this->translation_manager, 'create_gettext_translated_global' );
190
+ $this->loader->add_action( 'init', $this->translation_manager, 'initialize_gettext_processing' );
 
 
191
  $this->loader->add_action( 'shutdown', $this->translation_manager, 'machine_translate_gettext', 100 );
192
 
193
 
includes/class-query.php CHANGED
@@ -317,6 +317,10 @@ class TRP_Query{
317
  $place_holders = array();
318
 
319
  foreach ( $new_strings as $string ) {
 
 
 
 
320
  if( $string['original'] == $string['translated'] || $string['translated'] == '' ){
321
  $translated = NULL;
322
  $status = self::NOT_TRANSLATED;
317
  $place_holders = array();
318
 
319
  foreach ( $new_strings as $string ) {
320
+ //make sure we don't insert empty strings in db
321
+ if( empty( $string['original'] ) )
322
+ continue;
323
+
324
  if( $string['original'] == $string['translated'] || $string['translated'] == '' ){
325
  $translated = NULL;
326
  $status = self::NOT_TRANSLATED;
includes/class-translation-manager.php CHANGED
@@ -719,7 +719,7 @@ class TRP_Translation_Manager{
719
  /**
720
  * function that applies the gettext filter on frontend on different hooks depending on what we need
721
  */
722
- public function apply_gettext_filter_on_frontend(){
723
  /* on ajax hooks from frontend that have the init hook ( we found WooCommerce has it ) apply it earlier */
724
  if( $this::is_ajax_on_frontend() ){
725
  add_action( 'wp_loaded', array( $this, 'apply_gettext_filter' ) );
@@ -840,6 +840,12 @@ class TRP_Translation_Manager{
840
  // if we have nested gettexts strip previous ones, and consider only the outermost
841
  $text = TRP_Translation_Manager::strip_gettext_tags( $text );
842
  $translation = TRP_Translation_Manager::strip_gettext_tags( $translation );
 
 
 
 
 
 
843
  global $TRP_LANGUAGE;
844
  /* don't do anything if we don't have extra languages on the site */
845
  if( count( $this->settings['publish-languages'] ) < 1 )
@@ -854,63 +860,100 @@ class TRP_Translation_Manager{
854
 
855
 
856
  if ( !defined( 'DOING_AJAX' ) || $this::is_ajax_on_frontend() ) {
857
-
858
- global $trp_translated_gettext_texts, $trp_all_gettext_texts;
859
-
860
- $found_in_db = false;
861
- $db_id = '';
862
-
863
- /* initiate trp query object */
864
- if (!$this->trp_query) {
865
- $trp = TRP_Translate_Press::get_trp_instance();
866
- $this->trp_query = $trp->get_component('query');
867
- }
868
-
869
- if( !isset( $trp_all_gettext_texts ) )
870
- $trp_all_gettext_texts = array();
871
-
872
- if( !empty( $trp_translated_gettext_texts ) ){
873
- if (isset($trp_translated_gettext_texts[$domain . '::' . $text])){
874
- $trp_translated_gettext_text = $trp_translated_gettext_texts[$domain . '::' . $text];
875
-
876
- if( !empty( $trp_translated_gettext_text['translated'] ) && $translation != $trp_translated_gettext_text['translated'] ) {
877
- $translation = str_replace( trim($text), $trp_translated_gettext_text['translated'], $text );
878
- }
879
- $db_id = $trp_translated_gettext_text['id'];
880
- $found_in_db = true;
881
- // update the db if a translation appeared in the po file later
882
- if( empty( $trp_translated_gettext_text['translated'] ) && $translation != $text ) {
883
- $this->trp_query->update_gettext_strings( array( array( 'id' => $db_id, 'original' => $text, 'translated' => $translation, 'domain' => $domain), 'status' => $this->trp_query->get_constant_human_reviewed() ), get_locale() );
884
- }
885
- }
886
- }
887
-
888
- if( !$found_in_db ){
889
- if( !in_array( array('original' => $text, 'translated' => $translation, 'domain' => $domain), $trp_all_gettext_texts ) ) {
890
- $trp_all_gettext_texts[] = array('original' => $text, 'translated' => $translation, 'domain' => $domain);
891
- $db_id = $this->trp_query->insert_gettext_strings( array( array('original' => $text, 'translated' => $translation, 'domain' => $domain) ), get_locale() );
892
- /* insert it in the global of translated because now it is in the database */
893
- $trp_translated_gettext_texts[$domain . '::' . $text] = array( 'id' => $db_id, 'original' => $text, 'translated' => ( $translation != $text ) ? $translation : '', 'domain' => $domain );
894
- }
895
- }
896
-
897
- if ( !$this->machine_translator ) {
898
- $trp = TRP_Translate_Press::get_trp_instance();
899
- $this->machine_translator = $trp->get_component('machine_translator');
900
- }
901
- if ( $this->machine_translator->is_available() ) {
902
- global $trp_gettext_strings_for_machine_translation;
903
- if ($text == $translation) {
904
- foreach( $trp_translated_gettext_texts as $trp_translated_gettext_text ){
905
- if( $trp_translated_gettext_text['id'] == $db_id ){
906
- if( $trp_translated_gettext_text['translated'] == '' ){
907
- $trp_gettext_strings_for_machine_translation[] = array( 'id' => $db_id, 'original' => $text, 'translated' => '', 'domain' => $domain, 'status' => $this->trp_query->get_constant_machine_translated() );
908
- }
909
- break;
910
- }
911
- }
912
- }
913
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
914
 
915
  $blacklist_functions = apply_filters( 'trp_gettext_blacklist_functions', array(
916
  'wp_enqueue_script',
@@ -945,11 +988,12 @@ class TRP_Translation_Manager{
945
  }
946
  }
947
 
948
- if( did_action('init') ) {
949
- if ((!empty($TRP_LANGUAGE) && $this->settings["default-language"] != $TRP_LANGUAGE) || (isset($_REQUEST['trp-edit-translation']) && $_REQUEST['trp-edit-translation'] == 'preview')) {
950
- $translation = '#!trpst#trp-gettext data-trpgettextoriginal=' . $db_id . '#!trpen#' . $translation . '#!trpst#/trp-gettext#!trpen#';//add special start and end tags so that it does not influence html in any way. we will replace them with < and > at the start of the translate function
951
- }
952
- }
 
953
  }
954
 
955
  return $translation;
719
  /**
720
  * function that applies the gettext filter on frontend on different hooks depending on what we need
721
  */
722
+ public function initialize_gettext_processing(){
723
  /* on ajax hooks from frontend that have the init hook ( we found WooCommerce has it ) apply it earlier */
724
  if( $this::is_ajax_on_frontend() ){
725
  add_action( 'wp_loaded', array( $this, 'apply_gettext_filter' ) );
840
  // if we have nested gettexts strip previous ones, and consider only the outermost
841
  $text = TRP_Translation_Manager::strip_gettext_tags( $text );
842
  $translation = TRP_Translation_Manager::strip_gettext_tags( $translation );
843
+
844
+ //try here to exclude some strings that do not require translation
845
+ $excluded_gettext_strings = array( '', ' ', '&hellip;', '&nbsp;' );
846
+ if( in_array( trp_full_trim( $text ), $excluded_gettext_strings ) )
847
+ return $translation;
848
+
849
  global $TRP_LANGUAGE;
850
  /* don't do anything if we don't have extra languages on the site */
851
  if( count( $this->settings['publish-languages'] ) < 1 )
860
 
861
 
862
  if ( !defined( 'DOING_AJAX' ) || $this::is_ajax_on_frontend() ) {
863
+ $db_id = '';
864
+ $skip_gettext_querying = apply_filters( 'trp_skip_gettext_querying', false, $translation, $text, $domain );
865
+ if ( !$skip_gettext_querying ) {
866
+ global $trp_translated_gettext_texts, $trp_all_gettext_texts;
867
+
868
+ $found_in_db = false;
869
+
870
+ /* initiate trp query object */
871
+ if ( ! $this->trp_query ) {
872
+ $trp = TRP_Translate_Press::get_trp_instance();
873
+ $this->trp_query = $trp->get_component( 'query' );
874
+ }
875
+
876
+ if ( ! isset( $trp_all_gettext_texts ) ) {
877
+ $trp_all_gettext_texts = array();
878
+ }
879
+
880
+ if ( ! empty( $trp_translated_gettext_texts ) ) {
881
+ if ( isset( $trp_translated_gettext_texts[ $domain . '::' . $text ] ) ) {
882
+ $trp_translated_gettext_text = $trp_translated_gettext_texts[ $domain . '::' . $text ];
883
+
884
+ if ( ! empty( $trp_translated_gettext_text['translated'] ) && $translation != $trp_translated_gettext_text['translated'] ) {
885
+ $translation = str_replace( trim( $text ), $trp_translated_gettext_text['translated'], $text );
886
+ }
887
+ $db_id = $trp_translated_gettext_text['id'];
888
+ $found_in_db = true;
889
+ // update the db if a translation appeared in the po file later
890
+ if ( empty( $trp_translated_gettext_text['translated'] ) && $translation != $text ) {
891
+ $this->trp_query->update_gettext_strings( array(
892
+ array(
893
+ 'id' => $db_id,
894
+ 'original' => $text,
895
+ 'translated' => $translation,
896
+ 'domain' => $domain
897
+ ),
898
+ 'status' => $this->trp_query->get_constant_human_reviewed()
899
+ ), get_locale() );
900
+ }
901
+ }
902
+ }
903
+
904
+ if ( ! $found_in_db ) {
905
+ if ( ! in_array( array(
906
+ 'original' => $text,
907
+ 'translated' => $translation,
908
+ 'domain' => $domain
909
+ ), $trp_all_gettext_texts )
910
+ ) {
911
+ $trp_all_gettext_texts[] = array(
912
+ 'original' => $text,
913
+ 'translated' => $translation,
914
+ 'domain' => $domain
915
+ );
916
+ $db_id = $this->trp_query->insert_gettext_strings( array(
917
+ array(
918
+ 'original' => $text,
919
+ 'translated' => $translation,
920
+ 'domain' => $domain
921
+ )
922
+ ), get_locale() );
923
+ /* insert it in the global of translated because now it is in the database */
924
+ $trp_translated_gettext_texts[ $domain . '::' . $text ] = array(
925
+ 'id' => $db_id,
926
+ 'original' => $text,
927
+ 'translated' => ( $translation != $text ) ? $translation : '',
928
+ 'domain' => $domain
929
+ );
930
+ }
931
+ }
932
+
933
+ if ( ! $this->machine_translator ) {
934
+ $trp = TRP_Translate_Press::get_trp_instance();
935
+ $this->machine_translator = $trp->get_component( 'machine_translator' );
936
+ }
937
+ if ( $this->machine_translator->is_available() ) {
938
+ global $trp_gettext_strings_for_machine_translation;
939
+ if ( $text == $translation ) {
940
+ foreach ( $trp_translated_gettext_texts as $trp_translated_gettext_text ) {
941
+ if ( $trp_translated_gettext_text['id'] == $db_id ) {
942
+ if ( $trp_translated_gettext_text['translated'] == '' ) {
943
+ $trp_gettext_strings_for_machine_translation[] = array(
944
+ 'id' => $db_id,
945
+ 'original' => $text,
946
+ 'translated' => '',
947
+ 'domain' => $domain,
948
+ 'status' => $this->trp_query->get_constant_machine_translated()
949
+ );
950
+ }
951
+ break;
952
+ }
953
+ }
954
+ }
955
+ }
956
+ }
957
 
958
  $blacklist_functions = apply_filters( 'trp_gettext_blacklist_functions', array(
959
  'wp_enqueue_script',
988
  }
989
  }
990
 
991
+ if ( did_action( 'init' ) ) {
992
+ if ( ( ! empty( $TRP_LANGUAGE ) && $this->settings["default-language"] != $TRP_LANGUAGE ) || ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'preview' ) ) {
993
+ //add special start and end tags so that it does not influence html in any way. we will replace them with < and > at the start of the translate function
994
+ $translation = apply_filters( 'trp_process_gettext_tags', '#!trpst#trp-gettext data-trpgettextoriginal=' . $db_id . '#!trpen#' . $translation . '#!trpst#/trp-gettext#!trpen#', $translation, $skip_gettext_querying, $text, $domain );
995
+ }
996
+ }
997
  }
998
 
999
  return $translation;
includes/class-translation-render.php CHANGED
@@ -727,8 +727,8 @@ class TRP_Translation_Render{
727
  $body = $html->find('body', 0 );
728
  $body->innertext = '<div data-no-translation class="trp-editor-notices">' . $trp_editor_notices . "</div>" . $body->innertext;
729
  }
730
-
731
- return $html->save();
732
  }
733
 
734
  /**
727
  $body = $html->find('body', 0 );
728
  $body->innertext = '<div data-no-translation class="trp-editor-notices">' . $trp_editor_notices . "</div>" . $body->innertext;
729
  }
730
+ $final_html = $html->save();
731
+ return apply_filters( 'trp_translated_html', $final_html, $TRP_LANGUAGE, $language_code );
732
  }
733
 
734
  /**
includes/functions.php CHANGED
@@ -125,12 +125,17 @@ function trp_find_translation_location_for_domain( $domain, $language ){
125
  */
126
  function trp_add_affiliate_id_to_link( $link ){
127
 
128
- $affiliate_id = get_option('translatepress_affiliate_id');
129
-
130
- if ( !empty( $affiliate_id ) ) {
131
-
132
- return esc_url( add_query_arg( 'ref', $affiliate_id, $link ) );
133
-
 
 
 
 
 
134
  }
135
 
136
  return esc_url( $link );
125
  */
126
  function trp_add_affiliate_id_to_link( $link ){
127
 
128
+ //Avangate Affiliate Network
129
+ $avg_affiliate_id = get_option('translatepress_avg_affiliate_id');
130
+ if ( !empty( $avg_affiliate_id ) ) {
131
+ return esc_url( add_query_arg( 'avgref', $avg_affiliate_id, $link ) );
132
+ }
133
+ else{
134
+ // AffiliateWP
135
+ $affiliate_id = get_option('translatepress_affiliate_id');
136
+ if ( !empty( $affiliate_id ) ) {
137
+ return esc_url( add_query_arg( 'ref', $affiliate_id, $link ) );
138
+ }
139
  }
140
 
141
  return esc_url( $link );
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.3
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.4
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
@@ -29,51 +29,51 @@ msgstr ""
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
 
@@ -209,11 +209,11 @@ msgstr ""
209
  msgid "Translate Page"
210
  msgstr ""
211
 
212
- #: ../translatepress/includes/class-translation-manager.php:1198
213
  msgid "Security check"
214
  msgstr ""
215
 
216
- #: ../translatepress/includes/class-translation-manager.php:1272
217
  msgid "<strong>Warning:</strong> Some strings have possibly incorrectly encoded characters. This may result in breaking the queries, rendering the page untranslated in live mode. Consider revising the following strings or their method of outputting."
218
  msgstr ""
219
 
@@ -297,7 +297,7 @@ msgstr ""
297
  msgid "%s duplicates removed"
298
  msgstr ""
299
 
300
- #: ../translatepress/includes/functions.php:253
301
  msgid "<strong>TranslatePress</strong> requires <strong><a href=\"http://php.net/manual/en/book.mbstring.php\">Multibyte String PHP library</a></strong>. Please contact your server administrator to install it on your server."
302
  msgstr ""
303
 
@@ -607,14 +607,14 @@ msgstr ""
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 ""
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, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:4
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, ../trp-add-on-translator-accounts-add-on/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, ../trp-add-on-translator-accounts-add-on/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, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:22, ../trp-add-on-translator-accounts-add-on/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, ../trp-add-on-translator-accounts-add-on/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
 
209
  msgid "Translate Page"
210
  msgstr ""
211
 
212
+ #: ../translatepress/includes/class-translation-manager.php:1242
213
  msgid "Security check"
214
  msgstr ""
215
 
216
+ #: ../translatepress/includes/class-translation-manager.php:1316
217
  msgid "<strong>Warning:</strong> Some strings have possibly incorrectly encoded characters. This may result in breaking the queries, rendering the page untranslated in live mode. Consider revising the following strings or their method of outputting."
218
  msgstr ""
219
 
297
  msgid "%s duplicates removed"
298
  msgstr ""
299
 
300
+ #: ../translatepress/includes/functions.php:258
301
  msgid "<strong>TranslatePress</strong> requires <strong><a href=\"http://php.net/manual/en/book.mbstring.php\">Multibyte String PHP library</a></strong>. Please contact your server administrator to install it on your server."
302
  msgstr ""
303
 
607
  msgid "Update database"
608
  msgstr ""
609
 
610
+ #: ../trp-add-on-translator-accounts-add-on/includes/class-translator-accounts.php:119
611
  msgid " TranslatePress Settings"
612
  msgstr ""
613
 
614
+ #: ../trp-add-on-translator-accounts-add-on/includes/class-translator-accounts.php:123, ../trp-add-on-translator-accounts-add-on/includes/class-translator-accounts.php:124
615
  msgid "Translator"
616
  msgstr ""
617
 
618
+ #: ../trp-add-on-translator-accounts-add-on/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.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 +125,11 @@ For more information please check out [TranslatePress - Multilingual plugin docu
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.
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.1
7
+ Stable tag: 1.4.4
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.4 =
129
+ * Added more filters
130
+ * Make sure we do not insert empty strings in the gettext translation table
131
+ * Added support for Affiliate tracking
132
+
133
  = 1.4.3 =
134
  * Fixed an issue with the Language by Get Parameter add-on
135
  * Added compatibility with WooCommerce PDF invoice and WooCommerce's order notes.