TranslatePress – Translate Multilingual sites - Version 1.1.9

Version Description

  • Fix widget language switcher to take into account the new hreflang
Download this release

Release Info

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

Code changes from version 1.1.8 to 1.1.9

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.8' );
43
 
44
  $this->load_dependencies();
45
  $this->initialize_components();
@@ -201,6 +201,9 @@ class TRP_Translate_Press{
201
 
202
  /* add to the body class the current language */
203
  $this->loader->add_filter( "body_class", $this->translation_manager, 'add_language_to_body_class' );
 
 
 
204
  }
205
 
206
  /**
@@ -210,4 +213,11 @@ class TRP_Translate_Press{
210
  $this->loader->run();
211
  }
212
 
 
 
 
 
 
 
 
213
  }
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.9' );
43
 
44
  $this->load_dependencies();
45
  $this->initialize_components();
201
 
202
  /* add to the body class the current language */
203
  $this->loader->add_filter( "body_class", $this->translation_manager, 'add_language_to_body_class' );
204
+
205
+ /* load textdomain */
206
+ $this->loader->add_action( "init", $this, 'init_translation', 8 );
207
  }
208
 
209
  /**
213
  $this->loader->run();
214
  }
215
 
216
+ /**
217
+ * Load plugin textdomain
218
+ */
219
+ public function init_translation(){
220
+ load_plugin_textdomain( 'translatepress-multilingual', false, basename(dirname(__FILE__)) . '/languages/' );
221
+ }
222
+
223
  }
index.php CHANGED
@@ -3,9 +3,11 @@
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
10
  WC requires at least: 2.5.0
11
  WC tested up to: 3.3
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.9
7
  Author: Cozmoslabs, Razvan Mocanu, Madalin Ungureanu, Cristophor Hurduban
8
  Author URI: https://cozmoslabs.com/
9
+ Text Domain: translatepress-multilingual
10
+ Domain Path: /languages
11
  License: GPL2
12
  WC requires at least: 2.5.0
13
  WC tested up to: 3.3
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, 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
 
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, ../tp-add-on-seo-pack/partials/license-settings-page.php:4, ../translatepress/partials/addons-settings-page.php:3, ../translatepress/partials/main-settings-page.php:5, ../translatepress/partials/test-google-key-settings-page.php:17, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:4
25
  msgid "TranslatePress Settings"
26
  msgstr ""
27
 
28
+ #: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:10, ../tp-add-on-extra-languages/partials/license-settings-page.php:10, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:10, ../tp-add-on-seo-pack/partials/license-settings-page.php:10, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:10
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, ../tp-add-on-seo-pack/partials/license-settings-page.php:15, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:15
33
  msgid "Enter your license key."
34
  msgstr ""
35
 
36
+ #: ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:22, ../tp-add-on-browse-as-other-roles/partials/license-settings-page.php:31, ../tp-add-on-extra-languages/partials/license-settings-page.php:22, ../tp-add-on-extra-languages/partials/license-settings-page.php:31, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:22, ../tp-add-on-navigation-based-on-language/partials/license-settings-page.php:31, ../tp-add-on-seo-pack/partials/license-settings-page.php:22, ../tp-add-on-seo-pack/partials/license-settings-page.php:31, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:22, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:31
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, ../tp-add-on-seo-pack/partials/license-settings-page.php:28, ../trp-add-on-translator-accounts-add-on/partials/license-settings-page.php:28
41
  msgid "Deactivate License"
42
  msgstr ""
43
 
partials/language-switcher-shortcode.php CHANGED
@@ -9,7 +9,7 @@ if( $shortcode_settings['flags'] && ! $shortcode_settings['full_names'] && ! $sh
9
  <form class="trp-language-switcher-form <?php echo $only_flags_class ?>" action="" method="POST">
10
  <select data-no-translation class="trp-language-switcher-select" <?php echo ( isset( $_GET['trp-edit-translation'] ) && $_GET['trp-edit-translation'] == 'preview' ) ? 'data-trp-unpreviewable="trp-unpreviewable"' : '' ?> name="lang" onchange='trp_change_language( this )'>
11
  <?php foreach ( $published_languages as $code => $name ){ ?>
12
- <option title="<?php echo ucfirst( $name ) ?>" data-class="trp-flag-icon" data-style="background-image: url( <?php echo $this->add_flag( $code, $name, 'ls_shortcode' ) ?> );" data-flag-url="<?php echo $this->add_flag( $code, $name, 'ls_shortcode' ) ?>" value="<?php echo $code ?>" <?php echo ( $current_language == $code ) ? 'selected' : '' ?> >
13
  <?php
14
 
15
  if( $shortcode_settings['full_names'] ) {
9
  <form class="trp-language-switcher-form <?php echo $only_flags_class ?>" action="" method="POST">
10
  <select data-no-translation class="trp-language-switcher-select" <?php echo ( isset( $_GET['trp-edit-translation'] ) && $_GET['trp-edit-translation'] == 'preview' ) ? 'data-trp-unpreviewable="trp-unpreviewable"' : '' ?> name="lang" onchange='trp_change_language( this )'>
11
  <?php foreach ( $published_languages as $code => $name ){ ?>
12
+ <option title="<?php echo ucfirst( $name ) ?>" data-class="trp-flag-icon" data-style="background-image: url( <?php echo $this->add_flag( $code, $name, 'ls_shortcode' ) ?> );" data-flag-url="<?php echo $this->add_flag( $code, $name, 'ls_shortcode' ) ?>" value="<?php echo str_replace("_", "-", $code );?>" <?php echo ( $current_language == $code ) ? 'selected' : '' ?> >
13
  <?php
14
 
15
  if( $shortcode_settings['full_names'] ) {
readme.txt CHANGED
@@ -1,241 +1,246 @@
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
-
11
- 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.
12
-
13
- == Description ==
14
-
15
- **Experience a better way to translate your WordPress site and go multilingual, directly from the front-end using a friendly user interface.**
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
-
23
- * Translate all your website content directly from the front-end, in a friendly user interface (translation displayed in real-time).
24
- * Fully compatible with all themes and plugins
25
- * Live preview of your translated pages, as you edit your translations.
26
- * Support for both manual and automatic translation (via Google Translate)
27
- * Ability to translate dynamic strings (gettext) added by WordPress, plugins and themes.
28
- * Integrates with Google Translate, allowing you to set up Automatic Translation using your own Google API key.
29
- * Translate larger html blocks using the css class **translation-block**. `<p class="translation-block">Translate <em>everything</em> inside</p>`
30
- * Place language switchers anywhere using shortcode **[language-switcher]**, WP menu item or as a floating dropdown.
31
- * Editorial control allowing you to publish your language only when all your translations are done
32
- * Conditional display content shortcode based on language [trp_language language="en_US"] English content only [/trp_language]
33
- * Possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically a string-replace functionality.
34
-
35
- Note: this plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.
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
43
- * enable automatic translation via Google Translate
44
-
45
- = Powerful Translation Add-ons =
46
-
47
- 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 translation plugin:
48
-
49
- **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)
50
-
51
- * [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
52
- * [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
53
- * [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
54
- * [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
55
- * [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
56
-
57
- **Free Add-ons**
58
-
59
- * [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
60
-
61
- = Website =
62
-
63
- [translatepress.com](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
64
-
65
- = Documentation =
66
-
67
- [Visit our documentation page](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
68
-
69
- = Add-ons =
70
-
71
- [Add-ons](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
72
-
73
- = Demo Site =
74
-
75
- You can test out TranslatePress - Multilingual by [visiting our demo site](https://demo.translatepress.com/)
76
-
77
- == Installation ==
78
-
79
- 1. Upload the translatepress folder to the '/wp-content/plugins/' directory
80
- 2. Activate the plugin through the 'Plugins' menu in WordPress
81
- 3. Go to Settings -> TranslatePress and choose a translation language.
82
- 4. Open the front-end translation editor from the admin bar to translate your site.
83
-
84
- == Frequently Asked Questions ==
85
-
86
- = Where are my translations stored? =
87
-
88
- All the translation are stored locally in your server's database.
89
-
90
- = What types of content can I translate? =
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
-
100
- 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.
101
-
102
- = Where can I find out more information? =
103
-
104
- For more information please check out [TranslatePress documentation](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree).
105
-
106
-
107
- == Screenshots ==
108
- 1. Front-end translation editor used to translate the entire page content
109
- 2. How to translate a Dynamic String (gettext) using TranslatePress - Multilingual
110
- 3. Translate Woocommerce Shop Page
111
- 4. Settings Page for TranslatePress - Multilingual
112
- 5. Floating Language Switcher added by TranslatePress - Multilingual
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
129
- * Add proper encoding for mysqli connection in our trp-ajax.php file so we fixed some translation
130
- * Fixed infinite loop related to mutation observer on javascript strings by not re-adding detected strings again if they are similar to existing ones
131
- * Aligned text from add-ons tab.
132
-
133
- = 1.1.6 =
134
- * Added support for translating Contact Form 7 alert messages
135
- * Fixed issue with some strings containing special characters not being translated (i.e. "¿¡")
136
- * Fixed bug with switching languages in Editor when viewing as Logged out
137
- * Fixed issue with broken homepage links in some themes
138
- * Added support for RTL languages in translation editor
139
-
140
- = 1.1.5 =
141
- * Added support for translation blocks using the css class .translation-block.
142
- * Added possibility to choose a different language as default language seen by website visitors.
143
- * Updated add-ons settings page with the missing add-ons, added Language by GET parameter addon
144
- * Fixed issue with the [language-switcher] in a post or page that broke saving the page when Yoast SEO plugin is active
145
- * Added a plugin notification class and a notification for pretty permalinks
146
- * Added WooCommerce compatibility tag
147
- * Small css improvements
148
-
149
- = 1.1.4 =
150
- * Filter to allow adding new language: 'trp_wp_languages'
151
- * Fixed issue with get_permalink() in ajax calls that was not returning the propper language
152
- * Adapted code to allow language based on a GET parameter
153
- * Fix some issues with language switcher and custom queries as well as take into account if subdirectory for default language is on
154
- * Fixed issue with js translation that was trimming numbers and other characters from strings when it shouldn't
155
-
156
- = 1.1.3 =
157
- * Fix issue where the language switcher didn't work for BuddyPress pages
158
- * Fixed issue with CDATA in post content that was breaking the translation
159
- * Added a filter that can be activated and that tries to fix invalid html: trp_try_fixing_invalid_html
160
-
161
- = 1.1.2 =
162
- * We now make sure that all forms when submitted redirect to the correct language
163
- * Fixed an issue with missing slash from language switcher
164
- * Fixed an issue where we were not redirecting to the correct url slug when switching languages
165
- * Fixed a possible notice inside the get_language_names function
166
- * Fixed html breaking because of unescaped quotes in translated meta content
167
- * Removed a special character from the full_trim function that was causing some strings to not be selectable for translation
168
-
169
- = 1.1.1 =
170
- * Fixed js error with startsWith method not being supported in IE
171
- * Removed unnecessary files from select2 lib
172
- * Improved the way we rewrite urls to remove certain bugs
173
-
174
- = 1.1.0 =
175
- * Implemented View As "Logged out user" functionality so you can translate strings that show only for logged out users
176
- * Allow slug edit for default language
177
- * Fixed an issue with the dropdown of translation strings when there were unsaved changes and the dropdown disconected from the textarea
178
- * Prevent translate editor icon pencil to exit the translation iframe
179
- * Fixed translating via the next/prev buttons that reset the position in the translation string list
180
- * Refactor the way we are generating the language url for the language switcher when we don't have a variable available
181
-
182
- = 1.0.9 =
183
- * We now flush permalinks when saving the settings page to avoid getting 404 and 500 errors
184
- * Added the current language as a class on the body tag. Ex: translatepress-en_US
185
- * Small readme changes
186
-
187
- = 1.0.8 =
188
- * We now allow HTML in normal strings translations.
189
- * Changed the way we get the default language permalinks in Woocommerce rewrites
190
- * Fixed issues with date_i18n function
191
- * Fixed a warning generated when there are no rewrite rules
192
- * Fixed dynamic strings not updating the translation dropdown list.
193
- * Fixed issues with hidden space characters that were breaking some translations
194
- * Make sure we don't loose the trp-edit-translation=preview from url after a WordPress redirect
195
-
196
- = 1.0.7 =
197
- * Fixed a small bug in js regarding the translation editor sidebar with
198
- * Fixed Language Switcher for Woocommerce product categories and product tags going to 404 pages
199
- * Fixed issues with Woocommerce and permalinks when the default language was not english
200
- * Excluded more functions from getting gettext wraps
201
-
202
- = 1.0.6 =
203
- * Added filter on capabilities to allow other roles to edit translations:'trp_translating_capability'
204
- * Don't show php errors and notices when we are storing strings in the database
205
- * Fixed issues with attributes that contain json content, for instance in woocommerce variations
206
- * We no longer wrap gettext inside the wptexturize function
207
- * We no longer wrap gettexts that appear in the bloginfo function
208
-
209
- = 1.0.5 =
210
- * Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
211
- * We now can translate text input placeholders
212
- * We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
213
- * Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings
214
-
215
- = 1.0.4 =
216
- * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
217
- * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
218
- * Fixed a issue that was sometimes causing javascript errors with certain plugins
219
-
220
- = 1.0.3 =
221
- * Added a conditional language shortcode: [trp_language language="en_US"] English only content [/trp_language]
222
- * Create link to test out Google API key.
223
- * Improvements to Woocommerce compatibility
224
- * Fixed json_encode error that was causing js errors
225
- * Changed 'template_include' hook priority to improve compatibility with some themes
226
-
227
- = 1.0.2 =
228
- * Translation interface improvements
229
- * Fixed issues with strings loaded with ajax
230
- * Added an addon page
231
- * Fixed bug with gettext node accidentally wrapping another string too.
232
-
233
- = 1.0.1 =
234
- * Fixed incorrect blog prefix name for Multisite subsites on admin_bar gettext hook.
235
- * Fixed Translate Page admin bar button sometimes not having the correct url for entering TP Editor Mode
236
- * Skipped dynamic strings that have only numbers and special characters.
237
- * Fixed order of categories in Editor dropdown. (Meta Information, String List..)
238
- * Fixed JS error Uncaught Error: Syntax error, unrecognized expression
239
-
240
- = 1.0.0 =
 
 
 
 
 
241
  * Initial release.
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.9
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ 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.
12
+
13
+ == Description ==
14
+
15
+ **Experience a better way to translate your WordPress site and go multilingual, directly from the front-end using a friendly user interface.**
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
+ https://www.youtube.com/watch?v=pUlYisvBm8g
22
+
23
+ = Multilingual & Translation Features =
24
+
25
+ * Translate all your website content directly from the front-end, in a friendly user interface (translation displayed in real-time).
26
+ * Fully compatible with all themes and plugins
27
+ * Live preview of your translated pages, as you edit your translations.
28
+ * Support for both manual and automatic translation (via Google Translate)
29
+ * Ability to translate dynamic strings (gettext) added by WordPress, plugins and themes.
30
+ * Integrates with Google Translate, allowing you to set up Automatic Translation using your own Google API key.
31
+ * Translate larger html blocks using the css class **translation-block**. `<p class="translation-block">Translate <em>everything</em> inside</p>`
32
+ * Place language switchers anywhere using shortcode **[language-switcher]**, WP menu item or as a floating dropdown.
33
+ * Editorial control allowing you to publish your language only when all your translations are done
34
+ * Conditional display content shortcode based on language [trp_language language="en_US"] English content only [/trp_language]
35
+ * Possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically a string-replace functionality.
36
+
37
+ Note: this plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.
38
+
39
+ Users with administrator rights have access to the following translate settings:
40
+
41
+ * select default language of the website and one translation language, for bilingual sites
42
+ * choose whether language switcher should display languages in their native names or English name
43
+ * force custom links to open in current language
44
+ * enable or disable url subdirectory for the default language
45
+ * enable automatic translation via Google Translate
46
+
47
+ = Powerful Translation Add-ons =
48
+
49
+ 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 translation plugin:
50
+
51
+ **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)
52
+
53
+ * [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
54
+ * [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
55
+ * [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
56
+ * [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
57
+ * [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
58
+
59
+ **Free Add-ons**
60
+
61
+ * [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
62
+
63
+ = Website =
64
+
65
+ [translatepress.com](https://translatepress.com/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
66
+
67
+ = Documentation =
68
+
69
+ [Visit our documentation page](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
70
+
71
+ = Add-ons =
72
+
73
+ [Add-ons](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree)
74
+
75
+ = Demo Site =
76
+
77
+ You can test out TranslatePress - Multilingual by [visiting our demo site](https://demo.translatepress.com/)
78
+
79
+ == Installation ==
80
+
81
+ 1. Upload the translatepress folder to the '/wp-content/plugins/' directory
82
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
83
+ 3. Go to Settings -> TranslatePress and choose a translation language.
84
+ 4. Open the front-end translation editor from the admin bar to translate your site.
85
+
86
+ == Frequently Asked Questions ==
87
+
88
+ = Where are my translations stored? =
89
+
90
+ All the translation are stored locally in your server's database.
91
+
92
+ = What types of content can I translate? =
93
+
94
+ 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.
95
+
96
+ = How is it different from other multilingual & translation plugins like WPML or Polylang? =
97
+
98
+ 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.
99
+
100
+ = How do I start to translate my site? =
101
+
102
+ 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.
103
+
104
+ = Where can I find out more information? =
105
+
106
+ For more information please check out [TranslatePress documentation](https://translatepress.com/docs/translatepress/?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree).
107
+
108
+
109
+ == Screenshots ==
110
+ 1. Front-end translation editor used to translate the entire page content
111
+ 2. How to translate a Dynamic String (gettext) using TranslatePress - Multilingual
112
+ 3. Translate Woocommerce Shop Page
113
+ 4. Settings Page for TranslatePress - Multilingual
114
+ 5. Floating Language Switcher added by TranslatePress - Multilingual
115
+ 6. Menu Language Switcher
116
+
117
+ == Changelog ==
118
+ = 1.1.9 =
119
+ * Fix widget language switcher to take into account the new hreflang
120
+
121
+ = 1.1.8 =
122
+ * 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.
123
+ * Fixed Woocommerce session storage compatibility
124
+ * Fixed language floater not opening on iPhone.
125
+ * Fixed issue with normal text nodes that were inside an element that had an atribute with gettext and did not get translated
126
+ * Replaced _ with - in hreflang and filter it
127
+ * Make force language to custom links set to yes as a default
128
+ * Remove intensive functions from inside two loops so they only happen once we detect something in js
129
+ * Decode html characters in mutation observed strings and removed stripslashes from trp-ajax.php to fix some strings added with js not being translated
130
+
131
+ = 1.1.7 =
132
+ * Compatibility fix with Elementor Page Builder
133
+ * Added translation .pot file
134
+ * Add proper encoding for mysqli connection in our trp-ajax.php file so we fixed some translation
135
+ * Fixed infinite loop related to mutation observer on javascript strings by not re-adding detected strings again if they are similar to existing ones
136
+ * Aligned text from add-ons tab.
137
+
138
+ = 1.1.6 =
139
+ * Added support for translating Contact Form 7 alert messages
140
+ * Fixed issue with some strings containing special characters not being translated (i.e. "¿¡")
141
+ * Fixed bug with switching languages in Editor when viewing as Logged out
142
+ * Fixed issue with broken homepage links in some themes
143
+ * Added support for RTL languages in translation editor
144
+
145
+ = 1.1.5 =
146
+ * Added support for translation blocks using the css class .translation-block.
147
+ * Added possibility to choose a different language as default language seen by website visitors.
148
+ * Updated add-ons settings page with the missing add-ons, added Language by GET parameter addon
149
+ * Fixed issue with the [language-switcher] in a post or page that broke saving the page when Yoast SEO plugin is active
150
+ * Added a plugin notification class and a notification for pretty permalinks
151
+ * Added WooCommerce compatibility tag
152
+ * Small css improvements
153
+
154
+ = 1.1.4 =
155
+ * Filter to allow adding new language: 'trp_wp_languages'
156
+ * Fixed issue with get_permalink() in ajax calls that was not returning the propper language
157
+ * Adapted code to allow language based on a GET parameter
158
+ * Fix some issues with language switcher and custom queries as well as take into account if subdirectory for default language is on
159
+ * Fixed issue with js translation that was trimming numbers and other characters from strings when it shouldn't
160
+
161
+ = 1.1.3 =
162
+ * Fix issue where the language switcher didn't work for BuddyPress pages
163
+ * Fixed issue with CDATA in post content that was breaking the translation
164
+ * Added a filter that can be activated and that tries to fix invalid html: trp_try_fixing_invalid_html
165
+
166
+ = 1.1.2 =
167
+ * We now make sure that all forms when submitted redirect to the correct language
168
+ * Fixed an issue with missing slash from language switcher
169
+ * Fixed an issue where we were not redirecting to the correct url slug when switching languages
170
+ * Fixed a possible notice inside the get_language_names function
171
+ * Fixed html breaking because of unescaped quotes in translated meta content
172
+ * Removed a special character from the full_trim function that was causing some strings to not be selectable for translation
173
+
174
+ = 1.1.1 =
175
+ * Fixed js error with startsWith method not being supported in IE
176
+ * Removed unnecessary files from select2 lib
177
+ * Improved the way we rewrite urls to remove certain bugs
178
+
179
+ = 1.1.0 =
180
+ * Implemented View As "Logged out user" functionality so you can translate strings that show only for logged out users
181
+ * Allow slug edit for default language
182
+ * Fixed an issue with the dropdown of translation strings when there were unsaved changes and the dropdown disconected from the textarea
183
+ * Prevent translate editor icon pencil to exit the translation iframe
184
+ * Fixed translating via the next/prev buttons that reset the position in the translation string list
185
+ * Refactor the way we are generating the language url for the language switcher when we don't have a variable available
186
+
187
+ = 1.0.9 =
188
+ * We now flush permalinks when saving the settings page to avoid getting 404 and 500 errors
189
+ * Added the current language as a class on the body tag. Ex: translatepress-en_US
190
+ * Small readme changes
191
+
192
+ = 1.0.8 =
193
+ * We now allow HTML in normal strings translations.
194
+ * Changed the way we get the default language permalinks in Woocommerce rewrites
195
+ * Fixed issues with date_i18n function
196
+ * Fixed a warning generated when there are no rewrite rules
197
+ * Fixed dynamic strings not updating the translation dropdown list.
198
+ * Fixed issues with hidden space characters that were breaking some translations
199
+ * Make sure we don't loose the trp-edit-translation=preview from url after a WordPress redirect
200
+
201
+ = 1.0.7 =
202
+ * Fixed a small bug in js regarding the translation editor sidebar with
203
+ * Fixed Language Switcher for Woocommerce product categories and product tags going to 404 pages
204
+ * Fixed issues with Woocommerce and permalinks when the default language was not english
205
+ * Excluded more functions from getting gettext wraps
206
+
207
+ = 1.0.6 =
208
+ * Added filter on capabilities to allow other roles to edit translations:'trp_translating_capability'
209
+ * Don't show php errors and notices when we are storing strings in the database
210
+ * Fixed issues with attributes that contain json content, for instance in woocommerce variations
211
+ * We no longer wrap gettext inside the wptexturize function
212
+ * We no longer wrap gettexts that appear in the bloginfo function
213
+
214
+ = 1.0.5 =
215
+ * Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
216
+ * We now can translate text input placeholders
217
+ * We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
218
+ * Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings
219
+
220
+ = 1.0.4 =
221
+ * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
222
+ * Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
223
+ * Fixed a issue that was sometimes causing javascript errors with certain plugins
224
+
225
+ = 1.0.3 =
226
+ * Added a conditional language shortcode: [trp_language language="en_US"] English only content [/trp_language]
227
+ * Create link to test out Google API key.
228
+ * Improvements to Woocommerce compatibility
229
+ * Fixed json_encode error that was causing js errors
230
+ * Changed 'template_include' hook priority to improve compatibility with some themes
231
+
232
+ = 1.0.2 =
233
+ * Translation interface improvements
234
+ * Fixed issues with strings loaded with ajax
235
+ * Added an addon page
236
+ * Fixed bug with gettext node accidentally wrapping another string too.
237
+
238
+ = 1.0.1 =
239
+ * Fixed incorrect blog prefix name for Multisite subsites on admin_bar gettext hook.
240
+ * Fixed Translate Page admin bar button sometimes not having the correct url for entering TP Editor Mode
241
+ * Skipped dynamic strings that have only numbers and special characters.
242
+ * Fixed order of categories in Editor dropdown. (Meta Information, String List..)
243
+ * Fixed JS error Uncaught Error: Syntax error, unrecognized expression
244
+
245
+ = 1.0.0 =
246
  * Initial release.