TranslatePress Free Changelog


  • 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


  • Fixed translation saved confirmation message in the Translation Editor
  • Fixed CSS issue in Advanced settings
  • Fixed notice in TranslatePress settings


  • 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


  • 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


  • Added compatibility with WooCommerce Product Filters by barn2


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


  • 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


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


  • Fixed some cases of unnecessarily detecting text inside script tags
  • Fixed compatibility code with Oxygen


  • 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


  • 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


  • 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


  • Improved DOM parser to better handle HTML comments
  • Improved Database optimization tool's default operations


  • Fixed some cases of 404 on translated pages for WooCommerce permalinks
  • Improved compatibility with RankMath


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • Added Language Switcher block in Gutenberg Editor
  • Fixed edge case error regarding __return_true function


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


  • 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


  • Fixed x-default hreflang tag displayed incorrectly in some cases
  • Improved sanitizing Advanced settings


  • 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


  • 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


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


  • 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


  • 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


  • Fixed issues with changing language on websites with persistent object caching
  • Added filter on absolute home url


  • 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


  • 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


  • 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


  • 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


  • 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


  • Fixed error when resetting password on WooCommerce form


  • 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


  • Improved compatibility with WooCommerce Payments
  • Fixed php notice about notification_id


  • Fixed security vulnerability


  • Added Translate Page button in Gutenberg Editor
  • Improved TranslatePress General settings UI on smaller screens


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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


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


  • 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


  • 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


  • 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


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


  • 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


  • Corrected plugin name


  • 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


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


  • All Premium Add-ons have been repackaged in new archives downloadable from 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


  • 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


  • 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


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


  • 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


  • 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


  • 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


  • 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


  • 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.


  • 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.


  • 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


  • 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


  • 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


  • 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.


  • 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.


  • Fixed some cases of multiple requests for finding out supported languages for automatic translation


  • 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


  • Improved compatibility with Oxygen builder.
  • Fixed a issue with pagination on blog page displaying page 0


  • 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


  • 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.


  • 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


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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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.


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


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


  • 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


  • 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.


  • 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


  • 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.


  • 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 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


  • 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


  • Modified an autoloader to prevent errors when manually updating the plugin


  • 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


  • Fixed warnings regarding settings that appeared on fresh installs


  • 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


  • Fixed blank page when opening Translation Editor in some localized languages


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


  • 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


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


  • 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


  • 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


  • Fixed a php error in previous commit


  • 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


  • 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


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


  • 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


  • 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


  • Added PHP 7.3 support
  • Performance improvements


  • 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


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


  • 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


  • 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


  • 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


  • 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.


  • 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


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


  • 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


  • 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


  • 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


  • 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


  • 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.


  • 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


  • 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.


  • Fixed DOM changes script not being enqueued anymore


  • 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


  • 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


  • 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


  • 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


  • 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


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


  • 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


  • 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.


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


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


  • 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


  • Initial release.

Looking to go multilingual?

Get full access to TranslatePress and join 200.000+ website owners that grow their multilingual traffic.

Unlock PREMIUM Features

Or download FREE version