zend framework 2의 메일 링 라이브러리를 사용하고 있으며 번역기 기능을 사용하고 있습니다. 그러나 번역은 템플릿 .phtml 내에서만 작동하며 전자 메일을 보내려는 서비스 기능에서는 작동하지 않습니다 (예 : 전자 메일 제목 번역).zf2에서 전자 메일을 보낼 때 번역이 작동하지 않습니다.
$mailFactory = $this->getDependency('mail');
$viewModel = new ViewModel(array(
'variable' => $x
));
$viewModel->setTemplate('template.phtml');
$message = $mailFactory->prepareMessage($viewModel);
$message->getHeaders()
->addHeaderLine('MIME-Version', '1.0')
->addHeaderLine('Content-type', 'text/html; charset=UTF-8');
$message->setSubject($this->translate('Recover your password'));
$message->setEncoding("UTF-8");
$message->addTo($email, $fullname);
$transport = $mailFactory->getTransport();
return $transport->send($message);
기능이 코드를 호출하는 클래스에 $this->translate('...')
전화 : 이것은 내 서비스 기능 안에 내 코드가 이메일을 보내는 것입니다 내 모든 응용 프로그램에서 잘 return $this->translator->translate($text)
,이 작품을,하지만 난 하나를 보낼 경우에만 잘못 작동 이메일 (template.phtml
을 제외하고,이 파일 안에는 번역사가 잘 작동합니다). 받은 모든 메일은 영어 (번역되지 않음)로 된 주제와 스페인어로 된 내용 (번역본)
감사합니다. 시도해 보겠습니다. 의견을 보내 드리겠습니다. – Cesar
도움을 주셔서 감사합니다. 저는 메일 서비스를 사용자 정의하고 서비스 관리자의 초기화 프로그램에서 변환기 인스턴스를 서비스로 설정할 수 있습니다. 이제 제 경우에 대한 해결책을 찾았습니다. 전자 메일을 보낼 코드가있는 서비스에서 번역기 개체 $ translator = $ this-> getDependency ('translator') 만 있습니다. ServiceFactory에서 $ serviceLocator-> get ('translator')를 사용하여 번역기에 대한 종속성을 추가했습니다. 이제는 $ translator-> translate ('text')를 사용하여 내 서비스의 텍스트를 번역 할 수 있습니다. – Cesar