= 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