我想发送有关网络语言的特定语言的电子邮件.
例如,当用户注册时,他有可能选择一种语言,例如英语 – en,意大利语 – 它,德语 – 德语和法语 – fr.
该网站是多语言的,所以我想做的是当用户填写表格例如联系表格时,在他提交表格后,会向他发送一封电子邮件.
所以我们假设他选择意大利语作为该网站的语言,但当他注册时,他选择了英语.所以即使该网站是意大利语,也应该用英语发送电子邮件.
使用.pot文件通过cakephp的__()函数翻译电子邮件.
电邮模板是这样的:
contact_us_user
echo __('SITENAME');
?>
echo "
";
if (isset($firstname) && isset($lastname) && isset($title)) {
echo __('Hello %s %s.', $firstname, $lastname);
} else {
echo __('Hello');
}
echo "";
echo __('Thank you for contacting us!');
echo "
";
echo __('We will take a look to your reservation enquiry and we will get back to you with a booking quote');
echo "
";
echo "
";
echo __('
Thanks and Regards.
');?>
而发送电子邮件的功能是这样的:
/* SEND MESSAGE TO THE USER */
$layout = 'default';
$template = 'contact_us_user';
$subject = __('TEST');
$title_for_layout = __('Contact US');
$viewVars = array(
"firstname" => $this->request->data['Contact']['name'],
"lastname" => $this->request->data['Contact']['surname'],
);
if(isset($this->request->data['Contact']['email']) && !empty($this->request->data['Contact']['email']) && trim($this->request->data['Contact']['email'])!='') {
$this->__sendEmail($this->request->data['Contact']['email'], $subject, $template, $viewVars, $layout, $title_for_layout);
}
方法如下:
/**
* send E-mail method
*
* @return boolean
*/
public function __sendEmail($emailTo, $subject = 'Email', $template = 'default', $viewVars, $layout = 'default', $title_for_layout = 'test') {
$this->set('title_for_layout', $title_for_layout);
App::uses('CakeEmail', 'Network/Email');
$Email = new CakeEmail();
$Email->template($template, $layout)
->emailFormat('html')
->viewVars($viewVars)
->from(array('info@sitename.com'=>'sitename.com'))
->to($emailTo)
->subject($subject);
return $Email->send();
}
所以我要问的是,是否有一种方法或参数传递给电子邮件,以表明我希望以哪种语言发送电子邮件.
类似的东西:$language =’en’;
我的Cakephp版本是:2.5.6
提前致谢.