= 3.1.5 =
* Do not query translatepress.com for valid licenses if the license is empty
* Skip pdf translation by detecting pdf magic characters at the beginning of every pdf file
* Do not show Upgrade button for Developer license
* Make languages sortable in free version as well

= 3.1.4 =
* Fixed some cases where recent translations generated using TranslatePress AI have been incorrectly set to __OPENROUTER_FAILED__
* Fixed WooCommerce Layered Nav dropdown "Any %s" label untranslatable in visual editor
* Added extra machine translation data to license check requests

= 3.1.3 =
* Fixed fatal error when CTX Feed Pro was active

= 3.1.2 =
* Added AI Words low quota email notification feature
* Fixed test API key popup not appearing on WP Error
* Fixed checkbox and radio button styling for WordPress 7.0 compatibility
* Fixed persistent notification badge in admin sidebar
* CSS Fixes for WP 7.0 and enable automatic translation on successful license activation in onboarding

= 3.1.1 =
* Fixed WooCommerce emails being sent in the default language instead of the secondary language (en_US)
* Prevent gettext marker contamination in DB writes for WooCommerce orders, comments, and options #!trpst#
* Match language switcher tab width with the rest of the TranslatePress Settings pages
* Added announcement about Different Domain per Language add-on

= 3.1 =
* Add a new add-on: Different Domain for Language
* Fixed a few incorrect entries in the .pot file

= 3.0.9 =
* Encourage users to engage and ask questions or offer suggestions on wordpress.org forums from TranslatePress Settings
* Skip shortcode translation inside REST API
* Fix bug where Manual Translation Only broke translation block saving

= 3.0.8 =
* Add admin bar notifications for adding new language, expired license and lack of AI words
* Fix bug where [language-switcher] text appears on pages excluded from translation
* Prevent numbers, emails and base64 images from being automatically translated when Advanced option Translate numerals is active
* Fix language switcher configurator strings localized in JS not being picked up by parsers
* Remove API keys from translation editor object exposed in JS
* Regular Strings tab in Translation Editor is enabled by default
* PHP notice Using null as an array offset is deprecated

= 3.0.7 =
* Improved security by adding nonces and capability checks to various ajax calls that lacked them
* Fixed issue with breaking urls containing % when manually adding translations in Translation Editor
* Fixed compatibility with DK PDF plugin
* Fixed legacy language switcher inserted via Elementor shortcode widget having a fixed 300px width
* In the language switcher configurator page, invert border radius values on vertical position change
* Hide user inserted labels in the context of language switcher menu items if only flags option is selected
* Make Powered by in language switcher less prominent

= 3.0.6 =
* Extended support for Divi search in secondary languages
* Fixed redirect loop bug with excluded paths from translation
* Fixed incorrect gettext resolution in string translation when the site locale differed from the default TranslatePress language, which caused untranslated gettext entries to be populated using translations from the wrong locale
* Fixed edge case of retranslating the same text multiple times
* Fixed not detecting texts containing only certain special characters
* Fixed bug where mini cart menu widget doesn't respect language change
* Fixed edge case error "Call to a member function is_available() on null"
* Send emails in recipient's preferred language, in case the recipient is a user
* Improved INP by deferring dynamic translation detection when original content can be shown first
* Fixed a bug where the floating language switcher was not displaying all languages (if more than 10 were added and animations disabled)
* Disable language switcher show opposite language settings in case more than 2 languages are active
* Fixed deprecated notice for seems_utf8 function on WP 6.9

= 3.0.5 =
* Fixed CSS for Black Friday offer from admin notice

= 3.0.4 =
* Added 39 more languages including Irish, Maltese and Sicilian
* Added support for Latin American Spanish automatic translation in TranslatePress AI
* Added support for Divi search in secondary language
* Added support for exact match search in String Translation by placing the string in quotes: "example"
* Allow schema.org data to be translated
* Fixed Regular String Translation search so filtered languages also match terms appearing in the middle of translated strings, not only at the start
* Prevent automatic translation of strings that are 0 or 1 characters long or strings that are punctuation only
* Change background hover color for transparent preset in order to improve contrast of language switcher
* Fixed two missing spaces in floating switcher HTML markup
* Fix PHP warning with empty domain for gettext with context
* Fixed edge case error "call to a member function is_available() on null"
* Moved the "Automatically Translate Slug" setting to be first in line
* Extended the license message for item_name_mismatch to provide more context
* Improved text information next to the default language

= 3.0.3 =
* Fixed an issue introduced in the previous update that occurred when using Google Translate as the translation engine

= 3.0.2 =
* Fixed potential security issue due to calling extract on shortcode attribute
* Fixed issue with shortcode language switcher disappearing when "Show opposite language" option was enabled
* Fixed mysql syntax error regarding machine translating gettext when trying to update with no values
* Fixed flags for Catalan, Galician and Basque languages
* Fixed edge case error "call to a member function is_available() on null"
* Fixed WooCommerce failed order emails not being translated
* Fixed shortcode switcher not being interactive inside pop-up
* Compatibility added for Simple Download Manager on certain web-hosts due to object buffer
* Accessibility improvements for floating and shortcode language switchers
* Take WP admin bar into account when floating switcher is top positioned.
* Better support for browser zoom in the String Translation
* Ignore gettext translation for WP Job Manager base slugs as they cause issues with TranslatePress translated slugs

= 3.0.1 =
* Fixed cases of #!trpst# wrappings appearing on texts from localized scripts such as the WooCommerce checkout page
* Fixed layout issues on Gutenberg pages by upgrading Language Switcher block to Gutenberg API v3
* Fixed missing punctuation (e.g. quotes, commas) at the start or end of automatically translated texts
* Fixed incorrect html tags appearing in the License key error message during onboarding
* Fixed issue with not showing available TranslatePress AI words after activating license in the onboarding process
* Fixed PHP warning about undefined array key "oppositeLanguage"
* Fixed PHP warning on gettext insert update
* Added Slim SEO hooks in is_sitemap_path function to allow translation of links in sitemap

= 3.0 =
* Start Translating in under 5 minutes with a new onboarding flow for TranslatePress to quickly setup languages, automatic translation and add-ons

= 2.10.7 =
* Fixed a security vulnerability regarding shortcodes in emails
* Fixed unnecessary non-costly calls to TranslatePress AI when having unsupported languages
* Fixed translating gettext strings from WooCommerce emails
* Fixed sending admin WooCommerce emails in user's language instead of admin's language
* Fixed WooCommerce emails not being having user-inputted text translated when using checkout WooCommerce block
* Fixed search filter in Emails tab from String Translation

= 2.10.6 =
* Added Opposite Language mode for language switcher shortcode
* Added Manual Translation Only - advanced option for better control over character spending by translating only the pages visited in the Translation Editor.
* Improved performance when loading html pages with large inline scripts and styles, while also minimizing the potential for JS errors
* Improved accessibility and fixed minor UI issues of the Translation Editor
* Improved reliability of detecting WP crons by using wp_doing_cron function
* Fixed some cases with missing GET parameters on internal links for translated pages
* Fixed JS issue when opposite language option is active in language switcher
* Fixed CSS issue with shortcode language switcher where arrow appeared twice when opacity was less than 1
* Fixed some CSS issues with flags

= 2.10.5 =
* Fixed bug that made unnecessary site lookup calls to TP AI

= 2.10.4 =
* Added compatibility with Breakdance theme
* Fixed WooCommerce product names for variable products having missing attributes in the cart when using woocommerce_cart shortcode
* Fixed canonical links not being translated properly on archive pages when SEOPress plugin was active
* Fixed compatibility issue between Visual Composer and the language switcher customizer
* Fixed flag hiding option not applying properly in the new language switcher
* Fixed CSS issue by explicitly declaring flag height in the new language switcher
* Fixed php warning for new installations in some cases

= 2.10.3 =
* Fixed vulnerability when Advanced option Filter Gettext wrapping from post meta was active
* Fixed Stripe forms from Event Tickets plugin not working on additional languages
* Fixed previewing draft posts when the new language switcher is active
* Fixed a compatibility issue between Elementor and the new language switcher
* Fixed wrong flags from the new language switcher for a few languages including Catalan, Welsh and Galician
* Added title attributes for the new LS
* Use default fonts instead of Google fonts for the new LS
* Minor CSS tweaks for the new LS

= 2.10.2 =
* Fixed an error occurring when WP Rocket plugin is active
* Fixed broken front-end layout when Automatic User Language Detection was enabled and the new language switcher was active

= 2.10.1 =
* Fixed an edge case bug with rendering the new language switcher in shortcode

= 2.10 =
* New feature: Language Switcher customization from TranslatePress Settings. Explore pre-made templates, switch colors, flag styles, spacing, layouts & more
* Added compatibility with LiteSpeed Cache and its ESI feature

= 2.9.24 =
* Fixed bug with custom REST API endpoints
* Fixed issue caused by product name function
* Refined debug data shown in the license page area

= 2.9.23 =
* Fixed gettext detection on WordPress block themes
* Improved messages and notifications in TranslatePress
* Add low Translation Words remaining notification for non-free licenses
* Fixed edge case fatal error in WP back-end

= 2.9.22 =
* Fixed bug introduced in previous version blocking automatic translation through TP AI and Google Translate
* Fixed license activation message not appearing on certain setups

= 2.9.21 =
* Added shortcodes [language-exclude] and [language-include] that allow content restricted in specific languages
* Improved back-end messages informing what features are available depending on license

= 2.9.20 =
* Added support for WordPress search REST API
* Added compatibility with WP Bakery Editor
* Fixed translating WooCommerce product through REST API
* Fixed bug where sitemaps were getting translated
* Fixed JS error in Translation Editor triggered by missing href attributes on anchor links in previewed pages
* Fixed caching issues on license activation
* Fixed edge case issue with wrong translated links for unset href attributes
* Fixed home page triggering 404 when using {{home}} wildcard in 'Translate Only Certain Paths' and 'Use a Subdirectory for the Default Language' is enabled
* Improved license activation messaging
* Improved code around product name detection
* Improved notifications when paid user installs only the free version
* Improved unsupported language message when API key was invalid
* Made the notice about Gettext being disabled dismissible in Translation Editor

= 2.9.19 =
* Improved license status notices upon activation
* Fixed sitemap issues occurring when languages are reordered so that the default language is not first

= 2.9.18 =
* Fixed bug introduced in previous version which prevented some users from accessing Automatic Translation tab

= 2.9.17 =
* Allow using a free license with 2000 words for automatic translation in the free version of the plugin
* Fixed taxonomy slug issues in the backwards compatibility code for older versions of SEO Pack
* Fixed php warning about is_file function
* Fixed edge case error in PHP 8.3 about passing array to strlen
* Fixed edge case error trp_license_key options page is not in the allowed options list
* Fix content spoofing issue with paid version active

= 2.9.16 =
* Fixed information displayed about license depending on status

= 2.9.15 =
* Fixed bug introduced in previous version which prevented activating license

= 2.9.14 =
* Fixed deprecated call to uft8_decode starting with PHP 8.2
* Fixed edge case issue with translation blocks
* Updated notice messages regarding licenses to provide more details
* Updated icon images on Add-ons page in TranslatePress Settings

= 2.9.13 =
* Added support for translating tags and all other taxonomies through REST API
* Added hook trp_error_details for triggering actions when encountering an error
* Fixed quota wording for TP AI in Automatic Translation tab

= 2.9.12 =
* Reduced the number of unnecessary calls to TP AI translation engine in some cases when daily quota was exceeded
* Fixed incorrectly machine translating callto, mailto and tel from href attributes when browsing these strings in String Translation

= 2.9.11 =
* Updated Translation Editor to Vue 3.5 framework resulting in reduced loading time and improved security
* Fixed edge case with translation blocks on translated pages accidentally removing a parent html tag
* Reduced the number of unnecessary calls to TP AI translation engine

= 2.9.10 =
* Fixed error on Automatic Translation tab from TranslatePress Settings when trying to remove the machine translation limit
* Fixed admin notice positioning when exceeding daily quota

= 2.9.9 =
* Fixed compatibility issue with Query Monitor plugin
* Fixed edge case issue with changing languages in Translation Editor when removing country from hreflang option was used
* Fixed edge case php error when WP Cache was disabled
* Fixed css on plugin stats opt-in pop-up from TranslatePress Settings

= 2.9.8 =
* Fixed issue with language switcher not showing all languages on non-admin visits for free version users that manually changed TranslatePress settings in version 2.9.7
* Fixed error about undefined constant TRP_IN_EL_PLUGIN_DIR for paid version users in case Multiple Languages add-on was disabled
* Fixed automatic user language detection settings not appearing for paid version users in case Multiple Languages add-on was disabled
* Fixed html lang attribute declaration on formal languages
* Fixed edge case triggering php warnings when opening Translation Editor

= 2.9.7 =
* Redesigned TranslatePress Settings UI
* Improvements to the plugin stats API
* Fixed insecure use of serialization function on request parameters
* Fixed edge case issue with untrimmed home url preventing functioning on secondary languages

= 2.9.6 =
* Added support for translating html tags "picture" and "audio"
* Improved query efficiency for removing duplicate entries when running Database Optimization
* Fixed compatibility issue with Blocksy in Customizer

= 2.9.5 =
* Added support for video tag in order to show different videos according to selected language
* Added compatibility for Elementor element caching on additional languages
* Added compatibility with Profile Builder redirects after registration and edit profile forms
* Reduced requests to TP AI when quota is unavailable
* Fixed redirecting to wrong language after checkout in some cases

= 2.9.4 =
* Fixed potential security issue by preventing direct access to files
* Extended keyword search in String Translation UI to return results from translations too, alongside matching default language text, for Gettext, Email and Regular strings
* Added new feature to delete translations in String Translation UI, individually or in bulk, for Gettext, Email and Regular strings
* Fixed incorrect translated urls in the page when reordering languages and using subdirectory for default language, while also excluding certain paths from translation
* Fixed edge case PHP error in ajax request for front-end translations
* Fixed edge case PHP error between Gutenberg language restrictions and WP Interactivity API
* Fixed edge case PHP error argument must be of type string

= 2.9.3 =
* Fixed form action losing GET parameters on translated pages

= 2.9.2 =
* Fixed not setting srcset attributes properly for translated images

= 2.9.1 =
* Added Gutenberg Language Restriction option to allow for easily including/excluding blocks in specific languages
* Fixed PHP notice in WP 6.7: function _load_textdomain_just_in_time was called incorrectly
* Fixed translating internal links from inside translation blocks
* Fixed edge case with some excluded paths redirecting translated urls to incorrect original urls

= 2.9.0 =
* Improved database management by no longer inserting non-translated external URLs and images
* Fixed detecting the same email address multiple times due to antispambot outputting it in different encodings
* Fixed Translation Editor pencil icon positioning
* Fixed Translation Editor when viewing in RTL language
* Fixed php error occurring in some cases when translating WooCommerce emails
* Fixed deprecated notice in PHP 8 regarding rtrim function

= 2.8.9 =
* Fixed WooCommerce emails being sent in default language instead of user's language when placing order as non-logged in guest on a Blocks checkout form
* Fixed trp-gettext wrappings appearing on WooCommerce Blocks checkout form
* Added admin notifications about Black Friday sale

= 2.8.8 =
* Fixed compatibility with CTX Feed plugin
* Improved security by doing a capability check on activating/deactivating license
* Added new parameter to hook trp_translate_this_href

= 2.8.7 =
* Fixed url slug handling. It's recommended to back-up your database before updating
* Fixed admin notices text

= 2.8.6 =
* Fixed version difference between TranslatePress plugins causing infinite loop and php errors when having specific settings
* Fixed some cases of grayed out translation input box in String Translation Regular tab
* Fixed showing Run the update notice in various cases
* Fixed Translation Editor translation boxes showing incorrect values after saving translations in some cases
* Fixed JS error in Advanced tab

= 2.8.5 =
* Fixed url slug handling
* Fixed pencil icon not showing in correct place for some themes
* Added filter trp_mtapi_chunk_size to change the number of string sent in one batch to TP AI
* Added correct flag for Kurdish(Sorani) language
* Fixed edge case issue with trp_settings db option saved incorrectly leading to php errors
* Fixed PHP 8 deprecated notice when calling rtrim

= 2.8.4 =
* Major refactoring of url slugs handling. It's recommended to back-up your database before updating
* Numerous fixes including support for WooCommerce custom permalinks, custom post permalinks, permalinks without base category

= 2.8.3 =
* Fixed errors in Multisite leading to targeting incorrect subsite tables for some strings
* Fixed TranslatePress Editor pencil icon's incorrect placement in some cases
* Fixed deprecated notice when translating WooCommerce emails

= 2.8.2 =
* Added support for Chinese Traditional automatic translations when using TP AI
* Fixed menu language switcher not showing native language names when option was selected
* Improved positioning of Edit button in the visual Translation Editor
* Fixed edge case where TP AI automatic translation was always the same as the original

= 2.8.1 =
* Fixed menu language switcher showing Current Language instead of actual language name

= 2.8.0 =
* Added compatibility with PWA plugin
* Added missing flag for Kyrgyz language
* Fixed menu language switcher labels not being taken into account
* Fixed issue with custom css being broken on translated language
* Fixed notice related to language switcher inside Elementor content

= 2.7.9 =
* Fixed issue on checkout page when using BABE Payment Pack
* Fixed issue showing Unsupported languages when changing API key
* Fixed CSS issue with language switcher shortcode in Elementor pop-up
* Fixed deprecated PHP notice when using rtrim function
* Fixed edge case issue with license being invalid on Automatic Translation tab

= 2.7.8 =
* Fixed compatibility with older versions of PHP 7

= 2.7.7 =
* New Feature: TranslatePress AI translation engine
* Fixed Translate Page button missing in Gutenberg Editor
* Fixed edge case issue where specific style tags were detected for translation

= 2.7.6 =
* Fixed nonce issue on the Database Optimization form
* Fixed edge case issue with the Automatic Translation settings default values

= 2.7.5 =
* Improved page load speed by caching translation blocks query
* Improved page load speed by adding index by block type
* Fixed frequency of diagnostics usage requests when Marketing Opt-in is active

= 2.7.4 =
* Fixed compatibility issue with WP Job Board Pro PDFs
* Fixed compatibility issue with Brikk theme forms
* Fixed scanning plugins and theme files for translation when Oxygen is active

= 2.7.3 =
* Improved automatic translation character count to better enforce enforce daily limit
* When Marketing opt-in feature is enabled, automatic translation usage is included in the non-sensitive diagnostic tracking data
* Added support for translating more meta tags

= 2.7.2 =
 * Fixed translation saved confirmation message in the Translation Editor
 * Fixed CSS issue in Advanced settings
 * Fixed notice in TranslatePress settings

= 2.7.1 =
* Fixed potential security issue in the language switcher
* Fixed floating language switcher appearance when displaying only flags on sites with many languages
* Minor UI tweaks in TranslatePress settings

= 2.7.0 =
* Fixed issue with Exclude only certain paths advanced option on subfolder path installs
* Improved Error Manager by outputting the entire failed query
* Improved SQL error handling in trp-ajax calls

= 2.6.9 =
* Added compatibility with WooCommerce Product Filters by barn2

= 2.6.8 =
* Fixed relative urls with anchor links on translated pages
* Fixed searching in translated languages on sites with specific plugins combination

= 2.6.7 =
* Added new feature that displays translation percentage for current page in Translation Editor
* Added RSS Feed support for translating title, content and excerpt
* Added support for Duplicate Page plugin resolving post slug translation conflict
* Added compatibility with Fluent Forms
* Added compatibility with WooCommerce Bookings plugin
* Added WP Webhooks Automator under recommended plugins
* Fixed deprecated warning in PHP 8.1

= 2.6.6 =
* Allow translation of comments and categories in REST API
* Improved compatibility with Complianz plugin
* Improved rules for creating translation blocks

= 2.6.5 =
* Fixed some cases of unnecessarily detecting text inside script tags
* Fixed compatibility code with Oxygen

= 2.6.4 =
* Improved page loading speed when WooCommerce is active
* Fixed some cases of errors on function insert_gettext_string
* Fixed edge case issue with missing tables

= 2.6.3 =
* Improved page loading speed by optimizing code handling gettext
* Improved page loading speed when Query Monitor plugin is active
* Fixed internal links not being translated when using Do not translate certain paths feature
* Fixed trp-gettext wrappings on Query Monitor strings
* Fixed flag for Hindi and Punjabi (India) languages

= 2.6.2 =
* Fixed absolute paths not working in the Exclude Paths From Translation option
* Fixed Pencil icon displayed in wrong positions on WP Forms in the Translation Editor
* Added missing Sindhi language flag
* When Marketing opt-in feature is enabled, list of active plugins is now included in the non-sensitive diagnostic tracking data
* Updated logos for Profile Builder and Paid Member Subscriptions in the recommended plugins section

= 2.6.1 =
* Improved DOM parser to better handle HTML comments
* Improved Database optimization tool's default operations

= 2.6.0 =
* Fixed some cases of 404 on translated pages for WooCommerce permalinks
* Improved compatibility with RankMath

= 2.5.9 =
* Added loader component as extra parameter in trp_allow_tp_to_run hook to ease integration with 3rd parties
* Fixed edge case error with undefined variable $disabled_language
* Fixed notice about deprecated property in php 8.2
* Fixed edge case error in class-error-manager.php file

= 2.5.8 =
* Fixed some cases of disappearing CPT slugs translations leading to 404 pages
* Fixed incorrectly adding empty href attributes to link tags on translated pages
* Fixed PHP 8 deprecated notices regarding dynamically defined properties

= 2.5.7 =
* Added a new item in Database optimization tool to fix some cases of gettext not being selectable in Translation Editor
* Fixed Edit pencil icon being difficult to click when hovering over certain text in Translation Editor
* Added compatibility with WooCommerce High-Performance Order Storage (HPOS)
* Improved compatibility with WP Rocket

= 2.5.6 =
* Improved settings UI by showing formality option only for languages and translation engines that support it
* Fixed focus on search input when opening the languages dropdown in settings
* Removed unnecessary calls for Marketing opt-in feature

= 2.5.5 =
* Redesigned TranslatePress Settings Advanced tab UI using subtabs
* Improved the translation status icons for the case when multiple strings are shown at once in Translation Editor
* Fixed deprecated notice on php 8

= 2.5.4 =
* Updated look of language switchers for shortcode generated and floating options
* Added notice in TranslatePress settings to avoid adding duplicate languages with different formalities
* Fixed deprecated warning triggered by date_create function
* Fixed bug with some strings not being editable in Translation Editor

= 2.5.3 =
* Improved security by escaping form actions
* Fixed filtering by gettext domain in String Translation
* Fixed title positioning in String Translation UI
* Added more information in our opt-in non-sensitive diagnostic tracking

= 2.5.2 =
* Redesigned Translation Editor UI to match the latest WordPress style
* Fixed hreflang language code attribute for languages with formal/informal in their default code
* Added missing Aragonese language flag

= 2.5.1 =
* Added Language Switcher block in Gutenberg Editor
* Fixed edge case error regarding __return_true function

= 2.5.0 =
* Improved converting urls in different languages
* Fixed language switcher directing to page not found in some edge cases

= 2.4.9 =
* Improved speed by eliminating the need of a query on gettext domains on most pages
* Improved speed when WooCommerce is active by better handling gettext processing
* Added hooks for disabling translation blocks

= 2.4.8 =
* Fixed x-default hreflang tag displayed incorrectly in some cases
* Improved sanitizing Advanced settings

= 2.4.7 =
* Speed improvements achieved through better handling of wp_cache functions
* Included wbr as an accepted html tag in translations
* Fixed Filipino language being marked incorrectly as unsupported by Google Automatic Translation

= 2.4.6 =
* Added Advanced option Automatic Translation Memory that prevents losing translations when correcting typos in original text
* Added compatibility with multiple pdf generating plugins: Yith WooCommerce PDF Invoice, WooCommerce Print Products, Invoices for WooCommerce
* Added filter to programmatically dequeue language switcher CSS scripts
* Fixed notice related to wp_cache_delete

= 2.4.5 =
 * Fixed multiple compatibility issues with PHP 8.1
 * Fixed issue on Automatic Translation tab when setting it up for the first time

= 2.4.4 =
* Improved speed by refactoring query regarding selecting domains
* Added Advanced option to disable translation of gettext strings through TranslatePress
* Fixed links sometimes having double anchor links on translated
* Fixed being unable to split translation blocks
* Fixed compatibility with Oxygen Builder when editing site

= 2.4.3 =
* Fixed cases of sprintf errors when running PHP 8+
* Fixed some gettext strings not selectable in Translation Editor when on secondary languages
* Fixed edge case not being able to save CPT when slug is translated and default language subdirectory is enabled
* Improved trp_language conditional shortcode by not running contents through Automatic Translation

= 2.4.2 =
* Fixed issues with changing language on websites with persistent object caching
* Added filter on absolute home url

= 2.4.1 =
* Added preferred language field in WP edit user profile form, to be used in emails
* Improved updating and optimizing database tool by communicating possible errors if they occur
* Improved speed by caching locale language
* Improved loading time when using Divi
* Fixed mixed collation errors in some cases
* Fixed license notice appearing incorrectly in some cases
* Fixed function that gets user's preferred language

= 2.4.0 =
* Fixed 404 issues on WooCommerce caused by permalink changes not resetting TP transients
* Improved communicating license status and other notices
* Added developer friendly functions trp_switch_language and trp_restore_language to briefly switch language

= 2.3.9 =
* Fixed anchor missing from custom links on translated pages
* Fixed compatibility issue with GiveWP not redirecting to confirmation page after donation
* Fixed edge case error with the way some plugins loaded textdomain
* Fixed notice when editing posts

= 2.3.8 =
* Added String Translation interface for gettext (plugins and theme localized strings) with search & filter capabilities
* Added Emails tab to String Translation that enables manual translation of email strings, including WooCommerce emails
* Extended support for plural and context for gettext strings
* Added file scanning for localized strings in active plugins and theme
* Added Advanced option to search and filter user inputted strings
* Added possibility to opt in to our security and feature updates notifications

= 2.3.7 =
* Fixed missing GET parameters when accessing a custom url without subdirectory
* Added filter trp_redirect_status to allow changing redirect status from all wp_redirect calls

= 2.3.6 =
* Fixed error when resetting password on WooCommerce form

= 2.3.5 =
* Added feature to remember user language for WooCommerce emails. Both admins and customers now receive all Woo emails in their preferred language, not just on checkout
* Improved handling of empty or invalid schema json arrays in script tags on translated languages

= 2.3.4 =
* Improved compatibility with WooCommerce Payments
* Fixed php notice about notification_id

= 2.3.3 =
* Fixed security vulnerability

= 2.3.2 =
* Added Translate Page button in Gutenberg Editor
* Improved TranslatePress General settings UI on smaller screens

= 2.3.1 =
* Added function trp_translate to facilitate custom integrations by other devs
* Renamed possibly conflicting lang attribute of the template tag used to detect language

= 2.3.0 =
* Added compatibility with Elementor Containers for exclude/include in certain language
* Added Advanced option to change html lang attribute to a region independent form
* Fixed issue with ACF plugin when saving metabox fields
* Fixed issue with the option to Exclude strings from automatic translation when the excluded text is a substring of another excluded text
* Fixed notice in PHP 8+ versions about passing null variables being deprecated

= 2.2.9 =
* Fix: compatibility issue between translation interface and Thrive Architect
* Fix: make sure processed links are stripped of extra tags
* Fix: a potential error in the url converter

= 2.2.8 =
* Fixed truncated archive urls on front page on translated pages
* Fixed bug with language switcher not working properly for posts with translated slugs when using Advanced option to Exclude Paths From Translation
* Fixed canonical of archive links sometimes not having translated slugs in url
* Fixed FAQ schema not being fully translated
* Fixed trp_hreflang hook parameters

= 2.2.7 =
* Added compatibility for WooCommerce PDF Catalog plugin
* Fixed edge case causing SQL errors due to case sensitivity on table names
* Fixed hreflang code for Belarusian
* Fixed Gujarati flag

= 2.2.6 =
* Improved automatic translation usage by skipping detection of icalendar strings
* Unsupported languages are now checked automatically when saving Automatic Translation tab settings
* Added new filters that allow changing the custom tables names from external scripts

= 2.2.5 =
* Fixed span tag appearing in WooCommerce Orders in WP Dashboard
* Fixed warnings from The Event Calendar about SQL commands
* Fixed errors appearing in logs when using custom integration code

= 2.2.4 =
* Prevent automatic translation of names and addresses in WooCommerce emails
* Added external function for devs to easily create custom language switchers: trp_custom_language_switcher
* Fixed issue with not including hreflang tags for some languages when Advanced option to Remove hreflang with Country Locale is used
* Fixed warning related to using custom language flags

= 2.2.3 =
* Fixed XSS security vulnerability
* Fixed sitemap containing urls with language slugs linking to paths excluded from translation
* Fixed issue affecting translation of some particular JSON requests
* Fixed edge case error regarding MO objects
* Moved Automatic translate slugs option to Automatic Translation tab

= 2.2.2 =
* Fixed issue in WP 5.9 causing Invalid Data SQL Error reports
* Improved page load time for WooCommerce websites on translated languages
* Improved admin notices regarding database optimization

= 2.2.1 =
* Added Advanced option to adjust hreflang to hide region independent language tags or country locale tags
* Added missing flags for Tamil (Sri Lanka), Spanish (Ecuador), Spanish (Dominican Republic), Amharic
* Improved Automatic Translation tab checking for translation API key validity
* Improved Plugins interface action buttons for TP by taking into account free/pro status
* Fixed error management interface displaying raw HTML instead of formatted HTML
* Fixed notice in admin for an edge case
* Fixed notice in Test API Page when test request resulted in WP Error

= 2.2.0 =
* Fixed language slug incorrectly ending up in .htaccess in some cases
* Fixed issue in hreflang tags when using certain custom language codes
* Added missing Persian (Afghanistan) flag

= 2.1.9 =
* Improved database optimization tool by adding option to remove CDATA and untranslated links from TP custom tables
* Fixed database optimization tool not starting in some cases
* Fixed edge case error unknown format specifier on php 8 related to automatic translation of gettext strings
* Added noindex tag to Translation Editor pages to prevent duplicate indexing

= 2.1.8 =
* Added language formality setting to be used in Automatic Translation
* Added Advanced option for enabling clickable shortcode language switcher
* Improved tool for database optimization from Advanced tab
* Fixed translation blocks ignoring target blank on links

= 2.1.7 =
* Added form in settings to sign up for TranslatePress email course
* Fixed issue when logging in that redirected to "page not found" when languages are reordered
* Fixed hyphenation issue on default language when using WP-typography plugin
* Fixed notices regarding is_file call

= 2.1.6 =
* Show sanitized translation when editing gettext strings in Translation Editor
* Fixed showing translation language instead of default language in some cases in Elementor, Divi and WPBakery editors
* Fixed breadcrumbs issue with All in One SEO plugin on translation language
* Fixed Beaver Builder Editor loading loop when Automatic User Language Detection is active
* Fixed issue with excluding path from translation

= 2.1.5 =
* Show sanitized translation after saving changes in Translation Editor
* Improved query for getting existing translations
* Fixed issue with using wildcard in Translate only certain paths feature
* Fixed php warning on settings page about DeepL

= 2.1.4 =
* Optimized automatic translation usage by improved recognition of cdata, js scripts and encoded html
* Fixed conflict with Ultimate Dashboard

= 2.1.3 =
* Added Opposite Language menu item when using 2 languages
* Added support for opposite language in floating language switcher
* Fixed DeepL API key check showing green icon with incorrect keys
* Fixed some cases of increased automatic translation usage

= 2.1.2 =
* Added Advanced option to show opposite language in shortcode language switcher
* Added CSS class current-language-menu-item to menu language switcher to allow customization
* Fixed notice in PHP 8 related to custom-languages
* Corrected Swahili flag

= 2.1.1 =
* Improved Custom Languages feature
* Added possibility to easily edit existing language name or flag through Custom Language
* Added vertical scroll on floating and shortcode language switchers when having many languages

= 2.1.0 =
* Fixed some cases of missing spaces between words in different html tags on translated pages
* Fixed conflict with Scriptless Social Sharing plugin

= 2.0.9 =
* Security improvements
* Added option to translate content restricted by language in Elementor
* Added filter to disable independent region hreflang tags
* Improved notices in TP Settings

= 2.0.8 =
* Corrected plugin name

= 2.0.7 =
* Security improvements
* Added support for WooCommerce /shop/%product_cat% product permalink structure
* Fixed URL issues with post category when using encoded characters
* Fixed an issue with Woocommerce product links not being translated when loaded with ajax
* Fixed notices when using WP Bakery
* Fixed excerpt character limit in Chinese language
* Fixed some cases of trimming custom language name in language switcher
* Fixed adding current-menu-item class on empty menu links
* Compatibility with Brizy to load correct assets on other languages

= 2.0.6 =
* Added support for translating form reset button
* Fixed custom flags getting resized
* Fixed bug on Add-ons tab

= 2.0.5 =
* All Premium Add-ons have been repackaged in new archives downloadable from translatepress.com account. All the old plugin Add-ons will no longer receive updates.
* Reconfigured add-ons to be activated from TP Settings Add-ons tab
* Added compatibility with WP Typography
* Fixed bug on Automatic Translation Settings page regarding API key

= 2.0.4 =
* Added support for translating aria-label attribute
* Added possibility to exclude entire gettext domain from translation
* Improved determining http/https when building links
* Fixed automatic translation for custom languages
* Added missing Swahili flag
* Fixed flag for Tagalog language
* Fixed some PHP notices and warnings

= 2.0.3 =
* Added compatibility with PHP 8
* Added compatibility with Profile Builder Content Restriction redirect URL
* Added compatibility with Paid Member Subscription Content Restriction redirect URL
* Added filter to skip admin check on add_language_to_home_url
* Fixed some cases of PHP errors

= 2.0.2 =
* Fixed WooCommerce permalink issues
* Fixed notice about language switcher in Menus
* Fixed missing translation text box for some strings in Translation Editor

= 2.0.1 =
* Added Advanced option to allow only manual translation for strings under specified selectors
* Added support for using data-no-auto-translation attribute on html node to skip only automatic translation, not manual
* Fixed date output for Dokan plugin
* Fixed encoding of slugs with special characters in String translation interface

= 2.0.0 =
* Improved compatibility with WPBakery Page Builder and Wpresidence
* Improved compatibility with integrations by initializing machine translator earlier
* License key in TP settings is hidden now
* Added filter trp_apply_gettext_early
* Fixed high loading time when WP_DEBUG was set to true

= 1.9.9 =
* Forcing a slash at the end of home url is now an optional Advanced setting
* Better handling of WPEngine long query limiting
* Fixed some cases of adding language slugs to file paths
* Fixed unprefixed DOM library constant
* Fixed a notice coming from the Do not translate paths option

= 1.9.8 =
* Added compatibility with Google Site Kit plugin
* Added compatibility with Ivory Search plugin and possibly others
* Added visual feedback for inserting correct Automatic Translation API key
* Added hooks when saving translations in Editor
* Fixed notice in trp-ajax file

= 1.9.7 =
* Compatibility with Woocommerce Product Search plugin
* Fixed some cases where JSON was broken in translated pages
* Fixed issue with links containing translated taxonomy due to special characters
* Fixed SQL errors in Slug Translation interface.
* Fixed some cases with links on translated pages incorrectly pointing to the current page
* Add filter for is_admin_link so plugins that hide the admin can work
* Minor improvements to Slug Translation UI.

= 1.9.6 =
* Adding missing Uruguay flag
* Improved security for dynamic translations
* Disable automatic language redirect when editing a page with Oxygen or Beaver Builder
* Fixed cases of missing table sql errors
* Fixed sql error for some MariaDB setups due to deprecated syntax
* Fixed some issues with Exclude certain paths functionality.

= 1.9.5 =
* Added setting that allows you to translate only certain paths or exclude certain paths from being translated.
* Fixed some cases where GET parameters were lost from links in translated languages
* WP Bakery integration that allow to include/exclude blocks for languages
* Added a compatibility for the MyListing theme.
* Load unsupported languages section only if an API key is saved.
* Add support for AIO SEO sitemap detection

= 1.9.4 =
* Updated DOM parser to version 1.9.1, this should fix a bunch of broken HTML issues
* Fixed a case in Woocommerce where slugs weren't translated from the seo-pack addon
* Fixed share link in Elementor blockquote Tweet button
* Fixed a possible issue with the search parameter being un-slashed

= 1.9.3 =
* Compatibility with WooCommerce Min/Max Quantities plugin that added an attribute data-quantity two times on a link
* Added compatibility with Business Directory Plugin that was throwing 404
* Fixed some cases of unnecessary calls to automatic translation API-s

= 1.9.2 =
* Fixed Norwegian language not working with Google Automatic Translation
* Fixed loading localization text-domain in different language than expected.
* Fixed gettext strings in incorrect language.
* Fixed WooCommerce country and states translations.

= 1.9.1 =
* Fixing issue with WooCommerce slugs resulting in 404 if they were changed manually from the defaults in certain cases
* Added a new cleanup option in settings
* Fixed some issues with extra characters appearing on translated languages in certain conditions
* Always load Beaver Builder in default language.

= 1.9.0 =
* Fixed some cases of multiple requests for finding out supported languages for automatic translation

= 1.8.9 =
* Fixing search in xStore theme ajax search
* Fix edge cases of translation misalignment that caused some strings not to be translated and generated some notices
* Fix some cases of displaying uppercase trp-gettext wrappers
* Better handling of unsupported languages by automatic translation engine

= 1.8.8 =
* Improved compatibility with Oxygen builder.
* Fixed a issue with pagination on blog page displaying page 0

= 1.8.7 =
* Added region independent languages in hreflang meta tags
* Fixed JS error in Translation Editor for some type of anchor tags.
* Compatibility with WooCommerce myPOS gateway. Improved PayPal IPN handling in WooCommerce.
* Fixed issue with string in textarea being detected by our translation editor.
* We now keep pagination when changing languages on the blog page.
* Fixed a compatibility with xStore theme ajax search not appearing on other languages than english
* Fixed an issue with Woocommerce links in language switcher
* Compatibility with Woocommerce pdf Voucher plugin
* Fixed an issue with archive pages pagination for terms with translated slugs
* We now exclude some gettext strings from being translated that cause problems

= 1.8.6 =
* Added optional "Powered by TranslatePress" in the floater language switcher. Would help us out a lot if you would enable this option in the settings. Thank You!
* Added a compatibility with Brizy Pro menu element
* Add current-menu-item CSS class to menus on translation languages
* Remove unused Delete command from String Translation
* Added compatibility with woocommerce-ultimate-pdf-invoices plugin
* Added compatibility with Uncode Theme menu on mobile
* Fix the infinite redirect when using subfolder for default language with the default WP 5.5 sitemap.

= 1.8.5 =
* Improved SEO by making language switcher links crawlable
* Fixed Internal links issue with Use a Subdirectory for the default language enabled
* Added Elementor twitter button translation compatibility
* Added Elementor blockquote tweet button translation compatibility
* Added support for  PDF Embedder Premium Secure plugin
* Fixed a compatibility issue with Thrive theme
* Fixed a problem with Woocommerce order notes not being added on other languages
* Fixed a PHP warning
* Fixed issue where Oxigen repeater links were empty in the translated page

= 1.8.4 =
* Fixed Slug Translation in SEO Addon not being able to translate anything due to js error related to flags

= 1.8.3 =
* Added possibility to add custom languages
* Fixed Woocommerce issues with cart on certain settings
* Fixed some cases where translation blocks were not being created.
* Deactivated languages will only be accessible by admin or translator
* Compatibility with AddToAny Share buttons
* Compatibility with Classified listing search in translated languages
* Adjusted order of languages in floating language switcher according to position top or bottom
* Fixed some issues with automatic translation usage

= 1.8.2 =
* Added compatibility with RECON gateway for WooCommerce
* Hooked changing locale to a higher priority. Fixes conflict with Divi theme
* Fix WooCommerce remove from cart action for certain languages

= 1.8.1 =
* Fixed a problem with sitemap categories not being displayed correctly in Yoast SEO
* Changed a redirect status from 302 to 301 in certain cases
* Added support for Advanced WooCommerce Search

= 1.8.0 =
* Fixed a compatibility issue with Thrive Architect plugin
* Fix compatibility with Woo Product Filter plugin
* Added compatibility with Oxygen Builder for search
* Fixed canonical links that were generated incorrectly in some cases
* Fix issue with hreflang incorrectly being detected due to clearing the ?trp parameter from the url when processing it

= 1.7.9 =
* Fix for various 404 page results
* Fixed flag spacing in RTL languages
* Added "Full Language Names No HTML" option to language menu
* Added possibility to change date format by language
* Oxygen plugin stylesheet loading time improvement
* Compatibility with Brizy's editor
* Added filter to allow https adjustments
* Improved searching on certain pages

= 1.7.8 =
* Added possibility to exclude hreflang from an original URL
* Fixed translating json inside json. It ensures compatibility with Brizy
* Fixed http 500 response in trp-ajax calls

= 1.7.7 =
* Added option to enable translation of numerals
* Added capability to translate special URLs like tel, callto or mailto
* Added support for translating oembed response data
* Fixed some CSS issues on Safari

= 1.7.6 =
* Added a help wizard for the Visual Editor
* Added Puerto Rico flag
* Fixed issue with custom links on term archive pages where the term had a translated slug
* Added a recommended plugins section on the addons tab.
* Fixed a display issues in Strings interface for Safari

= 1.7.5 =
* Dix incorrect opengraph url in Yoast SEO that caused fatal error with older versions
* Fix for blog page url slug translation
* Fix problem with updating Translator Accounts Add-on
* Fix incorrect number of parameters in wpseo_canonical filter

= 1.7.4 =
* Fix fatal error with get_the_date filter due to other plugins calling incorrect params
* Fix issue with identical string in multiple places not showing all related strings
* Fixed Next and Previous buttons not working in the interface
* Fixed Yoast SEO canonical contain the correct language
* Fixed info icons too large before css loading
* Added compatibility with Superfly menu
* Add locale to user on user register and ignore a gettext string from WordPress and WooCommerce that added trpstr strings in the database
* Fix compatibility with Dflip plugin and Elementor Editor when a secondary language is the first one displayed

= 1.7.3 =
* Fixed an error when WooCommerce is active and you access a term link that does not exist
* Added compatibility with SEO Pack version 1.2.4 or older
* Added compatibility with Affiliate Theme filters

= 1.7.2 =
* Implemented mechanics to remove duplicate entries in the database
* Fixed issue with automatic translation time-outs on large pages
* Fixed an issue with escaped links in json responses from WooCommerce
* Fixed an issue with links inside gettext

= 1.7.1 =
* Fixed issue with gettext when default language is different from WordPress default language
* Fixed Monthly/Yearly archives showing incorrect month/year
* Added message to activate Extra languages add-on when trying to add a new language.

= 1.7.0 =
* Fixed compatibility issue with JetPack plugin in some cases
* Fixed JS undefined controls error for some setups
* Fixed translation memory not working properly for gettext in attributes
* Added support for Dublin Core meta-data
* Added support to ignore Elementor encoded url for popup action
* Improved queries for the database upgrade process

= 1.6.9 =
* Fixed a conflict with Contact Form 7 plugin
* Fixed some broken html issues caused by a custom trp wrap. Some Revolution Slider plugin issues are fixed by this.
* Optimized some queries regarding search indexing to fix some performance problems. It should help with some Revolution Slider plugin performance issues.
* Fixed an issue with textarea in Advanced Options
* Exclude links from "Force language in custom links" by adding their selector in Settings -> Advanced -> Exclude selectors from translation
* Fixed force custom links in default language when add-subdirectory is set to yes and default language is not first language
* Better handling of href links with spaces

= 1.6.8 =
* Added support for All In One SEO
* Added compatibility with Peepso double slashing translated links
* Add option in Advanced tab to disable translated links in sitemap
* Add options to disable post container tags in Advanced Tab.
* Organize Advanced Tabs by categories.
* Fix an error regarding the settings class in class-languages.php
* Fixed a filter in the trp_curpageurl() function
* Fix fatal error thrown when trying to access the global while it's null in some cases
* Fixed x-default from advanced not working as expected

= 1.6.7 =
* Improved the database update queries
* Fixed an error in mysql regarding post_parent_id meta insert if no id was found
* Added Rank Math support
* Added SEO Press support
* We now remove the trp-post-container before displaying the site
* Removed Get add-on from add-ons page
* Refactor support for SEO sitemaps so we don't add the language to their URL's

= 1.6.6 =
* Implemented Search functionality in translated languages
* Added support for WooCommerce product search in translated languages
* Skip dynamic strings detection of ad links
* Added filters for adjusting gettext machine translation

= 1.6.5 =
* Fixed Exclude words from automatic translation when many excluded words are added
* Compatibility with WooCommerce Fondy payment gateway
* Added filter to allow disabling of error manager
* Fixed a bug where you couldn't deactivate a license to add a new one

= 1.6.4 =
* Added a conditional Elementor block for language.
* Fixed Google Translate breaking some characters such as & #8220;
* Improvements to error handling
* Fixed a js error

= 1.6.3 =
* Fixed bug not being able to disable block crawlers option
* Improved UI on settings navigation tab
* Added extra information about how Deepl usage is paid

= 1.6.2 =
* Fixed admin-bar appearing in translation editor
* Nextgen plugin compatibility fix
* Fixed a notice index translation-engine not set.
* Refactored upgrading settings.
* Solved issue with notifications shown in all backend that couldn't be dismissed
* Added ability to detect if table is missing during requests. Show admin notice on all pages.
* Updated License message and Automatic Translation description
* Created notifications and error page. Disabled machine translations upon error.

= 1.6.1 =
* Added support for hreflang x-default in Advanced Settings
* Improved checking if quota exceeded on google machine translation for each batch
* Fix a fatal error due to incorrect call to the_title filter made by some themes
* Fixed automatic translation character count not resetting daily
* Fixed possible incompatibility between trp_language shortcode and automatic translation

= 1.6.0 =
* Gettext is no longer processed in REST API requests made from admin referer.
* Don't update gettext machine translation with empty translation.
* Fixed machine translation codes not being set on first save settings
* Solved backwards compatibility with Deepl Add-on version 1.0.0
* We now don't translate gettext into English.
* Fix: make sure we are not sending gettext non-unique array strings to Automatic Translation
* Fix: Add default translation engine if not available.
* Fix: hide Test API key button when machine translation is disabled or when there's not API key saved.

= 1.5.9 =
* Add an option to block crawlers from triggering automatic translations
* Added support for excluding words from automatic translation
* Compatibility with WooCommerce Checkout Add-Ons plugin
* Improved integration with WooCommerce PDF Invoices & Packing Slips by translating product name and options in invoices
* Removed possible trp-wrap tags ending up in front-end content
* Improved display of license error messages
* Corrected and added missing flags for 7 languages
* Eliminate need for jQuery in language switcher shortcode
* Fixed issue with translating admin ajax JSON strings
* Fixed issue with <text> html tags breaking HTML
* Fixed warning in when saving advanced settings
* Fixed trpst characters in WooCommerce shipping calculator
* Fixed getting translations on fallback admin-ajax
* New integration with Deepl API Automatic translation in PRO versions

= 1.5.8 =
* Added machine translation limit
* Added setting for translation memory limit
* Fixed encoding for the "Fix broken html feature"
* Fixed CSS for translation button in TP Editor
* Fixed disabling dynamic translation in translation editor when it is disabled from Advanced option

= 1.5.7 =
* Modified an autoloader to prevent errors when manually updating the plugin

= 1.5.6 =
* Improved speed on Gettext exclusion
* Make Gettext exclusion work without a domain in Advanced Settings
* Allow po/mo localization files to translate excluded Gettext strings
* Added Advanced setting to Exclude selectors from translation
* Added option to change floating language switcher position
* Added compatibility with CartFlows plugin
* Added compatibility with NextGen plugin
* Added compatibility with Ninja Popups plugin mails
* Added compatibility with Woo Tours plugin
* Fixed issue with trp-gettext wrappings in WooCommerce REST API
* Fixed issue with translating images run through JetPack CDN
* Fixed edge case where gettext inside script tag attributes was breaking html
* Translated title of product in WooCommerce "Product has been added to cart" message
* Better handling of string overdetection in dynamic string translation
* Better handling of sql errors and machine translation
* Fixed WooCommerce Product Translation on Cart Page for products with hyphen in their names

= 1.5.5 =
* Fixed warnings regarding settings that appeared on fresh installs

= 1.5.4 =
* Added Translation Memory feature
* Beaver Builder compatibility
* Fixed isseu with gettext special characters inside attributes breaking html sometimes
* Fixed an issue with urls slugs not being translated in site-map for secondary languages if "Use subdirectory on default language" was on
* Added support for display attribute for language-switcher shortcode

= 1.5.3 =
* Fixed blank page when opening Translation Editor in some localized languages

= 1.5.2 =
* Added -Advanced- tab with various custom settings
* Added compatibility to allow translating SeedProd plugin Coming Soon page

= 1.5.1 =
* Added maximum possible size to srcset for translated images
* Added compatibility with Query Monitor plugin
* Better handling of licenses when pro addons are active
* Improved descriptions in settings page and other places
* Added filter to allow translation of href as an exception
* Fixed translation blocks not working on live in some edge cases
* Fixed translation block created in secondary language not working when strings were already translated
* Fixed JS error when dynamic translation is disabled by filter
* Fixed translating dynamic strings in Editor when viewing as Logged out
* Fixed page titles containing special characters not being translated
* Fixed title attribute not being translated
* Fixed certain custom WooCommerce permalinks not working on translated products
* Fixed pencil icon not showing for WooCommerce product images in Shop page on certain themes
* Fixed modifying wp_mail headers when we didn't have to

= 1.5.0 =
* Fixed some dynamic images not showing up in translated pages.

= 1.4.9 =
* Fixed incompatibility with custom code for changing flags
* Fixed some pages not being translated due to incorrectly encoded character
* Fixed some images missing when automatic translation is on

= 1.4.8 =
* Added support for translating images
* Added support for translating title attribute
* Added support for translating href pointing to internal files and href pointing to any external links
* Added support for translating attributes modified dynamically through JS
* Added support for translating multiple attributes on the same node
* Added support for translating nodes containing mixt of gettext and user-inputted strings
* Added notification and disabled TP for servers not running minimum PHP version 5.6.20
* Refactored and improved Translation Editor user interface
* Added Keyboard shortcuts: CTRL + S (save), CTRL + ALT + Z (discard all changes), CTRL + ALT + LEFT (previous string), CTRL + ALT + RIGHT (next string)
* Fixed issues with translation blocks not working on some instances
* Security improvements

= 1.4.7 =
* Fixed a php error in previous commit

= 1.4.6 =
* Fixed a js compatibility error with mootools.js
* Modified how the license page works and added plugin notifications
* Allow compatibility fix for Translation Editor on certain environments
* Fixed Safari bug with links when WooCommerce active

= 1.4.5 =
* Performance improvements
* Fixed an issue that was causing empty strings to get inserted in the database
* Improvements to detecting dynamic js strings earlier
* Fixes some urls for sitemap
* We now check if str_get_html is successful to avoid fatal error
* Fixed regular string loaded by ajax not detected in translation editor
* We now allow translating WooCommerce product base name separately from selected variations
* Fixed WooCommerce cart details not being translated when changing language
* Fixed Automatic Google Translation on languages not published yet
* Fixed Translation Editor not working in default language when no translation language is published yet
* Fixed gettext wrapping characters showing up in WooCommerce Shipping taxes metabox on Order pages

= 1.4.4 =
* Added more filters
* Make sure we do not insert empty strings in the gettext translation table
* Added support for Affiliate tracking

= 1.4.3 =
* Fixed an issue with the Language by Get Parameter add-on
* Added compatibility with WooCommerce PDF invoice and WooCommerce's order notes.
* Added stop_translating_page and before_running_hooks hooks.
* Refactored hooks-loader to easily remove hook

= 1.4.2 =
* Fixes the issue with not being able to publish pages when Use subdirectory for default language is set to yes and Gutenberg is installed
* Fixed an issue with Elementor and Use subdirectory for default language set to yes
* Fixed an issue with Yoast Premium and Use subdirectory for default language set to yes
* Fixed missing spaces in translations for original gettext strings with untrimmed spaces

= 1.4.1 =
* Added PHP 7.3 support
* Performance improvements

= 1.4.0 =
* Added Enfold compatibility by increasing the template_include hook priority
* Add the costa rica flag
* Speed improvements by optimizing the full_trim function
* Added compatibility for WooCommerce Invoices plugins
* Fixed querying for dynamic strings in Translation Editor not bringing up translations for all languages
* Fixed notice when gettext table is empty
* Added function to display strings with bad encoding in Translation Editor


= 1.3.9 =
* Fixed some issues with url translations
* Speed improvements
* Add Javanese flag
* Fixed issue with trimming dynamic strings in our own ajax calls

= 1.3.8 =
* Speed improvements
* Remove notices from Editor when we don't have translation languages
* Fixed notices with referrer in translator machine
* Fixed issues with urls in other languages
* Fix issue of nested gettext resulting in unwanted characters
* Strip gettext tags from urls run through sanitize_title and esc_url
* Set caching calls non-persistent. Doesn't work with object caching otherwise
* Set lang attribute in html tag all the time including when on default language
* Refactored the way we are translating json
* Fixed issue with Woocommerce ajax calls

= 1.3.7 =
* Fixed an issue with Woocommerce and redirects when the default language is not English
* Speed improvements
* Fix relative url without a trailingslash not getting a proper link back
* Add ?trp=edit-translation=preview to ajax loaded content. Also add it to all dynamic content.
* Added language code column in settings
* Removed async false from JS translate-dom-changes

= 1.3.6 =
* Refactored the get_url_for_language() function which should fix a lot of problems with links
* Speed improvements
* Fixed translation block icon when creating a new block
* Fixed issues with trp tags leftovers in html
* Fixed issues with gettext strings that weren't detected correctly
* Add support for relative url's
* Added warning in settings about controlling costs of Google API
* Changed API key field description. Added feature to show/hide API key field based on Google Translate Active Yes/No
* Fixed Translated-dom-changes string not translated through trp-ajax.
* Fixed 400 errors in GT API

= 1.3.5 =
* Fixed translation problems introduced in the last two versions
* Added a console message when trp-ajax request uses fall back to admin ajax for debugging purposes.

= 1.3.4 =
* Fixed issue with options in select tag that were not translatable
* Fixed force language in custom links
* Fixed Woocommerce links fpr products or categories that were added by the user manually in a page
* Added Settings link to the list of links displayed on Plugins page
* Fixed issue with Kazakhstan flag

= 1.3.3 =
* Fixed issue with Woocommerce ajax strings that were broken in editor on default language in some cases
* Speed improvements

= 1.3.2 =
* Speed improvements
* Add support for the Ginger – EU Cookie Law plugin
* Add support for data-no-dynamic-translation attribute that skips dynamic strings from being translated by dom changes detector
* Fixed Edit Pencil icon css in Translation Editor for some sites
* Refactored the way we add trp-gettext tag. This should have a lot of benefits in compatibility with other plugins
* Optimized block translation detection
* Added caching to trp_x function when reading external .mo files
* Fixed issue with TP icon css that was broken on wpforms forms
* Added secret page for removing duplicate rows from database: wp-admin/admin.php?page=trp_remove_duplicate_rows

= 1.3.1 =
* Fixed Woocommerce translation of permalinks
* Added support for remove_accents to be based on default language when called from the sanitize_title function
* Added support for translating JSON found in custom ajax request
* Added better REST compatibility
* Added compatibility for Peepso plugin
* Fixed broken link to google translate set up api key on settings page
* Corrected flags for Arabic and Bengali languages
* Fixed issue with multiple slashes being added when the URL had extra get parameters

= 1.3.0 =
* Added support for word trim when the default language is japanese, chinese or thai.
* Exluded wp_trim_words funtion from our gettext filter to prevent som issues
* Fixed an issue with gettext inside attributes that passed through the wp_kses function.
* Fixed issues with the Customizer
* Added padding to the language switcher image so we don't conflict with themes that add extra padding to images inside links
* We no longer remove \r \n \t from the translation
* Fixed issue with title attribute that contained html
* Added a filter to all href attributes detected on our translation page
* Added a notice to inform admins of the missing mbstring php library
* We now send all error logs to debug.log
* Added cite and blockquote as top_parents for merge rule on Translation blocks
* Fixed nonce accidentally being passed through internationalized function

= 1.2.9 =
* Rearranged and renamed some languages in the options dropdown
* Fixed flag of Khmer language
* Added Automatic Language Detection notice and included it on add-ons page
* Fixed an issue with WooCommerce checkout and Stripe Gateway
* Fixed issues with some improper responses from the WP Remote API functions
* Fixed minor issues with ajax

= 1.2.8 =
* Added a lot of hooks in the translation manager interface so other people can insert new content there.
* We now take into account the presence of www or lack of it in custom links that might be local
* We now make sure we're not changing the locale in the backend if the language order is different.
* Fixed issue with incorrect language adding in the backend that caused notices in the front-end
* Removed obsolete function add_cookie
* Fixed trailingslashit over get_permalink in url-converter
* Removed adding cookie from php. Fixed enqueue_styles on license and add-ons tabs. Removed deprecated function.

= 1.2.7 =
* Added a warning when changing the default language that it will invalidate their existing translations
* Fixed incorrect detection of the form action language parameter
* Improved compatibility with themes and plugins that use object buffering
* Fixed some issues with image urls

= 1.2.6 =
* Refactored determining language, redirecting and cookie adding
* Removed leftover trp-gettext tags when WooCommerce is active on some pages
* Fixed get_url_for_language function that was having problems in some cases.

= 1.2.5 =
* Fixed DOM changes script not being enqueued anymore

= 1.2.4 =
* Refactor the shortcode language switcher so it's now HTML similar to the floater
* Added link to Appearance -> menus in Settings page
* Fixed language redirect with permalinks so custom parameters are passed correctly back to the url
* Do not load dynamic string translation for IE11 and older

= 1.2.3 =
* Fixed back-end css style not being targeted only for TP Settings page
* Add filter to not remove detected dynamic strings until the ajax is finished
* Fixed data-no-translation not taken into account in some cases of Dynamic strings
* Fixed translated slug not being included in url sometimes
* Fixed issue with gettext string on non visible html attr that prevented other attr from being translated
* Fixed bug with translating dom changes not working for complex HTML hierarchy
* Corrected flag for Afrikaans.
* Fixed compatibility issues with older jQuery versions

= 1.2.2 =
* Added Translation Block feature for translating multiple html elements together
* Improvement: make it possible for the SEO Addon to automatically translate page slugs using Google Translate
* Fix: using the shortcode language switcher added #trpprocessurl to the end of the url
* Fix: changing languages from a secondary language gave 404 page when the page slug was translated
* 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

= 1.2.1 =
* Extra css for the floater images so they don't brake the line in certain themes
* Fixed compatibility issue with Woocommerce cart widget
* Fix: use the siteurl when the homeurl is empty to detect the language

= 1.2.0 =
* Fix wptexturize changing characters in secondary languages
* Mini refactoring of the url_is_file() function
* Refactor get_url_for_language() to not use the global  var
* We no longer add the language path to links to actual files on the server

= 1.1.9 =
* Fix widget language switcher to take into account the new hreflang

= 1.1.8 =
* Fixed bug with Strings List appearing also in Dynamic Strings List. Also fixed bug with duplicate dynamic strings not having a pencil icon because of missing jquery_object.
* Fixed Woocommerce session storage compatibility
* Fixed language floater not opening on iPhone.
* Fixed issue with normal text nodes that were inside an element that had an atribute with gettext and did not get translated
* Replaced _ with - in hreflang and filter it
* Make force language to custom links set to yes as a default
* Remove intensive functions from inside two loops so they only happen once we detect something in js
* Decode html characters in mutation observed strings and removed stripslashes from trp-ajax.php to fix some strings added with js not being translatable

= 1.1.7 =
* Compatibility fix with Elementor Page Builder
* Added translation .pot file
* Add proper encoding for mysqli connection in our trp-ajax.php file so we fixed some translation
* Fixed infinite loop related to mutation observer on javascript strings by not re-adding detected strings again if they are similar to existing ones
* Aligned text from add-ons tab.

= 1.1.6 =
* Added support for translating Contact Form 7 alert messages
* Fixed issue with some strings containing special characters not being translatable (i.e. "¿¡")
* Fixed bug with switching languages in Editor when viewing as Logged out
* Fixed issue with broken homepage links in some themes
* Added support for RTL languages in translation editor

= 1.1.5 =
* Added support for translation blocks using the css class .translation-block.
* Added possibility to choose a different language as default language seen by website visitors.
* Updated add-ons settings page with the missing add-ons, added Language by GET parameter addon
* Fixed issue with the [language-switcher] in a post or page that broke saving the page when Yoast SEO plugin is active
* Added a plugin notification class and a notification for pretty permalinks
* Added WooCommerce compatibility tag
* Small css improvements

= 1.1.4 =
* Filter to allow adding new language: 'trp_wp_languages'
* Fixed issue with get_permalink() in ajax calls that was not returning the propper language
* Adapted code to allow language based on a GET parameter
* Fix some issues with language switcher and custom queries as well as take into account if subdirectory for default language is on
* Fixed issue with js translation that was trimming numbers and other characters from strings when it shouldn't

= 1.1.3 =
* Fix issue where the language switcher didn't work for BuddyPress pages
* Fixed issue with CDATA in post content that was breaking the translation
* Added a filter that can be activated and that tries to fix invalid html: trp_try_fixing_invalid_html

= 1.1.2 =
* We now make sure that all forms when submitted redirect to the correct language
* Fixed an issue with missing slash from language switcher
* Fixed an issue where we were not redirecting to the correct url slug when switching languages
* Fixed a possible notice inside the get_language_names function
* Fixed html breaking because of unescaped quotes in translated meta content
* Removed a special character from the full_trim function that was causing some strings to not be selectable for translation

= 1.1.1 =
* Fixed js error with startsWith method not being supported in IE
* Removed unnecessary files from select2 lib
* Improved the way we rewrite urls to remove certain bugs

= 1.1.0 =
* Implemented View As "Logged out user" functionality for translating strings that show only for logged out users
* Allow slug edit for default language
* Fixed an issue with the dropdown of translation strings when there were unsaved changes and the dropdown disconected from the textarea
* Prevent translation editor icon pencil to exit the translation iframe
* Fixed translating via the next/prev buttons that reset the position in the translation string list
* Refactor the way we are generating the language url for the language switcher when we don't have a variable available

= 1.0.9 =
* We now flush permalinks when saving the settings page to avoid getting 404 and 500 errors
* Added the current language as a class on the body tag. Ex: translatepress-en_US
* Small readme changes

= 1.0.8 =
* We now allow HTML in normal strings translations.
* Changed the way we get the default language permalinks in Woocommerce rewrites
* Fixed issues with date_i18n function
* Fixed a warning generated when there are no rewrite rules
* Fixed dynamic strings not updating the translation dropdown list.
* Fixed issues with hidden space characters that were breaking some translations
* Make sure we don't loose the trp-edit-translation=preview from url after a WordPress redirect

= 1.0.7 =
* Fixed a small bug in js regarding the translation editor sidebar with
* Fixed Language Switcher for Woocommerce product categories and product tags going to 404 pages
* Fixed issues with Woocommerce and permalinks when the default language was not english
* Excluded more functions from getting gettext wraps

= 1.0.6 =
* Added filter on capabilities to allow other roles to edit translations:'trp_translating_capability'
* Don't show php errors and notices when we are storing strings in the database
* Fixed issues with attributes that contain json content, for instance in woocommerce variations
* We no longer wrap gettext inside the wptexturize function
* We no longer wrap gettexts that appear in the bloginfo function

= 1.0.5 =
* Added possibility to edit gettext strings from themes and plugins from english to english, without adding another language. Basically, string-replace functionality.
* Support for translating text input placeholders
* We have a way of translating emails using the conditional language shortcode [trp_language language="en_US"] English only content [/trp_language]
* Fixed issues with some elements that contained new lines and \u00a0 at the start of the strings

= 1.0.4 =
* Fixed issues with the pencil select icon in the translation editor not showing up in certain cases on the button element
* Fixed issues with the pencil select icon in the translation editor not showing up in certain cases because of overflow hidden
* Fixed a issue that was sometimes causing javascript errors with certain plugins

= 1.0.3 =
* Added a conditional language shortcode: [trp_language language="en_US"] English only content [/trp_language]
* Create link to test out Google API key.
* Improvements to Woocommerce compatibility
* Fixed json_encode error that was causing js errors
* Changed 'template_include' hook priority to improve compatibility with some themes

= 1.0.2 =
* Translation interface improvements
* Fixed issues with strings loaded with ajax
* Added an addon page
* Fixed bug with gettext node accidentally wrapping another string too.

= 1.0.1 =
* Fixed incorrect blog prefix name for Multisite subsites on admin_bar gettext hook.
* Fixed Translate Page admin bar button sometimes not having the correct url for entering TP Editor Mode
* Skipped dynamic strings that have only numbers and special characters.
* Fixed order of categories in Editor dropdown. (Meta Information, String List..)
* Fixed JS error Uncaught Error: Syntax error, unrecognized expression

= 1.0.0 =
* Initial release.
