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.
Tagged: Compatibility
This topic contains 12 replies, has 0 voices.
Last updated by Lauren 2 months, 3 weeks ago.
Assisted by: Lauren.
| Author | Posts |
|---|---|
| February 5, 2026 at 11:11 am #17795651 | |
|
gerritG-2 |
Beaver Builder HTML modules translations get incorrectly filtered; should remain original. |
| February 6, 2026 at 10:14 am #17798990 | |
|
gerritG-2 |
this was incorrect |
| February 6, 2026 at 10:20 am #17798998 | |
|
gerritG-2 |
This is how the data should have been in the table wp_icl_string_translations: [dealer_map_top] <!-- ========================================================= --> [dealer_marker name="Bikecology e.K." address="Belziger Str.41, Berlin" tel="030-78703495" url="hidden link"] <!-- ... |
| February 6, 2026 at 8:56 pm #17801248 | |
|
Lauren |
Thanks for the detailed analysis — you’re right that the <br> tags are already present in wp_icl_string_translations. That confirms the formatting happens when the content is saved through the Classic Translation Editor, not later during rendering. However, this is expected behavior. Classic does not store raw code; it stores translated strings as formatted WordPress content. When HTML, comments, or shortcodes are pasted into Classic, WordPress normalizes line breaks, which results in <br> being inserted. The table is therefore storing exactly what Classic produced. Because of this, Classic cannot guarantee preservation of raw HTML or shortcode blocks with original newlines. This isn’t a database issue or a regression — it’s a limitation of using a text-based translation editor for code-like content. If the content must remain exact, it needs to be handled outside the Classic editor (e.g. editing the translated page directly in Beaver Builder, duplicating instead of translating, or using the Advanced Translation Editor, which handles builder data differently). Since you mentioned previously that Advanced Translation Editor isn’t an option for you, the safest workaround is to duplicate the page and translate it directly in Beaver Builder, rather than using the Classic Translation Editor for this content. This avoids WordPress formatting filters entirely and preserves the HTML exactly. If the WPML Classic Editor must be used, the only reliable alternative is to remove all line breaks and store the content as a single line, as any newline entered into Classic will be normalized into <br>. For example: [dealer_map_top]<!-- GERMANY -->[dealer_marker ...][dealer_marker ...][dealer_map_bottom] Use <!-- --> comments sparingly or remove them Unfortunately, Classic Editor cannot preserve raw HTML or code-like content with original formatting, and this cannot be changed at the database or editor level. |
| February 9, 2026 at 2:45 pm #17805667 | |
|
gerritG-2 |
Hi Lauren, Thanks for your kind response. This is not quite correct ,in my humble opinion, since we have the "code" tap activated, and as such, WPML must store the entered code data correctly. This has nothing to do with WordPress and it used to work correctly in the past as well. As such, one could argue that your whole above WordPress theory is invalid. Could you please remove all private content from this discussion; as we have not 'edit' button for these sections?!? D A G |
| February 9, 2026 at 10:12 pm #17806971 | |
|
Lauren |
Thanks for explaining your view — I understand why using the Code tab makes this behavior unexpected. However, even in Code view, the Classic Translation Editor stores content as translation strings, not protected raw code. The Code tab only affects how the field is displayed in the editor; it does not bypass the processing that occurs when the translation is saved. That’s why the <br> tags are already present in wp_icl_string_translations. While this may have appeared to work differently in the past, Classic has never guaranteed preservation of newline-sensitive code blocks. This behavior is expected and cannot be changed at the database or editor level. At this point, the available options remain the workarounds already outlined (duplicating and editing in Beaver Builder, isolating the content, or formatting without line breaks). Unfortunately, Classic cannot reliably preserve this type of code content by design. I have marked this entire ticket as private to make sure no private content from this discussion is reused going forward. |
| February 10, 2026 at 11:13 am #17808415 | |
|
gerritG-2 |
Hi Lauren, - Reply #17797691. It has to be orange and say "SHOW PRIVATE MESSAGE" - like the other ones. The rest should stay public for others with the same concerns. - Disagree here, it is just taking a form value out of a text area. You just need to remove a filtering bug in your PHP code. Of course, you can fix this bug in your Classic Editor. Do you want us to fix your code for you again? - In the past, we have had similar issues, where your support came up with rare and invalid excuses, and as such, we just showed your team the code to patch. We are fans of WPML, but please be honest here. Thanks. D A G |
| February 11, 2026 at 6:09 pm #17814062 | |
|
Lauren |
Thank you for your detailed explanations and patience. To make sure we’re giving you a completely accurate answer, I’ve escalated this to our 2nd tier/dev team so they can take a closer look. I want to verify internally whether this behavior is expected under Classic or if there’s something we’re overlooking. We’re definitely not trying to sidestep your concern — quite the opposite. I want to make sure we review this thoroughly and give you a confident, well-confirmed response. I’ll update you as soon as I hear back. |
| February 12, 2026 at 9:11 pm #17818906 | |
|
gerritG-2 |
Please, and requested, remove or make private Reply #17797691 "- Reply #17797691. It has to be orange and say "SHOW PRIVATE MESSAGE" - like the other ones. The rest should stay public for others with the same concerns." |
| February 13, 2026 at 4:19 pm #17821376 | |
|
Lauren |
That reply has been marked as private. Our development team highly encourages switching to the Advanced Translation Editor, and I explained that was not an option for your site. In order to further troubleshoot to see what is expected behaviour from the classic editor, I will need a copy of your site or a migration of your site. You can use the Duplicator plugin to create a copy, or I can set up a cloudways server site and we can migrate a copy of your site there if that's possible. Just let me know and I will send instructions if you prefer the migration. Otherwise, I have marked the next reply as private so that you can share the Duplicator files and credentials that we can log in to the duplicated site with. |
| February 13, 2026 at 9:32 pm #17821928 | |
|
gerritG-2 |
Hi Lauren, |
| February 17, 2026 at 3:35 pm #17829684 | |
|
Lauren |
Thanks — I followed your suggested approach on a clean sandbox (single Beaver Builder page, shortcodes separated by newlines, translated via Classic). I can confirm the behavior: the translated string stored in wp_icl_string_translations contains <br> between shortcode lines (e.g. [dealer_map_top]<br>[products …]<br>…) rather than preserving newline characters as entered. So yes, we were able to reproduce what you’re seeing, and it occurs at the time the Classic translation is saved. I’ve added these reproduction details to the escalation so our 2nd tier/dev team can confirm whether this is expected behavior for Classic or if there’s a path to store these fields without newline normalization. I will update here as soon as I have more information. |
| February 20, 2026 at 3:25 pm #17838918 | |
|
Lauren |
Our developers have tested a workaround that resolved the issue for them and updated the wpml-config.xml. Please making a small edit to the original page and then try retranslating the page. Keep in mind that if the translation in the classic editor is not currently 100% translated, you need to complete it first and then make the edit in the original and retranslate. If that does not resolve the issue you can manually add this to WPML -> Settings -> Custom XML and then repeat the steps above.
<wpml-config>
<beaver-builder-widgets>
<widget name="html">
<fields>
<field type="HTML" editor_type="AREA">html</field>
</fields>
</widget>
</beaver-builder-widgets>
</wpml-config>
Please let me know the results. |
