TranslatePress – Translate Multilingual sites - Version 1.5.0

Version Description

  • Fixed some dynamic images not showing up in translated pages.
Download this release

Release Info

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

Code changes from version 1.4.9 to 1.5.0

assets/js/trp-translate-dom-changes.js CHANGED
@@ -109,6 +109,10 @@ function TRP_Translator(){
109
var text_to_set = _this.decode_html( initial_value.replace(initial_value.trim(), response_string.translated));
110
if ( nodeInfo.attribute ){
111
nodeInfo.node.setAttribute( nodeInfo.attribute, text_to_set )
112
}else {
113
nodeInfo.node.textContent = text_to_set;
114
}
@@ -120,7 +124,9 @@ function TRP_Translator(){
120
121
if ( ! translation_found ){
122
if ( nodeInfo.attribute ){
123
- nodeInfo.node.setAttribute( nodeInfo.attribute, initial_value )
124
}else {
125
nodeInfo.node.textContent = initial_value;
126
}
@@ -135,7 +141,9 @@ function TRP_Translator(){
135
}else{
136
for (var j = 0 ; j < nodesInfo.length; j++){
137
if ( nodesInfo[j].attribute ){
138
- nodesInfo[j].node.setAttribute( nodesInfo[j].attribute, nodesInfo[j].original )
139
}else {
140
nodesInfo[j].node.textContent = nodesInfo[j].original;
141
}
@@ -307,7 +315,7 @@ function TRP_Translator(){
307
if ( attribute_content && _this.trim( attribute_content.trim(), except_characters ) != '' ) {
308
nodesInfo.push({node: all_nodes[j], original: attribute_content, attribute: attribute_selector_item.accessor });
309
string_originals.push( attribute_content )
310
- if ( trp_data ['showdynamiccontentbeforetranslation'] == false ) {
311
all_nodes[j].setAttribute( attribute_selector_item.accessor, '' );
312
}
313
for ( var s = 0; s < skip_attr_machine_translation.length; s++ ){
109
var text_to_set = _this.decode_html( initial_value.replace(initial_value.trim(), response_string.translated));
110
if ( nodeInfo.attribute ){
111
nodeInfo.node.setAttribute( nodeInfo.attribute, text_to_set )
112
+ if ( nodeInfo.attribute == 'src' ){
113
+ nodeInfo.node.setAttribute( 'srcset', '' )
114
+ nodeInfo.node.setAttribute( 'data-src', text_to_set )
115
+ }
116
}else {
117
nodeInfo.node.textContent = text_to_set;
118
}
124
125
if ( ! translation_found ){
126
if ( nodeInfo.attribute ){
127
+ if ( nodeInfo.attribute != 'src' ) {
128
+ nodeInfo.node.setAttribute(nodeInfo.attribute, initial_value)
129
+ }
130
}else {
131
nodeInfo.node.textContent = initial_value;
132
}
141
}else{
142
for (var j = 0 ; j < nodesInfo.length; j++){
143
if ( nodesInfo[j].attribute ){
144
+ if ( nodesInfo[j].attribute != 'src' ) {
145
+ nodesInfo[j].node.setAttribute(nodesInfo[j].attribute, nodesInfo[j].original)
146
+ }
147
}else {
148
nodesInfo[j].node.textContent = nodesInfo[j].original;
149
}
315
if ( attribute_content && _this.trim( attribute_content.trim(), except_characters ) != '' ) {
316
nodesInfo.push({node: all_nodes[j], original: attribute_content, attribute: attribute_selector_item.accessor });
317
string_originals.push( attribute_content )
318
+ if ( trp_data ['showdynamiccontentbeforetranslation'] == false && ( attribute_selector_item.accessor != 'src' ) ) {
319
all_nodes[j].setAttribute( attribute_selector_item.accessor, '' );
320
}
321
for ( var s = 0; s < skip_attr_machine_translation.length; s++ ){
class-translate-press.php CHANGED
@@ -46,7 +46,7 @@ class TRP_Translate_Press{
46
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
47
define( 'TRP_PLUGIN_BASE', plugin_basename( __DIR__ . '/index.php' ) );
48
define( 'TRP_PLUGIN_SLUG', 'translatepress-multilingual' );
49
- define( 'TRP_PLUGIN_VERSION', '1.4.9' );
50
51
wp_cache_add_non_persistent_groups(array('trp'));
52
46
define( 'TRP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
47
define( 'TRP_PLUGIN_BASE', plugin_basename( __DIR__ . '/index.php' ) );
48
define( 'TRP_PLUGIN_SLUG', 'translatepress-multilingual' );
49
+ define( 'TRP_PLUGIN_VERSION', '1.5.0' );
50
51
wp_cache_add_non_persistent_groups(array('trp'));
52
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.9
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.5.0
7
Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
8
Author URI: https://cozmoslabs.com/
9
Text Domain: translatepress-multilingual
readme.txt CHANGED
@@ -1,482 +1,501 @@
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: 5.2.1
7
- Requires PHP: 5.6.20
8
- Stable tag: 1.4.9
9
- License: GPLv2 or later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- Easily translate your entire site directly from the front-end and go multilingual, with full support for WooCommerce, complex themes and site builders. Integrates with Google Translate.
13
-
14
- == Description ==
15
-
16
- **Experience a better way to translate your WordPress site and go multilingual, directly from the front-end using a friendly user interface.**
17
-
18
- TranslatePress is a WordPress translation plugin that anyone can use.
19
-
20
- 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.
21
-
22
- 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.
23
-
24
- https://www.youtube.com/watch?v=pUlYisvBm8g
25
-
26
- = Multilingual & Translation Features =
27
-
28
- * Translate all your website content directly from the front-end, in a friendly user interface (translation displayed in real-time).
29
- * Fully compatible with all themes and plugins
30
- * Live preview of your translated pages, as you edit your translations.
31
- * Support for both manual and automatic translation (via Google Translate)
32
- * Ability to translate dynamic strings (gettext) added by WordPress, plugins and themes.
33
- * Integrates with Google Translate, allowing you to set up Automatic Translation using your own Google API key.
34
- * Translate larger html blocks by merging strings into translation blocks.
35
- * Select specific html blocks for translation using the css class **translation-block**. `<p class="translation-block">Translate <em>everything</em> inside</p>`
36
- * Place language switchers anywhere using shortcode **[language-switcher]**, WP menu item or as a floating dropdown.
37
- * Editorial control allowing you to publish your language only when all your translations are done
38
- * Conditional display content shortcode based on language [trp_language language="en_US"] English content only [/trp_language]
39
- * Possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically a string-replace functionality.
40
- * Translation Block feature in which you can translate multiple html elements together
41
- * Native **Gutenberg** support
42
-
43
- Note: this WordPress translation plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.
44
-
45
- Users with administrator rights have access to the following translate settings:
46
-
47
- * select default language of the website and one translation language, for bilingual sites
48
- * choose whether language switcher should display languages in their native names or English name
49
- * force custom links to open in current language
50
- * enable or disable url subdirectory for the default language
51
- * enable automatic translation via Google Translate
52
-
53
- = Powerful Translation Add-ons =
54
-
55
- TranslatePress - Multilingual has a range of premium [Add-ons](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) that allow you to extend the power of the WordPress translation plugin:
56
-
57
- **Pro Add-ons** (available in the [premium versions](https://translatepress.com/pricing/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) only)
58
-
59
- * [Extra Languages](https://translatepress.com/docs/addons/seo-pack/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - allows you to add an unlimited number of translation languages, with the possibility to publish languages later after you complete the translation
60
- * [SEO Pack](https://translatepress.com/docs/addons/multiple-languages/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - allows you to translate meta information (like page title, description, url slug, image alt tag, Twitter and Facebook Social Graph tags & more) for boosting your website's SEO and increase traffic
61
- * [Translator Accounts](https://translatepress.com/docs/addons/translator-accounts/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - create or allow existing users to translate the site without admin rights
62
- * [Browse as User Role](https://translatepress.com/docs/addons/browse-as-role/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - view and translate content that is visible only to a particular user role
63
- * [Navigation Based on Language](https://translatepress.com/docs/addons/navigate-based-language/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - configure and display different menu items for different languages
64
- * [Automatic User Language Detection](https://translatepress.com/docs/addons/automatic-user-language-detection/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - redirect first time visitors to their preferred language based on their browser settings or IP address
65
-
66
- **Free Add-ons**
67
-
68
- * [Language by GET parameter](https://translatepress.com/docs/addons/language-get-parameter/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - enables the language in the URL to be encoded as a GET Parameter
69
-
70
- = Website =
71
-
72
- [translatepress.com](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
73
-
74
- = Documentation =
75
-
76
- [Visit TranslatePress WordPress Translation plugin documentation page](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
77
-
78
- = Add-ons =
79
-
80
- [Add-ons](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
81
-
82
- = Demo Site =
83
-
84
- You can test out TranslatePress - Multilingual plugin by [visiting our demo site](https://demo.translatepress.com/)
85
-
86
- == Installation ==
87
-
88
- 1. Upload the translatepress folder to the '/wp-content/plugins/' directory
89
- 2. Activate the plugin through the 'Plugins' menu in WordPress
90
- 3. Go to Settings -> TranslatePress and choose a translation language.
91
- 4. Open the front-end translation editor from the admin bar to translate your site.
92
-
93
- == Frequently Asked Questions ==
94
-
95
- = Where are my translations stored? =
96
-
97
- All the translation are stored locally in your server's database.
98
-
99
- = What types of content can I translate? =
100
-
101
- TranslatePress - Multilingual plugin 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.
102
-
103
- = How is it different from other multilingual & translation plugins like WPML or Polylang? =
104
-
105
- 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.
106
-
107
- = How do I start to translate my WordPress site? =
108
-
109
- After installing the plugin, select your secondary language and click "Translate Site" to start translating your entire site exactly as it looks in the front-end.
110
-
111
- = Will it slow down my website? =
112
-
113
- TranslatePress will have little impact on your site speed. For more details see [Top WordPress Translation Plugins Compared Based on Page Load Time](https://translatepress.com/top-wordpress-translation-plugins-compared-based-on-page-load-time/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
114
-
115
- = Where can I find out more information? =
116
-
117
- For more information please check out [TranslatePress - Multilingual plugin documentation](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree).
118
-
119
-
120
- == Screenshots ==
121
- 1. Front-end translation editor used to translate the entire page content
122
- 2. How to translate a Dynamic String (gettext) using TranslatePress - Multilingual
123
- 3. Translate Woocommerce Shop Page
124
- 4. Settings Page for TranslatePress - Multilingual
125
- 5. Floating Language Switcher added by TranslatePress - Multilingual
126
- 6. Menu Language Switcher
127
-
128
- == Changelog ==
129
- = 1.4.9 =
130
- * Fixed incompatibility with custom code for changing flags
131
- * Fixed some pages not being translated due to incorrectly encoded character
132
- * Fixed some images missing when automatic translation is on
133
-
134
- = 1.4.8 =
135
- * Added support for translating images
136
- * Added support for translating title attribute
137
- * Added support for translating href pointing to internal files and href pointing to any external links
138
- * Added support for translating attributes modified dynamically through JS
139
- * Added support for translating multiple attributes on the same node
140
- * Added support for translating nodes containing mixt of gettext and user-inputted strings
141
- * Added notification and disabled TP for servers not running minimum PHP version 5.6.20
142
- * Refactored and improved Translation Editor user interface
143
- * Added Keyboard shortcuts: CTRL + S (save), CTRL + ALT + Z (discard all changes), CTRL + ALT + LEFT (previous string), CTRL + ALT + RIGHT (next string)
144
- * Fixed issues with translation blocks not working on some instances
145
- * Security improvements
146
-
147
- = 1.4.7 =
148
- * Fixed a php error in previous commit
149
-
150
- = 1.4.6 =
151
- * Fixed a js compatibility error with mootools.js
152
- * Modified how the license page works and added plugin notifications
153
- * Allow compatibility fix for Translation Editor on certain environments
154
- * Fixed Safari bug with links when WooCommerce active
155
-
156
- = 1.4.5 =
157
- * Performance improvements
158
- * Fixed an issue that was causing empty strings to get inserted in the database
159
- * Improvements to detecting dynamic js strings earlier
160
- * Fixes some urls for sitemap
161
- * We now check if str_get_html is successful to avoid fatal error
162
- * Fixed regular string loaded by ajax not detected in translation editor
163
- * We now allow translating WooCommerce product base name separately from selected variations
164
- * Fixed WooCommerce cart details not being translated when changing language
165
- * Fixed Automatic Google Translation on languages not published yet
166
- * Fixed Translation Editor not working in default language when no translation language is published yet
167
- * Fixed gettext wrapping characters showing up in WooCommerce Shipping taxes metabox on Order pages
168
-
169
- = 1.4.4 =
170
- * Added more filters
171
- * Make sure we do not insert empty strings in the gettext translation table
172
- * Added support for Affiliate tracking
173
-
174
- = 1.4.3 =
175
- * Fixed an issue with the Language by Get Parameter add-on
176
- * Added compatibility with WooCommerce PDF invoice and WooCommerce's order notes.
177
- * Added stop_translating_page and before_running_hooks hooks.
178
- * Refactored hooks-loader to easily remove hook
179
-
180
- = 1.4.2 =
181
- * Fixes the issue with not being able to publish pages when Use subdirectory for default language is set to yes and Gutenberg is installed
182
- * Fixed an issue with Elementor and Use subdirectory for default language set to yes
183
- * Fixed an issue with Yoast Premium and Use subdirectory for default language set to yes
184
- * Fixed missing spaces in translations for original gettext strings with untrimmed spaces
185
-
186
- = 1.4.1 =
187
- * Added PHP 7.3 support
188
- * Performance improvements
189
-
190
- = 1.4.0 =
191
- * Added Enfold compatibility by increasing the template_include hook priority
192
- * Add the costa rica flag
193
- * Speed improvements by optimizing the full_trim function
194
- * Added compatibility for WooCommerce Invoices plugins
195
- * Fixed querying for dynamic strings in Translation Editor not bringing up translations for all languages
196
- * Fixed notice when gettext table is empty
197
- * Added function to display strings with bad encoding in Translation Editor
198
-
199
-
200
- = 1.3.9 =
201
- * Fixed some issues with url translations
202
- * Speed improvements
203
- * Add Javanese flag
204
- * Fixed issue with trimming dynamic strings in our own ajax calls
205
-
206
- = 1.3.8 =
207
- * Speed improvements
208
- * Remove notices from Editor when we don't have translation languages
209
- * Fixed notices with referrer in translator machine
210
- * Fixed issues with urls in other languages
211
- * Fix issue of nested gettext resulting in unwanted characters
212
- * Strip gettext tags from urls run through sanitize_title and esc_url
213
- * Set caching calls non-persistent. Doesn't work with object caching otherwise
214
- * Set lang attribute in html tag all the time including when on default language
215
- * Refactored the way we translate json
216
- * Fixed issue with Woocommerce ajax calls
217
-
218
- = 1.3.7 =
219
- * Fixed an issue with Woocommerce and redirects when the default language is not English
220
- * Speed improvements
221
- * Fix relative url without a trailingslash not getting a proper link back
222
- * Add ?trp=edit-translation=preview to ajax loaded content. Also add it to all dynamic content.
223
- * Added language code column in settings
224
- * Removed async false from JS translate-dom-changes
225
-
226
- = 1.3.6 =
227
- * Refactored the get_url_for_language() function which should fix a lot of problems with links
228
- * Speed improvements
229
- * Fixed translation block icon when creating a new block
230
- * Fixed issues with trp tags leftovers in html
231
- * Fixed issues with gettext strings that weren't detected correctly
232
- * Add support for relative url's
233
- * Added warning in settings about controlling costs of Google API
234
- * Changed API key field description. Added feature to show/hide API key field based on Google Translate Active Yes/No
235
- * Fixed Translated-dom-changes string not translated through trp-ajax.
236
- * Fixed 400 errors in google translate API
237
-
238
- = 1.3.5 =
239
- * Fixed translation problems introduced in the last two versions
240
- * Added a console message when trp-ajax request uses fall back to admin ajax for debugging purposes.
241
-
242
- = 1.3.4 =
243
- * Fixed issue with options in select tag that couldn't be translated
244
- * Fixed force language in custom links
245
- * Fixed Woocommerce links fpr products or categories that were added by the user manually in a page
246
- * Added Settings link to the list of links displayed on Plugins page
247
- * Fixed issue with Kazakhstan flag
248
-
249
- = 1.3.3 =
250
- * Fixed issue with Woocommerce ajax strings that were broken in editor on default language in some cases
251
- * Speed improvements
252
-
253
- = 1.3.2 =
254
- * Speed improvements
255
- * Add support for the Ginger EU Cookie Law plugin
256
- * Add support for data-no-dynamic-translation attribute that skips dynamic strings from being translated by dom changes detector
257
- * Fixed Edit Pencil icon css in Translation Editor for some sites
258
- * Refactored the way we add trp-gettext tag. This should have a lot of benefits in compatibility with other plugins
259
- * Optimized block translation detection
260
- * Added caching to trp_x function when reading external .mo files
261
- * Fixed issue with translatepress icon css that was broken on wpforms forms
262
- * Added secret page for removing duplicate rows from database: wp-admin/admin.php?page=trp_remove_duplicate_rows
263
-
264
- = 1.3.1 =
265
- * Fixed Woocommerce translation of permalinks
266
- * Added support for remove_accents to be based on default language when called from the sanitize_title function
267
- * Added support for translating JSON found in custom ajax request
268
- * Added better REST compatibility
269
- * Added compatibility for Peepso plugin
270
- * Fixed TranslatePress roken link to google translate set up api key on settings page
271
- * Corrected flags for Arabic and Bengali languages
272
- * Fixed issue with multiple slashes being added when the URL had extra get parameters
273
-
274
- = 1.3.0 =
275
- * Added support for word trim when the default language is japanese, chinese or thai.
276
- * Exluded wp_trim_words funtion from our gettext filter to prevent som issues
277
- * Fixed an issue with gettext inside attributes that passed through the wp_kses function.
278
- * Fixed issues with the Customizer
279
- * Added padding to the language switcher image so we don't conflict with themes that add extra padding to images inside links
280
- * We no longer remove \r \n \t from the translation
281
- * Fixed issue with title attribute that contained html
282
- * Added a filter to all href attributes detected on our translation page
283
- * Added a notice to inform admins of the missing mbstring php library
284
- * We now send all error logs to debug.log
285
- * Added cite and blockquote as top_parents for merge rule on Translation blocks
286
- * Fixed nonce accidentally being passed through internationalized function
287
-
288
- = 1.2.9 =
289
- * Rearranged and renamed some languages in the options dropdown
290
- * Fixed flag of Khmer language
291
- * Added Automatic Language Detection notice and included it on add-ons page
292
- * Fixed an issue with WooCommerce checkout and Stripe Gateway
293
- * Fixed issues with some improper responses from the WP Remote API functions
294
- * Fixed minor issues with ajax
295
-
296
- = 1.2.8 =
297
- * Added a lot of hooks in the translation manager interface so other people can insert new content there.
298
- * We now take into account the presence of www or lack of it in custom links that might be local
299
- * We now make sure we're not changing the locale in the backend if the language order is different.
300
- * Fixed issue with incorrect language adding in the backend that caused notices in the front-end
301
- * Removed obsolete function add_cookie
302
- * Fixed trailingslashit over get_permalink in url-converter
303
- * Removed adding cookie from php. Fixed enqueue_styles on license and add-ons tabs. Removed deprecated function.
304
-
305
- = 1.2.7 =
306
- * Added a warning when changing the default language that it will invalidate their existing translations
307
- * Fixed incorrect detection of the form action language parameter
308
- * Improved compatibility with themes and plugins that use object buffering
309
- * Fixed some issues with image urls
310
-
311
- = 1.2.6 =
312
- * Refactored determining language, redirecting and cookie adding
313
- * Removed leftover trp-gettext tags when WooCommerce is active on some pages
314
- * Fixed get_url_for_language function that was having problems in some cases.
315
-
316
- = 1.2.5 =
317
- * Fixed DOM changes script not being enqueued anymore
318
-
319
- = 1.2.4 =
320
- * Refactor the shortcode language switcher so it's now HTML similar to the floater
321
- * Added link to Appearance -> menus in TranslatePress settings page
322
- * Fixed language redirect with permalinks so custom parameters are passed correctly back to the url
323
- * Do not load dynamic string translation for IE11 and older
324
-
325
- = 1.2.3 =
326
- * Fixed back-end css style not being targeted only for TranslatePress Settings page
327
- * Add filter to not remove detected dynamic strings until the ajax is finished
328
- * Fixed data-no-translation not taken into account in some cases of Dynamic strings
329
- * Fixed translated slug not being included in url sometimes
330
- * Fixed issue with gettext string on non visible html attr that prevented other attr from being translated
331
- * Fixed bug with translating dom changes not working for complex HTML hierarchy
332
- * Corrected flag for Afrikaans.
333
- * Fixed compatibility issues with older jQuery versions
334
-
335
- = 1.2.2 =
336
- * Added Translation Block feature in which you can translate multiple html elements together
337
- * Improvement: make it possible for the SEO Addon to automatically translate page slugs using Google Translate
338
- * Fix: using the shortcode language switcher added #trpprocessurl to the end of the url
339
- * Fix: changing languages from a secondary language gave 404 page when the page slug was translated
340
- * Fix: submitting a form from one page to another directed the user to the default language. Now if Force Custom Language Links is enabled the user gets directed to the correct url
341
-
342
- = 1.2.1 =
343
- * Extra css for the floater images so they don't brake the line in certain themes
344
- * Fixed compatibility issue with Woocommerce cart widget
345
- * Fix: use the siteurl when the homeurl is empty to detect the language
346
-
347
- = 1.2.0 =
348
- * Fix wptexturize changing characters in secondary languages
349
- * Mini refactoring of the url_is_file() function
350
- * Refactor get_url_for_language() to not use the global var
351
- * We no longer add the language path to links to actual files on the server
352
-
353
- = 1.1.9 =
354
- * Fix widget language switcher to take into account the new hreflang
355
-
356
- = 1.1.8 =
357
- * 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.
358
- * Fixed Woocommerce session storage compatibility
359
- * Fixed language floater not opening on iPhone.
360
- * Fixed issue with normal text nodes that were inside an element that had an atribute with gettext and did not get translated
361
- * Replaced _ with - in hreflang and filter it
362
- * Make force language to custom links set to yes as a default
363
- * Remove intensive functions from inside two loops so they only happen once we detect something in js
364
- * Decode html characters in mutation observed strings and removed stripslashes from trp-ajax.php to fix some strings added with js not being translated
365
-
366
- = 1.1.7 =
367
- * Compatibility fix with Elementor Page Builder
368
- * Added translation .pot file
369
- * Add proper encoding for mysqli connection in our trp-ajax.php file so we fixed some translation
370
- * Fixed infinite loop related to mutation observer on javascript strings by not re-adding detected strings again if they are similar to existing ones
371
- * Aligned text from add-ons tab.
372
-
373
- = 1.1.6 =
374
- * Added support for translating Contact Form 7 alert messages
375
- * Fixed issue with some strings containing special characters not being translated (i.e. "¿¡")
376
- * Fixed bug with switching languages in Editor when viewing as Logged out
377
- * Fixed issue with broken homepage links in some themes
378
- * Added support for RTL languages in translation editor
379
-
380
- = 1.1.5 =
381
- * Added support for translation blocks using the css class .translation-block.
382
- * Added possibility to choose a different language as default language seen by website visitors.
383
- * Updated add-ons settings page with the missing add-ons, added Language by GET parameter addon
384
- * Fixed issue with the [language-switcher] in a post or page that broke saving the page when Yoast SEO plugin is active
385
- * Added a plugin notification class and a notification for pretty permalinks
386
- * Added WooCommerce compatibility tag
387
- * Small css improvements
388
-
389
- = 1.1.4 =
390
- * Filter to allow adding new language: 'trp_wp_languages'
391
- * Fixed issue with get_permalink() in ajax calls that was not returning the propper language
392
- * Adapted code to allow language based on a GET parameter
393
- * Fix some issues with language switcher and custom queries as well as take into account if subdirectory for default language is on
394
- * Fixed issue with js translation that was trimming numbers and other characters from strings when it shouldn't
395
-
396
- = 1.1.3 =
397
- * Fix issue where the language switcher didn't work for BuddyPress pages
398
- * Fixed issue with CDATA in post content that was breaking the translation
399
- * Added a filter that can be activated and that tries to fix invalid html: trp_try_fixing_invalid_html
400
-
401
- = 1.1.2 =
402
- * We now make sure that all forms when submitted redirect to the correct language
403
- * Fixed an issue with missing slash from language switcher
404
- * Fixed an issue where we were not redirecting to the correct url slug when switching languages
405
- * Fixed a possible notice inside the get_language_names function
406
- * Fixed html breaking because of unescaped quotes in translated meta content
407
- * Removed a special character from the full_trim function that was causing some strings to not be selectable for translation
408
-
409
- = 1.1.1 =
410
- * Fixed js error with startsWith method not being supported in IE
411
- * Removed unnecessary files from select2 lib
412
- * Improved the way we rewrite urls to remove certain bugs
413
-
414
- = 1.1.0 =
415
- * Implemented View As "Logged out user" functionality so you can translate strings that show only for logged out users
416
- * Allow slug edit for default language
417
- * Fixed an issue with the dropdown of translation strings when there were unsaved changes and the dropdown disconected from the textarea
418
- * Prevent translate editor icon pencil to exit the translation iframe
419
- * Fixed translating via the next/prev buttons that reset the position in the translation string list
420
- * Refactor the way we are generating the language url for the language switcher when we don't have a variable available
421
-
422
- = 1.0.9 =
423
- * We now flush permalinks when saving the settings page to avoid getting 404 and 500 errors
424
- * Added the current language as a class on the body tag. Ex: translatepress-en_US
425
- * Small readme changes
426
-
427
- = 1.0.8 =
428
- * We now allow HTML in normal strings translations.
429
- * Changed the way we get the default language permalinks in Woocommerce rewrites
430
- * Fixed issues with date_i18n function
431
- * Fixed a warning generated when there are no rewrite rules
432
- * Fixed dynamic strings not updating the translation dropdown list.
433
- * Fixed issues with hidden space characters that were breaking some translations
434
- * Make sure we don't loose the trp-edit-translation=preview from url after a WordPress redirect
435
-
436
- = 1.0.7 =
437
- * Fixed a small bug in js regarding the translation editor sidebar with
438
- * Fixed Language Switcher for Woocommerce product categories and product tags going to 404 pages
439
- * Fixed issues with Woocommerce and permalinks when the default language was not english
440
- * Excluded more functions from getting gettext wraps
441
-
442
- = 1.0.6 =
443
- * Added filter on capabilities to allow other roles to edit translations:'trp_translating_capability'
444
- * Don't show php errors and notices when we are storing strings in the database
445
- * Fixed issues with attributes that contain json content, for instance in woocommerce variations
446
- * We no longer wrap gettext inside the wptexturize function
447
- * We no longer wrap gettexts that appear in the bloginfo function
448
-
449
- = 1.0.5 =
450
- * Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
451
- * We now can translate text input placeholders
452
- * We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
453
- * Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings
454
-
455
- = 1.0.4 =
456
- * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
457
- * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
458
- * Fixed a issue that was sometimes causing javascript errors with certain plugins
459
-
460
- = 1.0.3 =
461
- * Added a conditional language shortcode: [trp_language language="en_US"] English only content [/trp_language]
462
- * Create link to test out Google API key.
463
- * Improvements to Woocommerce compatibility
464
- * Fixed json_encode error that was causing js errors
465
- * Changed 'template_include' hook priority to improve compatibility with some themes
466
-
467
- = 1.0.2 =
468
- * Translation interface improvements
469
- * Fixed issues with strings loaded with ajax
470
- * Added an addon page
471
- * Fixed bug with gettext node accidentally wrapping another string too.
472
-
473
- = 1.0.1 =
474
- * Fixed incorrect blog prefix name for Multisite subsites on admin_bar gettext hook.
475
- * Fixed Translate Page admin bar button sometimes not having the correct url for entering TP Editor Mode
476
- * Skipped dynamic strings that have only numbers and special characters.
477
- * Fixed order of categories in Editor dropdown. (Meta Information, String List..)
478
- * Fixed JS error Uncaught Error: Syntax error, unrecognized expression
479
-
480
- = 1.0.0 =
481
- * Initial release.
482
-
1
+ === TranslatePress - Translate Multilingual sites ===
2
+ Contributors: cozmoslabs, razvan.mo, madalin.ungureanu, cristophor
3
+ Donate link: https://www.translatepress.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.2.2
7
+ Requires PHP: 5.6.20
8
+ Stable tag: 1.5.0
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ Easily translate your entire site directly from the front-end and go multilingual, with full support for WooCommerce, complex themes and site builders. Integrates with Google Translate.
13
+
14
+ == Description ==
15
+
16
+ **Experience a better way to translate your WordPress site and go multilingual, directly from the front-end using a friendly user interface.**
17
+
18
+ TranslatePress is a [WordPress translation plugin](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) that anyone can use.
19
+
20
+ 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.
21
+
22
+ 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.
23
+
24
+ https://www.youtube.com/watch?v=pUlYisvBm8g
25
+
26
+ == Multilingual & Translation Features ==
27
+
28
+ * Translate all your website content directly from the front-end, in a friendly user interface (translation displayed in real-time).
29
+ * Fully compatible with all themes and plugins
30
+ * Live preview of your translated pages, as you edit your translations.
31
+ * [Image translation](https://translatepress.com/docs/image-translation/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) support, allowing you to [translate images, sliders and other media](https://translatepress.com/translate-images-in-wordpress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree).
32
+ * Support for both manual and automatic translation (via Google Translate)
33
+ * Ability to [translate dynamic strings](https://translatepress.com/translate-dynamic-strings-wordpress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) (gettext) added by WordPress, plugins and themes.
34
+ * Integrates with Google Translate, allowing you to set up Automatic Translation using your own Google API key.
35
+ * Translate larger html blocks by merging strings into translation blocks.
36
+ * Select specific html blocks for translation using the css class **translation-block**. `<p class="translation-block">Translate <em>everything</em> inside</p>`
37
+ * Place language switchers anywhere using shortcode **[language-switcher]**, WP menu item or as a floating dropdown.
38
+ * Editorial control allowing you to publish your language only when all your translations are done
39
+ * Conditional display content shortcode based on language [trp_language language="en_US"] English content only [/trp_language]
40
+ * Possibility to [edit gettext strings](https://translatepress.com/edit-plugin-strings/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) from themes and plugins from english to english, without adding another language. Basically a string-replace functionality.
41
+ * Translation Block feature in which you can translate multiple html elements together
42
+ * Native **Gutenberg** support, so you can easily [translate Gutenberg blocks](https://translatepress.com/translate-gutenberg-blocks-in-wordpress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
43
+ * Out of the box [WooCommerce](https://translatepress.com/translate-woocommerce-products-translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) compatibility
44
+
45
+ Note: this WordPress translation plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.
46
+
47
+ Users with administrator rights have access to the following translate settings:
48
+
49
+ * select default language of the website and one translation language, for bilingual sites
50
+ * choose whether language switcher should display languages in their native names or English name
51
+ * force custom links to open in current language
52
+ * enable or disable url subdirectory for the default language
53
+ * enable automatic translation via Google Translate
54
+
55
+ == Powerful Translation Add-ons ==
56
+
57
+ TranslatePress - Multilingual has a range of [premium Add-ons](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) that allow you to extend the power of the WordPress translation plugin:
58
+
59
+ **Pro Add-ons** (available in the [premium versions](https://translatepress.com/pricing/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) only)
60
+
61
+ * [Extra Languages](https://translatepress.com/docs/addons/seo-pack/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - allows you to add an unlimited number of translation languages, with the possibility to publish languages later after you complete the translation
62
+ * [SEO Pack](https://translatepress.com/docs/addons/multiple-languages/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - allows you to translate meta information (like page title, description, url slug, image alt tag, Twitter and Facebook Social Graph tags & more) for boosting your multilingual SEO and increase traffic
63
+ * [Translator Accounts](https://translatepress.com/docs/addons/translator-accounts/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - create or allow existing users to translate the site without admin rights
64
+ * [Browse as User Role](https://translatepress.com/docs/addons/browse-as-role/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - view and translate content that is visible only to a particular user role
65
+ * [Navigation Based on Language](https://translatepress.com/docs/addons/navigate-based-language/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - configure and display different menu items for different languages
66
+ * [Automatic User Language Detection](https://translatepress.com/docs/addons/automatic-user-language-detection/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - redirect first time visitors to their preferred language based on their browser settings or IP address
67
+
68
+ **Free Add-ons**
69
+
70
+ * [Language by GET parameter](https://translatepress.com/docs/addons/language-get-parameter/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) - enables the language in the URL to be encoded as a GET Parameter
71
+
72
+ **Keyboard Shortcuts**
73
+
74
+ * **CTRL ( ⌘ ) + S** – Save translation for the currently editing strings
75
+ * **CTRL ( ⌘ ) + ALT + Z** – Discard all changes for the currently editing strings
76
+ * **CTRL ( ) + ALT + →** (Right Arrow) – Navigate to next string to translate
77
+ * **CTRL ( ⌘ ) + ALT + ←** (Left Arrow) – Navigate to previous string to translate
78
+
79
+ = Website =
80
+
81
+ [translatepress.com](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
82
+
83
+ = Documentation =
84
+
85
+ [Visit TranslatePress WordPress Translation plugin documentation page](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
86
+
87
+ = Add-ons =
88
+
89
+ [Add-ons](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
90
+
91
+ = Demo Site =
92
+
93
+ You can test out TranslatePress - Multilingual plugin by [visiting our demo site](https://demo.translatepress.com/)
94
+
95
+ == Installation ==
96
+
97
+ 1. Upload the translatepress folder to the '/wp-content/plugins/' directory
98
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
99
+ 3. Go to Settings -> TranslatePress and choose a translation language.
100
+ 4. Open the front-end translation editor from the admin bar to translate your site.
101
+
102
+ == Frequently Asked Questions ==
103
+
104
+ = Where are my translations stored? =
105
+
106
+ All the translation are stored locally in your server's database.
107
+
108
+ = What types of content can I translate? =
109
+
110
+ TranslatePress - Multilingual plugin 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.
111
+
112
+ = How is it different from other multilingual & translation plugins like WPML or Polylang? =
113
+
114
+ 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.
115
+
116
+ = How do I start to translate my WordPress site? =
117
+
118
+ After installing the plugin, select your secondary language and click "Translate Site" to start translating your entire site exactly as it looks in the front-end.
119
+
120
+ = Will it slow down my website? =
121
+
122
+ TranslatePress will have little impact on your site speed. For more details see [Top WordPress Translation Plugins Compared Based on Page Load Time](https://translatepress.com/top-wordpress-translation-plugins-compared-based-on-page-load-time/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
123
+
124
+ = Does it work with WooCommerce? =
125
+
126
+ Yes, TranslatePress works out of the box with WooCommerce. You can use it to [translate WooCommerce products](https://translatepress.com/translate-woocommerce-products-translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree) and build a multilingual store.
127
+
128
+ = Where can I find out more information? =
129
+
130
+ For more information please check out [TranslatePress - Multilingual plugin documentation](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree).
131
+
132
+
133
+ == Screenshots ==
134
+ 1. TranslatePress front-end visual translation editor in action
135
+ 2. Front-end translation editor used to translate the entire page content
136
+ 3. How to translate a Dynamic String (gettext) using TranslatePress - Multilingual
137
+ 4. Translate WooCommerce Products using TranslatePress - Multilingual
138
+ 5. Translate Images and Image Sliders
139
+ 6. Settings Page for TranslatePress - Multilingual
140
+ 7. Floating Language Switcher added by TranslatePress - Multilingual
141
+ 8. Menu Language Switcher
142
+
143
+
144
+ == Changelog ==
145
+ = 1.5.0 =
146
+ * Fixed some dynamic images not showing up in translated pages.
147
+
148
+ = 1.4.9 =
149
+ * Fixed incompatibility with custom code for changing flags
150
+ * Fixed some pages not being translated due to incorrectly encoded character
151
+ * Fixed some images missing when automatic translation is on
152
+
153
+ = 1.4.8 =
154
+ * Added support for translating images
155
+ * Added support for translating title attribute
156
+ * Added support for translating href pointing to internal files and href pointing to any external links
157
+ * Added support for translating attributes modified dynamically through JS
158
+ * Added support for translating multiple attributes on the same node
159
+ * Added support for translating nodes containing mixt of gettext and user-inputted strings
160
+ * Added notification and disabled TP for servers not running minimum PHP version 5.6.20
161
+ * Refactored and improved Translation Editor user interface
162
+ * Added Keyboard shortcuts: CTRL + S (save), CTRL + ALT + Z (discard all changes), CTRL + ALT + LEFT (previous string), CTRL + ALT + RIGHT (next string)
163
+ * Fixed issues with translation blocks not working on some instances
164
+ * Security improvements
165
+
166
+ = 1.4.7 =
167
+ * Fixed a php error in previous commit
168
+
169
+ = 1.4.6 =
170
+ * Fixed a js compatibility error with mootools.js
171
+ * Modified how the license page works and added plugin notifications
172
+ * Allow compatibility fix for Translation Editor on certain environments
173
+ * Fixed Safari bug with links when WooCommerce active
174
+
175
+ = 1.4.5 =
176
+ * Performance improvements
177
+ * Fixed an issue that was causing empty strings to get inserted in the database
178
+ * Improvements to detecting dynamic js strings earlier
179
+ * Fixes some urls for sitemap
180
+ * We now check if str_get_html is successful to avoid fatal error
181
+ * Fixed regular string loaded by ajax not detected in translation editor
182
+ * We now allow translating WooCommerce product base name separately from selected variations
183
+ * Fixed WooCommerce cart details not being translated when changing language
184
+ * Fixed Automatic Google Translation on languages not published yet
185
+ * Fixed Translation Editor not working in default language when no translation language is published yet
186
+ * Fixed gettext wrapping characters showing up in WooCommerce Shipping taxes metabox on Order pages
187
+
188
+ = 1.4.4 =
189
+ * Added more filters
190
+ * Make sure we do not insert empty strings in the gettext translation table
191
+ * Added support for Affiliate tracking
192
+
193
+ = 1.4.3 =
194
+ * Fixed an issue with the Language by Get Parameter add-on
195
+ * Added compatibility with WooCommerce PDF invoice and WooCommerce's order notes.
196
+ * Added stop_translating_page and before_running_hooks hooks.
197
+ * Refactored hooks-loader to easily remove hook
198
+
199
+ = 1.4.2 =
200
+ * Fixes the issue with not being able to publish pages when Use subdirectory for default language is set to yes and Gutenberg is installed
201
+ * Fixed an issue with Elementor and Use subdirectory for default language set to yes
202
+ * Fixed an issue with Yoast Premium and Use subdirectory for default language set to yes
203
+ * Fixed missing spaces in translations for original gettext strings with untrimmed spaces
204
+
205
+ = 1.4.1 =
206
+ * Added PHP 7.3 support
207
+ * Performance improvements
208
+
209
+ = 1.4.0 =
210
+ * Added Enfold compatibility by increasing the template_include hook priority
211
+ * Add the costa rica flag
212
+ * Speed improvements by optimizing the full_trim function
213
+ * Added compatibility for WooCommerce Invoices plugins
214
+ * Fixed querying for dynamic strings in Translation Editor not bringing up translations for all languages
215
+ * Fixed notice when gettext table is empty
216
+ * Added function to display strings with bad encoding in Translation Editor
217
+
218
+
219
+ = 1.3.9 =
220
+ * Fixed some issues with url translations
221
+ * Speed improvements
222
+ * Add Javanese flag
223
+ * Fixed issue with trimming dynamic strings in our own ajax calls
224
+
225
+ = 1.3.8 =
226
+ * Speed improvements
227
+ * Remove notices from Editor when we don't have translation languages
228
+ * Fixed notices with referrer in translator machine
229
+ * Fixed issues with urls in other languages
230
+ * Fix issue of nested gettext resulting in unwanted characters
231
+ * Strip gettext tags from urls run through sanitize_title and esc_url
232
+ * Set caching calls non-persistent. Doesn't work with object caching otherwise
233
+ * Set lang attribute in html tag all the time including when on default language
234
+ * Refactored the way we translate json
235
+ * Fixed issue with Woocommerce ajax calls
236
+
237
+ = 1.3.7 =
238
+ * Fixed an issue with Woocommerce and redirects when the default language is not English
239
+ * Speed improvements
240
+ * Fix relative url without a trailingslash not getting a proper link back
241
+ * Add ?trp=edit-translation=preview to ajax loaded content. Also add it to all dynamic content.
242
+ * Added language code column in settings
243
+ * Removed async false from JS translate-dom-changes
244
+
245
+ = 1.3.6 =
246
+ * Refactored the get_url_for_language() function which should fix a lot of problems with links
247
+ * Speed improvements
248
+ * Fixed translation block icon when creating a new block
249
+ * Fixed issues with trp tags leftovers in html
250
+ * Fixed issues with gettext strings that weren't detected correctly
251
+ * Add support for relative url's
252
+ * Added warning in settings about controlling costs of Google API
253
+ * Changed API key field description. Added feature to show/hide API key field based on Google Translate Active Yes/No
254
+ * Fixed Translated-dom-changes string not translated through trp-ajax.
255
+ * Fixed 400 errors in google translate API
256
+
257
+ = 1.3.5 =
258
+ * Fixed translation problems introduced in the last two versions
259
+ * Added a console message when trp-ajax request uses fall back to admin ajax for debugging purposes.
260
+
261
+ = 1.3.4 =
262
+ * Fixed issue with options in select tag that couldn't be translated
263
+ * Fixed force language in custom links
264
+ * Fixed Woocommerce links fpr products or categories that were added by the user manually in a page
265
+ * Added Settings link to the list of links displayed on Plugins page
266
+ * Fixed issue with Kazakhstan flag
267
+
268
+ = 1.3.3 =
269
+ * Fixed issue with Woocommerce ajax strings that were broken in editor on default language in some cases
270
+ * Speed improvements
271
+
272
+ = 1.3.2 =
273
+ * Speed improvements
274
+ * Add support for the Ginger – EU Cookie Law plugin
275
+ * Add support for data-no-dynamic-translation attribute that skips dynamic strings from being translated by dom changes detector
276
+ * Fixed Edit Pencil icon css in Translation Editor for some sites
277
+ * Refactored the way we add trp-gettext tag. This should have a lot of benefits in compatibility with other plugins
278
+ * Optimized block translation detection
279
+ * Added caching to trp_x function when reading external .mo files
280
+ * Fixed issue with translatepress icon css that was broken on wpforms forms
281
+ * Added secret page for removing duplicate rows from database: wp-admin/admin.php?page=trp_remove_duplicate_rows
282
+
283
+ = 1.3.1 =
284
+ * Fixed Woocommerce translation of permalinks
285
+ * Added support for remove_accents to be based on default language when called from the sanitize_title function
286
+ * Added support for translating JSON found in custom ajax request
287
+ * Added better REST compatibility
288
+ * Added compatibility for Peepso plugin
289
+ * Fixed TranslatePress roken link to google translate set up api key on settings page
290
+ * Corrected flags for Arabic and Bengali languages
291
+ * Fixed issue with multiple slashes being added when the URL had extra get parameters
292
+
293
+ = 1.3.0 =
294
+ * Added support for word trim when the default language is japanese, chinese or thai.
295
+ * Exluded wp_trim_words funtion from our gettext filter to prevent som issues
296
+ * Fixed an issue with gettext inside attributes that passed through the wp_kses function.
297
+ * Fixed issues with the Customizer
298
+ * Added padding to the language switcher image so we don't conflict with themes that add extra padding to images inside links
299
+ * We no longer remove \r \n \t from the translation
300
+ * Fixed issue with title attribute that contained html
301
+ * Added a filter to all href attributes detected on our translation page
302
+ * Added a notice to inform admins of the missing mbstring php library
303
+ * We now send all error logs to debug.log
304
+ * Added cite and blockquote as top_parents for merge rule on Translation blocks
305
+ * Fixed nonce accidentally being passed through internationalized function
306
+
307
+ = 1.2.9 =
308
+ * Rearranged and renamed some languages in the options dropdown
309
+ * Fixed flag of Khmer language
310
+ * Added Automatic Language Detection notice and included it on add-ons page
311
+ * Fixed an issue with WooCommerce checkout and Stripe Gateway
312
+ * Fixed issues with some improper responses from the WP Remote API functions
313
+ * Fixed minor issues with ajax
314
+
315
+ = 1.2.8 =
316
+ * Added a lot of hooks in the translation manager interface so other people can insert new content there.
317
+ * We now take into account the presence of www or lack of it in custom links that might be local
318
+ * We now make sure we're not changing the locale in the backend if the language order is different.
319
+ * Fixed issue with incorrect language adding in the backend that caused notices in the front-end
320
+ * Removed obsolete function add_cookie
321
+ * Fixed trailingslashit over get_permalink in url-converter
322
+ * Removed adding cookie from php. Fixed enqueue_styles on license and add-ons tabs. Removed deprecated function.
323
+
324
+ = 1.2.7 =
325
+ * Added a warning when changing the default language that it will invalidate their existing translations
326
+ * Fixed incorrect detection of the form action language parameter
327
+ * Improved compatibility with themes and plugins that use object buffering
328
+ * Fixed some issues with image urls
329
+
330
+ = 1.2.6 =
331
+ * Refactored determining language, redirecting and cookie adding
332
+ * Removed leftover trp-gettext tags when WooCommerce is active on some pages
333
+ * Fixed get_url_for_language function that was having problems in some cases.
334
+
335
+ = 1.2.5 =
336
+ * Fixed DOM changes script not being enqueued anymore
337
+
338
+ = 1.2.4 =
339
+ * Refactor the shortcode language switcher so it's now HTML similar to the floater
340
+ * Added link to Appearance -> menus in TranslatePress settings page
341
+ * Fixed language redirect with permalinks so custom parameters are passed correctly back to the url
342
+ * Do not load dynamic string translation for IE11 and older
343
+
344
+ = 1.2.3 =
345
+ * Fixed back-end css style not being targeted only for TranslatePress Settings page
346
+ * Add filter to not remove detected dynamic strings until the ajax is finished
347
+ * Fixed data-no-translation not taken into account in some cases of Dynamic strings
348
+ * Fixed translated slug not being included in url sometimes
349
+ * Fixed issue with gettext string on non visible html attr that prevented other attr from being translated
350
+ * Fixed bug with translating dom changes not working for complex HTML hierarchy
351
+ * Corrected flag for Afrikaans.
352
+ * Fixed compatibility issues with older jQuery versions
353
+
354
+ = 1.2.2 =
355
+ * Added Translation Block feature in which you can translate multiple html elements together
356
+ * Improvement: make it possible for the SEO Addon to automatically translate page slugs using Google Translate
357
+ * Fix: using the shortcode language switcher added #trpprocessurl to the end of the url
358
+ * Fix: changing languages from a secondary language gave 404 page when the page slug was translated
359
+ * Fix: submitting a form from one page to another directed the user to the default language. Now if Force Custom Language Links is enabled the user gets directed to the correct url
360
+
361
+ = 1.2.1 =
362
+ * Extra css for the floater images so they don't brake the line in certain themes
363
+ * Fixed compatibility issue with Woocommerce cart widget
364
+ * Fix: use the siteurl when the homeurl is empty to detect the language
365
+
366
+ = 1.2.0 =
367
+ * Fix wptexturize changing characters in secondary languages
368
+ * Mini refactoring of the url_is_file() function
369
+ * Refactor get_url_for_language() to not use the global var
370
+ * We no longer add the language path to links to actual files on the server
371
+
372
+ = 1.1.9 =
373
+ * Fix widget language switcher to take into account the new hreflang
374
+
375
+ = 1.1.8 =
376
+ * 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.
377
+ * Fixed Woocommerce session storage compatibility
378
+ * Fixed language floater not opening on iPhone.
379
+ * Fixed issue with normal text nodes that were inside an element that had an atribute with gettext and did not get translated
380
+ * Replaced _ with - in hreflang and filter it
381
+ * Make force language to custom links set to yes as a default
382
+ * Remove intensive functions from inside two loops so they only happen once we detect something in js
383
+ * Decode html characters in mutation observed strings and removed stripslashes from trp-ajax.php to fix some strings added with js not being translated
384
+
385
+ = 1.1.7 =
386
+ * Compatibility fix with Elementor Page Builder
387
+ * Added translation .pot file
388
+ * Add proper encoding for mysqli connection in our trp-ajax.php file so we fixed some translation
389
+ * Fixed infinite loop related to mutation observer on javascript strings by not re-adding detected strings again if they are similar to existing ones
390
+ * Aligned text from add-ons tab.
391
+
392
+ = 1.1.6 =
393
+ * Added support for translating Contact Form 7 alert messages
394
+ * Fixed issue with some strings containing special characters not being translated (i.e. "¿¡")
395
+ * Fixed bug with switching languages in Editor when viewing as Logged out
396
+ * Fixed issue with broken homepage links in some themes
397
+ * Added support for RTL languages in translation editor
398
+
399
+ = 1.1.5 =
400
+ * Added support for translation blocks using the css class .translation-block.
401
+ * Added possibility to choose a different language as default language seen by website visitors.
402
+ * Updated add-ons settings page with the missing add-ons, added Language by GET parameter addon
403
+ * Fixed issue with the [language-switcher] in a post or page that broke saving the page when Yoast SEO plugin is active
404
+ * Added a plugin notification class and a notification for pretty permalinks
405
+ * Added WooCommerce compatibility tag
406
+ * Small css improvements
407
+
408
+ = 1.1.4 =
409
+ * Filter to allow adding new language: 'trp_wp_languages'
410
+ * Fixed issue with get_permalink() in ajax calls that was not returning the propper language
411
+ * Adapted code to allow language based on a GET parameter
412
+ * Fix some issues with language switcher and custom queries as well as take into account if subdirectory for default language is on
413
+ * Fixed issue with js translation that was trimming numbers and other characters from strings when it shouldn't
414
+
415
+ = 1.1.3 =
416
+ * Fix issue where the language switcher didn't work for BuddyPress pages
417
+ * Fixed issue with CDATA in post content that was breaking the translation
418
+ * Added a filter that can be activated and that tries to fix invalid html: trp_try_fixing_invalid_html
419
+
420
+ = 1.1.2 =
421
+ * We now make sure that all forms when submitted redirect to the correct language
422
+ * Fixed an issue with missing slash from language switcher
423
+ * Fixed an issue where we were not redirecting to the correct url slug when switching languages
424
+ * Fixed a possible notice inside the get_language_names function
425
+ * Fixed html breaking because of unescaped quotes in translated meta content
426
+ * Removed a special character from the full_trim function that was causing some strings to not be selectable for translation
427
+
428
+ = 1.1.1 =
429
+ * Fixed js error with startsWith method not being supported in IE
430
+ * Removed unnecessary files from select2 lib
431
+ * Improved the way we rewrite urls to remove certain bugs
432
+
433
+ = 1.1.0 =
434
+ * Implemented View As "Logged out user" functionality so you can translate strings that show only for logged out users
435
+ * Allow slug edit for default language
436
+ * Fixed an issue with the dropdown of translation strings when there were unsaved changes and the dropdown disconected from the textarea
437
+ * Prevent translate editor icon pencil to exit the translation iframe
438
+ * Fixed translating via the next/prev buttons that reset the position in the translation string list
439
+ * Refactor the way we are generating the language url for the language switcher when we don't have a variable available
440
+
441
+ = 1.0.9 =
442
+ * We now flush permalinks when saving the settings page to avoid getting 404 and 500 errors
443
+ * Added the current language as a class on the body tag. Ex: translatepress-en_US
444
+ * Small readme changes
445
+
446
+ = 1.0.8 =
447
+ * We now allow HTML in normal strings translations.
448
+ * Changed the way we get the default language permalinks in Woocommerce rewrites
449
+ * Fixed issues with date_i18n function
450
+ * Fixed a warning generated when there are no rewrite rules
451
+ * Fixed dynamic strings not updating the translation dropdown list.
452
+ * Fixed issues with hidden space characters that were breaking some translations
453
+ * Make sure we don't loose the trp-edit-translation=preview from url after a WordPress redirect
454
+
455
+ = 1.0.7 =
456
+ * Fixed a small bug in js regarding the translation editor sidebar with
457
+ * Fixed Language Switcher for Woocommerce product categories and product tags going to 404 pages
458
+ * Fixed issues with Woocommerce and permalinks when the default language was not english
459
+ * Excluded more functions from getting gettext wraps
460
+
461
+ = 1.0.6 =
462
+ * Added filter on capabilities to allow other roles to edit translations:'trp_translating_capability'
463
+ * Don't show php errors and notices when we are storing strings in the database
464
+ * Fixed issues with attributes that contain json content, for instance in woocommerce variations
465
+ * We no longer wrap gettext inside the wptexturize function
466
+ * We no longer wrap gettexts that appear in the bloginfo function
467
+
468
+ = 1.0.5 =
469
+ * Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
470
+ * We now can translate text input placeholders
471
+ * We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
472
+ * Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings
473
+
474
+ = 1.0.4 =
475
+ * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
476
+ * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
477
+ * Fixed a issue that was sometimes causing javascript errors with certain plugins
478
+
479
+ = 1.0.3 =
480
+ * Added a conditional language shortcode: [trp_language language="en_US"] English only content [/trp_language]
481
+ * Create link to test out Google API key.
482
+ * Improvements to Woocommerce compatibility
483
+ * Fixed json_encode error that was causing js errors
484
+ * Changed 'template_include' hook priority to improve compatibility with some themes
485
+
486
+ = 1.0.2 =
487
+ * Translation interface improvements
488
+ * Fixed issues with strings loaded with ajax
489
+ * Added an addon page
490
+ * Fixed bug with gettext node accidentally wrapping another string too.
491
+
492
+ = 1.0.1 =
493
+ * Fixed incorrect blog prefix name for Multisite subsites on admin_bar gettext hook.
494
+ * Fixed Translate Page admin bar button sometimes not having the correct url for entering TP Editor Mode
495
+ * Skipped dynamic strings that have only numbers and special characters.
496
+ * Fixed order of categories in Editor dropdown. (Meta Information, String List..)
497
+ * Fixed JS error Uncaught Error: Syntax error, unrecognized expression
498
+
499
+ = 1.0.0 =
500
+ * Initial release.
501
+