diff --git a/typo3/sysext/form/Classes/Service/TranslationService.php b/typo3/sysext/form/Classes/Service/TranslationService.php index 28fdac63bc2c84aa0623237347d7df3480847a5a..f2e851c536d6fe5a15bcd52f606fffd148ef68c4 100644 --- a/typo3/sysext/form/Classes/Service/TranslationService.php +++ b/typo3/sysext/form/Classes/Service/TranslationService.php @@ -134,7 +134,7 @@ class TranslationService implements SingletonInterface if (is_array($value)) { $result[$key] = $this->translateValuesRecursive($value, $translationFiles); } else { - $this->sortArrayWithIntegerKeysDescending($translationFiles); + $translationFiles = $this->sortArrayWithIntegerKeysDescending($translationFiles); if (!empty($translationFiles)) { foreach ($translationFiles as $translationFile) { diff --git a/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form_overrides.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form_overrides.xlf new file mode 100644 index 0000000000000000000000000000000000000000..49fb63118d9b0220126fee3ab274a8c4261119fb --- /dev/null +++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form_overrides.xlf @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> + <file source-language="en" datatype="plaintext" original="EXT:form/Tests/Unit/Service/Fixtures/locallang_form_translation_override.xlf" date="2024-06-19T16:32:32Z" product-name="tests"> + <header/> + <body> + <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve"> + <source>FORM EN OVERRIDE</source> + </trans-unit> + + </body> + </file> +</xliff> diff --git a/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php b/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php index d2d6ea8d1a71c49dd4b9dfba89f25c89b090bc69..038eab42131c20229bcb47a7cd2e8b715751495d 100644 --- a/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php +++ b/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php @@ -160,7 +160,10 @@ final class TranslationServiceTest extends FunctionalTestCase #[Test] public function translateValuesRecursiveTranslateRecursive(): void { - $xlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $xlfPaths = [ + 10 => 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf', + 100 => 'EXT:form_labels/Resources/Private/Language/locallang_form_overrides.xlf', + ]; $input = [ 'Stan' => [ 'Steve' => 'Roger', @@ -168,6 +171,7 @@ final class TranslationServiceTest extends FunctionalTestCase [ 'Francine' => [ 'Klaus' => 'element.Page.renderingOptions.nextButtonLabel', + 'Lisa' => 'form-runtime-identifier.element.form-element-identifier.properties.label', ], ], ]; @@ -177,7 +181,8 @@ final class TranslationServiceTest extends FunctionalTestCase ], [ 'Francine' => [ - 'Klaus' => 'FORM EN', + 'Klaus' => 'FORM EN OVERRIDE', + 'Lisa' => 'form-runtime-identifier form-element-identifier LABEL EN', ], ], ];