微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Zend_Translate电子邮件模板的翻译

使用zend框架,我和其他许多人一样,发送电子邮件.现在,对于电子邮件,我使用视图模板. F.X.
welcome.phtml
    欢迎来到我的网站

Hi <?PHP print $this->name; ?><br />
Welcome to my site.<br /><br />

Regards <?PHP print $this->siteName; ?>

现在翻译一下,会有几种方法.
我可以将整个文本墙放在translate();?>中,所有html都会跟随,所以这是一个愚蠢的想法.

其次,我可以将每个电子邮件模板放在语言文件夹fx​​中. /languages/en_en/emails/welcome.phtml,并翻译整个文件,html仍然会跟随,但它会更容易.缺点是如果我有40种语言,并且模板的html发生了变化,我将不得不编辑40个文件.

第三,我可以将每一行放在打印$this-> translate();但这会给很多线.

还有其他方法吗?或者哪种方式做到最好?

一个小问题:如果我的文字墙有一点格式,一般该怎么办?可能有10行文字,有些单词是粗体,还有几行?翻译中的整个文本墙(); ?&GT ?

问候

解决方法:

Zend_Translate支持占位符,因此您还可以尝试在翻译源中创建消息,如:

// NOTE: this is only wireframe, working code depends on your translation adapter format
"message-id" => "Hi %s<br /> Welcome to my site.<br /><br /> Regards %s"     // en
"message-id" => "Hallo %s <br/>Willkommen auf meiner Website.<br/><br/>Regards %s" // de

如果您的数据是:

name => 'John'
siteName => 'MySite.com'

你可以调用translate方法

$mailBody = $this->translate('message-id', $this->name, $this->siteName);

并且“%s”将替换为实际数据

Hi John<br /> Welcome to my site.<br /><br /> Regards MySite.com

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐