diff -u b/core/modules/field/field.module b/core/modules/field/field.module --- b/core/modules/field/field.module +++ b/core/modules/field/field.module @@ -335,7 +335,7 @@ * required if there are any active fields of that type. */ function field_system_info_alter(&$info, $file, $type) { - // It's not safe to call field_read_fields during maintenance mode. + // It is not safe to call field_read_fields() during maintenance mode. if ($type == 'module' && module_hook($file->name, 'field_info') && !defined('MAINTENANCE_MODE')) { $fields = field_read_fields(array('module' => $file->name), array('include_deleted' => TRUE)); if ($fields) { @@ -537,8 +537,8 @@ // Get both deleted and non-deleted field definitions. $fields = array(); - foreach (config_get_storage_names_with_prefix('field.field') as $uuid) { - $field = config($uuid)->get(); + foreach (config_get_storage_names_with_prefix('field.field') as $name) { + $field = config($name)->get(); $fields[$field['uuid']] = $field; } $deleted_fields = state()->get('field.field.deleted') ?: array(); @@ -575,8 +575,7 @@ } } - // Set fields which field type module or storage module is absent to - // 'inactive'. + // Set fields with missing field type or storage modules to inactive. foreach ($fields as $uuid => &$field) { if (!isset($modules[$field['module']]) && $field['active']) { $field['active'] = FALSE; reverted: --- b/core/modules/field/field.multilingual.inc +++ a/core/modules/field/field.multilingual.inc @@ -200,10 +200,7 @@ * TRUE if the field can be translated. */ function field_is_translatable($entity_type, $field) { + return $field['translatable'] && field_has_translation_handler($entity_type); - // See http://drupal.org/node/1862758#comment-7035586 - if (!empty($field)) { - return $field['translatable'] && field_has_translation_handler($entity_type); - } } /**