There is a bug when both Node Translation and Entity Translation are enabled for the same Field collection in different Node types.
This relies on latest patch in #1344672: Field Collection: Field translation (entity_translation) support. for entity translation.

How to reproduce.
1) Add two languages to the site English and Spanish.
2) Create Node Type A -> uses Entity Translation.
3) Add Field Collection field "field_fc" to node type A.
4) Add field_text into FC "field_fc".
5) Enable entity translation for Field collections at admin/config/regional/entity_translation.
6) Enable translation for field_text.

7) Create Node Type B -> uses Node Translation.
8) Add the same field collection "field_fc".

9) Create a node of type B in English, and enter value "hello" for the text field in the FC, save the node.
10) Click on translate tab, and click to add a Spanish translation.

Expected result -> field_text should contain value from original english node "hello"
Actual result -> the field is empty.

11) If you save the translation, it will show the original "hello" value, if you have language fallback enabled.

Cause of problem: field_collection_field_widget_form() tries to load the values for field_text in the "es" langcode, but the actual values are stored in the "en" langcode. This makes the widget not display anything. But if you save the node, it will still store the "hello" text in the "en" langcode.

Other field type have this fixed for them because of translation_node_prepare().

Proposed resolution: Create a function for field_collections that would do something similar to translation_node_prepare(), moving the values from the source langcode to the target langcode.

Comments

james.williams’s picture

I don't think this is limited to node translation - as far as I can see, source values aren't loaded into a new translation for node types using entity_translation either. (I have this issue, and I only have entity_translation enabled & configured, I do not have core's content translation enabled at all.)