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() {