diff --git a/core/lib/Drupal/Core/Field/FieldConfigBase.php b/core/lib/Drupal/Core/Field/FieldConfigBase.php index 7f81e58..e2a93f6 100644 --- a/core/lib/Drupal/Core/Field/FieldConfigBase.php +++ b/core/lib/Drupal/Core/Field/FieldConfigBase.php @@ -115,11 +115,11 @@ /** * Flag indicating whether the field is translatable. * - * Defaults to TRUE. + * Defaults to FALSE. * * @var bool */ - public $translatable = TRUE; + public $translatable = FALSE; /** * Default field value. diff --git a/core/modules/comment/src/Tests/CommentTranslationUITest.php b/core/modules/comment/src/Tests/CommentTranslationUITest.php index 64afbd7..3a6dd5e 100644 --- a/core/modules/comment/src/Tests/CommentTranslationUITest.php +++ b/core/modules/comment/src/Tests/CommentTranslationUITest.php @@ -9,7 +9,7 @@ use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; use Drupal\content_translation\Tests\ContentTranslationUITest; -use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests the Comment Translation UI. @@ -75,9 +75,9 @@ protected function getTranslatorPermissions() { */ function setupTestFields() { parent::setupTestFields(); - $field_storage = FieldStorageConfig::loadByName('comment', 'comment_body'); - $field_storage->translatable = TRUE; - $field_storage->save(); + $field = FieldConfig::loadByName('comment', $this->bundle, 'comment_body'); + $field->setTranslatable(TRUE); + $field->save(); } /** diff --git a/core/modules/comment/src/Tests/Views/CommentFieldFilterTest.php b/core/modules/comment/src/Tests/Views/CommentFieldFilterTest.php index a054288..eae5ee8 100644 --- a/core/modules/comment/src/Tests/Views/CommentFieldFilterTest.php +++ b/core/modules/comment/src/Tests/Views/CommentFieldFilterTest.php @@ -7,7 +7,7 @@ namespace Drupal\comment\Tests\Views; -use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\language\Entity\ConfigurableLanguage; /** @@ -46,9 +46,9 @@ function setUp() { // Make the comment body field translatable. The title is already // translatable by definition. - $field_storage = FieldStorageConfig::loadByName('comment', 'comment_body'); - $field_storage->translatable = TRUE; - $field_storage->save(); + $field = FieldConfig::loadByName('comment', $this->comment->bundle(), 'comment_body'); + $field->setTranslatable(TRUE); + $field->save(); // Set up comment titles. $this->commentTitles = array( diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php index 98a9883..83b1c63 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php @@ -225,26 +225,21 @@ protected function assertSettings($entity_type, $bundle, $enabled, $edit) { * Tests that field 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_storage = array( - 'field_name' => 'article_text', - 'entity_type' => 'node', - 'type' => 'text', - ); - entity_create('field_storage_config', $field_storage)->save(); - $field = array( + // translation. Create an extra field to be used for this purpose. We use + // the UI to test our form alterations. + $edit = array( + 'new_storage_type' => 'text', + 'label' => 'Test', 'field_name' => 'article_text', - 'entity_type' => 'node', - 'bundle' => 'article', ); - entity_create('field_config', $field)->save(); + $this->drupalPostForm('admin/structure/types/manage/article/fields/add-field', $edit, 'Save and continue'); // Tests that field doesn't have translatable setting if bundle is not // translatable. - $path = 'admin/structure/types/manage/article/fields/node.article.body'; + $path = 'admin/structure/types/manage/article/fields/node.article.field_article_text'; $this->drupalGet($path); + $this->assertFieldByXPath('//input[@id="edit-field-translatable" and @disabled="disabled"]'); $this->assertText('To configure translation for this field, enable language support for this type.', 'No translatable setting for field.'); // Tests that field has translatable setting if bundle is translatable. @@ -253,7 +248,7 @@ function testFieldTranslatableSettingsUI() { 'entity_types[node]' => TRUE, 'settings[node][article][settings][language][language_alterable]' => TRUE, 'settings[node][article][translatable]' => TRUE, - 'settings[node][article][fields][article_text]' => TRUE, + 'settings[node][article][fields][field_article_text]' => TRUE, ); $this->assertSettings('node', 'article', TRUE, $edit); $this->drupalGet($path); diff --git a/core/modules/content_translation/src/Tests/ContentTranslationStandardFieldsTest.php b/core/modules/content_translation/src/Tests/ContentTranslationStandardFieldsTest.php index 1b0cd31..211810a 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationStandardFieldsTest.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationStandardFieldsTest.php @@ -62,14 +62,19 @@ public function testFieldTranslatableArticle() { $path = 'admin/config/regional/content-language'; $this->drupalGet($path); - // Check comment checkbox. - $this->assertFieldByXPath("//input[@id='edit-settings-node-article-fields-comment' and @checked='checked']"); + // Check content block fields. + $this->assertFieldByXPath("//input[@id='edit-settings-block-content-basic-fields-body' and not(@checked)]"); - // Check image checkbox. - $this->assertFieldByXPath("//input[@id='edit-settings-node-article-fields-field-image' and @checked='checked']"); + // Check comment fields. + $this->assertFieldByXPath("//input[@id='edit-settings-comment-comment-fields-comment-body' and not(@checked)]"); - // Check tag checkbox. - $this->assertFieldByXPath("//input[@id='edit-settings-node-article-fields-field-tags' and @checked='checked']"); + // Check node fields. + $this->assertFieldByXPath("//input[@id='edit-settings-node-article-fields-comment' and not(@checked)]"); + $this->assertFieldByXPath("//input[@id='edit-settings-node-article-fields-field-image' and not(@checked)]"); + $this->assertFieldByXPath("//input[@id='edit-settings-node-article-fields-field-tags' and not(@checked)]"); + + // Check user fields. + $this->assertFieldByXPath("//input[@id='edit-settings-user-user-fields-user-picture' and not(@checked)]"); } } diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php index a343190..c3edad2 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php @@ -54,7 +54,6 @@ protected function setupTestFields() { 'entity_type' => $this->entityTypeId, 'type' => 'image', 'cardinality' => $this->cardinality, - 'translatable' => TRUE, ))->save(); entity_create('field_config', array( @@ -62,6 +61,7 @@ protected function setupTestFields() { 'field_name' => $this->fieldName, 'bundle' => $this->entityTypeId, 'label' => 'Test translatable image field', + 'translatable' => TRUE, 'third_party_settings' => array( 'content_translation' => array( 'translation_sync' => array( diff --git a/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php b/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php index dda1ff2..2dea201 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php @@ -12,7 +12,7 @@ use Drupal\simpletest\WebTestBase; /** - * Tests content translation workflows. + * Base class for content translation tests. */ abstract class ContentTranslationTestBase extends WebTestBase { @@ -181,13 +181,13 @@ protected function setupTestFields() { 'type' => 'string', 'entity_type' => $this->entityTypeId, 'cardinality' => 1, - 'translatable' => TRUE, ))->save(); entity_create('field_config', array( 'entity_type' => $this->entityTypeId, 'field_name' => $this->fieldName, 'bundle' => $this->bundle, 'label' => 'Test translatable text-field', + 'translatable' => TRUE, ))->save(); entity_get_form_display($this->entityTypeId, $this->bundle, 'default') ->setComponent($this->fieldName, array( @@ -208,7 +208,7 @@ protected function setupTestFields() { * (optional) The entity bundle, if the entity uses bundles. Defaults to * NULL. If left NULL, $this->bundle will be used. * - * @return + * @return string * The entity id. */ protected function createEntity($values, $langcode, $bundle_name = NULL) { diff --git a/core/modules/field/src/Tests/TranslationTest.php b/core/modules/field/src/Tests/TranslationTest.php index bbf16a6..8cf744d 100644 --- a/core/modules/field/src/Tests/TranslationTest.php +++ b/core/modules/field/src/Tests/TranslationTest.php @@ -85,7 +85,6 @@ protected function setUp() { 'entity_type' => $this->entity_type, 'type' => 'test_field', 'cardinality' => 4, - 'translatable' => TRUE, ); $this->fieldStorage = entity_create('field_storage_config', $this->field_storage_definition); $this->fieldStorage->save(); @@ -93,6 +92,7 @@ protected function setUp() { $this->field_definition = array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', + 'translatable' => TRUE, ); $this->field = entity_create('field_config', $this->field_definition); $this->field->save(); diff --git a/core/modules/field/src/Tests/TranslationWebTest.php b/core/modules/field/src/Tests/TranslationWebTest.php index 1368a16..24a7616 100644 --- a/core/modules/field/src/Tests/TranslationWebTest.php +++ b/core/modules/field/src/Tests/TranslationWebTest.php @@ -63,7 +63,6 @@ protected function setUp() { 'entity_type' => $this->entity_type, 'type' => 'test_field', 'cardinality' => 4, - 'translatable' => TRUE, ); entity_create('field_storage_config', $field_storage)->save(); $this->fieldStorage = entity_load('field_storage_config', $this->entity_type . '.' . $this->field_name); @@ -71,6 +70,7 @@ protected function setUp() { $field = array( 'field_storage' => $this->fieldStorage, 'bundle' => $this->entity_type, + 'translatable' => TRUE, ); entity_create('field_config', $field)->save(); $this->field = FieldConfig::load($this->entity_type . '.' . $field['bundle'] . '.' . $this->field_name); diff --git a/core/modules/field_ui/src/Form/FieldStorageAddForm.php b/core/modules/field_ui/src/Form/FieldStorageAddForm.php index a9fb7f6..e9f15a7 100644 --- a/core/modules/field_ui/src/Form/FieldStorageAddForm.php +++ b/core/modules/field_ui/src/Form/FieldStorageAddForm.php @@ -223,11 +223,13 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t ); } - // Place the 'translatable' property as an explicit value so that - // contrib modules can form_alter() the value for newly created fields. + // Place the 'translatable' property as an explicit value so that contrib + // modules can form_alter() the value for newly created fields. By default + // we create field storage as translatable so it will be possible to enable + // translation at field level. $form['translatable'] = array( '#type' => 'value', - '#value' => FALSE, + '#value' => TRUE, ); $form['actions'] = array('#type' => 'actions'); diff --git a/core/modules/file/src/Tests/FileFieldTestBase.php b/core/modules/file/src/Tests/FileFieldTestBase.php index 0cf36c3..af365ec 100644 --- a/core/modules/file/src/Tests/FileFieldTestBase.php +++ b/core/modules/file/src/Tests/FileFieldTestBase.php @@ -105,6 +105,7 @@ function attachFileField($name, $entity_type, $bundle, $field_settings = array() 'bundle' => $bundle, 'required' => !empty($field_settings['required']), 'settings' => $field_settings, + 'translatable' => TRUE, ); entity_create('field_config', $field)->save(); diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php index f73ac3b..d0e1ee2 100644 --- a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php +++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php @@ -58,7 +58,6 @@ protected function setUp() { 'entity_type' => 'node', 'type' => 'boolean', 'cardinality' => 1, - 'translatable' => TRUE, 'settings' => array( 'on_label' => 'Private', 'off_label' => 'Not private', @@ -69,6 +68,7 @@ protected function setUp() { entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'page', + 'translatable' => TRUE, 'widget' => array( 'type' => 'options_buttons', ), diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php index ad82dea..e319de6 100644 --- a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php +++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php @@ -49,17 +49,17 @@ protected function setUp() { 'entity_type' => 'node', 'type' => 'boolean', 'cardinality' => 1, - 'translatable' => TRUE, - 'settings' => array( - 'on_label' => 'Private', - 'off_label' => 'Not private', - ), + 'settings' => array( + 'on_label' => 'Private', + 'off_label' => 'Not private', + ), )); $field_storage->save(); entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'page', + 'translatable' => TRUE, 'widget' => array( 'type' => 'options_buttons', ), diff --git a/core/modules/node/src/Tests/Views/NodeFieldFilterTest.php b/core/modules/node/src/Tests/Views/NodeFieldFilterTest.php index 599b126..13cc3f9 100644 --- a/core/modules/node/src/Tests/Views/NodeFieldFilterTest.php +++ b/core/modules/node/src/Tests/Views/NodeFieldFilterTest.php @@ -7,7 +7,7 @@ namespace Drupal\node\Tests\Views; -use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\language\Entity\ConfigurableLanguage; /** @@ -50,9 +50,9 @@ function setUp() { // Make the body field translatable. The title is already translatable by // definition. - $field_storage = FieldStorageConfig::loadByName('node', 'body'); - $field_storage->translatable = TRUE; - $field_storage->save(); + $field = FieldConfig::loadByName('node', 'page', 'body'); + $field->setTranslatable(TRUE); + $field->save(); // Set up node titles. $this->node_titles = array( diff --git a/core/modules/system/src/Tests/Entity/EntityQueryTest.php b/core/modules/system/src/Tests/Entity/EntityQueryTest.php index 7062af2..26004b5 100644 --- a/core/modules/system/src/Tests/Entity/EntityQueryTest.php +++ b/core/modules/system/src/Tests/Entity/EntityQueryTest.php @@ -68,7 +68,6 @@ protected function setUp() { 'entity_type' => 'entity_test_mulrev', 'type' => $field_type, 'cardinality' => 2, - 'translatable' => TRUE, )); $field_storage->save(); $field_storages[] = $field_storage; @@ -85,6 +84,7 @@ protected function setUp() { entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $bundle, + 'translatable' => TRUE, ))->save(); } $bundles[] = $bundle; diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php index b7fe1e9..cd51b13 100644 --- a/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php +++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php @@ -66,13 +66,13 @@ function setUp() { 'entity_type' => 'taxonomy_term', 'type' => 'text', )); - $field->translatable = TRUE; $field->save(); entity_create('field_config', array( 'field_name' => 'field_foo', 'entity_type' => 'taxonomy_term', 'label' => 'Foo', 'bundle' => 'views_testing_tags', + 'translatable' => TRUE, ))->save(); // Create term with translations. diff --git a/core/profiles/standard/config/install/field.field.block_content.basic.body.yml b/core/profiles/standard/config/install/field.field.block_content.basic.body.yml index e115700..9600cdc 100644 --- a/core/profiles/standard/config/install/field.field.block_content.basic.body.yml +++ b/core/profiles/standard/config/install/field.field.block_content.basic.body.yml @@ -13,7 +13,6 @@ bundle: basic label: Body description: '' required: false -translatable: true default_value: { } default_value_callback: '' settings: diff --git a/core/profiles/standard/config/install/field.field.comment.comment.comment_body.yml b/core/profiles/standard/config/install/field.field.comment.comment.comment_body.yml index 30aaabe..795a157 100644 --- a/core/profiles/standard/config/install/field.field.comment.comment.comment_body.yml +++ b/core/profiles/standard/config/install/field.field.comment.comment.comment_body.yml @@ -13,7 +13,6 @@ bundle: comment label: Comment description: '' required: true -translatable: true default_value: { } default_value_callback: '' settings: { } diff --git a/core/profiles/standard/config/install/field.field.node.article.body.yml b/core/profiles/standard/config/install/field.field.node.article.body.yml index e2cdb3a..0d43bd9 100644 --- a/core/profiles/standard/config/install/field.field.node.article.body.yml +++ b/core/profiles/standard/config/install/field.field.node.article.body.yml @@ -13,7 +13,6 @@ bundle: article label: Body description: '' required: false -translatable: true default_value: { } default_value_callback: '' settings: diff --git a/core/profiles/standard/config/install/field.field.node.article.comment.yml b/core/profiles/standard/config/install/field.field.node.article.comment.yml index 932daff..5107a1f 100644 --- a/core/profiles/standard/config/install/field.field.node.article.comment.yml +++ b/core/profiles/standard/config/install/field.field.node.article.comment.yml @@ -13,7 +13,6 @@ bundle: article label: Comments description: '' required: true -translatable: true default_value: - status: 2 diff --git a/core/profiles/standard/config/install/field.field.node.page.body.yml b/core/profiles/standard/config/install/field.field.node.page.body.yml index 57bb0b0..e0f2b84 100644 --- a/core/profiles/standard/config/install/field.field.node.page.body.yml +++ b/core/profiles/standard/config/install/field.field.node.page.body.yml @@ -13,7 +13,6 @@ bundle: page label: Body description: '' required: false -translatable: true default_value: { } default_value_callback: '' settings: diff --git a/core/profiles/standard/config/install/field.storage.user.user_picture.yml b/core/profiles/standard/config/install/field.storage.user.user_picture.yml index e4d4960..f55c0e7 100644 --- a/core/profiles/standard/config/install/field.storage.user.user_picture.yml +++ b/core/profiles/standard/config/install/field.storage.user.user_picture.yml @@ -15,7 +15,6 @@ settings: module: image locked: false cardinality: 1 -translatable: false indexes: target_id: - target_id