在我的应用中,我需要发送不同语言的电子邮件。如何正确完成 - 例如制作不同的电子邮件模板invite.en.text.erb
和invite.de.text.erb
(不确定是否可行),将电子邮件保留在I18n本地化或其他解决方案中可能?
答案 0 :(得分:3)
使用本地化视图(链接到Rails指南here),完全按照您的建议操作。只需重命名视图文件,如图所示,它们将自动与您的Rails本地化设置进行交互。
要根据用户的区域设置,电子邮件地址或其他逻辑发送给定区域设置中的邮件,您可以使用I18n.with_locale(区域设置)方法。使用类似方法的Mailer示例显示在this SO回答中。
我不建议做HendrikPetertje的建议。它使用仅用于单个视图的本地化字符串来混淆您的语言环境文件。
答案 1 :(得分:1)
创建默认电子邮件文件(就像您将使用的那样),并尝试以下说明:
在您的电子邮件文件中:
<p><%= t('email_line_description_here')%></p>
<p><%= t('email_line2_description_here') %></p>
(etc)
在你的config / locales / en.yml中(右缩进在这里很重要)
en:
# email stuff
email_line_description_here: "Your email's first line content in English here"
email_line2_description_here: "Your email's second line content in English here"
在你的config / locales / de.yml中(右缩进在这里也很重要)
de:
# email stuff
email_line_description_here: "Your email's first line content in German here"
email_line2_description_here: "Your email's second line content in German here"
现在当环境设置为英语时,如果德语翻译将根据de.yml进行,则将根据en.yml翻译。