---
title: "Feature: #106640 - Localize enum labels in site settings definitions"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-106640-1766572100"
source: "Changelog/14.2/Feature-106640-LocalizeEnumLabelsInSiteSettingsDefinitions.rst"
typo3-version: "14.2"
typo3-major: 14
type: "feature"
issue: 106640
forge: "https://forge.typo3.org/issues/106640"
tags: ["YAML", "Backend", "ext:core"]
rendered: "2026-10-01T16:39:42+00:00"
---

# Feature: #106640 - Localize enum labels in site settings definitions {#feature-106640-1766572100}

See [forge#106640](https://forge.typo3.org/issues/106640)

## Description {#description}

Enum option labels in site settings definitions can now be localized
consistently.

This applies to all common enum declaration styles:

-   List-style enum declarations derive localization keys using
    `settings.<settingKey>.enum.<enumValue>` in the set labels file.
-   Map-style enum declarations are independent of that key schema. Only
    the configured label value is evaluated.
-   Map-style enum declarations with localization references
    (`LLL:...`) resolve these references.
-   Map-style enum declarations with literal labels keep these labels
    as-is.
-   Map-style key-only enum entries fall back to the enum value.
-   Map-style empty string labels remain empty strings.

## Example {#example}

**List-style enum declaration in settings.definitions.yaml**

```yaml
settings:
  my.enumSetting:
    type: string
    default: optionA
    enum:
      - optionA
      - optionB
```

**Matching labels in labels.xlf**

```xml
<trans-unit id="settings.my.enumSetting.enum.optionA">
  <source>Option A (localized)</source>
</trans-unit>
<trans-unit id="settings.my.enumSetting.enum.optionB">
  <source>Option B (localized)</source>
</trans-unit>
```

**Map-style enum declaration in settings.definitions.yaml**

```yaml
settings:
  my.enumSetting:
    type: string
    default: optionA
    enum:
      optionA: 'LLL:my_extension.labels:settings.custom.optionA' # Explicit LLL reference
      optionB: 'Literal Option B' # Literal label
      optionC: # Key-only map-style entry, falls back to enum value "optionC"
      optionD: '' # Empty label stays empty
```

**Referenced label in labels.xlf**

```xml
<trans-unit id="settings.custom.optionA">
  <source>Option A (localized)</source>
</trans-unit>
```

If you want to work with automatically derived keys in the set
`labels.xlf`, for example
`settings.<settingKey>.enum.<enumValue>`, omit enum labels in YAML
and use list-style enum declarations.

## Impact {#impact}

Integrators can localize enum options consistently using the same
resolution behavior as other setting labels.
