I hust had the same problem, and after some digging in the source code of the plugin, I found a clean solution. In your functions.php file, add the following two lines:
remove_filter('the_content', 'qtrans_useCurrentLanguageIfNotFoundShowAvailable', 0);
add_filter('the_content', 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage', 0);
Pretty self-explanatory, right? ?? …and to hide the (sometimes not very useful) language in brackets if displaying the default language, also add this line:
update_option('mqtranslate_show_displayed_language_prefix', '0');
EDIT #1:
Of course, you can do the same for the_excerpt and the_excerpt_rss. Just duplicate the lines above and replace "the_content"
with "the_excerpt"
or "the_excerpt_rss"
.
A good place to find all available (m)qtranslate hooks is in the file mqtranslate_hooks.php.
EDIT #2:
Maybe it would be a good idea to hide the language in brackets for normal visitors, but to show it to logged in users, so that they have a hint that content is untranslated. Put this in your function instead of the update_option
line above (that way you will also save one database call):
global $q_config;
if( current_user_can("edit_posts") ) {
$q_config["show_displayed_language_prefix"] = true;
} else {
$q_config["show_displayed_language_prefix"] = false;
}