gpt4 book ai didi

ruby-on-rails-3 - Ruby on Rails 3.2 Mailer,将邮件主题字段本地化

转载 作者:行者123 更新时间:2023-12-04 08:57:15 25 4
gpt4 key购买 nike

我目前正在用RoR 3.2编写邮件程序,该程序可以发送应根据用户语言进行本地化的邮件。我设法呈现了正确的本地化 View ,但是在某些需要更改语言环境的字段(例如主题)上遇到了一些困难。
在发送电子邮件之前,我已经阅读了一些反对更改语言环境的帖子。用户使用多种语言,这意味着每次向用户发送电子邮件时都要更改我的语言环境。

我知道可以更改语言环境,发送电子邮件,更改语言环境。这感觉不像铁轨。有正确的方法吗?

这是一个片段:

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, token, locale)
@token = token
@locale = locale
@url = url_for(:controller => "signup_requests", :action => "new", :token => token.key, :locale => locale)

I18n.with_locale(locale) do
mail(:to => address)
end
end
end

在语言环境中:
en:
auth_mailer:
invite:
subject: Invitation

关于ruby-on-rails-3 - Ruby on Rails 3.2 Mailer,将邮件主题字段本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com