diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc index f59fb38..2a01dd7 100644 --- a/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -799,6 +799,8 @@ function language_content_settings_form(array $form, array $form_state, array $s } } + asort($labels); + $path = drupal_get_path('module', 'language'); $form = array( '#labels' => $labels, diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 6bbb5a7..476246f 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -201,7 +201,7 @@ function language_theme() { function language_entity_supported() { $supported = array(); foreach (entity_get_info() as $entity_type => $info) { - if (!empty($info['fieldable']) && !empty($info['translatable'])) { + if (!empty($info['translatable'])) { $supported[$entity_type] = $entity_type; } } diff --git a/core/modules/translation_entity/translation_entity.admin.inc b/core/modules/translation_entity/translation_entity.admin.inc index 7aa91bf..f8ece47 100644 --- a/core/modules/translation_entity/translation_entity.admin.inc +++ b/core/modules/translation_entity/translation_entity.admin.inc @@ -72,32 +72,42 @@ function _translation_entity_form_language_content_settings_form_alter(array &$f $dependent_options_settings = array(); foreach ($form['#labels'] as $entity_type => $label) { - foreach (entity_get_bundles($entity_type) as $bundle => $bundle_info) { - $form['settings'][$entity_type][$bundle]['translatable'] = array( - '#type' => 'checkbox', - '#default_value' => translation_entity_enabled($entity_type, $bundle), - ); + $entity_info = entity_get_info($entity_type); + // Only show the checkbox to enable translation if the bundles in the entity + // might have fields. + if (!empty($entity_info['fieldable'])) { + foreach (entity_get_bundles($entity_type) as $bundle => $bundle_info) { + // Only show the checkbox to enable translation if there are fields to + // translate. + $has_fields = field_info_instances($entity_type, $bundle); + if ($has_fields) { + $form['settings'][$entity_type][$bundle]['translatable'] = array( + '#type' => 'checkbox', + '#default_value' => translation_entity_enabled($entity_type, $bundle), + ); - // Here we do not want the widget to be altered and hold also the "Enable - // translation" checkbox, which would be redundant. Hence we add this key - // to be able to skip alterations. - $form['settings'][$entity_type][$bundle]['settings']['language']['#translation_entity_skip_alter'] = TRUE; + // Here we do not want the widget to be altered and hold also the + // "Enable translation" checkbox, which would be redundant. Hence we + // add this key to be able to skip alterations. + $form['settings'][$entity_type][$bundle]['settings']['language']['#translation_entity_skip_alter'] = TRUE; - // @todo Exploit field definitions once all core entities and field types - // are migrated to the Entity Field API. - foreach (field_info_instances($entity_type, $bundle) as $field_name => $instance) { - $field = field_info_field($field_name); - $form['settings'][$entity_type][$bundle]['fields'][$field_name] = array( - '#label' => $instance['label'], - '#type' => 'checkbox', - '#default_value' => $field['translatable'], - ); - $column_element = translation_entity_field_sync_widget($field, $instance); - if ($column_element) { - $form['settings'][$entity_type][$bundle]['columns'][$field_name] = $column_element; + // @todo Exploit field definitions once all core entities and field + // types are migrated to the Entity Field API. + foreach (field_info_instances($entity_type, $bundle) as $field_name => $instance) { + $field = field_info_field($field_name); + $form['settings'][$entity_type][$bundle]['fields'][$field_name] = array( + '#label' => $instance['label'], + '#type' => 'checkbox', + '#default_value' => $field['translatable'], + ); + $column_element = translation_entity_field_sync_widget($field, $instance); + if ($column_element) { + $form['settings'][$entity_type][$bundle]['columns'][$field_name] = $column_element; - if(isset($column_element['#options']['file'])) { - $dependent_options_settings["settings[{$entity_type}][{$bundle}][columns][{$field_name}]"] = array('file'); + if(isset($column_element['#options']['file'])) { + $dependent_options_settings["settings[{$entity_type}][{$bundle}][columns][{$field_name}]"] = array('file'); + } + } } } }