diff --git a/field_collection.entity.inc b/field_collection.entity.inc index fe20ed9..bfc2b96 100644 --- a/field_collection.entity.inc +++ b/field_collection.entity.inc @@ -476,17 +476,21 @@ class FieldCollectionItemEntity extends Entity { } $source_language = isset($source_language) ? $source_language : $host_et_handler->getLanguage(); $target_languages = array_diff($host_languages, array($source_language)); - $fields = array_keys(field_info_instances('field_collection_item', $this->field_name)); + + $fields_instances = array_keys(field_info_instances('field_collection_item', $this->field_name)); + $fields = field_info_fields(); foreach ($fields as $translatable_field) { - foreach ($target_languages as $langcode) { - if (isset($this->{$translatable_field}[$source_language])) { - $this->{$translatable_field}[$langcode] = - $this->{$translatable_field}[$source_language]; + if ($fields[$translatable_field]['translatable'] == 1) { + foreach ($target_languages as $langcode) { + if (isset($this->{$translatable_field}[$source_language])) { + $this->{$translatable_field}[$langcode] = + $this->{$translatable_field}[$source_language]; + } + } + if ($source_language == LANGUAGE_NONE && count($this->{$translatable_field}) > 1) { + $this->{$translatable_field}[$source_language] = NULL; } - } - if ($source_language == LANGUAGE_NONE && count($this->{$translatable_field}) > 1) { - $this->{$translatable_field}[$source_language] = NULL; } } }