TranslatePress – Translate Multilingual sites


Ervaar een betere manier om je WordPress site te vertalen en meertalig te maken, rechtstreeks vanaf de front-end via een gebruiksvriendelijke interface.

TranslatePress is een WordPress vertaal plugin die iedereen kan gebruiken.

Met de interface kan je de volledige pagina in één keer gemakkelijk vertalen, inclusief de uitvoer van shortcodes, formulieren en page builders. Het werkt ook out-of-the-box met WooCommerce.

Built the WordPress way, TranslatePress – Multilingual is a GPL and self hosted translation plugin, meaning you’ll own all your translations, forever. It’s the fastest way to create a bilingual or multilingual site.

Multilingual & Translation Features

  • Translate all your website content directly from the front-end, in a friendly user interface (translations are displayed in real-time).
  • Fully compatible with all themes and plugins
  • Live preview of your translated pages, as you edit them.
  • Image translation support, for translating images, sliders and other media.
  • Support for both manual and automatic translation
  • Ability to translate dynamic strings (gettext) added by WordPress, plugins and themes.
  • Integrates with Google Translate, allowing you to set up Automatic Translation using your own Google API key.
  • Translate larger html blocks by merging strings into translation blocks.
  • Place language switchers anywhere using shortcode [language-switcher], WP menu item or as a floating dropdown.
  • Editorial control allowing you to publish your language only when all your translations are done
  • Conditional display content shortcode based on language [trp_language language=”en_US”] English content only [/trp_language]
  • Possibility to edit gettext strings from themes and plugins from English to English, without adding another language. Basically a string-replace functionality.
  • Translation Block feature in which you can translate multiple html elements together
  • Native Gutenberg support, so you can easily translate Gutenberg blocks
  • Out of the box WooCommerce compatibility

Note: this plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.

Gebruikers met beheerdersrechten hebben toegang tot de volgende instellingen:

  • select default language of the website and one translation language, for bilingual sites
  • kies of de taal wisselaar talen in hun eigen naam of Engelse naam moet weergeven
  • dwingen aangepaste links om te openen in de huidige taal
  • in- of uitschakelen url sub-folder voor de standaard taal
  • enable automatic translation via Google Translate

Powerful Translation Add-ons

TranslatePress – Multilingual has a range of premium Add-ons that allow you to extend the power of this WordPress translation plugin:

Pro Add -ons( beschikbaar in depremium versies enkel en alleen)

  • Extra Languages – allows you to add an unlimited number of translation languages, with the possibility to publish languages later after you complete the translation
  • SEO Pack – lets you translate meta information (like page title, description, url slug, image alt tag, Twitter and Facebook Social Graph tags & more) for boosting your multilingual SEO and increase traffic. Works with all popular SEO plugins.
  • Translator Accounts – create or allow existing users to translate the site without admin rights
  • Browse as User Role – view and translate content that is visible only to a particular user role
  • Navigation Based on Language – configure and display different menu items for different languages
  • Automatic User Language Detection – redirect first time visitors to their preferred language based on their browser settings or IP address
  • DeepL Automatic Translation – The DeepL Automatic Translation add-on lets you automatically translate your website through the DeepL API

Keyboard Shortcuts

  • CTRL ( ⌘ ) + S – Save translation for the currently editing strings
  • CTRL ( ⌘ ) + ALT + Z – Discard all changes for the currently editing strings
  • CTRL ( ⌘ ) + ALT + → (Right Arrow) – Navigate to next string
  • CTRL ( ⌘ ) + ALT + ← (Left Arrow) – Navigate to previous string



Bezoek TranslatePress WordPress Vertaling plugin documentatie pagina



Demo Site

You can test out TranslatePress – Multilingual plugin by visiting our demo site


  • TranslatePress front-end visual translation editor in action
  • Front-end translation editor used to translate the entire page content
  • How to translate a dynamic string (gettext)
  • Translating WooCommerce Products for your multilingual store
  • Translate Images and Image Sliders
  • Settings Page
  • Floating Language Switcher
  • Menu Language Switcher


  1. Upload de translatepress folder naar de ‘/ wp-content/plugins/’ folder
  2. Activeer de plugin via het ‘Plugins’ menu in WordPress
  3. Ga naar Instellingen – > TranslatePress en kies een vertaal taal.
  4. Open de front-end vertaling editor van de beheer balk om je site te vertalen.


Waar worden mijn vertalingen opgeslagen?

All the translation are stored locally in your server’s database.

What types of content can I translate?

TranslatePress – Multilingual plugin works out of the box with WooCommerce, custom post types, complex themes and site builders, so you’ll be able to translate any type of content.

How is it different from other multilingual & translation plugins like WPML or Polylang?

TranslatePress is easier to use and more intuitive altogether. No more switching between the editor, string translation interfaces or badly translated plugins. You can now translate the full page content directly from the front-end. This makes TranslatePress a great alternative to plugins like Polylang and WPML.

Hoe begin ik mijn WordPress site te vertalen?

After installing the plugin, select your secondary language and click “Translate Site” to start translating your entire site exactly as it looks in the front-end.

Zal het mijn site vertragen?

TranslatePress heeft weinig invloed op de snelheid van uw site. Zie voor meer informatieTop WordPress Vertaling Plugins vergeleken op basis van pagina laadtijd

Can you translate your WooCommerce store?

Yes, TranslatePress works out of the box with WooCommerce. You can use to build a multilingual WooCommerce store.

Where can I find out more information?

For more information please check out our documentation.


24 september 2020
The best translation plugin in the market, works smoothly as expected especially the SEO addon pack is a must to have to increase your keyword pool with google and other search engines. Their premium support is friendly and supportive, worth the investment.
24 september 2020
Our client was looking for translation solution for our JoomSport plugin. He tried many different translate plugins but they didn't work since post duplicates were creating for each JoomSport custom post or taxonomies. TranslatePress works perfect with JoomSport! It allows you translating without creating Season or team duplicates. Well done!
23 september 2020
Ok I get your company doesn't work on Fridays. So after submitting a ticket on Friday I expected an answer on Monday. Well - it's wednesday now and still no response to my ticket. I bought a €139 a year license 9 days ago. This Business plan especially says: 1 Year of Updates & Premium Support This isn't premium support at all. I get faster replies from companies where I don't pay and use a free product all the times.
23 september 2020
I previously had Personal version. I really liked how easy is to translate with TranslatePress. When almost all my site was translated then we discovered a page error: In translated version, anywhere if you wanted to click on next page or on page number it sends you to home page. Default language doesn't encounter such an error. We tried to figure thing out but nothing really works - error stays. Support suggests to do something but no real help from their side. Then we heard that someone had the same problem with no solution. So after weeks of struggling we decided to end using TranslatePress and asked my money back. Sadly no one returned us the wasted month If they can overcome those page error, then I strongly recommend using TP, but so far - be warned!
23 september 2020
I understand that developers need to make money. But what I utterly despise is that greedy developers like yourself want to have people pay to them USD 100 yearly for what??? That they can change a slug on their website after it is translated? EVERY YEAR? I occasionally buy pro versions from deserving developers for obvious reasons that it saves us time to build websites. As to the free version of the plugin, it is nicely designed. The hover box with a question mark, that pops up to give some more info, cannot be translated. That's a minus point. For obvious reasons, I cannot change my main menu for my products, because I cannot change the link. I cannot interpret the popup and also cannot build a new page. All well. Read on. If you guys were not into greed for wanting to hook up website owners life long into paying you, I believe, you would have gotten more business - also my business today. Not under these circumstances though. Thanks.
20 september 2020
SUPER plugin, really AMAZING But... you could make it PERFECT if you add code to allow to align text for RTL/LTR. You can add an option on backend: "Set Align side for this language" and then it could be 1 and for all for any given language.... THANK YOU FOR YOUR WORK 🙂
Lees alle 252 beoordelingen

Bijdragers & ontwikkelaars

“TranslatePress – Translate Multilingual sites” is open source software. De volgende personen hebben bijgedragen aan deze plugin.


“TranslatePress – Translate Multilingual sites” is vertaald in 8 talen. Dank voor de vertalers voor hun bijdragen.

Vertaal “TranslatePress – Translate Multilingual sites” naar jouw taal.

Interesse in ontwikkeling?

Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.



  • 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


  • Enkele problemen met URL-vertalingen opgelost
  • Speed improvements
  • Voeg Javaanse vlag toe
  • Er is een probleem opgelost met het trimmen van dynamische reeksen in onze eigen ajax-oproepen


  • Speed improvements
  • Remove notices from Editor when we don’t have translation languages
  • Fixed notices with referrer in translator machine
  • Problemen met URL’s in andere talen opgelost
  • Fix probleem van geneste gettext resulterend in ongewenste karakters
  • Strip gettext tags van urls lopen door sanitize_title en esc_url
  • Caching-oproepen niet-persistent instellen. Werkt anders niet met object caching
  • Stel het lang attribuut in de html tag altijd in, ook in de standaardtaal
  • Refactored de manier waarop we json vertalen
  • Probleem met Wojommerce ajax-oproepen opgelost


  • Probleem opgelost met Woocommerce en doorverwijzingen wanneer de standaardtaal geen Engels is
  • Speed improvements
  • Opgelost relatieve URL zonder een trailing slash die geen goede link terug krijgt
  • Toevoegen ?trp=edit-translation=preview to ajax loaded inhoud. Voeg het ook toe aan alle dynamische inhoud.
  • Toegevoegd taalcode kolom in instellingen
  • Asynchroon vals verwijderd van JS translate-dom-changes


  • Refactored de functie get_url_for_language () die veel problemen met links moet oplossen
  • Speed improvements
  • Opgelost vertaling blok pictogram bij het maken van een nieuw blok
  • Problemen met trp-tags leftovers in html opgelost
  • Problemen met gettext strings opgelost die niet correct werden gedetecteerd
  • Ondersteuning toevoegen voor relatieve URL’s
  • Toegevoegd waarschuwing in de instellingen over het beheren van de kosten van Google API
  • Gewijzigde API sleutel veld beschrijving. Functie toegevoegd om API sleutelveld te tonen/verbergen op basis van Google Translate Actief Ja/Nee
  • Fixed Translated-dom-changes string niet vertaald via trp-ajax.
  • Fixed 400 errors in GT API


  • Problemen met vertaalproblemen opgelost in de laatste twee versies
  • Toegevoegd een console bericht wanneer trp-ajax aanvraag fall back gebruikt naar admin ajax voor debug doeleinden.


  • Probleem met opties in select- tag opgelost die niet konden worden vertaald
  • Fixed force language in custom links
  • Fixed Woocommerce links fpr products or categories that were added by the user manually in a page
  • De link Instellingen is toegevoegd aan de lijst met links die op de pagina Plugins worden weergegeven
  • Probleem met de vlag van Kazachstan opgelost


  • 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
  • Toegevoegd caching om de functie trp_x bij het lezen van externe .mo bestanden
  • Fixed issue with TP icon css that was broken on wpforms forms
  • Toegevoegd geheim pagina voor het verwijderen van dubbele rijen uit de database : wp-admin / admin.php? pagina = 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
  • Gecorrigeerde vlaggen voor Arabische en Bengaalse talen
  • Probleem opgelost waarbij meerdere schuine strepen werden toegevoegd toen de URL extra get parameters had


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