From bb09f2f897e840eea6a0b1f26a0b588e91b3be14 Mon Sep 17 00:00:00 2001 From: Kevin Ditscheid <kevin.ditscheid@sgalinski.de> Date: Wed, 16 May 2018 20:08:28 +0200 Subject: [PATCH] [FEATURE] Enable subject to be localizable If subject is a string that begins with LLL:, it will be handled as a locallang reference and translated accordingly --- Classes/Controller/MailController.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Classes/Controller/MailController.php b/Classes/Controller/MailController.php index 875b3f8f..ab6e7e41 100644 --- a/Classes/Controller/MailController.php +++ b/Classes/Controller/MailController.php @@ -38,6 +38,7 @@ use TYPO3\CMS\Core\Utility\VersionNumberUtility; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Extbase\Utility\LocalizationUtility; +use TYPO3\CMS\Lang\LanguageService; /** * Controller for the mail templating service module @@ -157,8 +158,18 @@ class MailController extends ActionController { $templateFromFile = new Template(); $templateFromFile->setLanguage($key); $templates[$key] = $templateFromFile; - + if (\strpos($subject, 'LLL:') === 0) { + /** + * @var $languageService LanguageService + */ + $languageService = GeneralUtility::makeInstance(LanguageService::class); + // initialize the language service with the templates language + $languageService->init($key); + $subject = $languageService->sL($subject); + unset($languageService); + } $templateFromFile->setSubject($subject); + $subject = $registerArray[$parameters['selectedExtension']][$parameters['selectedTemplate']]['subject']; if (file_exists($defaultTemplateFile)) { $templateFromFile->setContent(file_get_contents($defaultTemplateFile)); } else { @@ -224,7 +235,7 @@ class MailController extends ActionController { $this->view->assign('beUserMail', $GLOBALS['BE_USER']->user['email']); // get the default language label and pass it to the view - $languageService = $GLOBALS['LANG']; + $languageService = $this->getLanguageService(); $pageTsConfig = BackendUtility::getPagesTSconfig($pageUid); if (VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version) >= 8000000) { $defaultLanguageLabel = $languageService->sL( @@ -358,4 +369,13 @@ class MailController extends ActionController { $arguments = $this->request->getArguments(); $this->redirect('index', NULL, NULL, $arguments); } + + /** + * Get the LanguageService + * + * @return LanguageService + */ + protected function getLanguageService(): LanguageService { + return $GLOBALS['LANG']; + } } -- GitLab