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
Error message

A common error in WordPress is a 500 Internal Server Error (or sometimes a white page or "The site is experiencing technical difficulties.").  This error can look like the image below.

Internal server errors in WordPress can be caused by plugin or theme functions, corrupted .htaccess file, or PHP memory limit.


Debugging

To start debugging this error we need to see if we can get more information about the error.

The first method with which we can find out more information about the error is to set WP_DEBUG to true in wp_config.php. Please follow the steps below:

  1. Access your site via FTP
  2. Open the file named wp-config.php
  3. Find the line where you see define('WP_DEBUG', false);
  4. Change false to true and save the file
The next time you refresh the page you were getting an error on you should see more information about the error messages which will help in troubleshooting. If the line is already set to true you may have another plugin or server configuration which is suppressing the error output.

And we can also find out more information about this error by checking if we have any PHP errors in the PHP error logs.


Increase the WordPress Memory Limit

When you install WordPress, the default memory limit is typically set at 64MB. However, as you install plugins, themes, and other WordPress add-ons, your website's memory usage can increase. If your website's memory usage exceeds the default limit, you may start to experience various performance issues, including slow loading times, error messages, and even website crashes.

To increase the WordPress memory limit, you will typically need to modify your website's wp-config.php file or contact your web hosting provider to request an increase.

  1. FTP into your website
  2. Open the file named wp-config.php
  3. You need to paste this code in wp-config.php file just before the line that says ‘That’s all, stop editing! Happy blogging.’
    define( 'WP_MEMORY_LIMIT', '256M' );
  4. Save the file

You can now visit your WordPress site and the memory exhausted error should disappear now.

Note: If this solution does not work for you, then this means your web hosting service provider does not allow WordPress to increase the PHP memory limit. You will need to ask your web hosting provider to increase your PHP memory limit manually.


Checking for Corrupt .htaccess File
A corrupt .htaccess file can cause issues with your website, such as error pages or broken links. Here are the steps to check for a corrupt .htaccess file:
  1. Access your website's root directory through an FTP client or file manager provided by your hosting provider.
  2. Look for the .htaccess file in the root directory. If you cannot find it, make sure that you have enabled the option to view hidden files.
  3. Download a copy of the .htaccess file to your computer, and then delete it from your website's root directory.
  4. Try accessing your website to see if the issues have been resolved. If they have, then the issue was likely caused by a corrupt .htaccess file.
  5. To create a new .htaccess file, go to your WordPress dashboard, and navigate to Settings > Permalinks. Click the "Save Changes" button, and WordPress will generate a new .htaccess file for you.

If you continue to experience issues after deleting the .htaccess file and generating a new one, it may be caused by a different issue, and you should contact your hosting provider or WordPress support for further assistance.


Ask your Hosting Provider

If you did not manage to solve your error please contact your host provider team and they will be able to check the server logs and locate the root cause of the error.

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

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.

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

If the error is a white page (doesn't come from WordPress 404 page template) it's possible your .htaccess contains server rewrite rules that simply direct the subdirectory (example.com/fr) to somewhere else.

404-apache

This usually happens as a conflict with the Gtranslate WordPress plugin and their Sub-directory URL structure. The Gtranslate plugin will add extra rewrite rules inside the .htaccess file in order to make this feature work.

Deactivating Gtranslate and activating TranslatePress will cause secondary languages from TranslatePress to not work and throw a Not Found error from the apache server

For a quick fix, all you have to do is edit your .htaccess file and remove the Gtranslate config section

Debuging through a conflict test

Theme and plugin conflicts occur when compatibility issues between a WordPress theme and a plugin result in errors, broken functionality, missing content, or website crashes. A theme conflict occurs when a WordPress theme's code conflicts with the code of a plugin, causing errors or unexpected behavior. A plugin conflict, on the other hand, occurs if the plugins use the same functions or resources, or if one plugin modifies a core WordPress feature that another plugin relies on.


Conflict test

Performing a conflict test is an important step in troubleshooting WordPress website issues caused by plugin or theme conflicts. Here are the steps that you need to follow to do a conflict test:

  1. Update all your plugins and themes: Using the most recent versions of your website software can sometimes resolve conflicts as the updated releases often contain bug fixes.
  2. Create a staging site: A staging site is an exact copy of the live website created for testing purposes or to make changes without affecting the live site. It allows developers to experiment and test changes without risking errors on the live website.
  3. Disable caching: If your website uses caching, disable it to ensure that you are testing the actual site and not a cached version.
  4. Deactivate all plugins: Deactivate all plugins on your WordPress site. You can do this by going to the Plugins page and selecting all plugins, then choosing to Deactivate from the Bulk Actions drop-down menu.
  5. Switch to a default theme: Change your theme to a default WordPress theme, such as Twenty Twenty-Two, to eliminate any conflicts caused by the theme.
  6. Test the site: Check your website to see if the issue is resolved. If the issue is gone, it was caused by a plugin or theme conflict.
  7. Activate plugins: Activate each plugin one by one, and after each activation, check the website to see if the issue occurs. If the issue reappears after activating a specific plugin, that plugin is causing the conflict.
  8. Reactivate the theme: Once you have identified the problematic plugin, reactivate all the other plugins and switch back to your original theme. Then, deactivate the problematic plugin and check if the issue is resolved.
By following these steps, you can identify the source of the conflict and take the necessary steps to resolve the issue. Remember to keep all plugins and themes up-to-date to prevent conflicts from occurring in the future.
Debuging through PHP Error Logs

In WordPress, PHP error logs are files that contain information about any errors or warnings that occur within the PHP code of your WordPress site. These logs are useful for troubleshooting issues with your WordPress site.


How to enable the WordPress Debug mode

To enable the PHP error log for WordPress you will need to connect to your site while using FTP and then edit the wp-config.php file

After you've opened this file you will need to add the following lines of code before the text where it says "That's all, stop editing! Happy publishing."

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
/* That's all, stop editing! Happy publishing. */
This code will enable debugging mode in WordPress and write any PHP errors to a log file.

NOTE: In case you already have 'WP_DEBUG' and 'WP_DEBUG_LOG' in that file, you will not have to do the above step, just make sure that they are set to true.


Where to view the WordPress Error logs

After you enabled WordPress Debug mode, you will need to go to the "wp-content" directory to find the "debug.log" file (again being connected to your site via FTP), then right-click on this file and choose to View/Edit the file.

 

After accessing the error log file, you will be able to review the error messages along with their corresponding date and time stamps.

 

It's important to note that leaving debugging mode enabled on a production site can be a security risk, as it can reveal sensitive information about your site's configuration and vulnerabilities. Be sure to disable debugging mode once you found the information you were looking for.

To disable the Debug mode, you will just need to set the WP_DEBUG and WP_DEBUG_LOG lines to "false".

define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
/* That's all, stop editing! Happy publishing. */
In case you’re not experienced with connecting to your site via FTP or you were not successful in viewing the PHP Error Logs, please contact your hosting provider and ask them for help regarding this.

I don't see the Licence tab to add my serial key
The input from the License tab only appears after installing the pro version/paid addon.
So first go to your TranslatePress Account page, download the addon, then install and activate it on your website. The License input will show afterward.
I cannot select some strings from the page to translate

It's possible that some strings cannot be clicked through our visual interface.

If this is the case, you should try to look for them inside the Strings List that's available under the current language at the top of the translation interface.

Strings list  

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 Google Translation API key doesn't work

If you're having trouble with your Google API key, please make sure that you followed correctly our guide for generating it.

Be extra careful at Step 4 since this is the cause of issues most of the time.

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.), please try Troubleshooting options. If they don'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.