diff --git a/core/config/schema/core.data_types.schema.yml b/core/config/schema/core.data_types.schema.yml index 4ab0fd7..c6aca36 100644 --- a/core/config/schema/core.data_types.schema.yml +++ b/core/config/schema/core.data_types.schema.yml @@ -605,10 +605,10 @@ field.field_settings.boolean: type: mapping mapping: on_label: - type: string + type: label label: 'On label' off_label: - type: string + type: label label: 'Off label' field.value.boolean: diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php index a718808..cb7e0d1 100644 --- a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php +++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php @@ -8,6 +8,7 @@ namespace Drupal\config_translation\Tests; use Drupal\Component\Serialization\Json; +use Drupal\Component\Utility\Html; use Drupal\Component\Utility\SafeMarkup; use Drupal\Component\Utility\Unicode; use Drupal\Core\Language\Language; @@ -734,6 +735,46 @@ public function testFieldConfigTranslation() { } /** + * Tests the translation of a boolean field settings. + */ + public function testBooleanFieldConfigTranslation() { + // Add a test boolean field. + $field_name = strtolower($this->randomMachineName()); + FieldStorageConfig::create([ + 'field_name' => $field_name, + 'entity_type' => 'entity_test', + 'type' => 'boolean', + ])->save(); + + $bundle = strtolower($this->randomMachineName()); + entity_test_create_bundle($bundle); + $field = FieldConfig::create([ + 'field_name' => $field_name, + 'entity_type' => 'entity_test', + 'bundle' => $bundle, + ]); + + $on_label = 'On label (with HTML & things)'; + $field->setSetting('on_label', $on_label); + $off_label = 'Off label (with HTML & things)'; + $field->setSetting('off_label', $off_label); + $field->save(); + + $this->drupalLogin($this->translatorUser); + + $this->drupalGet("/entity_test/structure/$bundle/fields/entity_test.$bundle.$field_name/translate"); + $this->clickLink('Add'); + + // Checks the text of details summary element that surrounds the translation + // options. + $this->assertText(Html::escape(strip_tags($on_label)) . ' Boolean settings'); + + // Checks that the correct on and off labels appear on the form. + $this->assertEscaped($on_label); + $this->assertEscaped($off_label); + } + + /** * Test translation storage in locale storage. */ public function testLocaleDBStorage() {