我为各个国家/地区设置了不同的语言环境,我可以为其他人翻译单词,但是如何将其翻译为邮寄者?
application.rb中:
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
config.i18n.default_locale = 'en'
config.i18n.available_locales = ['en', 'fr']
配置/区域设置/邮寄者/ en.yml:
en:
report_mailer:
report_review:
subject: 'Proof:'
配置/区域设置/邮寄者/ fr.yml:
fr:
report_mailer:
report_review:
subject: 'ÉPREUVE:'
在application.rb文件中,我提到locales为:
config.i18n.available_locales = ['en', 'fr']
config.i18n.fallbacks = { 'fr' => 'en'}
如果是邮件,我无法在语言环境设置为 fr 时进行翻译,仍然需要 en 。
应用程序/邮寄者/ report_mailer.rb:
class ReportMailer < ActionMailer::Base
after_filter :set_delivery_options
def set_delivery_options
if @sender and @sender.use_smtp_settings?
message.delivery_method.settings.merge!(@sender.smtp_settings.to_settings)
end
end
end
应用程序/邮寄者/ report_mailer.rb:
class ReportMailer < ClientMailer
def client_review(review, requestor, reviewer)
@review = review
@sender = requestor
@reviewer = reviewer
mail(
to: @reviewer.email,
subject: t('report_mailer.report_review.subject',
job: review.job.name
) if !@reviewer.email.nil? && @reviewer.email != ''
end
end
我的一位大四学生建议将 I18n.default_locale = @ sender.account.locale 或类似set_delivery_options的内容添加到ReportMailer。但是没有帮助我。 所以请帮忙。
答案 0 :(得分:3)
您可以使用I18n.with_locale方法
public void populateListView()
{
lbxBugged.Items.Clear();
SqlCeCommand cm = new SqlCeCommand("SELECT Bug_ID, Bug_Code, Bug_Description, Bug_Author FROM tblBugs ORDER BY Bug_ID ASC", mySqlConnection);
try
{
mySqlConnection.Open();
SqlCeDataReader dr = cm.ExecuteReader();
while (dr.Read())
{
ListViewItem item = new ListViewItem(dr["Bug_ID"].ToString());
item.SubItems.Add(dr["Bug_Code"].ToString());
item.SubItems.Add(dr["Bug_Description"].ToString());
item.SubItems.Add(dr["Bug_Author"].ToString());
lbxBugged.Items.Add(item);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
我使用的是英语,但你只需要在数据库中使用评论员设置