This project is not covered by Drupal’s security advisory policy.

This module is used to suppress WYSIWYG editing for translated versions of body text in a node. It achieves this by assessing all of the data in the node body, extracting all text strings, and then presenting each string in it's own editor.

What the editors see

In the base language:

  • Node editor shows body field with usual WYSIWYG editor
  • You write three paragraphs, add an image and some other tags

The translator arrives:

  • Translated node editor shows THREE body fields (one for each of the three paragraphs above)
  • Images and other tags are nowhere to be found but preserved in the background
  • Any links would also become a string for translation

Then... magic

When the translator saves the translated version of the page each of the individual strings they translated are stored in Drupal's locale database for re-usage later on.

After the strings are stored the body of the translated node is re-assembled using the exact same structure as the original body text using the base language node as the source structure. Images remain where they were, YouTube videos are preserved, HR tags right where they need to be. The translator couldn't access any of that.

What about if the source is updated?

The next time someone updates the source document the translated version remains in place until the next time someone edits the translation.

The translator, upon clicking edit, will see the previously translated strings are already filled in with the previous values. Any paragraphs or links that had changed will be blank - so the translator knows exactly which paragraph changed.

But... body text shouldn't go into the locale tables

Some might argue that putting strings of body text into Drupal's database of translations might make that database sorta unruly. The advantages to putting it there are many, the primary being that we re-use a lot of phrases and headings a lot in our WYSIWYG text. This eliminates all of the re-keying translated content within body text.

Where this philosophical diversion has some merit though is in the locale search. It should theoretically not be possible to search the strings there because changing them only affects future edits of nodes. Thus, changing a string produced by this body text could be updated within the locale module but it will not take effect until you re-save the translated node.*

*Yes you could do this programatically.


Visit the configuration page in the settings menu to enable this override for a particular node type. Currently all languages which are not default are intercepted by the WYSIWYG override. Enjoy!

Drupal 7

This module was developed for Drupal 6 because that is what our sites were running when the module was planned. We developed the module to be 100% inline with Drupal standards and intend to port the code to Drupal 7 and 8. If you wish to see this project come to D7 sooner please contact us.

Development of this module was sponsored by WebCDR with contributions from Ryan Weal and Michele Ann Jenkins.

Project Information