php - Zend_Translate 翻译电子邮件模板

标签 php zend-framework translate zend-translate

使用 zend 框架,我和许多其他人一样发送电子邮件。现在对于电子邮件,我使用 View 模板。 f.x. 欢迎.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 行文本,其中一些单词是粗体的,还有一些
的?翻译()中的整个文本墙; ?> ?

问候

最佳答案

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

关于php - Zend_Translate 翻译电子邮件模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111207/

相关文章:

php - libapache2-mod-fastcgi 安装过程中出错

PHP进程执行超时

php - mysql 我不明白这里的 if 含义

php - 链接到单页结帐中的特定步骤

php - Zend Framework - 在注册表中找不到按名称命名的插件

css - 相对图像上绝对定位 2 Div 的问题

java - 如何将多维 vector 从 C++ 转换为 Java?

php - 远程 MySQL 不适用于 Laravel Config

php - Zend_Translate - Zend_Navigation 和 Routing 组合问题!

java - 如何在处理中根据对象的旋转来移动对象? (局部轴)