+
+ $bundles = [];
+ $bundles[] = $bundle = NodeType::create(['type' => 'bundle1']);
+ $bundle->save();
+ $bundles[] = $bundle = NodeType::create(['type' => 'bundle2']);
+ $bundle->save();
+
+ // Make the first field translatable on all bundles.
+ $field = FieldConfig::create([
+ 'field_name' => $field_names[1],
+ 'entity_type' => 'node',
+ 'bundle' => $bundles[0]->id(),
+ 'translatable' => TRUE,
+ ]);
+ $field->save();
+ $field = FieldConfig::create([
+ 'field_name' => $field_names[1],
+ 'entity_type' => 'node',
+ 'bundle' => $bundles[1]->id(),
+ 'translatable' => TRUE,
+ ]);
+ $field->save();
+
+ // Make the second field not translatable on any bundle.
+ $field = FieldConfig::create([
+ 'field_name' => $field_names[2],
+ 'entity_type' => 'node',
+ 'bundle' => $bundles[0]->id(),
+ 'translatable' => FALSE,
+ ]);
+ $field->save();
+ $field = FieldConfig::create([
+ 'field_name' => $field_names[2],
+ 'entity_type' => 'node',
+ 'bundle' => $bundles[1]->id(),
+ 'translatable' => FALSE,
+ ]);
+ $field->save();
+
+ // Make the last field translatable on some bundles.
+ $field = FieldConfig::create([
+ 'field_name' => $field_names[3],
+ 'entity_type' => 'node',
+ 'bundle' => $bundles[0]->id(),
+ 'translatable' => TRUE,
+ ]);
+ $field->save();
+ $field = FieldConfig::create([
+ 'field_name' => $field_names[3],
+ 'entity_type' => 'node',
+ 'bundle' => $bundles[1]->id(),
+ 'translatable' => FALSE,
+ ]);
+ $field->save();
+
+ // Create some example content.
+ ConfigurableLanguage::create([
+ 'id' => 'es',
+ ])->save();
+ ConfigurableLanguage::create([
+ 'id' => 'fr',
+ ])->save();
+
+ $config = ContentLanguageSettings::loadByEntityTypeBundle('node', $bundles[0]->id());
+ $config->setDefaultLangcode('es')
+ ->setLanguageAlterable(TRUE)
+ ->save();
+ $config = ContentLanguageSettings::loadByEntityTypeBundle('node', $bundles[1]->id());
+ $config->setDefaultLangcode('es')
+ ->setLanguageAlterable(TRUE)
+ ->save();
+
+ $node = Node::create([
+ 'title' => 'Test title ' . $bundles[0]->id(),
+ 'type' => $bundles[0]->id(),
+ 'langcode' => 'es',
+ $field_names[1] => 'field name 1: es',
+ $field_names[2] => 'field name 2: es',
+ $field_names[3] => 'field name 3: es',
+ ]);
+ $node->save();
+ $this->translationNodes[] = $node;
+ $translation = $node->addTranslation('fr');
+ $translation->{$field_names[1]}->value = 'field name 1: fr';
+ $translation->{$field_names[3]}->value = 'field name 3: fr';
+ $translation->title->value = $node->title->value;
+ $translation->save();
+
+ $node = Node::create([
+ 'title' => 'Test title ' . $bundles[1]->id(),
+ 'type' => $bundles[1]->id(),
+ 'langcode' => 'es',
+ $field_names[1] => 'field name 1: es',
+ $field_names[2] => 'field name 2: es',
+ $field_names[3] => 'field name 3: es',
+ ]);
+ $node->save();
+ $this->translationNodes[] = $node;
+ $translation = $node->addTranslation('fr');
+ $translation->{$field_names[1]}->value = 'field name 1: fr';
+ $translation->title->value = $node->title->value;
+ $translation->save();
+