Skip Navigation

Resolved

Overview of the issue

If you create a table using the TablePress plugin, it’s not currently possible to translate it with WPML.

Workaround

As the TablePress author mentions, the easiest solution is to create a table for each language and use the relevant shortcode on the translated pages.

You can also use the TablePress Row Filter extension to copy each row for each language and use the language abbreviation as the filter term, e.g. in an extra but hidden first column.

Alternatively, you can try the following solution but be sure you make a full backup of your site before proceeding:

  1. Please go to WPMLSettings page.
  2. Scroll down to the Post Types Translation section and set tablepress_table custom post type as Translate.
  3. In the same page, look for the Custom Fields Translation section. Set the following fields as Copy:
    • _tablepress_table_options
    • _tablepress_table_visibility
  4. Go to WPMLTranslation Management.
  5. Select the TablePress Tables post type from the dropdown:

    Selecting the TablePress Tables post type
  6. Translate the table as you would any other post or page.
  7. Go to WPMLString Translation.
  8. Scroll down to the bottom of the page and click on the Translate texts in admin screens link.
  9. Search for tablepress_tables.
  10. Select the result and click the Add to String Translation button.
  11. Go back to WPMLTranslation Management.
  12. Here, you need to get the ID of the original table. You can find it by hovering over the View button on the original table:

    Getting the original table ID
  13. Go to WPMLTranslations.
  14. Get the ID of the translated table:

    Getting the translated table ID
  15. Go back to WPMLString Translation and select the admin_texts_tablepress_tables domain in the dropdown at the top of the table.
  16. Copy the content of the string to the translation. In the translation, replace the ID of the original table (18 in our example) with the ID of the translated table (32 in our example).

    Translating the table string