The Active Translation module is designed for internationalized sites where translated versions of content need to be displayed when available but if they're not the original, untranslated content should be displayed. If several regional versions of a language are available these will be used as substitutions.
Oct 12th, 2008: I'm looking for co-maintainer for this module so if you're using this module and have some development experience either open an issue or contact me. I personally have no plans to port this to Drupal 7 so if you're interested please consider taking over the module.
By default Drupal's node listings show all content. So if you translate a node, both the original and translations are displayed. The Internationalization module, another contrib project, tried to improve on this on this. It gives you several options for rewriting queries to list nodes. You can limit them to nodes that are:
- user's language
- user's language & language neutral
- user's language & site's default language OR language neutral
- site's default language & language neutral
If you only have two languages this works out well. Untranslated content is marked as language neutral, and once it is translated it you set the language on the original node. However this doesn't work when you have three or more languages. Once you set the language on the original it will disappear from listings in the languages that haven't yet been translated.
This is where Active Translation is designed to help. Its query rewriting displays nodes that are:
- language neutral & (translation in user's language OR original node)
This way your users always see all the content with no duplicates in other languages. If a translation is available they'll see that, otherwise they'll get the original, untranslated node.
If you're using views you may find the Select Translation module to be a useful alternative to this one.
This module was developed by sticky.