2

Ruby on Rails 3.1을 사용하고 있으며 메일러와 관련된 국제화를 올바르게 처리하는 방법을 알고 싶습니다. 위의 코드를 사용하여메일러에서 i18n gem 사용시 문제가 있습니다

class Users::Mailer < ActionMailer::Base 
    def custom(user) 
    ... 
    @test_email = t('test_email') 
    # I also tried to use '@test_email = I18n.t('test_email')' 
    end 
end 

: 내가 가진 내 app/mailers/users/mailer.rb 파일에

... 
<%= @test_email.to_s %> 
... 

을 ... : 그건 내 app/views/users/mailer/_custom.html.erb 파일에 I가 ...

...입니다 @test_email.to_s 보낸 이메일에 텍스트가 표시되지 않고 (비어있는 것 같습니다) I18n gem은 수행해야 할 작업을 올바르게 수행하지 못하는 것으로 보입니다. 어떻게 "목표"이메일 본문에 로케일 메시지를 제대로 표시 할 수 있도록 문제를 해결할 수 있습니까? 당신이 당신의 대답에 게시 코드는 나를 위해 작동하지 않습니다

@volodymyr에 대한


UPDATE. 내 config/locales/defaults/en.yml 파일에 다음 코드를 추가하는 것이 시도 :

en: 
    hello: Test text!!! 

Test text!!! 여전히 전송 이메일 (이 비어)에 표시되지 않습니다. 테스트에 대한

# Fragment of mailer 
def test_locale 
    @test_email = I18n.t('hello') 
    mail(:to => "<your_email_goes_here>", :subject => "test") 
end 

# Contents of test_locale.html.erb 
String, retrieved from I18n: <%= @test_email %> 

내가 레일 본체를 사용 : 여기

+0

큰 따옴표로 묶습니다. 예 : ko : hello : "테스트 텍스트" –

+0

@volodymyr - 문제는 따옴표와 관련이 없습니다 ... 자세한 내용은 아래 답변을 읽어보십시오. – user12882

답변

1

는 (레일 3.1.0 루비 1.9.3p0를 사용`난 (2011-10-30 수요일 수정 33570)) 코드를 작업의 예이다

MyMailer.test_locale.deliver 

그래서 당신은 확인해야하는 경우 :

  • ERB 템플릿 파일 이름이 일치가 mailer`s 메소드 이름
  • 가 우송 방법 및 템플릿 파일이 일치
  • 폴더 이름에
  • 변수 이름 "보기"현지화 파일에서 해당 레코드가 메일러 이름을

UPDATE가 일치한다 : 현지화 파일에서 따옴표로 문자열을 둘러싸 시도 :

en: 
    hello: "Some text here" 
+0

코드가 제대로 작동하지 않는 것 같습니다. 질문을 업데이트했습니다 ... – user12882

+0

아마도 해결책을 찾았습니다. 지연된 작업 보석을 사용하고 있으며 작업을 다시 시작한 후 (개발 모드에서 '레이크 작업 : 작업') 작업을 시작했습니다. 감사. – user12882

관련 문제