Skip Navigation

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 7:00 – 12:00 7:00 – 12:00 7:00 – 12:00 7:00 – 12:00 7:00 – 12:00 -
- 13:00 – 16:00 13:00 – 16:00 13:00 – 16:00 13:00 – 16:00 13:00 – 16:00 -

Supporter timezone: America/Sao_Paulo (GMT-03:00)

Tagged: 

This topic contains 0 replies, has 0 voices.

Last updated by Lucas Vidal de Andrade 23 hours, 50 minutes ago.

Assisted by: Lucas Vidal de Andrade.

Author Posts
January 15, 2025 at 5:49 pm

ryanR-5

Background of the issue:
I am using Better Search Replace, which was said to have been compatible with WPML (https://wpml.org/plugin/better-search-replace/). I am testing this plugin on the BSR Testing page to replace a word across different language pages on my site hidden link. In the attached images, I used BSR to replace "hidden link; with "hidden link;.

Symptoms:
When I replace a word, it updates on the English, Belgian, and other pages, but the translation editor (Classic Editor) still shows the old content.

Questions:
Is there an easy way to make WPML re-sync without having to manually update each page in the original language and confirm changes in every language? Otherwise, is a different solution to this problem?

January 15, 2025 at 6:42 pm
January 15, 2025 at 6:55 pm
January 15, 2025 at 7:38 pm #16599148

ryanR-5

Thanks for creating the isolated testing site.

Here are the steps I took:

1. Changed the translation editor to the Classic Translation Editor
2. Created a page called "BSR Testing"
3. Added some text to the page "BSR Testing". The text I am planning to replace is "AlexWasHere"
4. Create a German translation with near identical text.
5. Downloaded the plugin "Better Search Replace" and activated it.
6. Went to Tools -> Better Search Replace
7. Search for: AlexWasHere | Replace With: BSREditedThisText | Select Tables: All tables | Checked "Case-Insensitive", "Replace GUIDs" and unselected "Run as dry run".

Result:
During the search/replace, 34 tables were searched, with 3 cells changed in 3 updates.
wp_posts 3 3 0.021 seconds

8. On the BSR Testing page, the text "AlexWasHere" was successfully replaced with "BSREditedThisText" in both the English and German language.

9. On the Classic Editor Translator from English to German, the text displays as "AlexWasHere" still.

Screenshot 2025-01-15 133817.png
January 16, 2025 at 7:09 pm #16603639

Lucas Vidal de Andrade
Supporter

Languages: English (English ) Spanish (Español ) German (Deutsch ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Thank you so much for sharing the results and the steps. I'm in touch with our devs and will get back once they have an answer.

While we wait, can you please check if the behavior is the same using the latest Translation Editor? Thanks in advance.

January 16, 2025 at 10:48 pm #16604055

ryanR-5

Following the same steps as I did for Classic Translation Editor, but this time with the settings set to Advanced Translation Editor, the result was still the same.

January 17, 2025 at 6:47 pm #16607995

Lucas Vidal de Andrade
Supporter

Languages: English (English ) Spanish (Español ) German (Deutsch ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hey there,

I'm getting a second opinion on that. I'm still looking into this issue and will get back to you as soon as I have new information.

January 22, 2025 at 6:05 pm #16624711

Lucas Vidal de Andrade
Supporter

Languages: English (English ) Spanish (Español ) German (Deutsch ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hey there,

I got feedback from our devs. The logic to update the ATE is triggered when we save/update the post. As this plugin is modifying the database directly, these hooks are not triggered. This applies to any WP hook, so it may affect other plugins too, not just WPML. Unfortunately, we don't have any tool inside WPML to address this.

Nonetheless, I have a non-official solution to recommend. I cannot guarantee it will work, because it's not been fully tested by us and is not 100% related to WPML. You can update your posts programmatically. Make sure to have a full website backup before performing any of the steps. Here is a document that might be helpful:
https://wordpress.stackexchange.com/questions/330746/how-can-i-mass-update-save-all-wordpress-posts-and-pages

Thank you for your patience and cooperation.