Troubleshoot TranslatePress Not Working

Is TranslatePress not working as it should? Although rarely, things might not always work as expected. Here’s a list of the most common issues that might arise and how to troubleshoot them.

If you can’t find what you are looking for, please check out the Frequently Asked Questions page as well.

500 error or when you open the translation interface there is a white page
Here are some steps to debug this: If none of these work, please contact us via our support.
404 error when accessing a translated page

Make sure you have pretty permalinks enabled and working. https://wordpress.org/support/article/using-permalinks/#using-pretty-permalinks

If this is the setup you have: http://example.com/?p=123 it's not going to work.
If you don't know how to enable that or have another reason for using it, checkout this addon: https://translatepress.com/docs/addons/language-get-parameter/

You know they are not working correctly because WordPress normally takes over 404 pages and serves a nice error for the user that looks like a page on your site. If your 404 error page comes directly from the server (all you get is a "The requested URL /sample was not found on this server."), means it's not configured properly.

Please note Pretty Permalinks require configuration on the server side for it to work. It's possible you either don't have Mod Rewrite for Apache enabled or WordPress can't write it's .htaccess file with the rewrite rules. Please try to contact your host to debug this further.​
Some text is missing from my translated page
If text is missing from your translated page please attempt to fix this by activating option Fix missing dynamic content from Settings-> TranslatePress-> Advanced tab.

If the issue is still not fixed, please contact support.
My post, page or custom post type titles are empty in the translated version.

If in the translated part of the website there are page titles (or post title, custom post type titles) that are empty or broken, first thing you need to try is go to TranslatePress -> Settings -> Advanced -> Disable post container tags for post title and enable it.

If that doesn't work, please contact support with as many details as possible so we can debug the issue

Some functionality doesn't work on the translated page
If you notice that something is broken on the translated version of your page (button can't be clicked, image is not showing etc.) or some CSS styling is missing/broken, this usually happens if your HTML is not valid (missing spaces etc).

To fix this, please try these solutions. If it doesn't help, please contact support.
On the translated page, the text is flickering
If the text from your translation page is flickering, please attempt to fix this by activating option Fix missing dynamic content from Settings->TranslatePress->Advanced tab.

If the issue is still not fixed, please contact support.
Not working on WP Engine hosting
If your site is hosted with WP Engine, you can make it work by adding the following to your site’s wp-config.php:

define( 'WPE_GOVERNOR', false );
Translating an image replaces all images on the page
If you have Smush plugin, go to Smush Settings -> Lazy Load tab and Deactivate this feature.
I can't save translations
If you click the save button but you don't get a "Saved" confirmation please make sure you access the website from HTTPS. Sometimes HTTP isn't set as a redirect towards HTTPS and can cause problems with parts of the plugin.
All my posts/pages link to the same post/page on the translated version.
If in the translated part of the website there are links to different posts/pages and all of them link to the same post/page, the first thing you have to check is if you created those posts/pages using Duplicate Page plugin.

If you create a post/page, translate its slug and then duplicate it, any reference to the duplicated post/page will redirect you to the original post/page even if the link points to the duplicated page.

To fix this, open the front-end of TranslatePress and go to String Translation -> Post Slugs. Manually translate each slug of the affected posts/pages.
Warning: sprintf(): Too few arguments in
The sprintf() function is used inside WordPress to replace gettext strings like "Hello %s" with "Hello John". Basically replacing %s with a dynamic strings that should not be translatable. Like a name or number.
This error means there is a gettext string that was not translated correctly and doesn't contain a %s for example. So instead of translating "Ola %s" it was translated to just "Ola", thus throwing the error.

To fix this you need to find the exact string that's being translated and exclude it from gettext translation inside TranslatePress -> Settings -> Advanced -> Exclude Gettext Strings.
In this case you need to go to that file and number and see what gettext string is being translated there and exclude it. If that doesn't work, you'll probably need to delete the translation from the .po files that automatically come with WordPress (it's possible the translation is wrong) and you can do that by using a plugin like LocoTranslate.