Skip to content
Snippets Groups Projects
Commit bb09f2f8 authored by Kevin Ditscheid's avatar Kevin Ditscheid
Browse files

[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
parent 967192b1
No related branches found
No related tags found
No related merge requests found
...@@ -38,6 +38,7 @@ use TYPO3\CMS\Core\Utility\VersionNumberUtility; ...@@ -38,6 +38,7 @@ use TYPO3\CMS\Core\Utility\VersionNumberUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility; use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
use TYPO3\CMS\Lang\LanguageService;
/** /**
* Controller for the mail templating service module * Controller for the mail templating service module
...@@ -157,8 +158,18 @@ class MailController extends ActionController { ...@@ -157,8 +158,18 @@ class MailController extends ActionController {
$templateFromFile = new Template(); $templateFromFile = new Template();
$templateFromFile->setLanguage($key); $templateFromFile->setLanguage($key);
$templates[$key] = $templateFromFile; $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); $templateFromFile->setSubject($subject);
$subject = $registerArray[$parameters['selectedExtension']][$parameters['selectedTemplate']]['subject'];
if (file_exists($defaultTemplateFile)) { if (file_exists($defaultTemplateFile)) {
$templateFromFile->setContent(file_get_contents($defaultTemplateFile)); $templateFromFile->setContent(file_get_contents($defaultTemplateFile));
} else { } else {
...@@ -224,7 +235,7 @@ class MailController extends ActionController { ...@@ -224,7 +235,7 @@ class MailController extends ActionController {
$this->view->assign('beUserMail', $GLOBALS['BE_USER']->user['email']); $this->view->assign('beUserMail', $GLOBALS['BE_USER']->user['email']);
// get the default language label and pass it to the view // get the default language label and pass it to the view
$languageService = $GLOBALS['LANG']; $languageService = $this->getLanguageService();
$pageTsConfig = BackendUtility::getPagesTSconfig($pageUid); $pageTsConfig = BackendUtility::getPagesTSconfig($pageUid);
if (VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version) >= 8000000) { if (VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version) >= 8000000) {
$defaultLanguageLabel = $languageService->sL( $defaultLanguageLabel = $languageService->sL(
...@@ -358,4 +369,13 @@ class MailController extends ActionController { ...@@ -358,4 +369,13 @@ class MailController extends ActionController {
$arguments = $this->request->getArguments(); $arguments = $this->request->getArguments();
$this->redirect('index', NULL, NULL, $arguments); $this->redirect('index', NULL, NULL, $arguments);
} }
/**
* Get the LanguageService
*
* @return LanguageService
*/
protected function getLanguageService(): LanguageService {
return $GLOBALS['LANG'];
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment