I just discovered that the it seems that taxonomy terms don't have a proper language fallback.
The reason is that we assume that the fallback is done by the locale module itself. And while that works for nodes it seems to fail on taxonomy terms.

The reason seems to be that the locale module only handles language fallback on entity types with registered locale translation handler (Condition: field_has_translation_handler($context['entity_type'], 'locale')).
Unfortunately the locale translation handler is only registered for nodes not for terms.
Thus terms are ignored in locale_field_language_alter() and because we assume that locale handles all the fallback cases besides unpublished translations they are also ignored in entity_translation_field_language_alter().

Attached patch adds an elseif to catch entity translations where the locale module missed.

Comments

plach’s picture

Somewhere in my mind I was aware of this, but never posted an issue. The approach looks good, just let me test the patch and then I'll commit it.

plach’s picture

Status: Needs review » Fixed

Committed, thanks!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

  • Commit b05ebf7 on master, et-permissions-1829630, factory, et-fc, revisions authored by das-peter, committed by plach:
    - #1293638 by das-peter: Fixed Language fallback on Taxonomy Terms (or...

  • Commit b05ebf7 on master, et-permissions-1829630, factory, et-fc, revisions, workbench authored by das-peter, committed by plach:
    - #1293638 by das-peter: Fixed Language fallback on Taxonomy Terms (or...