diff --git a/typo3/sysext/core/Classes/Site/Set/YamlSetDefinitionProvider.php b/typo3/sysext/core/Classes/Site/Set/YamlSetDefinitionProvider.php
index 7d208fdb647a16e480cfbb6c34af0af2b49e87da..f8e079db2d684efbe1766048e83e3cbf81f1b260 100644
--- a/typo3/sysext/core/Classes/Site/Set/YamlSetDefinitionProvider.php
+++ b/typo3/sysext/core/Classes/Site/Set/YamlSetDefinitionProvider.php
@@ -89,7 +89,18 @@ class YamlSetDefinitionProvider
     {
         try {
             $settingsDefinitions = [];
+            $labels = $set['labels'] ?? null;
+            unset($set['labels']);
+
+            if ($labels) {
+                $set['label'] ??= 'LLL:' . $labels . ':label';
+            }
+
             foreach (($set['settingsDefinitions'] ?? []) as $setting => $options) {
+                if ($labels) {
+                    $options['label'] ??= 'LLL:' . $labels . ':settings.' . $setting;
+                    $options['description'] ??= 'LLL:' . $labels . ':settings.description.' . $setting;
+                }
                 try {
                     $definition = new SettingDefinition(...[...['key' => $setting], ...$options]);
                 } catch (\Error $e) {
diff --git a/typo3/sysext/core/Classes/Site/TcaSiteSetCollector.php b/typo3/sysext/core/Classes/Site/TcaSiteSetCollector.php
index 0118312270799286f0486807f33166793b2dcc94..cb8c439f9dda9d70ac6caceb97098e94245f27e9 100644
--- a/typo3/sysext/core/Classes/Site/TcaSiteSetCollector.php
+++ b/typo3/sysext/core/Classes/Site/TcaSiteSetCollector.php
@@ -18,6 +18,7 @@ declare(strict_types=1);
 namespace TYPO3\CMS\Core\Site;
 
 use Symfony\Component\DependencyInjection\Attribute\Autoconfigure;
+use TYPO3\CMS\Core\Localization\LanguageService;
 use TYPO3\CMS\Core\Site\Set\SetCollector;
 
 /**
@@ -34,9 +35,14 @@ final readonly class TcaSiteSetCollector
     {
         foreach ($this->setCollector->getSetDefinitions() as $set) {
             $fieldConfiguration['items'][] = [
-                'label' => $set->label,
+                'label' => $this->getLanguageService()->sL($set->label),
                 'value' => $set->name,
             ];
         }
     }
+
+    protected function getLanguageService(): LanguageService
+    {
+        return $GLOBALS['LANG'];
+    }
 }
diff --git a/typo3/sysext/felogin/Configuration/Sets/Felogin/config.yaml b/typo3/sysext/felogin/Configuration/Sets/Felogin/config.yaml
index 0b5614e8e1b46eedc10b87cbe5866686f4538cc4..aad6f0f3a2d69d8c10681ba9f60e927f0053793c 100644
--- a/typo3/sysext/felogin/Configuration/Sets/Felogin/config.yaml
+++ b/typo3/sysext/felogin/Configuration/Sets/Felogin/config.yaml
@@ -1,2 +1,2 @@
 name: typo3/felogin
-label: Frontend Login
+labels: EXT:felogin/Resources/Private/Language/locallang_set.xlf
diff --git a/typo3/sysext/felogin/Configuration/Sets/Felogin/settings.definitions.yaml b/typo3/sysext/felogin/Configuration/Sets/Felogin/settings.definitions.yaml
index 3f528a20596ef6433d1679e44d34920513e786f4..4f0f94cf1254b06b2ec5bbbfe089267f702aeec8 100644
--- a/typo3/sysext/felogin/Configuration/Sets/Felogin/settings.definitions.yaml
+++ b/typo3/sysext/felogin/Configuration/Sets/Felogin/settings.definitions.yaml
@@ -1,12 +1,9 @@
 settings:
   felogin.pid:
     default: '0'
-    label: 'User Storage Page'
     type: string
-    description: 'Define the Storage Folder with the Website User Records, using a comma separated list or single value'
   felogin.recursive:
     default: '0'
-    label: Recursive
     type: string
     enum:
       '0': '0'
@@ -15,119 +12,72 @@ settings:
       '3': '3'
       '4': '4'
       '255': '255'
-    description: 'If set, also subfolder at configured recursive levels of the User Storage Page will be used'
   felogin.showForgotPassword:
     default: false
-    label: 'Display Password Recovery Link'
     type: bool
-    description: 'If set, the section in the template to display the link to the forgot password dialogue is visible.'
   felogin.showPermaLogin:
     default: false
-    label: 'Display Remember Login Option'
     type: bool
-    description: 'If set, the section in the template to display the option to remember the login (with a cookie) is visible.'
   felogin.showLogoutFormAfterLogin:
     default: false
-    label: 'Disable redirect after successful login, but display logout-form'
     type: bool
-    description: 'If set, the logout form will be displayed immediately after successful login.'
   felogin.emailFrom:
     default: ''
-    label: 'Email Sender Address'
     type: string
-    description: 'email address used as sender of the change password emails'
   felogin.emailFromName:
     default: ''
-    label: 'Email Sender Name'
     type: string
-    description: 'Name used as sender of the change password emails'
   felogin.replyToEmail:
     default: ''
-    label: 'Reply-to email Address'
     type: string
-    description: 'Reply-to address used in the change password emails'
   felogin.dateFormat:
     default: 'Y-m-d H:i'
-    label: 'Date format'
     type: string
-    description: 'Format for the link is valid until message (forgot password email)'
   felogin.email.layoutRootPath:
     default: ''
-    label: 'Layout root path'
     type: string
-    description: 'Path to layout directory used for emails'
   felogin.email.templateRootPath:
     default: 'EXT:felogin/Resources/Private/Email/Templates/'
-    label: 'Template root path'
     type: string
-    description: 'Path to template directory used for emails'
   felogin.email.partialRootPath:
     default: ''
-    label: 'Partial root path'
     type: string
-    description: 'Path to partial directory used for emails'
   felogin.email.templateName:
     default: PasswordRecovery
-    label: 'Template name for emails.'
     type: string
-    description: 'HTML emails get the .html file extension, plaintext emails get the .txt file extension.'
   felogin.redirectMode:
     default: ''
-    label: 'Redirect Mode'
     type: string
-    description: 'Comma separated list of redirect modes. Possible values: groupLogin, userLogin, login, getpost, referer, refererDomains, loginError, logout. Warning: redirects only work if neither the plugin nor the page it is displayed on are set to `hide at login`.'
   felogin.redirectFirstMethod:
     default: false
-    label: 'Use First Supported Mode from Selection'
     type: bool
-    description: 'If set the first method from redirectMode which is possible will be used'
   felogin.redirectPageLogin:
     default: 0
-    label: 'After Successful Login Redirect to Page'
     type: int
-    description: 'Page id to redirect to after Login'
   felogin.redirectPageLoginError:
     default: 0
-    label: 'After Failed Login Redirect to Page'
     type: int
-    description: 'Page id to redirect to after Login Error'
   felogin.redirectPageLogout:
     default: 0
-    label: 'After Logout Redirect to Page'
     type: int
-    description: 'Page id to redirect to after Logout'
   felogin.redirectDisable:
     default: false
-    label: 'Disable Redirect'
     type: bool
-    description: 'If set redirecting is disabled'
   felogin.forgotLinkHashValidTime:
     default: 12
-    label: 'Time in hours how long the link for forgot password is valid'
     type: int
-    description: 'How many hours the link for forgot password is valid'
   felogin.domains:
     default: ''
-    label: 'Allowed Referrer-Redirect-Domains'
     type: string
-    description: 'Comma separated list of domains which are allowed for the referrer redirect mode'
   felogin.exposeNonexistentUserInForgotPasswordDialog:
     default: false
-    label: 'Expose existing users'
     type: bool
-    description: 'Expose the information on whether or not the account for which a new password was requested exists. By default, that information is not disclosed for privacy reasons.'
   felogin.view.templateRootPath:
     default: ''
-    label: 'Path to template root (frontend)'
     type: string
-    description: 'Path to template directory used for the plugin in the frontend. Extends the default template location.'
   felogin.view.partialRootPath:
     default: ''
-    label: 'Path to template partials (frontend)'
     type: string
-    description: 'Path to partial directory for the plugin in the frontend. Extends the default partial location.'
   felogin.view.layoutRootPath:
     default: ''
-    label: 'Path to template layouts (frontend)'
     type: string
-    description: 'Path to layout directory used for the plugin in the frontend. Can be used to introduce a custom layout.'
diff --git a/typo3/sysext/felogin/Resources/Private/Language/locallang_set.xlf b/typo3/sysext/felogin/Resources/Private/Language/locallang_set.xlf
new file mode 100644
index 0000000000000000000000000000000000000000..c6445713ff51b0936926b352cc7a495f744c8df0
--- /dev/null
+++ b/typo3/sysext/felogin/Resources/Private/Language/locallang_set.xlf
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+	<file source-language="en" datatype="plaintext" original="EXT:felogin/Resources/Private/Language/locallang_set.xlf" date="2024-09-05T08:00:00Z" product-name="felogin">
+		<header/>
+		<body>
+			<trans-unit id="label" resname="label">
+				<source>Frontend Login</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.pid" resname="settings.felogin.pid">
+				<source>User Storage Page</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.pid" resname="settings.description.felogin.pid">
+				<source>Define the Storage Folder with the Website User Records, using a comma separated list or single value</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.recursive" resname="settings.felogin.recursive">
+				<source>Recursive</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.recursive" resname="settings.description.felogin.recursive">
+				<source>If set, also subfolder at configured recursive levels of the User Storage Page will be used</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.showForgotPassword" resname="settings.felogin.showForgotPassword">
+				<source>Display Password Recovery Link</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.showForgotPassword" resname="settings.description.felogin.showForgotPassword">
+				<source>If set, the section in the template to display the link to the forgot password dialogue is visible.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.showPermaLogin" resname="settings.felogin.showPermaLogin">
+				<source>Display Remember Login Option</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.showPermaLogin" resname="settings.description.felogin.showPermaLogin">
+				<source>If set, the section in the template to display the option to remember the login (with a cookie) is visible.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.showLogoutFormAfterLogin" resname="settings.felogin.showLogoutFormAfterLogin">
+				<source>Disable redirect after successful login, but display logout-form</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.showLogoutFormAfterLogin" resname="settings.description.felogin.showLogoutFormAfterLogin">
+				<source>If set, the logout form will be displayed immediately after successful login.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.emailFrom" resname="settings.felogin.emailFrom">
+				<source>Email Sender Address</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.emailFrom" resname="settings.description.felogin.emailFrom">
+				<source>email address used as sender of the change password emails</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.emailFromName" resname="settings.felogin.emailFromName">
+				<source>Email Sender Name</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.emailFromName" resname="settings.description.felogin.emailFromName">
+				<source>Name used as sender of the change password emails</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.replyToEmail" resname="settings.felogin.replyToEmail">
+				<source>Reply-to email Address</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.replyToEmail" resname="settings.description.felogin.replyToEmail">
+				<source>Reply-to address used in the change password emails</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.dateFormat" resname="settings.felogin.dateFormat">
+				<source>Date format</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.dateFormat" resname="settings.description.felogin.dateFormat">
+				<source>Format for the link is valid until message (forgot password email)</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.email.layoutRootPath" resname="settings.felogin.email.layoutRootPath">
+				<source>Layout root path</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.email.layoutRootPath" resname="settings.description.felogin.email.layoutRootPath">
+				<source>Path to layout directory used for emails</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.email.templateRootPath" resname="settings.felogin.email.templateRootPath">
+				<source>Template root path</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.email.templateRootPath" resname="settings.description.felogin.email.templateRootPath">
+				<source>Path to template directory used for emails</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.email.partialRootPath" resname="settings.felogin.email.partialRootPath">
+				<source>Partial root path</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.email.partialRootPath" resname="settings.description.felogin.email.partialRootPath">
+				<source>Path to partial directory used for emails</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.email.templateName" resname="settings.felogin.email.templateName">
+				<source>Template name for emails.</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.email.templateName" resname="settings.description.felogin.email.templateName">
+				<source>HTML emails get the .html file extension, plaintext emails get the .txt file extension.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.redirectMode" resname="settings.felogin.redirectMode">
+				<source>Redirect Mode</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.redirectMode" resname="settings.description.felogin.redirectMode">
+				<source>Comma separated list of redirect modes. Possible values: groupLogin, userLogin, login, getpost, referer, refererDomains, loginError, logout. Warning: redirects only work if neither the plugin nor the page it is displayed on are set to `hide at login`.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.redirectFirstMethod" resname="settings.felogin.redirectFirstMethod">
+				<source>Use First Supported Mode from Selection</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.redirectFirstMethod" resname="settings.description.felogin.redirectFirstMethod">
+				<source>If set the first method from redirectMode which is possible will be used</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.redirectPageLogin" resname="settings.felogin.redirectPageLogin">
+				<source>After Successful Login Redirect to Page</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.redirectPageLogin" resname="settings.description.felogin.redirectPageLogin">
+				<source>Page id to redirect to after Login</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.redirectPageLoginError" resname="settings.felogin.redirectPageLoginError">
+				<source>After Failed Login Redirect to Page</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.redirectPageLoginError" resname="settings.description.felogin.redirectPageLoginError">
+				<source>Page id to redirect to after Login Error</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.redirectPageLogout" resname="settings.felogin.redirectPageLogout">
+				<source>After Logout Redirect to Page</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.redirectPageLogout" resname="settings.description.felogin.redirectPageLogout">
+				<source>Page id to redirect to after Logout</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.redirectDisable" resname="settings.felogin.redirectDisable">
+				<source>Disable Redirect</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.redirectDisable" resname="settings.description.felogin.redirectDisable">
+				<source>If set redirecting is disabled</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.forgotLinkHashValidTime" resname="settings.felogin.forgotLinkHashValidTime">
+				<source>Time in hours how long the link for forgot password is valid</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.forgotLinkHashValidTime" resname="settings.description.felogin.forgotLinkHashValidTime">
+				<source>How many hours the link for forgot password is valid</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.domains" resname="settings.felogin.domains">
+				<source>Allowed Referrer-Redirect-Domains</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.domains" resname="settings.description.felogin.domains">
+				<source>Comma separated list of domains which are allowed for the referrer redirect mode</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.exposeNonexistentUserInForgotPasswordDialog" resname="settings.felogin.exposeNonexistentUserInForgotPasswordDialog">
+				<source>Expose existing users</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.exposeNonexistentUserInForgotPasswordDialog" resname="settings.description.felogin.exposeNonexistentUserInForgotPasswordDialog">
+				<source>Expose the information on whether or not the account for which a new password was requested exists. By default, that information is not disclosed for privacy reasons.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.view.templateRootPath" resname="settings.felogin.view.templateRootPath">
+				<source>Path to template root (frontend)</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.view.templateRootPath" resname="settings.description.felogin.view.templateRootPath">
+				<source>Path to template directory used for the plugin in the frontend. Extends the default template location.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.view.partialRootPath" resname="settings.felogin.view.partialRootPath">
+				<source>Path to template partials (frontend)</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.view.partialRootPath" resname="settings.description.felogin.view.partialRootPath">
+				<source>Path to partial directory for the plugin in the frontend. Extends the default partial location.</source>
+			</trans-unit>
+			<trans-unit id="settings.felogin.view.layoutRootPath" resname="settings.felogin.view.layoutRootPath">
+				<source>Path to template layouts (frontend)</source>
+			</trans-unit>
+			<trans-unit id="settings.description.felogin.view.layoutRootPath" resname="settings.description.felogin.view.layoutRootPath">
+				<source>Path to layout directory used for the plugin in the frontend. Can be used to introduce a custom layout.</source>
+			</trans-unit>
+		</body>
+	</file>
+</xliff>
diff --git a/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/config.yaml b/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/config.yaml
index d5bbb2d745bbaa6cd421ae102d90ba34bcbeb044..0619554f84ec4f747209ae9adff1ac632247b163 100644
--- a/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/config.yaml
+++ b/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/config.yaml
@@ -1,2 +1,2 @@
 name: typo3/fluid-styled-content
-label: Fluid Styled Content
+labels: EXT:fluid_styled_content/Resources/Private/Language/locallang_set.xlf
diff --git a/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/settings.definitions.yaml b/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/settings.definitions.yaml
index c873232dfeaf220ea96c1ef5175f704761547c04..da97c227c184c2689d3d3cb0b49fc9a454c42c47 100644
--- a/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/settings.definitions.yaml
+++ b/typo3/sysext/fluid_styled_content/Configuration/Sets/FluidStyledContent/settings.definitions.yaml
@@ -1,129 +1,81 @@
 settings:
   styles.content.defaultHeaderType:
     default: 2
-    label: 'Default Header type'
     type: int
-    description: 'Enter the number of the header layout to be used by default'
   styles.content.shortcut.tables:
     default: tt_content
-    label: 'List of accepted tables'
     type: string
-    description: ''
   styles.content.allowTags:
     default: 'a, abbr, acronym, address, article, aside, b, bdo, big, blockquote, br, caption, center, cite, code, col, colgroup, dd, del, dfn, dl, div, dt, em, figure, font, footer, header, h1, h2, h3, h4, h5, h6, hr, i, img, ins, kbd, label, li, link, mark, meta, nav, ol, p, pre, q, s, samp, sdfield, section, small, span, strike, strong, style, sub, sup, table, thead, tbody, tfoot, td, th, tr, title, tt, u, ul, var'
-    label: 'List of allowed HTML tags when rendering RTE content'
     type: string
-    description: ''
   styles.content.image.lazyLoading:
     default: lazy
-    label: 'Default settings for browser-native image lazy loading'
     type: string
     enum:
       lazy: 'Lazy'
       eager: 'Eager'
       auto: 'Auto'
-    description: 'Can be "lazy" (browsers could choose to load images later), "eager" (load images right away) or "auto" (browser will determine whether the image should be lazy loaded or not)'
   styles.content.image.imageDecoding:
     default: ''
-    label: 'Default settings for an image decoding hint to the browser'
     type: string
     enum:
       sync: 'Sync'
       async: 'Asynchronous'
       auto: 'Auto'
-    description: 'Can be "sync" (synchronously for atomic presentation with other content), "async" (asynchronously to avoid delaying presentation of other content), "auto" (no preference in decoding mode) or an empty value to omit the usage of the decoding attribute (same as "auto")'
   styles.content.textmedia.maxW:
     default: 600
-    label: 'Max Image/Media Width'
     type: int
-    description: 'This indicates that maximum number of pixels (width) a block of media elements inserted as content is allowed to consume'
   styles.content.textmedia.maxWInText:
     default: 300
-    label: 'Max Image/Media Width (Text)'
     type: int
-    description: 'Same as above, but this is the maximum width when text is wrapped around an block of media elements. Default is 50% of the normal Max Media Item Width'
   styles.content.textmedia.columnSpacing:
     default: 10
-    label: 'Advanced, Column space'
     type: int
-    description: 'Horizontal distance between media elements in a block in content elements of type "Media & Images". If you change this manually in your CSS, you need to adjust this setting accordingly'
   styles.content.textmedia.rowSpacing:
     default: 10
-    label: 'Advanced, Row space'
     type: int
-    description: 'Vertical distance after each media elements row in content elements of type ""Text & Media". If you change this manually in your CSS, you need to adjust this setting accordingly'
   styles.content.textmedia.textMargin:
     default: 10
-    label: 'Advanced, Margin to text'
     type: int
-    description: 'Horizontal distance between an imageblock and text in content elements of type "Text & Images"'
   styles.content.textmedia.borderColor:
     default: '#000000'
-    label: 'Media element border, color'
     type: color
-    description: 'Bordercolor of media elements in content elements when "Border"-option for an element is set'
   styles.content.textmedia.borderWidth:
     default: 2
-    label: 'Media element border, thickness'
     type: int
-    description: 'Thickness of border around media elements in content elements when "Border"-option for element is set'
   styles.content.textmedia.borderPadding:
     default: 0
-    label: 'Media element border, padding'
     type: int
-    description: 'Padding left and right to the media element, around the border'
   styles.content.textmedia.linkWrap.width:
     default: 800m
-    label: 'Click-enlarge Media Width'
     type: string
-    description: 'This specifies the width of the enlarged media element when click-enlarge is enabled'
   styles.content.textmedia.linkWrap.height:
     default: 600m
-    label: 'Click-enlarge Media Height'
     type: string
-    description: 'This specifies the height of the enlarged media element when click-enlarge is enabled'
   styles.content.textmedia.linkWrap.newWindow:
     default: false
-    label: 'Advanced, New window'
     type: bool
-    description: "If set, every click-enlarged media element will open in it's own popup window and not the current popup window (which may have a wrong size for the media element to fit in)"
   styles.content.textmedia.linkWrap.lightboxEnabled:
     default: false
-    label: 'Lightbox click-enlarge rendering'
     type: bool
-    description: 'Whether media elements with click-enlarge checked should be rendered lightbox-compliant'
   styles.content.textmedia.linkWrap.lightboxCssClass:
     default: lightbox
-    label: 'Lightbox CSS class'
     type: string
-    description: 'Which CSS class to use for lightbox links (only applicable if lightbox rendering is enabled)'
   styles.content.textmedia.linkWrap.lightboxRelAttribute:
     default: 'lightbox[{field:uid}]'
-    label: 'Lightbox rel="" attribute'
     type: string
-    description: 'Which rel="" attribute to use for lightbox links (only applicable if lightbox rendering is enabled)'
   styles.content.links.extTarget:
     default: _blank
-    label: 'Target for external links'
     type: string
-    description: ''
   styles.content.links.keep:
     default: path
-    label: 'Parts to keep when building links'
     type: string
-    description: 'Comma separated list of the link parts to show when building the link-text: scheme,path,query. Example: "" (empty) => www.example.com, "scheme,path" => http://www.example.com'
   styles.templates.templateRootPath:
     default: ''
-    label: 'Path of Fluid Templates for all defined content elements'
     type: string
-    description: ''
   styles.templates.partialRootPath:
     default: ''
-    label: 'Path of Fluid Partials for all defined content elements'
     type: string
-    description: ''
   styles.templates.layoutRootPath:
     default: ''
-    label: 'Path of Fluid Layouts for all defined content elements'
     type: string
-    description: ''
diff --git a/typo3/sysext/fluid_styled_content/Resources/Private/Language/locallang_set.xlf b/typo3/sysext/fluid_styled_content/Resources/Private/Language/locallang_set.xlf
new file mode 100644
index 0000000000000000000000000000000000000000..1c3eed4525a9f782e55f531bdafabae7f115642c
--- /dev/null
+++ b/typo3/sysext/fluid_styled_content/Resources/Private/Language/locallang_set.xlf
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+	<file source-language="en" datatype="plaintext" original="EXT:fluid_styled_content/Resources/Private/Language/locallang_set.xlf" date="2024-09-05T08:00:00Z" product-name="fluid_styled_content">
+		<header/>
+		<body>
+			<trans-unit id="label" resname="label">
+				<source>Fluid Styled Content</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.defaultHeaderType" resname="settings.styles.content.defaultHeaderType">
+				<source>Default Header type</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.defaultHeaderType" resname="settings.description.styles.content.defaultHeaderType">
+				<source>Enter the number of the header layout to be used by default</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.shortcut.tables" resname="settings.styles.content.shortcut.tables">
+				<source>List of accepted tables</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.allowTags" resname="settings.styles.content.allowTags">
+				<source>List of allowed HTML tags when rendering RTE content</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.image.lazyLoading" resname="settings.styles.content.image.lazyLoading">
+				<source>Default settings for browser-native image lazy loading</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.image.lazyLoading" resname="settings.description.styles.content.image.lazyLoading">
+				<source>Can be "lazy" (browsers could choose to load images later), "eager" (load images right away) or "auto" (browser will determine whether the image should be lazy loaded or not)</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.image.imageDecoding" resname="settings.styles.content.image.imageDecoding">
+				<source>Default settings for an image decoding hint to the browser</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.image.imageDecoding" resname="settings.description.styles.content.image.imageDecoding">
+				<source>Can be "sync" (synchronously for atomic presentation with other content), "async" (asynchronously to avoid delaying presentation of other content), "auto" (no preference in decoding mode) or an empty value to omit the usage of the decoding attribute (same as "auto")</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.maxW" resname="settings.styles.content.textmedia.maxW">
+				<source>Max Image/Media Width</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.maxW" resname="settings.description.styles.content.textmedia.maxW">
+				<source>This indicates that maximum number of pixels (width) a block of media elements inserted as content is allowed to consume</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.maxWInText" resname="settings.styles.content.textmedia.maxWInText">
+				<source>Max Image/Media Width (Text)</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.maxWInText" resname="settings.description.styles.content.textmedia.maxWInText">
+				<source>Same as above, but this is the maximum width when text is wrapped around an block of media elements. Default is 50% of the normal Max Media Item Width</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.columnSpacing" resname="settings.styles.content.textmedia.columnSpacing">
+				<source>Advanced, Column space</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.columnSpacing" resname="settings.description.styles.content.textmedia.columnSpacing">
+				<source>Horizontal distance between media elements in a block in content elements of type "Media &amp; Images". If you change this manually in your CSS, you need to adjust this setting accordingly</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.rowSpacing" resname="settings.styles.content.textmedia.rowSpacing">
+				<source>Advanced, Row space</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.rowSpacing" resname="settings.description.styles.content.textmedia.rowSpacing">
+				<source>Vertical distance after each media elements row in content elements of type ""Text &amp; Media". If you change this manually in your CSS, you need to adjust this setting accordingly</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.textMargin" resname="settings.styles.content.textmedia.textMargin">
+				<source>Advanced, Margin to text</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.textMargin" resname="settings.description.styles.content.textmedia.textMargin">
+				<source>Horizontal distance between an imageblock and text in content elements of type "Text &amp; Images"</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.borderColor" resname="settings.styles.content.textmedia.borderColor">
+				<source>Media element border, color</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.borderColor" resname="settings.description.styles.content.textmedia.borderColor">
+				<source>Bordercolor of media elements in content elements when "Border"-option for an element is set</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.borderWidth" resname="settings.styles.content.textmedia.borderWidth">
+				<source>Media element border, thickness</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.borderWidth" resname="settings.description.styles.content.textmedia.borderWidth">
+				<source>Thickness of border around media elements in content elements when "Border"-option for element is set</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.borderPadding" resname="settings.styles.content.textmedia.borderPadding">
+				<source>Media element border, padding</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.borderPadding" resname="settings.description.styles.content.textmedia.borderPadding">
+				<source>Padding left and right to the media element, around the border</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.linkWrap.width" resname="settings.styles.content.textmedia.linkWrap.width">
+				<source>Click-enlarge Media Width</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.linkWrap.width" resname="settings.description.styles.content.textmedia.linkWrap.width">
+				<source>This specifies the width of the enlarged media element when click-enlarge is enabled</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.linkWrap.height" resname="settings.styles.content.textmedia.linkWrap.height">
+				<source>Click-enlarge Media Height</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.linkWrap.height" resname="settings.description.styles.content.textmedia.linkWrap.height">
+				<source>This specifies the height of the enlarged media element when click-enlarge is enabled</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.linkWrap.newWindow" resname="settings.styles.content.textmedia.linkWrap.newWindow">
+				<source>Advanced, New window</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.linkWrap.newWindow" resname="settings.description.styles.content.textmedia.linkWrap.newWindow">
+				<source>If set, every click-enlarged media element will open in it's own popup window and not the current popup window (which may have a wrong size for the media element to fit in)</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.linkWrap.lightboxEnabled" resname="settings.styles.content.textmedia.linkWrap.lightboxEnabled">
+				<source>Lightbox click-enlarge rendering</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.linkWrap.lightboxEnabled" resname="settings.description.styles.content.textmedia.linkWrap.lightboxEnabled">
+				<source>Whether media elements with click-enlarge checked should be rendered lightbox-compliant</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.linkWrap.lightboxCssClass" resname="settings.styles.content.textmedia.linkWrap.lightboxCssClass">
+				<source>Lightbox CSS class</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.linkWrap.lightboxCssClass" resname="settings.description.styles.content.textmedia.linkWrap.lightboxCssClass">
+				<source>Which CSS class to use for lightbox links (only applicable if lightbox rendering is enabled)</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.textmedia.linkWrap.lightboxRelAttribute" resname="settings.styles.content.textmedia.linkWrap.lightboxRelAttribute">
+				<source>Lightbox rel="" attribute</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.textmedia.linkWrap.lightboxRelAttribute" resname="settings.description.styles.content.textmedia.linkWrap.lightboxRelAttribute">
+				<source>Which rel="" attribute to use for lightbox links (only applicable if lightbox rendering is enabled)</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.links.extTarget" resname="settings.styles.content.links.extTarget">
+				<source>Target for external links</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.content.links.keep" resname="settings.styles.content.links.keep">
+				<source>Parts to keep when building links</source>
+			</trans-unit>
+			<trans-unit id="settings.description.styles.content.links.keep" resname="settings.description.styles.content.links.keep">
+				<source>Comma separated list of the link parts to show when building the link-text: scheme,path,query. Example: "" (empty) =&gt; www.example.com, "scheme,path" =&gt; http://www.example.com</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.templates.templateRootPath" resname="settings.styles.templates.templateRootPath">
+				<source>Path of Fluid Templates for all defined content elements</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.templates.partialRootPath" resname="settings.styles.templates.partialRootPath">
+				<source>Path of Fluid Partials for all defined content elements</source>
+			</trans-unit>
+			<trans-unit id="settings.styles.templates.layoutRootPath" resname="settings.styles.templates.layoutRootPath">
+				<source>Path of Fluid Layouts for all defined content elements</source>
+			</trans-unit>
+		</body>
+	</file>
+</xliff>
diff --git a/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/config.yaml b/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/config.yaml
index cd13d1ccca939dbb87ea8daa53ba4c0e39cba451..4268593dfe3902c7077e2c8a8c0e57eb4cbfe0ce 100644
--- a/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/config.yaml
+++ b/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/config.yaml
@@ -1,2 +1,2 @@
 name: typo3/indexed-search
-label: Indexed Search
+labels: EXT:indexed_search/Resources/Private/Language/locallang_set.xlf
diff --git a/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/settings.definitions.yaml b/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/settings.definitions.yaml
index efcbac02607fc99cd1a89b8475fe281fca98a0a4..26e579f799bc506869d5efb3b4056971cd6ce003 100644
--- a/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/settings.definitions.yaml
+++ b/typo3/sysext/indexed_search/Configuration/Sets/IndexedSearch/settings.definitions.yaml
@@ -1,26 +1,16 @@
 settings:
   indexedsearch.view.templateRootPath:
     default: 'EXT:indexed_search/Resources/Private/Templates/'
-    label: 'Path to template root (FE)'
     type: string
-    description: ''
   indexedsearch.view.partialRootPath:
     default: 'EXT:indexed_search/Resources/Private/Partials/'
-    label: 'Path to template partials (FE)'
     type: string
-    description: ''
   indexedsearch.view.layoutRootPath:
     default: 'EXT:indexed_search/Resources/Private/Layouts/'
-    label: 'Path to template layouts (FE)'
     type: string
-    description: ''
   indexedsearch.targetPid:
     default: 0
-    label: 'Set the target page where search results are shown'
     type: int
-    description: ''
   indexedsearch.rootPidList:
     default: ''
-    label: 'A list of integer which should be root-pages to search from'
     type: string
-    description: ''
diff --git a/typo3/sysext/indexed_search/Resources/Private/Language/locallang_set.xlf b/typo3/sysext/indexed_search/Resources/Private/Language/locallang_set.xlf
new file mode 100644
index 0000000000000000000000000000000000000000..bd87c751d012eea4460b553065262b82ba3a6d1f
--- /dev/null
+++ b/typo3/sysext/indexed_search/Resources/Private/Language/locallang_set.xlf
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
+	<file source-language="en" datatype="plaintext" original="EXT:indexed_search/Resources/Private/Language/locallang_set.xlf" date="2024-09-05T09:00:00Z" product-name="indexed_search">
+		<header/>
+		<body>
+			<trans-unit id="label" resname="label">
+				<source>Indexed Search</source>
+			</trans-unit>
+
+			<trans-unit id="settings.indexedsearch.view.templateRootPath" resname="settings.indexedsearch.view.templateRootPath">
+				<source>Path to template root (FE)</source>
+			</trans-unit>
+			<trans-unit id="settings.indexedsearch.view.partialRootPath" resname="settings.indexedsearch.view.partialRootPath">
+				<source>Path to template partials (FE)</source>
+			</trans-unit>
+			<trans-unit id="settings.indexedsearch.view.layoutRootPath" resname="settings.indexedsearch.view.layoutRootPath">
+				<source>Path to template layouts (FE)</source>
+			</trans-unit>
+			<trans-unit id="settings.indexedsearch.targetPid" resname="settings.indexedsearch.targetPid">
+				<source>Set the target page where search results are shown</source>
+			</trans-unit>
+			<trans-unit id="settings.indexedsearch.rootPidList" resname="settings.indexedsearch.rootPidList">
+				<source>A list of integer which should be root-pages to search from</source>
+			</trans-unit>
+		</body>
+	</file>
+</xliff>
diff --git a/typo3/sysext/seo/Configuration/Sets/Sitemap/config.yaml b/typo3/sysext/seo/Configuration/Sets/Sitemap/config.yaml
index 0df802f7f68093a97812851d72eae4d56e04e8e6..622fbba68ff5c13a7ec8cf32393702076d24dfdd 100644
--- a/typo3/sysext/seo/Configuration/Sets/Sitemap/config.yaml
+++ b/typo3/sysext/seo/Configuration/Sets/Sitemap/config.yaml
@@ -1,2 +1,2 @@
 name: typo3/seo-sitemap
-label: SEO Sitemap
+labels: EXT:seo/Resources/Private/Language/locallang_sitemap_set.xlf
diff --git a/typo3/sysext/seo/Configuration/Sets/Sitemap/settings.definitions.yaml b/typo3/sysext/seo/Configuration/Sets/Sitemap/settings.definitions.yaml
index 071bf14511605e946dc30a158d49605224bb0795..8d55e56eb8adc5283e23a2803cc8a91f3ac0880d 100644
--- a/typo3/sysext/seo/Configuration/Sets/Sitemap/settings.definitions.yaml
+++ b/typo3/sysext/seo/Configuration/Sets/Sitemap/settings.definitions.yaml
@@ -1,31 +1,19 @@
 settings:
   seo.sitemap.view.templateRootPath:
     default: 'EXT:seo/Resources/Private/Templates/'
-    label: 'Path to template root (FE)'
     type: string
-    description: ''
   seo.sitemap.view.partialRootPath:
     default: 'EXT:seo/Resources/Private/Partials/'
-    label: 'Path to template partials (FE)'
     type: string
-    description: ''
   seo.sitemap.view.layoutRootPath:
     default: 'EXT:seo/Resources/Private/Layouts/'
-    label: 'Path to template layouts (FE)'
     type: string
-    description: ''
   seo.sitemap.pages.excludedDoktypes:
     default: '3, 4, 6, 7, 199, 254'
-    label: 'Doktypes to exclude'
     type: string
-    description: ''
   seo.sitemap.pages.excludePagesRecursive:
     default: ''
-    label: 'List of page uids which should be excluded recursive'
     type: string
-    description: ''
   seo.sitemap.pages.additionalWhere:
     default: "{#no_index} = 0 AND {#canonical_link} = ''"
-    label: 'Additional where clause'
     type: string
-    description: ''
diff --git a/typo3/sysext/seo/Resources/Private/Language/locallang_sitemap_set.xlf b/typo3/sysext/seo/Resources/Private/Language/locallang_sitemap_set.xlf
new file mode 100644
index 0000000000000000000000000000000000000000..1a550822980313888699c987f0b6af145d3c8e78
--- /dev/null
+++ b/typo3/sysext/seo/Resources/Private/Language/locallang_sitemap_set.xlf
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
+	<file source-language="en" datatype="plaintext" original="EXT:seo/Resources/Private/Language/locallang_sitemap_set.xlf" date="2018-09-04T12:30:00Z"
+		  product-name="seo">
+		<header/>
+		<body>
+			<trans-unit id="label" resname="label">
+				<source>SEO Sitemap</source>
+			</trans-unit>
+
+			<trans-unit id="settings.seo.sitemap.view.templateRootPath" resname="settings.seo.sitemap.view.templateRootPath">
+				<source>Path to template root (FE)</source>
+			</trans-unit>
+			<trans-unit id="settings.description.seo.sitemap.view.templateRootPath" resname="settings.description.seo.sitemap.view.templateRootPath">
+				<source>Test description</source>
+			</trans-unit>
+			<trans-unit id="settings.seo.sitemap.view.partialRootPath" resname="settings.seo.sitemap.view.partialRootPath">
+				<source>Path to template partials (FE)</source>
+			</trans-unit>
+			<trans-unit id="settings.seo.sitemap.view.layoutRootPath" resname="settings.seo.sitemap.view.layoutRootPath">
+				<source>Path to template layouts (FE)</source>
+			</trans-unit>
+			<trans-unit id="settings.seo.sitemap.pages.excludedDoktypes" resname="settings.seo.sitemap.pages.excludedDoktypes">
+				<source>Doktypes to exclude</source>
+			</trans-unit>
+			<trans-unit id="settings.seo.sitemap.pages.excludePagesRecursive" resname="settings.seo.sitemap.pages.excludePagesRecursive">
+				<source>List of page uids which should be excluded recursive</source>
+			</trans-unit>
+			<trans-unit id="settings.seo.sitemap.pages.additionalWhere" resname="settings.seo.sitemap.pages.additionalWhere">
+				<source>Additional where clause</source>
+			</trans-unit>
+		</body>
+	</file>
+</xliff>