Я использую TYPO3 \ CMS \ Fluid \ View \ StandaloneView в CommandController, чтобы отправлять электронные письма моему fe_user.
Часть, в которой я создаю шаблон, выглядит так:
/* @var \TYPO3\CMS\Fluid\View\StandaloneView $emailView */
$emailView = $this->objectManager->get( 'TYPO3\\CMS\\Fluid\\View\\StandaloneView' );
// pass extension name to standaloneView for translations
$extensionName = $this->request->getControllerExtensionName();
$emailView->getRequest()->setControllerExtensionName( $extensionName );
$extensionPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath( 'my_extension' );
$templatePathAndFilename = $extensionPath . 'Resources/Private/Templates/Email/' . $templateFile . '.html';
$emailView->setLayoutRootPath( $extensionPath . 'Resources/Private/Layouts/Email/' );
//$emailView->setPartialRootPath($ressourcePath . 'Partials/');
$emailView->setTemplatePathAndFilename( $templatePathAndFilename );
return $emailView->render();
Думаю, ничего особенного.
В html-шаблоне я использую обычный ViewHelper для перевода Fluid:
<f:translate key="LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:mail.text" />
Все это хорошо работает на стандартном языке, но я понятия не имею, как я могу указать View / CommandController , какой язык использовать.
Я не совсем уверен, это проблема StandaloneView или CommandController ...
Изменить:
Опубликованный фрагмент вызывается из CommandController (планировщика), поэтому текущего пользователя внешнего интерфейса нет (мы находимся в среде внутреннего интерфейса). Я получаю пользователя из репозитория, поэтому мне нужно сохранить там выбранный язык. Но тогда мне нужно установить язык для StandaloneView