Version Description
- Fixed bug with Strings List appearing also in Dynamic Strings List. Also fixed bug with duplicate dynamic strings not having a pencil icon because of missing jquery_object.
- Fixed Woocommerce session storage compatibility
- Fixed language floater not opening on iPhone.
- Fixed issue with normal text nodes that were inside an element that had an atribute with gettext and did not get translated
- Replaced _ with - in hreflang and filter it
- Make force language to custom links set to yes as a default
- Remove intensive functions from inside two loops so they only happen once we detect something in js
- Decode html characters in mutation observed strings and removed stripslashes from trp-ajax.php to fix some strings added with js not being translated
Download this release
Release Info
Developer | madalin.ungureanu |
Plugin | TranslatePress – Translate Multilingual sites |
Version | 1.1.8 |
Comparing to | |
See all releases |
Code changes from version 1.1.7 to 1.1.8
- assets/css/trp-preview-iframe-style.css +8 -0
- assets/js/trp-editor-script.js +5 -4
- assets/js/trp-translate-dom-changes.js +33 -8
- class-translate-press.php +1 -1
- includes/class-language-switcher.php +1 -1
- includes/class-settings.php +1 -1
- includes/class-translation-render.php +3 -2
- includes/class-url-converter.php +4 -1
- includes/trp-ajax.php +1 -1
- index.php +1 -1
- languages/translatepress-multilingual.pot +8 -8
- readme.txt +16 -6
assets/css/trp-preview-iframe-style.css
CHANGED
@@ -55,10 +55,18 @@ span.trp-edit-translation svg {
|
|
55 |
background: #00ba3f !important;
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
58 |
*[data-trpgettextoriginal] span.trp-edit-translation:hover, .trpgettext-wrap span.trp-edit-translation:hover{
|
59 |
background: #00ce44 !important;
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
62 |
translate-press{
|
63 |
pointer-events: all;
|
64 |
}
|
55 |
background: #00ba3f !important;
|
56 |
}
|
57 |
|
58 |
+
*[data-trpgettextoriginal] *[data-trp-translate-id] span.trp-edit-translation{
|
59 |
+
background: #0085ba!important;
|
60 |
+
}
|
61 |
+
|
62 |
*[data-trpgettextoriginal] span.trp-edit-translation:hover, .trpgettext-wrap span.trp-edit-translation:hover{
|
63 |
background: #00ce44 !important;
|
64 |
}
|
65 |
|
66 |
+
*[data-trpgettextoriginal] *[data-trp-translate-id] span.trp-edit-translation:hover{
|
67 |
+
background: #008ec2!important;
|
68 |
+
}
|
69 |
+
|
70 |
translate-press{
|
71 |
pointer-events: all;
|
72 |
}
|
assets/js/trp-editor-script.js
CHANGED
@@ -30,7 +30,7 @@ function TRP_Editor(){
|
|
30 |
*/
|
31 |
this.change_language = function( select ){
|
32 |
var language = select.value;
|
33 |
-
var link = jQuery( '#trp-preview-iframe' ).contents().find('link[hreflang=' + language + ']').first().attr('href');
|
34 |
if ( link != undefined ){
|
35 |
|
36 |
/* pass on trp-view-as parameters to all links that also have preview parameter */
|
@@ -590,8 +590,6 @@ function TRP_Dictionary( language_code ){
|
|
590 |
strings_object[i].set = true;
|
591 |
_this.strings[s].set_string( strings_object[i] );
|
592 |
break;
|
593 |
-
}else{
|
594 |
-
strings_object[i].set = false;
|
595 |
}
|
596 |
}
|
597 |
}
|
@@ -799,7 +797,8 @@ function TRP_String( language, array_index ){
|
|
799 |
/**
|
800 |
* Show the pencil and border the viewable string in Preview window.
|
801 |
*/
|
802 |
-
this.highlight = function (){
|
|
|
803 |
if ( ! trpEditor.edit_translation_button ){
|
804 |
_this.jquery_object.prepend( '<span class="trp-edit-translation"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z"></path></svg></span>' );
|
805 |
trpEditor.edit_translation_button = _this.jquery_object.children('.trp-edit-translation');
|
@@ -1360,6 +1359,8 @@ jQuery( function(){
|
|
1360 |
}
|
1361 |
});
|
1362 |
|
|
|
|
|
1363 |
});
|
1364 |
|
1365 |
|
30 |
*/
|
31 |
this.change_language = function( select ){
|
32 |
var language = select.value;
|
33 |
+
var link = jQuery( '#trp-preview-iframe' ).contents().find('link[hreflang=' + language.replace("_", "-") + ']').first().attr('href');
|
34 |
if ( link != undefined ){
|
35 |
|
36 |
/* pass on trp-view-as parameters to all links that also have preview parameter */
|
590 |
strings_object[i].set = true;
|
591 |
_this.strings[s].set_string( strings_object[i] );
|
592 |
break;
|
|
|
|
|
593 |
}
|
594 |
}
|
595 |
}
|
797 |
/**
|
798 |
* Show the pencil and border the viewable string in Preview window.
|
799 |
*/
|
800 |
+
this.highlight = function (e){
|
801 |
+
e.stopPropagation();
|
802 |
if ( ! trpEditor.edit_translation_button ){
|
803 |
_this.jquery_object.prepend( '<span class="trp-edit-translation"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z"></path></svg></span>' );
|
804 |
trpEditor.edit_translation_button = _this.jquery_object.children('.trp-edit-translation');
|
1359 |
}
|
1360 |
});
|
1361 |
|
1362 |
+
// WooCommerce compatibility. Sometimes wc_fragments were cached in the editor.
|
1363 |
+
window.sessionStorage.removeItem('wc_fragments');
|
1364 |
});
|
1365 |
|
1366 |
|
assets/js/trp-translate-dom-changes.js
CHANGED
@@ -47,27 +47,51 @@ function TRP_Translator(){
|
|
47 |
});
|
48 |
};
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
/**
|
51 |
* Replace original strings with translations if found.
|
52 |
*/
|
53 |
this.update_strings = function( response, strings_to_query ) {
|
54 |
if ( response != null && response[language_to_query] != null ){
|
|
|
55 |
for ( var j in strings_to_query ) {
|
56 |
var queried_string = strings_to_query[j];
|
57 |
var translation_found = false;
|
58 |
var initial_value = queried_string.original;
|
59 |
for( var i in response[language_to_query] ) {
|
|
|
|
|
|
|
60 |
var response_string = response[language_to_query][i];
|
61 |
if (response_string.original.trim() == queried_string.original.trim()) {
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
63 |
if ( typeof parent.trpEditor !== 'undefined' ) {
|
64 |
-
|
65 |
-
|
66 |
}
|
|
|
67 |
if (response_string.translated != '' && language_to_query == current_language ) {
|
68 |
var text_to_set = initial_value.replace(initial_value.trim(), response_string.translated);
|
69 |
_this.pause_observer();
|
70 |
-
queried_string.node.textContent = text_to_set;
|
71 |
_this.unpause_observer();
|
72 |
translation_found = true;
|
73 |
break;
|
@@ -78,10 +102,11 @@ function TRP_Translator(){
|
|
78 |
if ( ! translation_found ){
|
79 |
queried_string.node.textContent = initial_value;
|
80 |
}
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
85 |
}
|
86 |
}else{
|
87 |
for ( var j in strings_to_query ) {
|
47 |
});
|
48 |
};
|
49 |
|
50 |
+
/**
|
51 |
+
* Return given text converted to html.
|
52 |
+
*
|
53 |
+
* Useful for decoding special characters into displayable form.
|
54 |
+
*
|
55 |
+
* @param html
|
56 |
+
* @returns {*}
|
57 |
+
*/
|
58 |
+
this.decode_html = function( html ) {
|
59 |
+
var txt = document.createElement( "textarea" );
|
60 |
+
txt.innerHTML = html;
|
61 |
+
return txt.value;
|
62 |
+
}
|
63 |
+
|
64 |
/**
|
65 |
* Replace original strings with translations if found.
|
66 |
*/
|
67 |
this.update_strings = function( response, strings_to_query ) {
|
68 |
if ( response != null && response[language_to_query] != null ){
|
69 |
+
var strings_to_store = {};
|
70 |
for ( var j in strings_to_query ) {
|
71 |
var queried_string = strings_to_query[j];
|
72 |
var translation_found = false;
|
73 |
var initial_value = queried_string.original;
|
74 |
for( var i in response[language_to_query] ) {
|
75 |
+
if ( typeof strings_to_store[language_to_query] == 'undefined' ){
|
76 |
+
strings_to_store[language_to_query] = {};
|
77 |
+
}
|
78 |
var response_string = response[language_to_query][i];
|
79 |
if (response_string.original.trim() == queried_string.original.trim()) {
|
80 |
+
strings_to_store[language_to_query][j] = {};
|
81 |
+
strings_to_store[language_to_query][j].id = response[language_to_query][i].id;
|
82 |
+
strings_to_store[language_to_query][j].original = response[language_to_query][i].original;
|
83 |
+
strings_to_store[language_to_query][j].translated = response[language_to_query][i].translated;
|
84 |
+
strings_to_store[language_to_query][j].status = response[language_to_query][i].status;
|
85 |
+
strings_to_store[language_to_query][j].jquery_object = jQuery( queried_string.node ).parent( 'translate-press' );
|
86 |
if ( typeof parent.trpEditor !== 'undefined' ) {
|
87 |
+
strings_to_store[language_to_query][j].jquery_object.attr('data-trp-translate-id', response[language_to_query][i].id);
|
88 |
+
strings_to_store[language_to_query][j].jquery_object.attr('data-trp-node-type', 'Dynamic Added Strings');
|
89 |
}
|
90 |
+
|
91 |
if (response_string.translated != '' && language_to_query == current_language ) {
|
92 |
var text_to_set = initial_value.replace(initial_value.trim(), response_string.translated);
|
93 |
_this.pause_observer();
|
94 |
+
queried_string.node.textContent = _this.decode_html(text_to_set);
|
95 |
_this.unpause_observer();
|
96 |
translation_found = true;
|
97 |
break;
|
102 |
if ( ! translation_found ){
|
103 |
queried_string.node.textContent = initial_value;
|
104 |
}
|
105 |
+
}
|
106 |
+
// this should always be outside the for loop
|
107 |
+
if ( typeof parent.trpEditor !== 'undefined' ) {
|
108 |
+
parent.trpEditor.populate_strings( strings_to_store );
|
109 |
+
parent.trpEditor.trp_lister.reload_list();
|
110 |
}
|
111 |
}else{
|
112 |
for ( var j in strings_to_query ) {
|
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.1.
|
43 |
|
44 |
$this->load_dependencies();
|
45 |
$this->initialize_components();
|
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.1.8' );
|
43 |
|
44 |
$this->load_dependencies();
|
45 |
$this->initialize_components();
|
includes/class-language-switcher.php
CHANGED
@@ -198,7 +198,7 @@ class TRP_Language_Switcher{
|
|
198 |
}
|
199 |
|
200 |
?>
|
201 |
-
<div id="trp-floater-ls" data-no-translation class="<?php echo $floater_class; ?>" <?php echo ( isset( $_GET['trp-edit-translation'] ) && $_GET['trp-edit-translation'] == 'preview' ) ? 'data-trp-unpreviewable="trp-unpreviewable"' : '' ?>>
|
202 |
<div id="trp-floater-ls-current-language" class="<?php echo $floater_flags_class ?>">
|
203 |
<a href="javascript:void(0)" class="trp-floater-ls-disabled-language" onclick="void(0)"><?php echo ( $floater_settings['flags'] ? $this->add_flag( $current_language['code'], $current_language['name'] ) : '' ); echo $current_language_label; ?></a>
|
204 |
</div>
|
198 |
}
|
199 |
|
200 |
?>
|
201 |
+
<div id="trp-floater-ls" onclick="" data-no-translation class="<?php echo $floater_class; ?>" <?php echo ( isset( $_GET['trp-edit-translation'] ) && $_GET['trp-edit-translation'] == 'preview' ) ? 'data-trp-unpreviewable="trp-unpreviewable"' : '' ?>>
|
202 |
<div id="trp-floater-ls-current-language" class="<?php echo $floater_flags_class ?>">
|
203 |
<a href="javascript:void(0)" class="trp-floater-ls-disabled-language" onclick="void(0)"><?php echo ( $floater_settings['flags'] ? $this->add_flag( $current_language['code'], $current_language['name'] ) : '' ); echo $current_language_label; ?></a>
|
204 |
</div>
|
includes/class-settings.php
CHANGED
@@ -255,7 +255,7 @@ class TRP_Settings{
|
|
255 |
'publish-languages' => array( $default, '' ),
|
256 |
'native_or_english_name' => 'english_name',
|
257 |
'add-subdirectory-to-default-language' => 'no',
|
258 |
-
'force-language-to-custom-links' => '
|
259 |
'g-translate' => 'no',
|
260 |
'trp-ls-floater' => 'yes',
|
261 |
'shortcode-options' => 'flags-full-names',
|
255 |
'publish-languages' => array( $default, '' ),
|
256 |
'native_or_english_name' => 'english_name',
|
257 |
'add-subdirectory-to-default-language' => 'no',
|
258 |
+
'force-language-to-custom-links' => 'yes',
|
259 |
'g-translate' => 'no',
|
260 |
'trp-ls-floater' => 'yes',
|
261 |
'shortcode-options' => 'flags-full-names',
|
includes/class-translation-render.php
CHANGED
@@ -326,7 +326,7 @@ class TRP_Translation_Render{
|
|
326 |
/* Parent node has no other children and no other innertext besides the current node */
|
327 |
if( count( $row->parent()->children ) == 1 && $row->parent()->innertext == $row->outertext ){
|
328 |
$row->outertext = $row->innertext();
|
329 |
-
$row->parent()->setAttribute(
|
330 |
// we are in the editor
|
331 |
if (isset($_REQUEST['trp-edit-translation']) && $_REQUEST['trp-edit-translation'] == 'preview') {
|
332 |
//move up the data-trpgettextoriginal attribute
|
@@ -359,7 +359,8 @@ class TRP_Translation_Render{
|
|
359 |
$nfv_row->outertext = $nfv_row->innertext();
|
360 |
$row->setAttribute($attr_name, $node_from_value->save() );
|
361 |
if( !$row->has_child() ){// if the node doesn't have children set the needed attributes, else it means that there are other nodes inside so probably they are the ones displayed
|
362 |
-
$row->
|
|
|
363 |
// we are in the editor
|
364 |
if (isset($_REQUEST['trp-edit-translation']) && $_REQUEST['trp-edit-translation'] == 'preview') {
|
365 |
$original_gettext_translation_id = $nfv_row->getAttribute('data-trpgettextoriginal');
|
326 |
/* Parent node has no other children and no other innertext besides the current node */
|
327 |
if( count( $row->parent()->children ) == 1 && $row->parent()->innertext == $row->outertext ){
|
328 |
$row->outertext = $row->innertext();
|
329 |
+
$row->parent()->setAttribute($no_translate_attribute, '');
|
330 |
// we are in the editor
|
331 |
if (isset($_REQUEST['trp-edit-translation']) && $_REQUEST['trp-edit-translation'] == 'preview') {
|
332 |
//move up the data-trpgettextoriginal attribute
|
359 |
$nfv_row->outertext = $nfv_row->innertext();
|
360 |
$row->setAttribute($attr_name, $node_from_value->save() );
|
361 |
if( !$row->has_child() ){// if the node doesn't have children set the needed attributes, else it means that there are other nodes inside so probably they are the ones displayed
|
362 |
+
if( empty( $row->innertext ) )// add the no translate attribute only if it does not contain any kind of text
|
363 |
+
$row->setAttribute($no_translate_attribute, '');
|
364 |
// we are in the editor
|
365 |
if (isset($_REQUEST['trp-edit-translation']) && $_REQUEST['trp-edit-translation'] == 'preview') {
|
366 |
$original_gettext_translation_id = $nfv_row->getAttribute('data-trpgettextoriginal');
|
includes/class-url-converter.php
CHANGED
@@ -132,7 +132,10 @@ class TRP_Url_Converter {
|
|
132 |
}
|
133 |
|
134 |
foreach ( $languages as $language ) {
|
135 |
-
|
|
|
|
|
|
|
136 |
}
|
137 |
}
|
138 |
|
132 |
}
|
133 |
|
134 |
foreach ( $languages as $language ) {
|
135 |
+
// hreflang should have - instead of _ . For example: en-EN, not en_EN like the locale
|
136 |
+
$hreflang = str_replace('_', '-', $language);
|
137 |
+
$hreflang = apply_filters('trp_hreflang', $hreflang, $language);
|
138 |
+
echo '<link rel="alternate" hreflang="' . $hreflang . '" href="' . $this->get_url_for_language( $language ) . '"/>';
|
139 |
}
|
140 |
}
|
141 |
|
includes/trp-ajax.php
CHANGED
@@ -41,7 +41,7 @@ class TRP_Ajax{
|
|
41 |
* @return array Sanitized array of strings.
|
42 |
*/
|
43 |
protected function sanitize_strings( $posted_strings){
|
44 |
-
$strings = json_decode(
|
45 |
$original_array = array();
|
46 |
if ( is_array( $strings ) ) {
|
47 |
foreach ($strings as $key => $string) {
|
41 |
* @return array Sanitized array of strings.
|
42 |
*/
|
43 |
protected function sanitize_strings( $posted_strings){
|
44 |
+
$strings = json_decode( $posted_strings );
|
45 |
$original_array = array();
|
46 |
if ( is_array( $strings ) ) {
|
47 |
foreach ($strings as $key => $string) {
|
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.1.
|
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.1.8
|
7 |
Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
|
8 |
Author URI: https://cozmoslabs.com/
|
9 |
License: GPL2
|
languages/translatepress-multilingual.pot
CHANGED
@@ -21,23 +21,23 @@ msgstr ""
|
|
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, ../tp-add-on-navigation-based-on-language/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, ../tp-add-on-navigation-based-on-language/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, ../tp-add-on-navigation-based-on-language/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, ../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,
|
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, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:28,
|
41 |
msgid "Deactivate License"
|
42 |
msgstr ""
|
43 |
|
@@ -409,14 +409,14 @@ msgstr ""
|
|
409 |
msgid "Learn More"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: includes/class-translator-accounts.php:119
|
413 |
msgid " TranslatePress Settings"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: includes/class-translator-accounts.php:123, includes/class-translator-accounts.php:124
|
417 |
msgid "Translator"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: includes/class-translator-accounts.php:128
|
421 |
msgid "Allow this user to translate the website."
|
422 |
msgstr ""
|
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, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:4, 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, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:10, 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, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:15, 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, ../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, partials/license-settings-page.php:22, 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, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:28, 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 |
|
409 |
msgid "Learn More"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: ../trp-add-on-translator-accounts-add-on/includes/class-translator-accounts.php:119
|
413 |
msgid " TranslatePress Settings"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: ../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
|
417 |
msgid "Translator"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: ../trp-add-on-translator-accounts-add-on/includes/class-translator-accounts.php:128
|
421 |
msgid "Allow this user to translate the website."
|
422 |
msgstr ""
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== TranslatePress - Translate Multilingual sites ===
|
2 |
Contributors: cozmoslabs, razvan.mo, madalin.ungureanu, cristophor
|
3 |
Donate link: https://www.cozmoslabs.com/
|
4 |
-
Tags: translate, translation, multilingual, automatic translation, front-end translation, google translate,
|
5 |
Requires at least: 3.1.0
|
6 |
Tested up to: 4.9.4
|
7 |
-
Stable tag: 1.1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -16,7 +16,7 @@ Easily translate your entire site directly from the front-end and go multilingua
|
|
16 |
|
17 |
The interface allows you to easily translate the entire page at once, including output from shortcodes, forms and page builders. It also works out of the box with WooCommerce.
|
18 |
|
19 |
-
Built the WordPress way, TranslatePress - Multilingual is a GPL and self hosted translation plugin, meaning you'll own all your translations, forever.
|
20 |
|
21 |
= Multilingual & Translation Features =
|
22 |
|
@@ -36,7 +36,7 @@ Note: this plugin uses the Google Translation API to translate the strings on yo
|
|
36 |
|
37 |
Users with administrator rights have access to the following translate settings:
|
38 |
|
39 |
-
* select default language of the website and one translation language
|
40 |
* choose whether language switcher should display languages in their native names or English name
|
41 |
* force custom links to open in current language
|
42 |
* enable or disable url subdirectory for the default language
|
@@ -91,9 +91,9 @@ All the translation are stored locally in your server's database.
|
|
91 |
|
92 |
TranslatePress - Multilingual works out of the box with WooCommerce, custom post types, complex themes and site builders, so you'll be able to translate any type of content.
|
93 |
|
94 |
-
= How is it different from other multilingual & translation plugins? =
|
95 |
|
96 |
-
TranslatePress is easier to use and more intuitive altogether. No more switching between the editor, string translation interfaces or badly translated plugins. You can now translate the full page content directly from the front-end.
|
97 |
|
98 |
= How do I start to translate my site? =
|
99 |
|
@@ -113,6 +113,16 @@ For more information please check out [TranslatePress documentation](https://tra
|
|
113 |
6. Menu Language Switcher
|
114 |
|
115 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
= 1.1.7 =
|
117 |
* Compatibility fix with Elementor Page Builder
|
118 |
* Added translation .pot file
|
1 |
=== TranslatePress - Translate Multilingual sites ===
|
2 |
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.4
|
7 |
+
Stable tag: 1.1.8
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
16 |
|
17 |
The interface allows you to easily translate the entire page at once, including output from shortcodes, forms and page builders. It also works out of the box with WooCommerce.
|
18 |
|
19 |
+
Built the WordPress way, TranslatePress - Multilingual is a GPL and self hosted translation plugin, meaning you'll own all your translations, forever. It's the fastest way to create a bilingual or multilingual site.
|
20 |
|
21 |
= Multilingual & Translation Features =
|
22 |
|
36 |
|
37 |
Users with administrator rights have access to the following translate settings:
|
38 |
|
39 |
+
* select default language of the website and one translation language, for bilingual sites
|
40 |
* choose whether language switcher should display languages in their native names or English name
|
41 |
* force custom links to open in current language
|
42 |
* enable or disable url subdirectory for the default language
|
91 |
|
92 |
TranslatePress - Multilingual works out of the box with WooCommerce, custom post types, complex themes and site builders, so you'll be able to translate any type of content.
|
93 |
|
94 |
+
= How is it different from other multilingual & translation plugins like WPML or Polylang? =
|
95 |
|
96 |
+
TranslatePress is easier to use and more intuitive altogether. No more switching between the editor, string translation interfaces or badly translated plugins. You can now translate the full page content directly from the front-end. This makes TranslatePress a great alternative to plugins like Polylang and WPML.
|
97 |
|
98 |
= How do I start to translate my site? =
|
99 |
|
113 |
6. Menu Language Switcher
|
114 |
|
115 |
== Changelog ==
|
116 |
+
= 1.1.8 =
|
117 |
+
* Fixed bug with Strings List appearing also in Dynamic Strings List. Also fixed bug with duplicate dynamic strings not having a pencil icon because of missing jquery_object.
|
118 |
+
* Fixed Woocommerce session storage compatibility
|
119 |
+
* Fixed language floater not opening on iPhone.
|
120 |
+
* Fixed issue with normal text nodes that were inside an element that had an atribute with gettext and did not get translated
|
121 |
+
* Replaced _ with - in hreflang and filter it
|
122 |
+
* Make force language to custom links set to yes as a default
|
123 |
+
* Remove intensive functions from inside two loops so they only happen once we detect something in js
|
124 |
+
* Decode html characters in mutation observed strings and removed stripslashes from trp-ajax.php to fix some strings added with js not being translated
|
125 |
+
|
126 |
= 1.1.7 =
|
127 |
* Compatibility fix with Elementor Page Builder
|
128 |
* Added translation .pot file
|