diff --git a/core/modules/translation_entity/lib/Drupal/translation_entity/Tests/EntityTranslationSettingsTest.php b/core/modules/translation_entity/lib/Drupal/translation_entity/Tests/EntityTranslationSettingsTest.php
index 41600ac..6caba42 100644
--- a/core/modules/translation_entity/lib/Drupal/translation_entity/Tests/EntityTranslationSettingsTest.php
+++ b/core/modules/translation_entity/lib/Drupal/translation_entity/Tests/EntityTranslationSettingsTest.php
@@ -19,7 +19,7 @@ class EntityTranslationSettingsTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('language', 'translation_entity', 'comment');
+  public static $modules = array('language', 'translation_entity', 'comment', 'field_ui');
 
   public static function getInfo() {
     return array(
@@ -37,7 +37,7 @@ function setUp() {
     $this->drupalCreateContentType(array('type' => 'article'));
     $this->drupalCreateContentType(array('type' => 'page'));
 
-    $admin_user = $this->drupalCreateUser(array('administer languages', 'administer entity translation'));
+    $admin_user = $this->drupalCreateUser(array('administer languages', 'administer entity translation', 'administer node fields'));
     $this->drupalLogin($admin_user);
   }
 
@@ -119,4 +119,43 @@ protected function assertSettings($entity_type, $bundle, $enabled, $edit) {
     return $this->assertEqual(translation_entity_enabled($entity_type, $bundle), $enabled, $message);
   }
 
+  /**
+   * Tests that field instance setting depends on bundle translatability.
+   */
+  function testFieldTranslatableSettingsUI() {
+
+    // At least one field needs to be translatable to enable article for
+    // translation. Create an extra field to be used for this purpose.
+    $field = array(
+      'field_name' => 'article_text',
+      'type' => 'text',
+    );
+    field_create_field($field);
+    $instance = array(
+      'field_name' => 'article_text',
+      'entity_type' => 'node',
+      'bundle' => 'article',
+    );
+    field_create_instance($instance);
+
+    // Tests that field instance doesn't have translatable setting if bundle
+    // is not translatable.
+    $path = 'admin/structure/types/manage/article/fields/body/field-settings';
+    $this->drupalGet($path);
+    $this->assertNoText('Enable translation', 'No translatable setting for field.');
+
+    // Tests that field instance has translatable setting if bundle is
+    // translatable. Note: this field instance is not translatable when
+    // enable bundle translatability.
+    $edit = array(
+      'entity_types[node]' => TRUE,
+      'settings[node][article][settings][language][language_show]' => TRUE,
+      'settings[node][article][translatable]' => TRUE,
+      'settings[node][article][fields][article_text]' => TRUE,
+    );
+    $this->assertSettings('node', 'article', TRUE, $edit);
+    $this->drupalGet($path);
+    $this->assertText('Enable translation', 'Translatable setting is available for field.');
+  }
+
 }
diff --git a/core/modules/translation_entity/translation_entity.module b/core/modules/translation_entity/translation_entity.module
index 0167180..d38dbb2 100644
--- a/core/modules/translation_entity/translation_entity.module
+++ b/core/modules/translation_entity/translation_entity.module
@@ -735,34 +735,41 @@ function translation_entity_field_extra_fields() {
  */
 function translation_entity_form_field_ui_field_settings_form_alter(array &$form, array &$form_state, $form_id) {
   $field = $form['#field'];
+  $entity_type = $form['#entity_type'];
+  $bundle = $form['#bundle'];
   $field_name = $field['field_name'];
+
+  $bundle_is_translatable = translation_entity_enabled($entity_type, $bundle);
+  $field_has_data = field_has_data($field);
   $translatable = $field['translatable'];
-  $label = t('Field translation');
-
-  if (field_has_data($field)) {
-    $form['field']['translatable'] = array(
-      '#type' => 'item',
-      '#title' => $label,
-      '#attributes' => array('class' => 'translatable'),
-      'link' => array(
-        '#type' => 'link',
-        '#prefix' => t('This field has data in existing content.') . ' ',
-        '#title' => !$translatable ? t('Enable translation') : t('Disable translation'),
-        '#href' => 'admin/config/regional/translation_entity/translatable/' . $field_name,
-        '#options' => array('query' => drupal_get_destination()),
-        '#access' => user_access('administer entity translation'),
-      ),
-    );
-  }
-  else {
-    $form['field']['translatable'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Users may translate this field.'),
-      '#default_value' => $translatable,
-    );
-  }
 
-  $form['field']['translatable']['#weight'] = 20;
+  $form['field']['translatable'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Translatable'),
+    '#default_value' => $translatable,
+    '#disabled' => $field_has_data || !$bundle_is_translatable,
+    '#weight' => 20,
+  );
+  // Provide helpful pointers for administrators.
+  if (user_access('administer entity translation')) {
+    if (field_has_data($field)) {
+      $toggle_url = url('admin/config/regional/translation_entity/translatable/' . $field_name, array(
+        'query' => drupal_get_destination(),
+      ));
+      $form['field']['translatable']['#description'] = t('This field has data in existing content. <a href="@toggle-translatable-url">@toggle-label</a>.', array(
+        '@toggle-translatable-url' => $toggle_url,
+        '@toggle-label' => !$translatable ? t('Associate all field values with a language') : t('Remove language association from all field values'),
+      ));
+    }
+    elseif (!$bundle_is_translatable) {
+      $toggle_url = url('admin/config/regional/content-language', array(
+        'query' => drupal_get_destination(),
+      ));
+      $form['field']['translatable']['#description'] = t('To enable translation of this field, <a href="@language-settings-url">enable language support</a> for this type.', array(
+        '@language-settings-url' => $toggle_url,
+      ));
+    }
+  }
 }
 
 /**
