ruby-on-rails-3 – Ruby on Rails 3.2 Mailer,本地化邮件主题字
发布时间:2020-12-16 19:11:05 所属栏目:百科 来源:网络整理
导读:我目前正在编写RoR 3.2中的邮件程序,它将发送应根据用户语言进行本地化的邮件.我设法渲染了正确的本地化视图,但是我在某些需要更改区域设置的字段(如主题)方面遇到了一些困难. 我已经阅读了一些反对在发送电子邮件之前更改语言环境的帖子.用户有许多不同的语
我目前正在编写RoR 3.2中的邮件程序,它将发送应根据用户语言进行本地化的邮件.我设法渲染了正确的本地化视图,但是我在某些需要更改区域设置的字段(如主题)方面遇到了一些困难.
我已经阅读了一些反对在发送电子邮件之前更改语言环境的帖子.用户有许多不同的语言,这意味着每次向用户发送电子邮件时都要更改我的语言环境. 我知道可以更改区域设置,发送电子邮件,更改区域设置.这不像铁路的方式.这样做有正确的方法吗? 这是一个片段: class AuthMailer < ActionMailer::Base add_template_helper(ApplicationHelper) default :from => PREDEF_MAIL_ADDRESSES::System[:general] [...] def invite(address,token,locale) @token = token @locale = locale @url = url_for(:controller => "signup_requests",:action => "new",:token => token.key,:locale => locale) mail(:subject => "Invitation",:to => address) do |format| format.html { render ("invite."+locale) } format.text { render ("invite."+locale) } end end [...] end 我的看法 auth_mailer invite.en.html.erb invite.en.text.erb invite.it.html.erb invite.it.text.erb ... 简而言之,在这种情况下,我想使用@locale本地化:subject,而不是通过运行:I18n.locale = locale 解决方法
可以暂时更改全局区域设置.有一个方便的I18n.with_locale方法.此外,ActionMailer会自动翻译主题.
class AuthMailer def invite(address,:locale => locale) I18n.with_locale(locale) do mail(:to => address) end end end 在语言环境中: en: auth_mailer: invite: subject: Invitation (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |