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 |
|---|---|---|---|---|---|---|
| - | 8:00 – 13:00 | 9:00 – 13:00 | 9:00 – 13:00 | 8:00 – 12:00 | 8:00 – 12:00 | - |
| - | 14:00 – 17:00 | 14:00 – 18:00 | 14:00 – 18:00 | 13:00 – 17:00 | 13:00 – 17:00 | - |
Supporter timezone: Europe/Zagreb (GMT+01:00)
Tagged: Exception
This topic contains 24 replies, has 1 voice.
Last updated by Bruno Kos 1 day, 14 hours ago.
Assisted by: Bruno Kos.
| Author | Posts |
|---|---|
| January 16, 2026 at 2:35 pm #17737429 | |
|
nicoT-5 |
Hi, no I don't think this can be it for simple reasons: 1. The migration from Divi to Elementor is not currently happening but was completed in the end of 2022. I'm sure that switching the old post to Elementor is solving the issue, as I already tested it and recorded it in Video V that I had shared with you: hidden link However, the issue with that is, that it would cost us several thousand dollars to translate content again, that was already translated. Avoiding that is what I would like to find a solution for. |
| January 17, 2026 at 3:48 pm #17739230 | |
|
nicoT-5 |
If it isn't possible to resolve this technically, would there be a way to aquire the necessary translation credits at cost, considering we already paid for the initial translation? My estimate would be that we need to translate 400*700*15 = 4.200.000 words. This is estimated to be roughly 30 Mio Characters. Deepl API would cost 600€ for that, but with WPML it would cost us 8,4 Mio Credits which is priced quite a bit higher. If it can't be resolved technically, I'd appreciate if we could find an alternative solution. |
| January 19, 2026 at 1:24 pm #17742741 | |
|
Bruno Kos WPML Supporter since 12/2018
Languages: English (English ) German (Deutsch ) French (Français ) Timezone: Europe/Zagreb (GMT+01:00) |
Following the review from our Tier 2 team, I’d like to confirm our understanding of the situation and make sure we are aligned. If we understand correctly, the goal is not to prevent translations from consistently being marked as “needs update,” but rather to avoid having content retranslated even when the underlying logic and structure of the post have changed significantly. For example, the post we reviewed was using the old (pre-Gutenberg) editor and was opening in the native editor. In this scenario, the original and translated posts appear to have simply been linked together, meaning they were never stored in the WPML String Translation memory, the Advanced Translation Editor memory, or the WPML translation job records. Given this, to avoid being charged for automatic translation, the recommended approach would be to use the “minor edit” checkbox, then edit the translation directly using the native editor, and continue managing updates this way moving forward. Could you please confirm whether this matches your understanding and expectations, or let us know if there is anything else we should be aware of or investigate further on our end? |
| January 19, 2026 at 2:07 pm #17742887 | |
|
nicoT-5 |
Well, yes and no. The situation is: We are fine keeping the older posts in the native Gutenberg editor. However, there we have the mentioned issues. We would also be fine updating the older posts to new Elementor editor. However, there we then have the re-translation cost issue. Ideal end result for us: We can update old posts to Elementor without incurring thousands of dollars of additional costs. Alternative acceptable end result for us: We can update old posts within the native Gutenberg editor without the issues raised in this ticket. Does that make our intent more clear? If not please let me know and I'll try to rephrase what we are looking for. |
| January 19, 2026 at 4:41 pm #17743577 | |
|
Bruno Kos WPML Supporter since 12/2018
Languages: English (English ) German (Deutsch ) French (Français ) Timezone: Europe/Zagreb (GMT+01:00) |
Is your expectation that WPML should be able to treat existing translations of legacy content as authoritative when: - Migrating posts from Gutenberg to Elementor, or even if this means bypassing automatic translation workflows and associated billing? Clarifying this will help us determine whether a supported solution exists or whether this is a current product limitation. In other words, can you confirm whether avoiding automatic retranslation costs when migrating legacy content to Elementor is a requirement? |
| January 19, 2026 at 4:56 pm #17743597 | |
|
nicoT-5 |
1) My core expectation is that I can make strucutral edits within Gutenberg and automatic translation with WPML works as expected, meaning: It recognizes when a link and/or text element was changed and flags it as 'update needed' and then charges us only for the translation of that changed piece. I do not understand what you mean with bypassing automatic translation as this is not what we've done nor what we intend. We used the automatic translation so far and also want to use it when updating content. 2) My nice-to-have expectation would be that I can migrate posts from Gutenberg to Elementor and not lose the 'cached translation'. If you can provide 1) then I understand if you don't want to support 2). So I would be fine with 1) even if I'd prefer 2). 3) If you can't provide 1) for technical reasons, then my proposal was 2) and have a support of providing the re-translation at cost rather than with your mark-up. |
| January 19, 2026 at 5:25 pm #17743708 | |
|
Bruno Kos WPML Supporter since 12/2018
Languages: English (English ) German (Deutsch ) French (Français ) Timezone: Europe/Zagreb (GMT+01:00) |
Is it correct that migrating posts from Gutenberg to Elementor without triggering a full retranslation is a nice-to-have for you, but not a strict requirement, as long as updating links, anchor texts, or other structural elements within Gutenberg results in only those changes being translated and charged? And if translating only the changed parts within Gutenberg is not technically possible for legacy content, can you confirm that your fallback expectation would be to migrate to Elementor, but with some form of cost mitigation for the required full retranslation? |
| January 20, 2026 at 6:58 am #17744695 | |
|
nicoT-5 |
Yes, that is correct. |
| January 20, 2026 at 1:31 pm #17746636 | |
|
Bruno Kos WPML Supporter since 12/2018
Languages: English (English ) German (Deutsch ) French (Français ) Timezone: Europe/Zagreb (GMT+01:00) |
I’ll need to consult with our development team to determine whether this is feasible and whether the request can be supported. I’ll follow up once I have more information. |
| January 26, 2026 at 7:34 am #17761053 | |
|
Bruno Kos WPML Supporter since 12/2018
Languages: English (English ) German (Deutsch ) French (Français ) Timezone: Europe/Zagreb (GMT+01:00) |
Hi, We reviewed all the provided videos in detail and performed an in-depth technical analysis (including local testing with your site data). Below is a clear summary of our findings and conclusions. General observations * The issues you are experiencing are not related to a single post, language, or editor. 1. Inconsistent “Needs update” vs “Completed” statuses * After editing certain Gutenberg posts, only some languages are marked as “Needs update” while others remain “Completed”. As part of our investigation, we identified a workaround at code level that addresses this issue. The problem is caused by an empty value being treated as valid content when detecting changes. This is within plugins\sitepress-multilingual-cms\addons\wpml-page-builders\classes\Shared\AutoUpdate\Hooks.php, line 81: Current behavior (problematic): return Maybe::of( $post->ID )
->map( [ self::class, 'getPackages' ] )
->map( Fns::map( $joinPackageStringHashes ) )
->filter() // Empty value is treated as valid
->map( Lst::join( self::HASH_SEP ) )
->getOrElse( $content );
Proposed workaround, so the above should be replaced with: return Maybe::of( $post->ID )
->map( [ self::class, 'getPackages' ] )
->map( Fns::map( $joinPackageStringHashes ) )
->map( Lst::join( self::HASH_SEP ) )
->filter() // Filter after joining
->getOrElse( $content );
By applying the filter after joining the package strings, empty results are correctly ignored and WPML can properly detect content changes. This workaround is currently under verification by our Compatibility team. If you would like, we can guide you through testing this workaround on a staging or testing server. 2. Why link-only changes sometimes trigger high credit usage * Credit usage is calculated based on a comparison between: * The current English content 3. Why word counts differ per language Different word count estimations are expected and correct, based on translation history: * Languages showing 0 words * These already have up-to-date ATE translations. * Languages showing a small number of words (for example, 6 words) * These have existing ATE translations, but the stored version is slightly outdated. * Languages showing a large number of words (for example, 132 words) * These were originally translated using the WPML native editor. 4. Important clarification * The issue is not related to Gutenberg vs Elementor. * Advanced Translation Editor (ATE), or 5. Why Elementor appears to “fix” the issue * Elementor itself is not the fix. 6. Options going forward for older posts Unfortunately, for posts that were originally translated using the WPML native editor, there is no way to retroactively link them to ATE without cost. The available options are: * Continue updating translations directly in the WPML native editor (recommended for existing content). Summary * The mixed “Needs update” / “Completed” status after Gutenberg edits is a real issue on our side and is being investigated (you can try the workaround above) Let me know if you have any questions related to the above. |
