diff --git a/typo3/sysext/core/Classes/Localization/LocalizationFactory.php b/typo3/sysext/core/Classes/Localization/LocalizationFactory.php index 65459d17fc26f57cc37aa834063ff62a80df05ce..b88b1f112ae2b8fc94422b586f48195d0a5856bb 100644 --- a/typo3/sysext/core/Classes/Localization/LocalizationFactory.php +++ b/typo3/sysext/core/Classes/Localization/LocalizationFactory.php @@ -17,6 +17,7 @@ namespace TYPO3\CMS\Core\Localization; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Localization\Exception\FileNotFoundException; +use TYPO3\CMS\Core\Package\Exception\UnknownPackagePathException; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -83,7 +84,7 @@ class LocalizationFactory implements SingletonInterface // @todo: this (providing an absolute file system path) likely does not work properly anyway in all cases and should rather be deprecated $LOCAL_LANG = $parser->getParsedData($this->store->getAbsoluteFileReference($fileReference), $languageKey); } - } catch (FileNotFoundException $exception) { + } catch (FileNotFoundException | UnknownPackagePathException $exception) { // Source localization file not found, set empty data as there could be an override $this->store->setData($fileReference, $languageKey, []); $LOCAL_LANG = $this->store->getData($fileReference); diff --git a/typo3/sysext/fluid/Tests/Functional/ViewHelpers/TranslateViewHelperTest.php b/typo3/sysext/fluid/Tests/Functional/ViewHelpers/TranslateViewHelperTest.php index eca83fc91637a910823763420a8867610759ac8d..63a9c5b5cc8c9308960ec376476bbd25bfebfa22 100644 --- a/typo3/sysext/fluid/Tests/Functional/ViewHelpers/TranslateViewHelperTest.php +++ b/typo3/sysext/fluid/Tests/Functional/ViewHelpers/TranslateViewHelperTest.php @@ -76,4 +76,15 @@ class TranslateViewHelperTest extends FunctionalTestCase $view->setTemplateSource('<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack" />'); self::assertSame('Go back', $view->render()); } + + /** + * @test + */ + public function renderReturnsNullOnInvalidExtension(): void + { + $this->setUpBackendUserFromFixture(1); + $view = new StandaloneView(); + $view->setTemplateSource('<f:translate key="LLL:EXT:invalid/Resources/Private/Language/locallang.xlf:dummy" />'); + self::assertNull($view->render()); + } }