Version Description
- Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
- We now can translate text input placeholders
- We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
- Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings
Download this release
Release Info
Developer | madalin.ungureanu |
Plugin | TranslatePress – Translate Multilingual sites |
Version | 1.0.5 |
Comparing to | |
See all releases |
Code changes from version 1.0.4 to 1.0.5
- assets/css/trp-editor-style.css +10 -0
- assets/js/trp-editor-script.js +8 -5
- assets/js/trp-translate-dom-changes.js +2 -2
- class-translate-press.php +4 -1
- includes/class-translation-manager.php +2 -2
- includes/class-translation-render.php +28 -4
- index.php +1 -1
- partials/translation-manager.php +40 -13
- readme.txt +8 -1
assets/css/trp-editor-style.css
CHANGED
@@ -46,6 +46,16 @@ body{
|
|
46 |
padding: 12px;
|
47 |
}
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
#trp-unsaved-changes-warning-message{
|
50 |
color: #dc3232;
|
51 |
}
|
46 |
padding: 12px;
|
47 |
}
|
48 |
|
49 |
+
#trp-upsell-section h3,
|
50 |
+
#trp-upsell-section p{
|
51 |
+
text-align: center;
|
52 |
+
}
|
53 |
+
|
54 |
+
#trp-upsell-section .button-primary{
|
55 |
+
min-width:200px;
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
#trp-unsaved-changes-warning-message{
|
60 |
color: #dc3232;
|
61 |
}
|
assets/js/trp-editor-script.js
CHANGED
@@ -424,20 +424,20 @@ function TRP_Editor(){
|
|
424 |
* if the edit icon button has a parent with overflow hidden and position relative it won't show so we want to change it's margin to 0 so it will appear inside the element
|
425 |
*/
|
426 |
this.maybe_overflow_fix = function( icon ){
|
427 |
-
if (navigator.userAgent.search("Chrome") >= 0 || navigator.userAgent.search("Firefox") >= 0 || navigator.userAgent.search("Edge") >= 0 ) {
|
428 |
icon.parents().filter( function(){ var overflow = jQuery(this).css('overflow');
|
429 |
return overflow == 'hidden' && !jQuery(this).is('body'); } ).each( function(){
|
430 |
jQuery(this).parent().addClass('trp-overflow-transform-fixer');
|
431 |
return false;
|
432 |
});
|
433 |
}
|
434 |
-
else{
|
435 |
-
icon.parents().filter( function(){ var overflow = jQuery(this).css('overflow');
|
436 |
return overflow == 'hidden' && !jQuery(this).is('body'); } ).each( function(){
|
437 |
jQuery(this).addClass('trp-overflow-inside-fixer');
|
438 |
return false;
|
439 |
});
|
440 |
-
}
|
441 |
};
|
442 |
|
443 |
/**
|
@@ -679,14 +679,17 @@ function TRP_String( language, array_index ){
|
|
679 |
*/
|
680 |
this.wrap_special_html_elements = function(){
|
681 |
if( jquery_object.is('button') ){
|
|
|
682 |
jquery_object.wrap('<trp-highlight data-trp-button="true"></trp-highlight>');
|
683 |
jquery_object = jquery_object.parent();
|
684 |
}
|
685 |
else if ( jquery_object.attr( 'type' ) == 'submit' || jquery_object.attr( 'type' ) == 'button' ) {
|
|
|
686 |
jquery_object.wrap('<trp-highlight data-trp-attr="value"></trp-highlight>');
|
687 |
jquery_object = jquery_object.parent();
|
688 |
}
|
689 |
-
else if ( jquery_object.attr( 'type' ) == 'search' ) {
|
|
|
690 |
jquery_object.wrap('<trp-highlight data-trp-attr="placeholder"></trp-highlight>');
|
691 |
jquery_object = jquery_object.parent();
|
692 |
}
|
424 |
* if the edit icon button has a parent with overflow hidden and position relative it won't show so we want to change it's margin to 0 so it will appear inside the element
|
425 |
*/
|
426 |
this.maybe_overflow_fix = function( icon ){
|
427 |
+
/*if (navigator.userAgent.search("Chrome") >= 0 || navigator.userAgent.search("Firefox") >= 0 || navigator.userAgent.search("Edge") >= 0 ) {
|
428 |
icon.parents().filter( function(){ var overflow = jQuery(this).css('overflow');
|
429 |
return overflow == 'hidden' && !jQuery(this).is('body'); } ).each( function(){
|
430 |
jQuery(this).parent().addClass('trp-overflow-transform-fixer');
|
431 |
return false;
|
432 |
});
|
433 |
}
|
434 |
+
else{*/
|
435 |
+
icon.parents().filter( function(index){ if( index > 6 ) return false;var overflow = jQuery(this).css('overflow');
|
436 |
return overflow == 'hidden' && !jQuery(this).is('body'); } ).each( function(){
|
437 |
jQuery(this).addClass('trp-overflow-inside-fixer');
|
438 |
return false;
|
439 |
});
|
440 |
+
//}
|
441 |
};
|
442 |
|
443 |
/**
|
679 |
*/
|
680 |
this.wrap_special_html_elements = function(){
|
681 |
if( jquery_object.is('button') ){
|
682 |
+
jquery_object.unwrap('trp-highlight');
|
683 |
jquery_object.wrap('<trp-highlight data-trp-button="true"></trp-highlight>');
|
684 |
jquery_object = jquery_object.parent();
|
685 |
}
|
686 |
else if ( jquery_object.attr( 'type' ) == 'submit' || jquery_object.attr( 'type' ) == 'button' ) {
|
687 |
+
jquery_object.unwrap('trp-highlight');
|
688 |
jquery_object.wrap('<trp-highlight data-trp-attr="value"></trp-highlight>');
|
689 |
jquery_object = jquery_object.parent();
|
690 |
}
|
691 |
+
else if ( ( jquery_object.attr( 'type' ) == 'text' || jquery_object.attr( 'type' ) == 'search' ) && ( typeof jquery_object.attr( 'placeholder' ) != 'undefined' ) ) {
|
692 |
+
jquery_object.unwrap('trp-highlight');
|
693 |
jquery_object.wrap('<trp-highlight data-trp-attr="placeholder"></trp-highlight>');
|
694 |
jquery_object = jquery_object.parent();
|
695 |
}
|
assets/js/trp-translate-dom-changes.js
CHANGED
@@ -121,7 +121,7 @@ function TRP_Translator(){
|
|
121 |
var all_nodes = jQuery( mutation.addedNodes[i]).find( '*').addBack();
|
122 |
var all_strings = all_nodes.contents().filter(function(){
|
123 |
if( this.nodeType === 3 && /\S/.test(this.nodeValue) ){
|
124 |
-
if ( jQuery(this).
|
125 |
return this;
|
126 |
}
|
127 |
}
|
@@ -132,7 +132,7 @@ function TRP_Translator(){
|
|
132 |
var all_strings_length = all_strings.length;
|
133 |
for (var j = 0; j < all_strings_length; j++ ) {
|
134 |
if ( _this.trim( all_strings[j].textContent, except_characters ) != '' ) {
|
135 |
-
strings.push({node: all_strings[j], original: all_strings[j].textContent});
|
136 |
all_strings[j].textContent = '';
|
137 |
}
|
138 |
}
|
121 |
var all_nodes = jQuery( mutation.addedNodes[i]).find( '*').addBack();
|
122 |
var all_strings = all_nodes.contents().filter(function(){
|
123 |
if( this.nodeType === 3 && /\S/.test(this.nodeValue) ){
|
124 |
+
if ( jQuery(this).closest( '[data-trpgettextoriginal]').length == 0 && jQuery(this).closest( '[data-trp-translate-id]').length == 0 ){
|
125 |
return this;
|
126 |
}
|
127 |
}
|
132 |
var all_strings_length = all_strings.length;
|
133 |
for (var j = 0; j < all_strings_length; j++ ) {
|
134 |
if ( _this.trim( all_strings[j].textContent, except_characters ) != '' ) {
|
135 |
+
strings.push({node: all_strings[j], original: _this.trim( all_strings[j].textContent, except_characters )});
|
136 |
all_strings[j].textContent = '';
|
137 |
}
|
138 |
}
|
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' );
|
42 |
-
define( 'TRP_PLUGIN_VERSION', '1.0.
|
43 |
|
44 |
$this->load_dependencies();
|
45 |
$this->initialize_components();
|
@@ -173,6 +173,9 @@ class TRP_Translate_Press{
|
|
173 |
$this->loader->add_action( 'plugins_loaded', $this->query, 'check_for_necessary_updates' );
|
174 |
|
175 |
$this->loader->add_filter( 'trp_language_name', $this->languages, 'beautify_language_name', 10, 3 );
|
|
|
|
|
|
|
176 |
}
|
177 |
|
178 |
/**
|
39 |
define( 'TRP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
40 |
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
41 |
define( 'TRP_PLUGIN_SLUG', 'translatepress' );
|
42 |
+
define( 'TRP_PLUGIN_VERSION', '1.0.5' );
|
43 |
|
44 |
$this->load_dependencies();
|
45 |
$this->initialize_components();
|
173 |
$this->loader->add_action( 'plugins_loaded', $this->query, 'check_for_necessary_updates' );
|
174 |
|
175 |
$this->loader->add_filter( 'trp_language_name', $this->languages, 'beautify_language_name', 10, 3 );
|
176 |
+
|
177 |
+
/* set up wp_mail hooks */
|
178 |
+
$this->loader->add_filter( 'wp_mail', $this->translation_render, 'wp_mail_filter', 200 );
|
179 |
}
|
180 |
|
181 |
/**
|
includes/class-translation-manager.php
CHANGED
@@ -68,7 +68,7 @@ class TRP_Translation_Manager{
|
|
68 |
wp_enqueue_script( 'trp-select2-lib-js', TRP_PLUGIN_URL . 'assets/lib/select2-lib/dist/js/select2.min.js', array( 'jquery' ), TRP_PLUGIN_VERSION );
|
69 |
|
70 |
wp_enqueue_script( 'trp-translation-manager-script', TRP_PLUGIN_URL . 'assets/js/trp-editor-script.js', array(), TRP_PLUGIN_VERSION );
|
71 |
-
wp_enqueue_style( 'trp-translation-manager-style', TRP_PLUGIN_URL . 'assets/css/trp-editor-style.css', array(), TRP_PLUGIN_VERSION );
|
72 |
|
73 |
wp_enqueue_script( 'trp-translation-overlay', TRP_PLUGIN_URL . 'assets/js/trp-editor-overlay.js', array(), TRP_PLUGIN_VERSION );
|
74 |
|
@@ -572,7 +572,7 @@ class TRP_Translation_Manager{
|
|
572 |
global $TRP_LANGUAGE;
|
573 |
|
574 |
/* don't do anything if we don't have extra languages on the site */
|
575 |
-
if( count( $this->settings['publish-languages'] )
|
576 |
return $translation;
|
577 |
|
578 |
if( ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'true' ) || $domain == TRP_PLUGIN_SLUG )
|
68 |
wp_enqueue_script( 'trp-select2-lib-js', TRP_PLUGIN_URL . 'assets/lib/select2-lib/dist/js/select2.min.js', array( 'jquery' ), TRP_PLUGIN_VERSION );
|
69 |
|
70 |
wp_enqueue_script( 'trp-translation-manager-script', TRP_PLUGIN_URL . 'assets/js/trp-editor-script.js', array(), TRP_PLUGIN_VERSION );
|
71 |
+
wp_enqueue_style( 'trp-translation-manager-style', TRP_PLUGIN_URL . 'assets/css/trp-editor-style.css', array('buttons'), TRP_PLUGIN_VERSION );
|
72 |
|
73 |
wp_enqueue_script( 'trp-translation-overlay', TRP_PLUGIN_URL . 'assets/js/trp-editor-overlay.js', array(), TRP_PLUGIN_VERSION );
|
74 |
|
572 |
global $TRP_LANGUAGE;
|
573 |
|
574 |
/* don't do anything if we don't have extra languages on the site */
|
575 |
+
if( count( $this->settings['publish-languages'] ) < 1 )
|
576 |
return $translation;
|
577 |
|
578 |
if( ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'true' ) || $domain == TRP_PLUGIN_SLUG )
|
includes/class-translation-render.php
CHANGED
@@ -47,12 +47,17 @@ class TRP_Translation_Render{
|
|
47 |
if ( in_array( $TRP_LANGUAGE, $this->settings['translation-languages'] ) ) {
|
48 |
if ( $TRP_LANGUAGE == $this->settings['default-language'] ){
|
49 |
if ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'preview' ) {
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
54 |
}
|
55 |
}
|
|
|
|
|
|
|
56 |
}
|
57 |
}else {
|
58 |
return $TRP_LANGUAGE;
|
@@ -68,6 +73,7 @@ class TRP_Translation_Render{
|
|
68 |
* @return string Trimmed string.
|
69 |
*/
|
70 |
public function full_trim( $word ) {
|
|
|
71 |
$word = trim($word," \t\n\r\0\x0B\xA0�" );
|
72 |
if ( htmlentities( $word ) == "" || strip_tags( $word ) == "" || trim ($word, " \t\n\r\0\x0B\xA0�.,/`~!@#\$€£%^&*():;-_=+[]{}\\|?/<>1234567890'\"" ) == '' ){
|
73 |
$word = '';
|
@@ -684,4 +690,22 @@ class TRP_Translation_Render{
|
|
684 |
}
|
685 |
}
|
686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
}
|
47 |
if ( in_array( $TRP_LANGUAGE, $this->settings['translation-languages'] ) ) {
|
48 |
if ( $TRP_LANGUAGE == $this->settings['default-language'] ){
|
49 |
if ( isset( $_REQUEST['trp-edit-translation'] ) && $_REQUEST['trp-edit-translation'] == 'preview' ) {
|
50 |
+
if( count( $this->settings['publish-languages'] ) > 1 ){
|
51 |
+
foreach ($this->settings['translation-languages'] as $language) {
|
52 |
+
if ($language != $TRP_LANGUAGE) {
|
53 |
+
// return the first language not default. only used for preview mode
|
54 |
+
return $language;
|
55 |
+
}
|
56 |
}
|
57 |
}
|
58 |
+
else{
|
59 |
+
return $TRP_LANGUAGE;
|
60 |
+
}
|
61 |
}
|
62 |
}else {
|
63 |
return $TRP_LANGUAGE;
|
73 |
* @return string Trimmed string.
|
74 |
*/
|
75 |
public function full_trim( $word ) {
|
76 |
+
$word = str_replace( chr( 194 ) . chr( 160 ), ' ', $word );
|
77 |
$word = trim($word," \t\n\r\0\x0B\xA0�" );
|
78 |
if ( htmlentities( $word ) == "" || strip_tags( $word ) == "" || trim ($word, " \t\n\r\0\x0B\xA0�.,/`~!@#\$€£%^&*():;-_=+[]{}\\|?/<>1234567890'\"" ) == '' ){
|
79 |
$word = '';
|
690 |
}
|
691 |
}
|
692 |
|
693 |
+
|
694 |
+
/**
|
695 |
+
* Add a filter on the wp_mail function so we allow shortcode usage and run it through our translate function so it cleans it up nice and maybe even replace some strings
|
696 |
+
* @param $args
|
697 |
+
* @return array
|
698 |
+
*/
|
699 |
+
public function wp_mail_filter( $args ){
|
700 |
+
$trp_wp_mail = array(
|
701 |
+
'to' => $args['to'],
|
702 |
+
'subject' => $this->translate_page( do_shortcode( $args['subject'] ) ),
|
703 |
+
'message' => $this->translate_page( do_shortcode( $args['message'] ) ),
|
704 |
+
'headers' => $args['headers'],
|
705 |
+
'attachments' => $args['attachments'],
|
706 |
+
);
|
707 |
+
|
708 |
+
return $trp_wp_mail;
|
709 |
+
}
|
710 |
+
|
711 |
}
|
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.0.
|
7 |
Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
|
8 |
Author URI: https://cozmoslabs.com/
|
9 |
License: GPL2
|
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.0.5
|
7 |
Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
|
8 |
Author URI: https://cozmoslabs.com/
|
9 |
License: GPL2
|
partials/translation-manager.php
CHANGED
@@ -67,21 +67,20 @@
|
|
67 |
<optgroup id="trp-gettext-strings-optgroup" label="<?php _e( 'Gettext strings', TRP_PLUGIN_SLUG ); ?>"></optgroup>
|
68 |
</select>
|
69 |
</div>
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
</div>
|
77 |
-
|
78 |
-
|
79 |
-
<?php } ?>
|
80 |
</div>
|
81 |
<div class="trp-controls-section">
|
82 |
<div id="trp-translation-section" class="trp-controls-section-content">
|
83 |
<div id="trp-unsaved-changes-warning-message" style="display:none"><?php _e( 'You have unsaved changes!', TRP_PLUGIN_SLUG );?></div>
|
84 |
-
|
85 |
|
86 |
<?php //original strings for gettext textarea ?>
|
87 |
<div id="trp-gettext-original" class="trp-language-text trp-gettext-original-language" style="display:none">
|
@@ -111,11 +110,39 @@
|
|
111 |
<div id="trp-hide-all-languages" class="trp-toggle-languages trp-toggle-languages-active"><span>⯆ <?php echo $other_languages ?></span></div>
|
112 |
<?php } ?>
|
113 |
<?php }?>
|
114 |
-
<?php } else{ ?>
|
115 |
-
<div> <?php printf( __( 'No languages set for translation. Please select a translation language from <a href="%s">Settings->TranslatePress</a>', TRP_PLUGIN_SLUG ), admin_url( 'options-general.php?page=translate-press' ) );?></div>
|
116 |
-
<?php }?>
|
117 |
</div>
|
118 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
</div>
|
120 |
</div>
|
121 |
<div id="trp-preview">
|
67 |
<optgroup id="trp-gettext-strings-optgroup" label="<?php _e( 'Gettext strings', TRP_PLUGIN_SLUG ); ?>"></optgroup>
|
68 |
</select>
|
69 |
</div>
|
70 |
+
|
71 |
+
<div id="trp-next-previous">
|
72 |
+
<button type="button" id="trp-previous" class="trp-next-previous-buttons"><span>«</span> <?php _e( 'Previous', TRP_PLUGIN_SLUG ); ?></button>
|
73 |
+
<button type="button" id="trp-next" class="trp-next-previous-buttons"><?php _e( 'Next', TRP_PLUGIN_SLUG ); ?> <span>»</span></button>
|
74 |
+
</div>
|
75 |
+
|
76 |
</div>
|
77 |
+
<br class="clear">
|
78 |
+
|
|
|
79 |
</div>
|
80 |
<div class="trp-controls-section">
|
81 |
<div id="trp-translation-section" class="trp-controls-section-content">
|
82 |
<div id="trp-unsaved-changes-warning-message" style="display:none"><?php _e( 'You have unsaved changes!', TRP_PLUGIN_SLUG );?></div>
|
83 |
+
|
84 |
|
85 |
<?php //original strings for gettext textarea ?>
|
86 |
<div id="trp-gettext-original" class="trp-language-text trp-gettext-original-language" style="display:none">
|
110 |
<div id="trp-hide-all-languages" class="trp-toggle-languages trp-toggle-languages-active"><span>⯆ <?php echo $other_languages ?></span></div>
|
111 |
<?php } ?>
|
112 |
<?php }?>
|
|
|
|
|
|
|
113 |
</div>
|
114 |
</div>
|
115 |
+
|
116 |
+
|
117 |
+
<?php if( count( $trp_settings['translation-languages'] ) == 1 ) { ?>
|
118 |
+
<div class="trp-controls-section">
|
119 |
+
<div id="trp-translation-section" class="trp-controls-section-content">
|
120 |
+
<p><?php printf( __( 'You can add a new language from <a href="%s">Settings->TranslatePress</a>', TRP_PLUGIN_SLUG ), admin_url( 'options-general.php?page=translate-press' ) );?></p>
|
121 |
+
<p><?php _e( 'However, you can still use TranslatePress to <strong style="background: #f5fb9d;">modify gettext strings</strong> available in your page.', TRP_PLUGIN_SLUG );?></p>
|
122 |
+
<p><?php _e( 'Strings that are user created can\'t be modified, only those from themes and plugins.', TRP_PLUGIN_SLUG );?></p>
|
123 |
+
</div>
|
124 |
+
</div>
|
125 |
+
<?php } ?>
|
126 |
+
<?php
|
127 |
+
// upsell to PRO from Translation Editor.
|
128 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
129 |
+
if ( !( is_plugin_active('tp-add-on-extra-languages/index.php') || is_plugin_active('tp-add-on-seo-pack/index.php') ) ) :
|
130 |
+
?>
|
131 |
+
<div class="trp-controls-section wp-core-ui">
|
132 |
+
<div id="trp-upsell-section" class="trp-controls-section-content">
|
133 |
+
<h3><?php _e('Your Website <br/> Multiple Languages', TRP_PLUGIN_SLUG ); ?></h3>
|
134 |
+
<ul>
|
135 |
+
<li><?php _e('Support for 221 Languages', TRP_PLUGIN_SLUG ); ?></li>
|
136 |
+
<li><?php _e('Publish languages when the translation is done', TRP_PLUGIN_SLUG ); ?></li>
|
137 |
+
<li><?php _e('Translate SEO Title and Description', TRP_PLUGIN_SLUG ); ?></li>
|
138 |
+
<li><?php _e('Translate SEO Slug', TRP_PLUGIN_SLUG ); ?></li>
|
139 |
+
<li><?php _e('Translate Facebook Tags', TRP_PLUGIN_SLUG ); ?></li>
|
140 |
+
</ul>
|
141 |
+
<p><span style="background: #f5fb9d;"><?php _e('Supported By Real People', TRP_PLUGIN_SLUG ); ?></span></p>
|
142 |
+
<p><a class="button-primary" target="_blank" href="https://translatepress.com/pricing/?utm_source=wpbackend&utm_medium=clientsite&utm_content=tpeditor&utm_campaign=tpfree"><?php _e('Learn More', TRP_PLUGIN_SLUG ); ?></a></p>
|
143 |
+
</div>
|
144 |
+
</div>
|
145 |
+
<?php endif; ?>
|
146 |
</div>
|
147 |
</div>
|
148 |
<div id="trp-preview">
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.cozmoslabs.com/
|
|
4 |
Tags: translate, translation, multilingual, automatic translation, front-end translation, google translate, bilingual
|
5 |
Requires at least: 3.1.0
|
6 |
Tested up to: 4.8.2
|
7 |
-
Stable tag: 1.0.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -29,6 +29,7 @@ Built the WordPress way, TranslatePress - Multilingual is a GPL and self hosted
|
|
29 |
* Place language switchers anywhere using shortcode **[language-switcher]**, WP menu item or as a floating dropdown.
|
30 |
* Editorial control allowing you to publish your language only when all your translations are done
|
31 |
* Conditional display content shortcode based on language [trp_language language="en_EN"] English content only [/trp_language]
|
|
|
32 |
|
33 |
Note: this plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.
|
34 |
|
@@ -106,6 +107,12 @@ For more information please check out [TranslatePress documentation](https://tra
|
|
106 |
|
107 |
== Changelog ==
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
= 1.0.4 =
|
110 |
* Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
|
111 |
* Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
|
4 |
Tags: translate, translation, multilingual, automatic translation, front-end translation, google translate, bilingual
|
5 |
Requires at least: 3.1.0
|
6 |
Tested up to: 4.8.2
|
7 |
+
Stable tag: 1.0.5
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
29 |
* Place language switchers anywhere using shortcode **[language-switcher]**, WP menu item or as a floating dropdown.
|
30 |
* Editorial control allowing you to publish your language only when all your translations are done
|
31 |
* Conditional display content shortcode based on language [trp_language language="en_EN"] English content only [/trp_language]
|
32 |
+
* Possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically a string-replace functionality.
|
33 |
|
34 |
Note: this plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.
|
35 |
|
107 |
|
108 |
== Changelog ==
|
109 |
|
110 |
+
= 1.0.5 =
|
111 |
+
* Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
|
112 |
+
* We now can translate text input placeholders
|
113 |
+
* We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
|
114 |
+
* Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings
|
115 |
+
|
116 |
= 1.0.4 =
|
117 |
* Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
|
118 |
* Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
|