Version Description
- Refactored determining language, redirecting and cookie adding
- Removed leftover trp-gettext tags when WooCommerce is active on some pages
- Fixed get_url_for_language function that was having problems in some cases.
Download this release
Release Info
| Developer | madalin.ungureanu |
| Plugin | |
| Version | 1.2.6 |
| Comparing to | |
| See all releases | |
Code changes from version 1.2.5 to 1.2.6
- class-translate-press.php +2 -3
- includes/class-language-switcher.php +123 -69
- includes/class-translation-manager.php +4 -1
- includes/class-translation-render.php +2 -3
- includes/class-url-converter.php +3 -35
- index.php +1 -1
- languages/translatepress-multilingual.pot +7 -7
- readme.txt +7 -2
class-translate-press.php
CHANGED
|
@@ -39,7 +39,7 @@ class TRP_Translate_Press{
|
|
| 39 |
define( 'TRP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
| 40 |
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
| 41 |
define( 'TRP_PLUGIN_SLUG', 'translatepress-multilingual' );
|
| 42 |
-
define( 'TRP_PLUGIN_VERSION', '1.2.
|
| 43 |
|
| 44 |
$this->load_dependencies();
|
| 45 |
$this->initialize_components();
|
|
@@ -87,7 +87,7 @@ class TRP_Translate_Press{
|
|
| 87 |
$this->settings = new TRP_Settings();
|
| 88 |
$this->translation_render = new TRP_Translation_Render( $this->settings->get_settings() );
|
| 89 |
$this->url_converter = new TRP_Url_Converter( $this->settings->get_settings() );
|
| 90 |
-
$this->language_switcher = new TRP_Language_Switcher( $this->settings->get_settings(), $this
|
| 91 |
$this->query = new TRP_Query( $this->settings->get_settings() );
|
| 92 |
$this->machine_translator = new TRP_Machine_Translator( $this->settings->get_settings() );
|
| 93 |
$this->translation_manager = new TRP_Translation_Manager( $this->settings->get_settings() );
|
|
@@ -156,7 +156,6 @@ class TRP_Translate_Press{
|
|
| 156 |
|
| 157 |
|
| 158 |
|
| 159 |
-
$this->loader->add_action( 'template_redirect', $this->url_converter, 'redirect_to_default_language' );
|
| 160 |
$this->loader->add_filter( 'home_url', $this->url_converter, 'add_language_to_home_url', 1, 4 );
|
| 161 |
$this->loader->add_action( 'wp_head', $this->url_converter, 'add_hreflang_to_head' );
|
| 162 |
$this->loader->add_filter( 'language_attributes', $this->url_converter, 'change_lang_attr_in_html_tag', 10, 1 );
|
| 39 |
define( 'TRP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
| 40 |
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
| 41 |
define( 'TRP_PLUGIN_SLUG', 'translatepress-multilingual' );
|
| 42 |
+
define( 'TRP_PLUGIN_VERSION', '1.2.6' );
|
| 43 |
|
| 44 |
$this->load_dependencies();
|
| 45 |
$this->initialize_components();
|
| 87 |
$this->settings = new TRP_Settings();
|
| 88 |
$this->translation_render = new TRP_Translation_Render( $this->settings->get_settings() );
|
| 89 |
$this->url_converter = new TRP_Url_Converter( $this->settings->get_settings() );
|
| 90 |
+
$this->language_switcher = new TRP_Language_Switcher( $this->settings->get_settings(), $this );
|
| 91 |
$this->query = new TRP_Query( $this->settings->get_settings() );
|
| 92 |
$this->machine_translator = new TRP_Machine_Translator( $this->settings->get_settings() );
|
| 93 |
$this->translation_manager = new TRP_Translation_Manager( $this->settings->get_settings() );
|
| 156 |
|
| 157 |
|
| 158 |
|
|
|
|
| 159 |
$this->loader->add_filter( 'home_url', $this->url_converter, 'add_language_to_home_url', 1, 4 );
|
| 160 |
$this->loader->add_action( 'wp_head', $this->url_converter, 'add_hreflang_to_head' );
|
| 161 |
$this->loader->add_filter( 'language_attributes', $this->url_converter, 'change_lang_attr_in_html_tag', 10, 1 );
|
includes/class-language-switcher.php
CHANGED
|
@@ -8,9 +8,13 @@
|
|
| 8 |
class TRP_Language_Switcher{
|
| 9 |
|
| 10 |
protected $settings;
|
|
|
|
| 11 |
protected $url_converter;
|
| 12 |
protected $trp_settings_object;
|
|
|
|
| 13 |
protected $trp_languages;
|
|
|
|
|
|
|
| 14 |
|
| 15 |
/**
|
| 16 |
* TRP_Language_Switcher constructor.
|
|
@@ -18,80 +22,140 @@ class TRP_Language_Switcher{
|
|
| 18 |
* @param array $settings Settings option.
|
| 19 |
* @param $url_converter $TRP_Url_Converter object.
|
| 20 |
*/
|
| 21 |
-
public function __construct( $settings, $
|
| 22 |
$this->settings = $settings;
|
| 23 |
-
$this->
|
| 24 |
-
$
|
|
|
|
| 25 |
global $TRP_LANGUAGE;
|
| 26 |
$TRP_LANGUAGE = $language;
|
| 27 |
-
$this->add_cookie( $TRP_LANGUAGE );
|
| 28 |
add_filter( 'get_user_option_metaboxhidden_nav-menus', array( $this, 'cpt_always_visible_in_menus' ), 10, 3 );
|
| 29 |
}
|
| 30 |
|
| 31 |
-
|
| 32 |
-
* Returns
|
| 33 |
*
|
| 34 |
-
*
|
| 35 |
-
* Takes into account shortcode flags and name options.
|
| 36 |
-
* Runs an output buffer on 'partials/language-switcher-shortcode.php'.
|
| 37 |
*
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
}
|
| 49 |
-
$published_languages = $this->trp_languages->get_language_names( $this->settings['publish-languages'] );
|
| 50 |
|
| 51 |
-
|
| 52 |
-
$
|
|
|
|
| 53 |
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
}
|
| 74 |
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
return $this->settings['translation-languages'][0];
|
| 90 |
-
}else{
|
| 91 |
-
return $this->settings['default-language'];
|
| 92 |
-
}
|
| 93 |
}
|
| 94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
/**
|
| 96 |
* Enqueue language switcher scripts and styles.
|
| 97 |
*
|
|
@@ -378,15 +442,5 @@ class TRP_Language_Switcher{
|
|
| 378 |
return $items;
|
| 379 |
}
|
| 380 |
|
| 381 |
-
/**
|
| 382 |
-
* Adds cookie with language
|
| 383 |
-
*
|
| 384 |
-
* @param string $current_language Current language code.
|
| 385 |
-
*/
|
| 386 |
-
public function add_cookie( $current_language ) {
|
| 387 |
-
|
| 388 |
-
setcookie( 'trp_current_language', $current_language, strtotime( '+30 days' ), "/" );
|
| 389 |
-
|
| 390 |
-
}
|
| 391 |
|
| 392 |
}
|
| 8 |
class TRP_Language_Switcher{
|
| 9 |
|
| 10 |
protected $settings;
|
| 11 |
+
/** @var TRP_Url_Converter */
|
| 12 |
protected $url_converter;
|
| 13 |
protected $trp_settings_object;
|
| 14 |
+
/** @var TRP_Languages */
|
| 15 |
protected $trp_languages;
|
| 16 |
+
/** @var TRP_Translate_Press */
|
| 17 |
+
protected $trp;
|
| 18 |
|
| 19 |
/**
|
| 20 |
* TRP_Language_Switcher constructor.
|
| 22 |
* @param array $settings Settings option.
|
| 23 |
* @param $url_converter $TRP_Url_Converter object.
|
| 24 |
*/
|
| 25 |
+
public function __construct( $settings, $trp ){
|
| 26 |
$this->settings = $settings;
|
| 27 |
+
$this->trp = $trp;
|
| 28 |
+
$this->url_converter = $this->trp->get_component( 'url_converter' );
|
| 29 |
+
$language = $this->get_current_language($trp);
|
| 30 |
global $TRP_LANGUAGE;
|
| 31 |
$TRP_LANGUAGE = $language;
|
|
|
|
| 32 |
add_filter( 'get_user_option_metaboxhidden_nav-menus', array( $this, 'cpt_always_visible_in_menus' ), 10, 3 );
|
| 33 |
}
|
| 34 |
|
| 35 |
+
/**
|
| 36 |
+
* Returns a valid current language code.
|
| 37 |
*
|
| 38 |
+
* Adds cookie, adds filter for redirect if necessary
|
|
|
|
|
|
|
| 39 |
*
|
| 40 |
+
* @param $trp TRP_Translate_Press TRP singleton object
|
| 41 |
+
*
|
| 42 |
+
* @return string Language code
|
| 43 |
+
*/
|
| 44 |
+
private function get_current_language( $trp ){
|
| 45 |
+
$language_from_url = $this->url_converter->get_lang_from_url_string();
|
| 46 |
+
|
| 47 |
+
$needed_language = $this->determine_needed_language( $language_from_url, $trp );
|
| 48 |
+
|
| 49 |
+
if ( ( $language_from_url == null && isset( $this->settings['add-subdirectory-to-default-language'] ) && $this->settings['add-subdirectory-to-default-language'] == 'yes' ) ||
|
| 50 |
+
( $language_from_url == null && $needed_language != $this->settings['default-language'] ) ||
|
| 51 |
+
( $language_from_url != null && $needed_language != $language_from_url )
|
| 52 |
+
){
|
| 53 |
+
// compatibility with Elementor preview. Do not redirect to subdir language when elementor preview is present.
|
| 54 |
+
// TODO: move to compatibility file in the future.
|
| 55 |
+
if ( ! isset( $_GET['elementor-preview'] ) ) {
|
| 56 |
+
global $TRP_NEEDED_LANGUAGE;
|
| 57 |
+
$TRP_NEEDED_LANGUAGE = $needed_language;
|
| 58 |
+
add_filter( 'template_redirect', array( $this, 'redirect_to_correct_language' ) );
|
| 59 |
+
}
|
| 60 |
}
|
|
|
|
| 61 |
|
| 62 |
+
$this->add_cookie( $needed_language );
|
| 63 |
+
return $needed_language;
|
| 64 |
+
}
|
| 65 |
|
| 66 |
+
/**
|
| 67 |
+
* Determine the language needed.
|
| 68 |
+
*
|
| 69 |
+
* @param string $lang_from_url Language code from url
|
| 70 |
+
* @param TRP_Translate_Press $trp TRP singleton object
|
| 71 |
+
*
|
| 72 |
+
* @return string Language code
|
| 73 |
+
*/
|
| 74 |
+
public function determine_needed_language( $lang_from_url, $trp ){
|
| 75 |
+
if ( $lang_from_url == null ){
|
| 76 |
+
if ( isset( $this->settings['add-subdirectory-to-default-language'] ) && $this->settings['add-subdirectory-to-default-language'] == 'yes' && isset( $this->settings['publish-languages'][0] ) ) {
|
| 77 |
+
$needed_language = $this->settings['publish-languages'][0];
|
| 78 |
+
}else{
|
| 79 |
+
$needed_language = $this->settings['default-language'];
|
| 80 |
+
}
|
| 81 |
+
}else{
|
| 82 |
+
$needed_language = $lang_from_url;
|
| 83 |
+
}
|
| 84 |
+
return apply_filters( 'trp_needed_language', $needed_language, $lang_from_url, $this->settings, $trp );
|
| 85 |
}
|
| 86 |
|
| 87 |
+
/**
|
| 88 |
+
* Redirects to language stored in global $TRP_NEEDED_LANGUAGE
|
| 89 |
+
*/
|
| 90 |
+
public function redirect_to_correct_language(){
|
| 91 |
+
if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
| 92 |
+
return;
|
| 93 |
+
}
|
| 94 |
+
global $TRP_NEEDED_LANGUAGE;
|
| 95 |
+
if ( ! $this->url_converter ){
|
| 96 |
+
$trp = TRP_Translate_Press::get_trp_instance();
|
| 97 |
+
$this->trp_languages = $trp->get_component( 'url_converter' );
|
| 98 |
+
}
|
| 99 |
+
header( 'Location: ' . $this->url_converter->get_url_for_language( $TRP_NEEDED_LANGUAGE, null, '' ) );
|
| 100 |
+
exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
}
|
| 102 |
|
| 103 |
+
/**
|
| 104 |
+
* Adds cookie with language
|
| 105 |
+
*
|
| 106 |
+
* @param string $language_code Language code to add cookie for
|
| 107 |
+
*/
|
| 108 |
+
public function add_cookie( $language_code ) {
|
| 109 |
+
if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
| 110 |
+
return;
|
| 111 |
+
}
|
| 112 |
+
setcookie( 'trp_language', $language_code, strtotime( '+30 days' ), "/" );
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
/**
|
| 116 |
+
* Returns HTML for shortcode language switcher.
|
| 117 |
+
*
|
| 118 |
+
* Only shows published languages.
|
| 119 |
+
* Takes into account shortcode flags and name options.
|
| 120 |
+
* Runs an output buffer on 'partials/language-switcher-shortcode.php'.
|
| 121 |
+
*
|
| 122 |
+
* @return string HTML for shortcode language switcher
|
| 123 |
+
*/
|
| 124 |
+
public function language_switcher(){
|
| 125 |
+
ob_start();
|
| 126 |
+
|
| 127 |
+
global $TRP_LANGUAGE;
|
| 128 |
+
|
| 129 |
+
if ( ! $this->trp_languages ){
|
| 130 |
+
$trp = TRP_Translate_Press::get_trp_instance();
|
| 131 |
+
$this->trp_languages = $trp->get_component( 'languages' );
|
| 132 |
+
}
|
| 133 |
+
$published_languages = $this->trp_languages->get_language_names( $this->settings['publish-languages'] );
|
| 134 |
+
|
| 135 |
+
$current_language = array();
|
| 136 |
+
$other_languages = array();
|
| 137 |
+
|
| 138 |
+
foreach( $published_languages as $code => $name ) {
|
| 139 |
+
if( $code == $TRP_LANGUAGE ) {
|
| 140 |
+
$current_language['code'] = $code;
|
| 141 |
+
$current_language['name'] = $name;
|
| 142 |
+
} else {
|
| 143 |
+
$other_languages[$code] = $name;
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
if( ! $this->trp_settings_object ) {
|
| 148 |
+
$trp = TRP_Translate_Press::get_trp_instance();
|
| 149 |
+
$this->trp_settings_object = $trp->get_component( 'settings' );
|
| 150 |
+
}
|
| 151 |
+
$ls_options = $this->trp_settings_object->get_language_switcher_options();
|
| 152 |
+
$shortcode_settings = $ls_options[$this->settings['shortcode-options']];
|
| 153 |
+
|
| 154 |
+
require TRP_PLUGIN_DIR . 'partials/language-switcher-shortcode.php';
|
| 155 |
+
|
| 156 |
+
return ob_get_clean();
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
/**
|
| 160 |
* Enqueue language switcher scripts and styles.
|
| 161 |
*
|
| 442 |
return $items;
|
| 443 |
}
|
| 444 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 445 |
|
| 446 |
}
|
includes/class-translation-manager.php
CHANGED
|
@@ -728,6 +728,7 @@ class TRP_Translation_Manager{
|
|
| 728 |
add_action( 'wp_loaded', array( $this, 'apply_gettext_filter' ) );
|
| 729 |
}
|
| 730 |
elseif( class_exists( 'WooCommerce' ) ){
|
|
|
|
| 731 |
add_action( 'wp_loaded', array( $this, 'apply_gettext_filter' ), 19 );
|
| 732 |
}//otherwise start from the wp_head hook
|
| 733 |
else{
|
|
@@ -737,7 +738,9 @@ class TRP_Translation_Manager{
|
|
| 737 |
|
| 738 |
/* apply the gettext filter here */
|
| 739 |
public function apply_gettext_filter(){
|
| 740 |
-
|
|
|
|
|
|
|
| 741 |
add_filter('gettext', array($this, 'process_gettext_strings'), 100, 3);
|
| 742 |
add_filter('gettext_with_context', array($this, 'process_gettext_strings_with_context'), 100, 4);
|
| 743 |
add_filter('ngettext', array($this, 'process_ngettext_strings'), 100, 5);
|
| 728 |
add_action( 'wp_loaded', array( $this, 'apply_gettext_filter' ) );
|
| 729 |
}
|
| 730 |
elseif( class_exists( 'WooCommerce' ) ){
|
| 731 |
+
// WooCommerce launches some ajax calls before wp_head, so we need to apply_gettext_filter earlier to catch them
|
| 732 |
add_action( 'wp_loaded', array( $this, 'apply_gettext_filter' ), 19 );
|
| 733 |
}//otherwise start from the wp_head hook
|
| 734 |
else{
|
| 738 |
|
| 739 |
/* apply the gettext filter here */
|
| 740 |
public function apply_gettext_filter(){
|
| 741 |
+
global $pagenow;
|
| 742 |
+
// Do not process gettext strings on wp-login pages. Do not process strings in admin area except for when when is_ajax_on_frontend.
|
| 743 |
+
if( ( $pagenow != 'wp-login.php' ) && ( !is_admin() || $this::is_ajax_on_frontend() ) ) {
|
| 744 |
add_filter('gettext', array($this, 'process_gettext_strings'), 100, 3);
|
| 745 |
add_filter('gettext_with_context', array($this, 'process_gettext_strings_with_context'), 100, 4);
|
| 746 |
add_filter('ngettext', array($this, 'process_ngettext_strings'), 100, 5);
|
includes/class-translation-render.php
CHANGED
|
@@ -458,9 +458,8 @@ class TRP_Translation_Render{
|
|
| 458 |
/* save it as a string */
|
| 459 |
$trpremoved = $html->save();
|
| 460 |
/* perform preg replace on the remaining trp-gettext tags */
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
$html = trp_str_get_html($trpremoved, true, true, TRP_DEFAULT_TARGET_CHARSET, false, TRP_DEFAULT_BR_TEXT, TRP_DEFAULT_SPAN_TEXT);
|
| 465 |
|
| 466 |
$no_translate_selectors = apply_filters( 'trp_no_translate_selectors', array( '#wpadminbar' ), $TRP_LANGUAGE );
|
| 458 |
/* save it as a string */
|
| 459 |
$trpremoved = $html->save();
|
| 460 |
/* perform preg replace on the remaining trp-gettext tags */
|
| 461 |
+
$trpremoved = preg_replace( '/(<|<)trp-gettext (.*?)(>|>)/', '', $trpremoved );
|
| 462 |
+
$trpremoved = preg_replace( '/(<|<)(\\\\)*\/trp-gettext(>|>)/', '', $trpremoved );
|
|
|
|
| 463 |
$html = trp_str_get_html($trpremoved, true, true, TRP_DEFAULT_TARGET_CHARSET, false, TRP_DEFAULT_BR_TEXT, TRP_DEFAULT_SPAN_TEXT);
|
| 464 |
|
| 465 |
$no_translate_selectors = apply_filters( 'trp_no_translate_selectors', array( '#wpadminbar' ), $TRP_LANGUAGE );
|
includes/class-url-converter.php
CHANGED
|
@@ -19,37 +19,6 @@ class TRP_Url_Converter {
|
|
| 19 |
$this->settings = $settings;
|
| 20 |
}
|
| 21 |
|
| 22 |
-
/**
|
| 23 |
-
* Redirects to default page for default language.
|
| 24 |
-
*
|
| 25 |
-
* Only if settings option add-subdirectory-to-default-language is set to no.
|
| 26 |
-
*
|
| 27 |
-
* Hooked to template redirect.
|
| 28 |
-
*/
|
| 29 |
-
public function redirect_to_default_language() {
|
| 30 |
-
global $TRP_LANGUAGE;
|
| 31 |
-
if ( isset( $this->settings['add-subdirectory-to-default-language'] ) && $this->settings['add-subdirectory-to-default-language'] == 'no' && $TRP_LANGUAGE == $this->settings['default-language'] ) {
|
| 32 |
-
return;
|
| 33 |
-
}
|
| 34 |
-
$lang_from_url = $this->get_lang_from_url_string( $this->cur_page_url() );
|
| 35 |
-
|
| 36 |
-
// compatibility with Elementor preview. Do not redirect to subdir language when elementor preview is present.
|
| 37 |
-
// TODO: move to compatibility file in the future.
|
| 38 |
-
if( isset( $_GET['elementor-preview'] ) ){
|
| 39 |
-
return;
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
if ( $lang_from_url == null ) {
|
| 43 |
-
$language_to_redirect = $this->settings['default-language'];
|
| 44 |
-
if ( isset( $this->settings['translation-languages'][0] ) ) {
|
| 45 |
-
$language_to_redirect = $this->settings['translation-languages'][0];
|
| 46 |
-
}
|
| 47 |
-
$TRP_LANGUAGE = $this->settings['default-language'];
|
| 48 |
-
header( 'Location: ' . $this->get_url_for_language( $language_to_redirect ) );
|
| 49 |
-
exit;
|
| 50 |
-
}
|
| 51 |
-
}
|
| 52 |
-
|
| 53 |
/**
|
| 54 |
* Add language code as a subdirectory after home url.
|
| 55 |
*
|
|
@@ -222,8 +191,8 @@ class TRP_Url_Converter {
|
|
| 222 |
// If no $post_id is set we simply replace the current language root with the new language root.
|
| 223 |
// we can't assume the URL's have / at the end so we need to untrailingslashit both $abs_home and $new_language_root
|
| 224 |
$abs_home = trailingslashit( $this->get_abs_home() );
|
| 225 |
-
|
| 226 |
-
$current_lang_root = untrailingslashit($abs_home . $this->get_url_slug( $
|
| 227 |
$new_language_root = untrailingslashit($abs_home . $this->get_url_slug( $language ) );
|
| 228 |
|
| 229 |
if( $this->get_lang_from_url_string($url) === null ){
|
|
@@ -232,7 +201,7 @@ class TRP_Url_Converter {
|
|
| 232 |
} else {
|
| 233 |
$new_url = str_replace($current_lang_root, $new_language_root, $url);
|
| 234 |
}
|
| 235 |
-
|
| 236 |
}
|
| 237 |
|
| 238 |
|
|
@@ -439,6 +408,5 @@ class TRP_Url_Converter {
|
|
| 439 |
else
|
| 440 |
return $rewrite_rules;
|
| 441 |
}
|
| 442 |
-
|
| 443 |
|
| 444 |
}
|
| 19 |
$this->settings = $settings;
|
| 20 |
}
|
| 21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
/**
|
| 23 |
* Add language code as a subdirectory after home url.
|
| 24 |
*
|
| 191 |
// If no $post_id is set we simply replace the current language root with the new language root.
|
| 192 |
// we can't assume the URL's have / at the end so we need to untrailingslashit both $abs_home and $new_language_root
|
| 193 |
$abs_home = trailingslashit( $this->get_abs_home() );
|
| 194 |
+
$current_url_language = $this->get_lang_from_url_string( $url );
|
| 195 |
+
$current_lang_root = untrailingslashit($abs_home . $this->get_url_slug( $current_url_language ));
|
| 196 |
$new_language_root = untrailingslashit($abs_home . $this->get_url_slug( $language ) );
|
| 197 |
|
| 198 |
if( $this->get_lang_from_url_string($url) === null ){
|
| 201 |
} else {
|
| 202 |
$new_url = str_replace($current_lang_root, $new_language_root, $url);
|
| 203 |
}
|
| 204 |
+
$new_url = apply_filters( 'trp_get_url_for_language', $new_url, $url, $language, $abs_home, $current_lang_root, $new_language_root );
|
| 205 |
}
|
| 206 |
|
| 207 |
|
| 408 |
else
|
| 409 |
return $rewrite_rules;
|
| 410 |
}
|
|
|
|
| 411 |
|
| 412 |
}
|
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.2.
|
| 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.2.6
|
| 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
|
@@ -17,27 +17,27 @@ msgstr ""
|
|
| 17 |
msgid "Error! Duplicate Url slug values."
|
| 18 |
msgstr ""
|
| 19 |
|
| 20 |
-
#:
|
| 21 |
msgid "Limit this menu item to the following languages"
|
| 22 |
msgstr ""
|
| 23 |
|
| 24 |
-
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:4, ../tp-add-on-extra-languages/partials/license-settings-page.php:4,
|
| 25 |
msgid "TranslatePress Settings"
|
| 26 |
msgstr ""
|
| 27 |
|
| 28 |
-
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:10, ../tp-add-on-extra-languages/partials/license-settings-page.php:10,
|
| 29 |
msgid "License Key"
|
| 30 |
msgstr ""
|
| 31 |
|
| 32 |
-
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:15, ../tp-add-on-extra-languages/partials/license-settings-page.php:15,
|
| 33 |
msgid "Enter your license key."
|
| 34 |
msgstr ""
|
| 35 |
|
| 36 |
-
#: ../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,
|
| 37 |
msgid "Activate License"
|
| 38 |
msgstr ""
|
| 39 |
|
| 40 |
-
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:28, ../tp-add-on-extra-languages/partials/license-settings-page.php:28,
|
| 41 |
msgid "Deactivate License"
|
| 42 |
msgstr ""
|
| 43 |
|
|
@@ -172,7 +172,7 @@ msgstr ""
|
|
| 172 |
msgid "Settings"
|
| 173 |
msgstr ""
|
| 174 |
|
| 175 |
-
#: ../translatepress/includes/class-translation-manager.php:
|
| 176 |
msgid "Security check"
|
| 177 |
msgstr ""
|
| 178 |
|
| 17 |
msgid "Error! Duplicate Url slug values."
|
| 18 |
msgstr ""
|
| 19 |
|
| 20 |
+
#: class-navigation-based-on-language.php:85
|
| 21 |
msgid "Limit this menu item to the following languages"
|
| 22 |
msgstr ""
|
| 23 |
|
| 24 |
+
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:4, ../tp-add-on-extra-languages/partials/license-settings-page.php:4, 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:17, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:4
|
| 25 |
msgid "TranslatePress Settings"
|
| 26 |
msgstr ""
|
| 27 |
|
| 28 |
+
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:10, ../tp-add-on-extra-languages/partials/license-settings-page.php:10, 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
|
| 29 |
msgid "License Key"
|
| 30 |
msgstr ""
|
| 31 |
|
| 32 |
+
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:15, ../tp-add-on-extra-languages/partials/license-settings-page.php:15, 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
|
| 33 |
msgid "Enter your license key."
|
| 34 |
msgstr ""
|
| 35 |
|
| 36 |
+
#: ../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, partials/license-settings-page.php:22, 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
|
| 37 |
msgid "Activate License"
|
| 38 |
msgstr ""
|
| 39 |
|
| 40 |
+
#: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:28, ../tp-add-on-extra-languages/partials/license-settings-page.php:28, 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
|
| 41 |
msgid "Deactivate License"
|
| 42 |
msgstr ""
|
| 43 |
|
| 172 |
msgid "Settings"
|
| 173 |
msgstr ""
|
| 174 |
|
| 175 |
+
#: ../translatepress/includes/class-translation-manager.php:1117
|
| 176 |
msgid "Security check"
|
| 177 |
msgstr ""
|
| 178 |
|
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: 4.9.
|
| 7 |
-
Stable tag: 1.2.
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
|
@@ -117,6 +117,11 @@ For more information please check out [TranslatePress documentation](https://tra
|
|
| 117 |
6. Menu Language Switcher
|
| 118 |
|
| 119 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
= 1.2.5 =
|
| 121 |
* Fixed DOM changes script not being enqueued anymore
|
| 122 |
|
| 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: 4.9.7
|
| 7 |
+
Stable tag: 1.2.6
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 117 |
6. Menu Language Switcher
|
| 118 |
|
| 119 |
== Changelog ==
|
| 120 |
+
= 1.2.6 =
|
| 121 |
+
* Refactored determining language, redirecting and cookie adding
|
| 122 |
+
* Removed leftover trp-gettext tags when WooCommerce is active on some pages
|
| 123 |
+
* Fixed get_url_for_language function that was having problems in some cases.
|
| 124 |
+
|
| 125 |
= 1.2.5 =
|
| 126 |
* Fixed DOM changes script not being enqueued anymore
|
| 127 |
|
