2015-12-02 24 views
0

我對於國家有不同的語言環境,我可以將詞語翻譯爲其他語言,但是如何將它翻譯爲郵件?如何根據區域設置更改電子郵件語言格式?

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文件,我提到的語言環境爲:

config.i18n.available_locales = ['en', 'fr'] 
config.i18n.fallbacks = { 'fr' => 'en'} 

在郵件的情況下,當語言環境設置爲fr時,我無法進行翻譯,但仍需要

應用程序/郵寄/ 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 [email protected]? && @reviewer.email != '' 
    end 
end 

我的一個前輩的建議增加I18n.default_locale = @ sender.account .locale或類似set_delivery_options到ReportMailer。但沒有幫助我。 所以請幫助。

+0

http://stackoverflow.com/a/16049411設置reviewer's/163640和http://stackoverflow.com/a/11248315/163640回答類似的問題。 – eugen

+0

@eugen - 感謝您的鏈接。我試過但沒用。我添加了application.rb,請幫助我。 – venkat

回答

3

您可以使用I18n.with_locale方法

I18n.with_locale('en') do 
    mail(
    to: @reviewer.email, 
    subject: I18n.t('report_mailer.report_review.subject' 
) 
end 

我用英語,但你只需要使用的數據庫

+0

什麼是language_code在這裏? – venkat

+0

謝謝你的回答,我嘗試了**@reviewer.available_locales**,但沒有幫助我。我添加了application.rb文件,請幫助我:) – venkat

相關問題