Quick Summary
This applies to any content type and/or field where translation is enabled.

If you translate a node such that the node field contains an array of languages that is a subset of the site's languages, then selecting a language that doesn't appear in the node automatically loads the content for the first language in your list.

So in the screenshot, for example, if you look at $node->body is has the following languages:
['bg', 'en', 'pt-br', 'ru', 'es']
Since the content hasn't been translated to Inpuniak ('ik'), I would think the content should appear in the site's default language (if the language appears in the list at all).

But as you can see in the screenshot, Bulgarian is being loaded instead because it appears in the list first in the second screenshot. If I change the order of the languages in the second screenshot, the first language in the list is what appears instead of the language clearly marked default.

More Details just in case

I'm running Drupal 7.12 on Apache2 using postgres as my database. I managed to edit the target languages by using the Lingotek module, but I believe this could/should happen when using the Entity Translation module too since it seems to be a bug in core rather than the added modules. I'm the active developer of the Lingotek module, and we aren't hooking into the node display such that it overwrites the display language. We only save to the node and let Drupal handle the display based on the language selected, kind of like in Entity Translation when you save to a target language. Entity translation gives you the UI to translate within drupal, whereas Lingotek gives you tools to translate from Lingotek's platform and automatically updates the content based on those translations.

screenshot11.png35.88 KBsblatnick
screenshot10.png38.98 KBsblatnick
Members fund testing for the Drupal project. Drupal Association Learn more


attiks’s picture

Status: Needs review » Needs work