diff --git a/Build/phpstan/phpstan-baseline.neon b/Build/phpstan/phpstan-baseline.neon
index 3315047beb94404d8f11d776af58dc3cf856fb62..41e9ca532e18790da511233796527c87c42f8d89 100644
--- a/Build/phpstan/phpstan-baseline.neon
+++ b/Build/phpstan/phpstan-baseline.neon
@@ -2290,11 +2290,6 @@ parameters:
 			count: 1
 			path: ../../typo3/sysext/form/Classes/ViewHelpers/GridColumnClassAutoConfigurationViewHelper.php
 
-		-
-			message: "#^Parameter \\#1 \\$fileReference of method TYPO3\\\\CMS\\\\Core\\\\Localization\\\\LanguageStore\\:\\:flushData\\(\\) expects string, array\\<int, string\\> given\\.$#"
-			count: 37
-			path: ../../typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php
-
 		-
 			message: "#^Variable \\$conf on left side of \\?\\? always exists and is not nullable\\.$#"
 			count: 1
diff --git a/typo3/sysext/form/Classes/Service/TranslationService.php b/typo3/sysext/form/Classes/Service/TranslationService.php
index 4b41986fb5f8a012277921c25555c4b98e4c499e..c0cb67c991f54885013581b1bd5537cbb1f33b36 100644
--- a/typo3/sysext/form/Classes/Service/TranslationService.php
+++ b/typo3/sysext/form/Classes/Service/TranslationService.php
@@ -74,18 +74,16 @@ class TranslationService implements SingletonInterface
      */
     protected $alternativeLanguageKeys = [];
 
-    protected ConfigurationManagerInterface $configurationManager;
-
-    public function __construct(ConfigurationManagerInterface $configurationManager)
-    {
-        $this->configurationManager = $configurationManager;
+    public function __construct(
+        protected ConfigurationManagerInterface $configurationManager
+    ) {
     }
 
     /**
      * Returns the localized label of the LOCAL_LANG key, $key.
      *
      * @param mixed $key The key from the LOCAL_LANG array for which to return the value.
-     * @param array $arguments the arguments of the extension, being passed over to vsprintf
+     * @param array|null $arguments the arguments of the extension, being passed over to vsprintf
      * @param mixed $defaultValue
      * @return mixed The value from LOCAL_LANG or $defaultValue if no translation was found.
      * @internal
@@ -124,7 +122,6 @@ class TranslationService implements SingletonInterface
 
         $this->initializeLocalization($locallangPathAndFilename ?? '');
 
-        // The "from" charset of csConv() is only set for strings from TypoScript via _LOCAL_LANG
         if (isset($this->LOCAL_LANG[$this->languageKey][$key][0]['target'])
             || isset($this->LOCAL_LANG_UNSET[$this->languageKey][$key])
         ) {
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_form.xlf
similarity index 93%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_form.xlf
index dcec498ed3f8b2ab8786b26f562c964aac1ed2da..ff3d84fd7450b5b71d086d3582d7de989af598f7 100644
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf
+++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_form.xlf
@@ -3,7 +3,7 @@
     <file source-language="en" target-language="de" datatype="plaintext" original="EXT:form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf" date="2017-01-30T03:38:32Z" product-name="tests">
         <header/>
         <body>
-            <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve">
+            <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve" approved="yes">
                 <source>FORM EN</source>
                 <target>FORM DE</target>
             </trans-unit>
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_text.xlf
similarity index 93%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_text.xlf
index 1c36979762e1a9504c3463931e6312e73a3cda3c..35a43dced33378ddc89495914b544d7163986eb1 100644
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf
+++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_text.xlf
@@ -3,7 +3,7 @@
     <file source-language="en" target-language="de" datatype="plaintext" original="EXT:form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf" date="2017-01-30T03:38:32Z" product-name="form">
         <header/>
         <body>
-            <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve">
+            <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve" approved="yes">
                 <source>TEXT EN</source>
                 <target>TEXT DE</target>
             </trans-unit>
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_additional_text.xlf
similarity index 100%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_additional_text.xlf
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf
similarity index 100%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf
similarity index 100%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_empty_values.xlf
similarity index 100%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_empty_values.xlf
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form.xlf
similarity index 100%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form.xlf
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_text.xlf
similarity index 100%
rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.xlf
rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_text.xlf
diff --git a/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/ext_emconf.php b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/ext_emconf.php
new file mode 100644
index 0000000000000000000000000000000000000000..8e03c8a8bcf1c61d6086a4c6cc64e73a60fac2d8
--- /dev/null
+++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/ext_emconf.php
@@ -0,0 +1,21 @@
+<?php
+
+declare(strict_types=1);
+
+$EM_CONF[$_EXTKEY] = [
+    'title' => '',
+    'description' => '',
+    'category' => 'example',
+    'author' => 'TYPO3 core team',
+    'author_company' => '',
+    'author_email' => '',
+    'state' => 'stable',
+    'version' => '12.2.0',
+    'constraints' => [
+        'depends' => [
+            'typo3' => '12.2.0',
+        ],
+        'conflicts' => [],
+        'suggests' => [],
+    ],
+];
diff --git a/typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php b/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php
similarity index 57%
rename from typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php
rename to typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php
index feda465f23b208859f492b2ac45bdc970ae12309..973e398f76d8c0adefca6d287e896285e01bd8d6 100644
--- a/typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php
+++ b/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php
@@ -15,16 +15,9 @@ declare(strict_types=1);
  * The TYPO3 project - inspiring people to share!
  */
 
-namespace TYPO3\CMS\Form\Tests\Unit\Service;
-
-use PHPUnit\Framework\MockObject\MockObject;
-use TYPO3\CMS\Core\Cache\CacheManager;
-use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface;
-use TYPO3\CMS\Core\Localization\LanguageService;
-use TYPO3\CMS\Core\Localization\LanguageStore;
-use TYPO3\CMS\Core\Localization\Locales;
-use TYPO3\CMS\Core\Localization\LocalizationFactory;
-use TYPO3\CMS\Core\Package\PackageManager;
+namespace TYPO3\CMS\Form\Tests\Functional\Service;
+
+use TYPO3\CMS\Core\Localization\LanguageServiceFactory;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Configuration\ConfigurationManager;
 use TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement;
@@ -32,108 +25,21 @@ use TYPO3\CMS\Form\Domain\Model\FormElements\Page;
 use TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface;
 use TYPO3\CMS\Form\Domain\Runtime\FormRuntime;
 use TYPO3\CMS\Form\Service\TranslationService;
-use TYPO3\TestingFramework\Core\AccessibleObjectInterface;
-use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
+use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
 
-class TranslationServiceTest extends UnitTestCase
+class TranslationServiceTest extends FunctionalTestCase
 {
-    protected bool $resetSingletonInstances = true;
-
-    protected ConfigurationManager&MockObject&AccessibleObjectInterface $mockConfigurationManager;
-    protected TranslationService&MockObject&AccessibleObjectInterface $mockTranslationService;
-    protected LanguageStore $store;
+    protected TranslationService $subject;
+    protected array $testExtensionsToLoad = ['typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels'];
 
     public function setUp(): void
     {
-        $packageManagerMock = $this->createMock(PackageManager::class);
         parent::setUp();
 
-        $cacheFrontendMock = $this->createMock(FrontendInterface::class);
-        $cacheFrontendMock->method('get')->with(self::anything())->willReturn(false);
-        $cacheFrontendMock->method('set')->with(self::anything())->willReturn(null);
+        $configurationManager = $this->getAccessibleMock(ConfigurationManager::class, ['getConfiguration'], [], '', false);
+        $this->subject = new TranslationService($configurationManager);
 
-        $cacheManagerMock = $this->createMock(CacheManager::class);
-        $cacheManagerMock->method('getCache')->with('l10n')->willReturn($cacheFrontendMock);
-        GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManagerMock);
-
-        $localizationFactory = $this->createMock(LocalizationFactory::class);
-        $localizationFactory->method('getParsedData')->willReturnMap([
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf',
-                'default',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/locallang_form.php',
-            ],
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf',
-                'de',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/de.locallang_form.php',
-            ],
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf',
-                'default',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/locallang_additional_text.php',
-            ],
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf',
-                'default',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/locallang_ceuid_suffix_01.php',
-            ],
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf',
-                'default',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/locallang_ceuid_suffix_02.php',
-            ],
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf',
-                'default',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/locallang_text.php',
-            ],
-            [
-                'EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf',
-                'default',
-                null,
-                null,
-                false,
-                include __DIR__ . '/Fixtures/locallang_empty_values.php',
-            ],
-        ]);
-
-        GeneralUtility::setSingletonInstance(LocalizationFactory::class, $localizationFactory);
-
-        $this->mockConfigurationManager = $this->getAccessibleMock(ConfigurationManager::class, ['getConfiguration'], [], '', false);
-
-        $this->mockTranslationService = $this->getAccessibleMock(TranslationService::class, [
-            'getConfigurationManager',
-            'getLanguageService',
-        ], [], '', false);
-
-        $languageService = new LanguageService(new Locales(), new LocalizationFactory(new LanguageStore($packageManagerMock), $cacheManagerMock), $cacheFrontendMock);
-        $this->mockTranslationService
-            ->method('getLanguageService')
-            ->willReturn($languageService);
-
-        $this->mockTranslationService->_set('configurationManager', $this->mockConfigurationManager);
-
-        $this->store = GeneralUtility::makeInstance(LanguageStore::class, $packageManagerMock);
-        $this->store->initialize();
+        $GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default');
     }
 
     /**
@@ -141,12 +47,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsExistingDefaultLanguageKeyIfFullExtDefaultLanguageKeyIsRequested(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'FORM EN';
-
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
+        self::assertEquals('FORM EN', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nextButtonLabel'
         ));
     }
@@ -156,12 +58,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsExistingDefaultLanguageKeyIfFullLLLExtDefaultLanguageKeyIsRequested(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'FORM EN';
-
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
+        self::assertEquals('FORM EN', $this->subject->translate(
             'LLL:' . $xlfPath . ':element.Page.renderingOptions.nextButtonLabel'
         ));
     }
@@ -171,12 +69,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsExistingDefaultLanguageKeyIfDefaultLanguageKeyIsRequestedAndDefaultValueIsGiven(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'FORM EN';
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('FORM EN', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nextButtonLabel',
             null,
             null,
@@ -190,12 +85,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsEmptyStringIfNonExistingDefaultLanguageKeyIsRequested(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $this->store->flushData($xlfPath);
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $expected = '';
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nonExisting'
         ));
     }
@@ -205,12 +97,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsDefaultValueIfNonExistingDefaultLanguageKeyIsRequestedAndDefaultValueIsGiven(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $this->store->flushData($xlfPath);
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $expected = 'defaultValue';
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('defaultValue', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nonExisting',
             null,
             null,
@@ -224,12 +113,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsExistingLanguageKeyForLanguageIfExtPathLanguageKeyIsRequested(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'FORM DE';
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('FORM DE', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nextButtonLabel',
             null,
             null,
@@ -242,12 +128,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsDefaultValueIfNonExistingLanguageKeyForLanguageIsRequestedAndDefaultValueIsGiven(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'defaultValue';
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('defaultValue', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nonExisting',
             null,
             null,
@@ -261,12 +144,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsEmptyStringIfNonExistingLanguageKeyForLanguageIsRequested(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = '';
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('', $this->subject->translate(
             $xlfPath . ':element.Page.renderingOptions.nonExisting',
             null,
             null,
@@ -279,12 +159,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsExistingDefaultLanguageKeyIfDefaultLanguageKeyIsRequestedAndExtFilePathIsGiven(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'FORM EN';
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('FORM EN', $this->subject->translate(
             'element.Page.renderingOptions.nextButtonLabel',
             null,
             $xlfPath
@@ -296,12 +173,9 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateReturnsExistingDefaultLanguageKeyIfDefaultLanguageKeyIsRequestedAndLLLExtFilePathIsGiven(): void
     {
-        $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf';
-        $expected = 'FORM EN';
+        $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf';
 
-        $this->store->flushData($xlfPath);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translate',
+        self::assertEquals('FORM EN', $this->subject->translate(
             'element.Page.renderingOptions.nextButtonLabel',
             null,
             'LLL:' . $xlfPath
@@ -313,7 +187,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateValuesRecursiveTranslateRecursive(): void
     {
-        $xlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
+        $xlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
 
         $input = [
             'Stan' => [
@@ -337,9 +211,7 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($xlfPaths);
-        self::assertEquals($expected, $this->mockTranslationService->_call(
-            'translateValuesRecursive',
+        self::assertEquals($expected, $this->subject->translateValuesRecursive(
             $input,
             $xlfPaths
         ));
@@ -350,8 +222,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateLabelForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $formElementIdentifier = 'form-element-identifier';
@@ -370,23 +242,18 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = 'form-element-identifier LABEL EN';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', 'some label');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => 'some label',
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        $expected = 'form-element-identifier LABEL EN';
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -394,8 +261,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateLabelForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $formElementIdentifier = 'form-element-identifier';
@@ -414,23 +281,18 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = 'form-element-identifier LABEL EN';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        $expected = 'form-element-identifier LABEL EN';
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -438,8 +300,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueNotTranslateLabelForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsEmptyAndPropertyShouldNotBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $formElementIdentifier = 'form-element-identifier';
@@ -458,23 +320,17 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = '';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        self::assertEquals('', $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -482,8 +338,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateLabelForConcreteFormElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'another-form-runtime-identifier';
         $formElementIdentifier = 'form-element-identifier';
@@ -502,23 +358,17 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = 'form-element-identifier LABEL EN 1';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', 'some label');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => 'some label',
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        self::assertEquals('form-element-identifier LABEL EN 1', $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -526,8 +376,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateLabelForFormElementTypeIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'another-form-runtime-identifier';
         $formElementIdentifier = 'another-form-element-identifier';
@@ -546,23 +396,18 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = 'form-element-identifier LABEL EN 2';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', 'some label');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => 'some label',
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        $expected = 'form-element-identifier LABEL EN 2';
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -570,8 +415,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslatePropertyForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementPropertyIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $formElementIdentifier = 'form-element-identifier';
@@ -595,21 +440,17 @@ class TranslationServiceTest extends UnitTestCase
 
         $expected = 'form-element-identifier PLACEHOLDER EN';
 
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('properties', $formElementProperties);
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'properties' => $formElementProperties,
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['placeholder'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['placeholder'], $mockFormRuntime));
     }
 
     /**
@@ -617,8 +458,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueNotTranslatePropertyForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementPropertyIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationNotExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'another-form-runtime-identifier';
         $formElementIdentifier = 'another-form-element-identifier';
@@ -642,21 +483,17 @@ class TranslationServiceTest extends UnitTestCase
 
         $expected = 'placeholder';
 
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('properties', $formElementProperties);
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'properties' => $formElementProperties,
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['placeholder'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['placeholder'], $mockFormRuntime));
     }
 
     /**
@@ -664,8 +501,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateRenderingOptionForConcreteFormAndConcreteSectionElementIfElementRenderingOptionsContainsATranslationFilesAndElementRenderingOptionIsNotEmptyAndRenderingOptionShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $formElementIdentifier = 'form-element-identifier-page';
@@ -685,22 +522,17 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = 'form-element-identifier nextButtonLabel EN';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(Page::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Page');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
+        $formElement = new Page($formElementIdentifier);
+        $formElement->setOptions([
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['nextButtonLabel'], $mockFormRuntime));
+        $expected = 'form-element-identifier nextButtonLabel EN';
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['nextButtonLabel'], $mockFormRuntime));
     }
 
     /**
@@ -708,8 +540,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateOptionsPropertyForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementOptionsPropertyIsAnArrayAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $formElementIdentifier = 'options-form-element-identifier';
@@ -739,21 +571,17 @@ class TranslationServiceTest extends UnitTestCase
             'optionValue2' => 'options-form-element-identifier option 2 EN',
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('properties', $formElementProperties);
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'properties' => $formElementProperties,
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['options'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['options'], $mockFormRuntime));
     }
 
     /**
@@ -761,8 +589,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateOptionsPropertyForConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementOptionsPropertyIsAnArrayAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'another-form-runtime-identifier';
         $formElementIdentifier = 'options-form-element-identifier';
@@ -792,21 +620,17 @@ class TranslationServiceTest extends UnitTestCase
             'optionValue2' => 'options-form-element-identifier option 2 EN',
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('properties', $formElementProperties);
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'properties' => $formElementProperties,
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['options'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['options'], $mockFormRuntime));
     }
 
     /**
@@ -814,8 +638,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFinisherOptionTranslateOptionForConcreteFormIfFinisherTranslationOptionsContainsATranslationFilesAndFinisherOptionIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
         $finisherIdentifier = 'SaveToDatabaseFinisher';
@@ -832,16 +656,12 @@ class TranslationServiceTest extends UnitTestCase
             'translatePropertyValueIfEmpty' => true,
         ];
 
-        $expected = 'form-element-identifier SaveToDatabase subject EN';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions));
+        $expected = 'form-element-identifier SaveToDatabase subject EN';
+        self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions));
     }
 
     /**
@@ -849,8 +669,8 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFinisherOptionTranslateOptionIfFinisherTranslationOptionsContainsATranslationFilesAndFinisherOptionIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
+        $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf'];
 
         $formRuntimeIdentifier = 'another-form-runtime-identifier';
         $finisherIdentifier = 'SaveToDatabaseFinisher';
@@ -867,16 +687,12 @@ class TranslationServiceTest extends UnitTestCase
             'translatePropertyValueIfEmpty' => true,
         ];
 
-        $expected = 'form-element-identifier SaveToDatabase subject EN 1';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions));
+        $expected = 'form-element-identifier SaveToDatabase subject EN 1';
+        self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions));
     }
 
     /**
@@ -884,8 +700,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateLabelForConcreteFormAndConcreteElementFromFormRuntimeTranslationFilesIfElementRenderingOptionsContainsNoTranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
 
         $formRuntimeIdentifier = 'my-form-runtime-identifier';
         $formElementIdentifier = 'my-form-element-identifier';
@@ -897,25 +712,18 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $formElementRenderingOptions = [];
-
-        $expected = 'my-form-runtime-identifier my-form-element-identifier LABEL EN';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', 'some label');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => 'some label',
+            'renderingOptions' => [],
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        $expected = 'my-form-runtime-identifier my-form-element-identifier LABEL EN';
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -923,9 +731,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function supportsArgumentsForFormElementValueTranslations(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-
-        $this->store->flushData($formRuntimeXlfPaths);
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
 
         $formRuntime = $this->createMock(FormRuntime::class);
         $formRuntime->method('getIdentifier')->willReturn('my-form-runtime-identifier');
@@ -951,10 +757,8 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ]);
 
-        $expected = 'See this or that';
-        $result = $this->mockTranslationService->_call('translateFormElementValue', $element, ['label'], $formRuntime);
-
-        self::assertEquals($expected, $result);
+        $result = $this->subject->translateFormElementValue($element, ['label'], $formRuntime);
+        self::assertEquals('See this or that', $result);
     }
 
     /**
@@ -962,8 +766,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFinisherOptionTranslateOptionForConcreteFormFromFormRuntimeIfFinisherTranslationOptionsContainsNoTranslationFilesAndFinisherOptionIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-        $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
 
         $formRuntimeIdentifier = 'my-form-runtime-identifier';
         $finisherIdentifier = 'SaveToDatabaseFinisher';
@@ -975,18 +778,12 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $finisherRenderingOptions = [];
-
-        $expected = 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN';
-
-        $this->store->flushData($formRuntimeXlfPaths);
-        $this->store->flushData($textElementXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions));
+        $expected = 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN';
+        self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, $finisherIdentifier, 'subject', 'subject value'));
     }
 
     /**
@@ -1000,11 +797,11 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, [], [], '', false);
+        $mockFormRuntime = $this->createMock(FormRuntime::class);
 
         self::assertSame(
             'subject value',
-            $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'SaveToDatabaseFinisher', 'subject', 'subject value', $finisherRenderingOptions)
+            $this->subject->translateFinisherOption($mockFormRuntime, 'SaveToDatabaseFinisher', 'subject', 'subject value', $finisherRenderingOptions)
         );
     }
 
@@ -1013,9 +810,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function supportsArgumentsForFinisherOptionTranslations(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
-
-        $this->store->flushData($formRuntimeXlfPaths);
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
 
         $formRuntime = $this->createMock(FormRuntime::class);
         $formRuntime->method('getIdentifier')->willReturn('my-form-runtime-identifier');
@@ -1033,10 +828,8 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $expected = 'My awesome subject';
-        $result = $this->mockTranslationService->_call('translateFinisherOption', $formRuntime, 'EmailToReceiverWithTranslationArguments', 'subject', 'My %s subject', $renderingOptions);
-
-        self::assertEquals($expected, $result);
+        $result = $this->subject->translateFinisherOption($formRuntime, 'EmailToReceiverWithTranslationArguments', 'subject', 'My %s subject', $renderingOptions);
+        self::assertEquals('My awesome subject', $result);
     }
 
     /**
@@ -1044,10 +837,10 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementValueTranslateLabelFromAdditionalTranslationForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf'];
         $textElementXlfPaths = [
-            10 => 'EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf',
-            20 => 'EXT:form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf',
+            10 => 'EXT:form_labels/Resources/Private/Language/locallang_text.xlf',
+            20 => 'EXT:form_labels/Resources/Private/Language/locallang_additional_text.xlf',
          ];
 
         $formRuntimeIdentifier = 'form-runtime-identifier';
@@ -1069,24 +862,17 @@ class TranslationServiceTest extends UnitTestCase
 
         $expected = 'form-element-identifier ADDITIONAL LABEL EN';
 
-        $this->store->flushData($formRuntimeXlfPaths[0]);
-
-        foreach ($textElementXlfPaths as $textElementXlfPath) {
-            $this->store->flushData($textElementXlfPath);
-        }
-
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('renderingOptions', $formElementRenderingOptions);
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', 'some label');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => 'some label',
+            'renderingOptions' => $formElementRenderingOptions,
+        ]);
 
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false);
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
 
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -1094,7 +880,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementTranslateFormWithContentElementUidIfFormContainsNoOriginalIdentifier(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
         $formElementIdentifier = 'form-element-identifier';
@@ -1107,25 +893,22 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
         $mockFormRuntime->method('getType')->willReturn('Form');
 
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+        ]);
 
         $expected = 'form-runtime-identifier-42 submitButtonLabel EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime));
 
         $expected = 'form-runtime-identifier-42 form-element-identifierlabel EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -1133,7 +916,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementTranslateFormWithContentElementUidIfFormContainsOriginalIdentifier(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
         $formElementIdentifier = 'form-element-identifier';
@@ -1147,25 +930,22 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
         $mockFormRuntime->method('getType')->willReturn('Form');
 
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+        ]);
 
         $expected = 'form-runtime-identifier submitButtonLabel EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime));
 
         $expected = 'form-runtime-identifier form-element-identifierlabel EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -1173,7 +953,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementErrorTranslateErrorFromFormWithContentElementUidIfFormContainsNoOriginalIdentifier(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
         $formElementIdentifier = 'form-element-identifier';
@@ -1185,8 +965,6 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
@@ -1194,18 +972,17 @@ class TranslationServiceTest extends UnitTestCase
         $mockFormRuntime->method('getType')->willReturn('Form');
         $mockFormRuntime->method('getProperties')->willReturn([]);
 
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
-        $mockFormElement->_set('properties', []);
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+            'properties' => [],
+        ]);
 
         $expected = 'form-runtime-identifier-42 error 123 EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormRuntime, 123, [], 'default value', $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementError($mockFormRuntime, 123, [], 'default value', $mockFormRuntime));
 
         $expected = 'form-runtime-identifier-42 form-element-identifier error 123 EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 123, [], 'default value', $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementError($formElement, 123, [], 'default value', $mockFormRuntime));
     }
 
     /**
@@ -1213,7 +990,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementErrorTranslateErrorFromFormWithContentElementUidIfFormContainsOriginalIdentifier(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
         $formElementIdentifier = 'form-element-identifier';
@@ -1226,8 +1003,6 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
@@ -1235,18 +1010,17 @@ class TranslationServiceTest extends UnitTestCase
         $mockFormRuntime->method('getType')->willReturn('Form');
         $mockFormRuntime->method('getProperties')->willReturn([]);
 
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
-        $mockFormElement->_set('properties', []);
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+            'properties' => [],
+        ]);
 
         $expected = 'form-runtime-identifier error 123 EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormRuntime, 123, [], 'default value', $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementError($mockFormRuntime, 123, [], 'default value', $mockFormRuntime));
 
         $expected = 'form-runtime-identifier form-element-identifier error 123 EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 123, [], 'default value', $mockFormRuntime));
+        self::assertEquals($expected, $this->subject->translateFormElementError($formElement, 123, [], 'default value', $mockFormRuntime));
     }
 
     /**
@@ -1254,7 +1028,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFinisherOptionTranslateOptionFromFormWithContentElementUidIfFormContainsNoOriginalIdentifier(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
 
@@ -1265,8 +1039,6 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
@@ -1275,7 +1047,7 @@ class TranslationServiceTest extends UnitTestCase
         $mockFormRuntime->method('getProperties')->willReturn([]);
 
         $expected = 'form-runtime-identifier-42 FooFinisher test EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test', 'value', []));
+        self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test', 'value', []));
     }
 
     /**
@@ -1283,7 +1055,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFinisherOptionTranslateOptionFromFormWithContentElementUidIfFormContainsOriginalIdentifier(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
 
@@ -1295,8 +1067,6 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        $this->store->flushData($formRuntimeXlfPaths);
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
@@ -1305,7 +1075,7 @@ class TranslationServiceTest extends UnitTestCase
         $mockFormRuntime->method('getProperties')->willReturn([]);
 
         $expected = 'form-runtime-identifier FooFinisher test EN';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test', 'value', []));
+        self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test', 'value', []));
     }
 
     /**
@@ -1313,7 +1083,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementErrorTranslatesErrorsWithEmptyTranslatedValues(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_empty_values.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
         $formElementIdentifier = 'form-element-identifier';
@@ -1326,10 +1096,6 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        foreach ($formRuntimeXlfPaths as $formRuntimeXlfPath) {
-            $this->store->flushData($formRuntimeXlfPath);
-        }
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
@@ -1337,18 +1103,14 @@ class TranslationServiceTest extends UnitTestCase
         $mockFormRuntime->method('getType')->willReturn('Form');
         $mockFormRuntime->method('getProperties')->willReturn([]);
 
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', '');
-        $mockFormElement->_set('properties', []);
-
-        $expected = '0';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 123, [], 'default value', $mockFormRuntime));
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => '',
+            'properties' => [],
+        ]);
 
-        $expected = 'default value';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 124, [], 'default value', $mockFormRuntime));
+        self::assertEquals('0', $this->subject->translateFormElementError($formElement, 123, [], 'default value', $mockFormRuntime));
+        self::assertEquals('default value', $this->subject->translateFormElementError($formElement, 124, [], 'default value', $mockFormRuntime));
     }
 
     /**
@@ -1356,7 +1118,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFormElementTranslatesFormElementsWithEmptyTranslatedValues(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_empty_values.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
         $formElementIdentifier = 'form-element-identifier';
@@ -1370,27 +1132,19 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        foreach ($formRuntimeXlfPaths as $formRuntimeXlfPath) {
-            $this->store->flushData($formRuntimeXlfPath);
-        }
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
         $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions);
         $mockFormRuntime->method('getType')->willReturn('Form');
 
-        $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false);
-
-        $mockFormElement->_set('type', 'Text');
-        $mockFormElement->_set('identifier', $formElementIdentifier);
-        $mockFormElement->_set('label', 'test');
-
-        $expected = '0';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime));
+        $formElement = new GenericFormElement($formElementIdentifier, 'Text');
+        $formElement->setOptions([
+            'label' => 'test',
+        ]);
 
-        $expected = 'test';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime));
+        self::assertEquals('0', $this->subject->translateFormElementValue($mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime));
+        self::assertEquals('test', $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime));
     }
 
     /**
@@ -1398,7 +1152,7 @@ class TranslationServiceTest extends UnitTestCase
      */
     public function translateFinisherOptionTranslatesFinisherOptionsWithEmptyTranslatedValues(): void
     {
-        $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf'];
+        $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_empty_values.xlf'];
 
         $formRuntimeIdentifier = 'form-runtime-identifier-42';
 
@@ -1410,10 +1164,6 @@ class TranslationServiceTest extends UnitTestCase
             ],
         ];
 
-        foreach ($formRuntimeXlfPaths as $formRuntimeXlfPath) {
-            $this->store->flushData($formRuntimeXlfPath);
-        }
-
         $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false);
 
         $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier);
@@ -1421,10 +1171,7 @@ class TranslationServiceTest extends UnitTestCase
         $mockFormRuntime->method('getType')->willReturn('Form');
         $mockFormRuntime->method('getProperties')->willReturn([]);
 
-        $expected = '0';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test1', 'value', []));
-
-        $expected = 'value';
-        self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test2', 'value', []));
+        self::assertEquals('0', $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test1', 'value', []));
+        self::assertEquals('value', $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test2', 'value', []));
     }
 }
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.php
deleted file mode 100644
index ae8e49e5a4d42c85da43f1f785459a39ee0b6a8f..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'element.Page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'FORM EN',
-                            'target' => 'FORM EN',
-                        ],
-                ],
-        ],
-    'de' =>
-        [
-            'element.Page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'FORM EN',
-                            'target' => 'FORM DE',
-                        ],
-                ],
-        ],
-];
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.php
deleted file mode 100644
index 02ad1f6a6d58c2433d9c1fff3a129e5eac64a2e2..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'element.Page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'TEXT EN',
-                            'target' => 'TEXT EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier ADDITIONAL LABEL EN',
-                            'target' => 'form-element-identifier ADDITIONAL LABEL EN',
-                        ],
-                ],
-        ],
-];
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.php
deleted file mode 100644
index e05a5156df6426f31a63a541747625a0eb64dc1d..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'form-runtime-identifier-42.element.form-runtime-identifier-42.renderingOptions.submitButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 submitButtonLabel EN',
-                            'target' => 'form-runtime-identifier-42 submitButtonLabel EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 form-element-identifierlabel EN',
-                            'target' => 'form-runtime-identifier-42 form-element-identifierlabel EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.validation.error.form-runtime-identifier-42.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 error 123 EN',
-                            'target' => 'form-runtime-identifier-42 error 123 EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.validation.error.form-element-identifier.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 form-element-identifier error 123 EN',
-                            'target' => 'form-runtime-identifier-42 form-element-identifier error 123 EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.finisher.Foo.test' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 FooFinisher test EN',
-                            'target' => 'form-runtime-identifier-42 FooFinisher test EN',
-                        ],
-                ],
-        ],
-];
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.php
deleted file mode 100644
index cddd9717df3190f734b499730798dc70577c191e..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'form-runtime-identifier-42.element.form-runtime-identifier-42.renderingOptions.submitButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 submitButtonLabel EN',
-                            'target' => 'form-runtime-identifier-42 submitButtonLabel EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 form-element-identifierlabel EN',
-                            'target' => 'form-runtime-identifier-42 form-element-identifierlabel EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-runtime-identifier.renderingOptions.submitButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier submitButtonLabel EN',
-                            'target' => 'form-runtime-identifier submitButtonLabel EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifierlabel EN',
-                            'target' => 'form-runtime-identifier form-element-identifierlabel EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.validation.error.form-runtime-identifier-42.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 error 123 EN',
-                            'target' => 'form-runtime-identifier-42 error 123 EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.validation.error.form-element-identifier.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 form-element-identifier error 123 EN',
-                            'target' => 'form-runtime-identifier-42 form-element-identifier error 123 EN',
-                        ],
-                ],
-            'form-runtime-identifier.validation.error.form-runtime-identifier.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier error 123 EN',
-                            'target' => 'form-runtime-identifier error 123 EN',
-                        ],
-                ],
-            'form-runtime-identifier.validation.error.form-element-identifier.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier error 123 EN',
-                            'target' => 'form-runtime-identifier form-element-identifier error 123 EN',
-                        ],
-                ],
-            'form-runtime-identifier-42.finisher.Foo.test' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier-42 FooFinisher test EN',
-                            'target' => 'form-runtime-identifier-42 FooFinisher test EN',
-                        ],
-                ],
-            'form-runtime-identifier.finisher.Foo.test' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier FooFinisher test EN',
-                            'target' => 'form-runtime-identifier FooFinisher test EN',
-                        ],
-                ],
-        ],
-];
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.php
deleted file mode 100644
index 50513b2e9e5d2c8f1fea1d3a89335e932e573151..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'form-runtime-identifier-42.element.form-runtime-identifier-42.renderingOptions.submitButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => '0',
-                            'target' => '0',
-                        ],
-                ],
-            'form-runtime-identifier-42.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => '',
-                            'target' => '',
-                        ],
-                ],
-
-            'form-runtime-identifier-42.validation.error.form-element-identifier.123' =>
-                [
-                    0 =>
-                        [
-                            'source' => '0',
-                            'target' => '0',
-                        ],
-                ],
-            'form-runtime-identifier-42.validation.error.form-element-identifier.124' =>
-                [
-                    0 =>
-                        [
-                            'source' => '',
-                            'target' => '',
-                        ],
-                ],
-
-            'form-runtime-identifier-42.finisher.Foo.test1' =>
-                [
-                    0 =>
-                        [
-                            'source' => '0',
-                            'target' => '0',
-                        ],
-                ],
-            'form-runtime-identifier-42.finisher.Foo.test2' =>
-                [
-                    0 =>
-                        [
-                            'source' => '',
-                            'target' => '',
-                        ],
-                ],
-        ],
-];
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.php
deleted file mode 100644
index f8dd6b904d06d8ea9bc759d4c7f6977262874424..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'element.Page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'FORM EN',
-                            'target' => 'FORM EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier LABEL EN',
-                            'target' => 'form-runtime-identifier form-element-identifier LABEL EN',
-                        ],
-                ],
-            'element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier LABEL EN 1',
-                            'target' => 'form-runtime-identifier form-element-identifier LABEL EN 1',
-                        ],
-                ],
-            'element.Text.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier LABEL EN 2',
-                            'target' => 'form-runtime-identifier form-element-identifier LABEL EN 2',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier.properties.placeholder' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier PLACEHOLDER EN',
-                            'target' => 'form-runtime-identifier form-element-identifier PLACEHOLDER EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier-page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier nextButtonLabel EN',
-                            'target' => 'form-runtime-identifier form-element-identifier nextButtonLabel EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue1' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier options-form-element-identifier option 1 EN',
-                            'target' => 'form-runtime-identifier options-form-element-identifier option 1 EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue2' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier options-form-element-identifier option 2 EN',
-                            'target' => 'form-runtime-identifier options-form-element-identifier option 2 EN',
-                        ],
-                ],
-            'element.options-form-element-identifier.properties.options.optionValue1' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier options-form-element-identifier option 1 EN',
-                            'target' => 'form-runtime-identifier options-form-element-identifier option 1 EN',
-                        ],
-                ],
-            'element.options-form-element-identifier.properties.options.optionValue2' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier options-form-element-identifier option 2 EN',
-                            'target' => 'form-runtime-identifier options-form-element-identifier option 2 EN',
-                        ],
-                ],
-            'form-runtime-identifier.finisher.SaveToDatabase.subject' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN',
-                            'target' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN',
-                        ],
-                ],
-            'finisher.SaveToDatabase.subject' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN 1',
-                            'target' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN 1',
-                        ],
-                ],
-            'my-form-runtime-identifier.element.my-form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'my-form-runtime-identifier my-form-element-identifier LABEL EN',
-                            'target' => 'my-form-runtime-identifier my-form-element-identifier LABEL EN',
-                        ],
-                ],
-            'element.my-form-element-with-translation-arguments.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'See %s or %s',
-                            'target' => 'See %s or %s',
-                        ],
-                ],
-            'my-form-runtime-identifier.finisher.SaveToDatabase.subject' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN',
-                            'target' => 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN',
-                        ],
-                ],
-            'finisher.EmailToReceiverWithTranslationArguments.subject' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'My %s subject',
-                            'target' => 'My %s subject',
-                        ],
-                ],
-        ],
-];
diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.php
deleted file mode 100644
index b47a147ea4e22aadf4be53590e15c1714ad8d44d..0000000000000000000000000000000000000000
--- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-return [
-    'default' =>
-        [
-            'element.Page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'TEXT EN',
-                            'target' => 'TEXT EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier LABEL EN',
-                            'target' => 'form-element-identifier LABEL EN',
-                        ],
-                ],
-            'element.form-element-identifier.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier LABEL EN 1',
-                            'target' => 'form-element-identifier LABEL EN 1',
-                        ],
-                ],
-            'element.Text.properties.label' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier LABEL EN 2',
-                            'target' => 'form-element-identifier LABEL EN 2',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier.properties.placeholder' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier PLACEHOLDER EN',
-                            'target' => 'form-element-identifier PLACEHOLDER EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.form-element-identifier-page.renderingOptions.nextButtonLabel' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier nextButtonLabel EN',
-                            'target' => 'form-element-identifier nextButtonLabel EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue1' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'options-form-element-identifier option 1 EN',
-                            'target' => 'options-form-element-identifier option 1 EN',
-                        ],
-                ],
-            'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue2' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'options-form-element-identifier option 2 EN',
-                            'target' => 'options-form-element-identifier option 2 EN',
-                        ],
-                ],
-            'element.options-form-element-identifier.properties.options.optionValue1' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'options-form-element-identifier option 1 EN',
-                            'target' => 'options-form-element-identifier option 1 EN',
-                        ],
-                ],
-            'element.options-form-element-identifier.properties.options.optionValue2' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'options-form-element-identifier option 2 EN',
-                            'target' => 'options-form-element-identifier option 2 EN',
-                        ],
-                ],
-            'form-runtime-identifier.finisher.SaveToDatabase.subject' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier SaveToDatabase subject EN',
-                            'target' => 'form-element-identifier SaveToDatabase subject EN',
-                        ],
-                ],
-            'finisher.SaveToDatabase.subject' =>
-                [
-                    0 =>
-                        [
-                            'source' => 'form-element-identifier SaveToDatabase subject EN 1',
-                            'target' => 'form-element-identifier SaveToDatabase subject EN 1',
-                        ],
-                ],
-        ],
-];