2011-08-19 5 views
9

각 유효성 검사에 대해 오류 메시지를 현지화 할 수는 있지만 특정 모델에 대해 오류를 작성하려면 어떻게해야합니까?i18n : 특정 모델에 대한 오류 메시지 현지화

en: 
    mongoid: 
    errors: 
     messages: 
     taken: "It is already taken" 

하지만 user 모델에 대한 메시지를 변경하려면 :

일반 로케일은 다음과 같습니다이 시도

en: 
    mongoid: 
    errors: 
     messages: 
     taken: "It is already taken" 
     user: 
      taken: "It is already taken. %{link_to 'Remember password', reset_password_path'}" 

답변

28

:

en: 
    mongoid: 
    errors: 
     messages: 
     taken: "It is already taken" 
     models: 
     user: 
      attributes: 
      login: 
       taken: "It is already taken. %{link}" 

참조 :

,

ActiveRecord code comments

PS : 지역화 문자열 동적 교체 보간 변수를 사용한다.

는 예컨대 : 당신이 알고 어떻게

user.errors.add(:login, :taken, :link => "foo") 
+0

당신이 설명 할 수 : user 객체의 login 필드에 오류를 추가 하시겠습니까? 현지화에 필요한 경로를 어떻게 이해할 수 있습니까? 추신 : 나는 단지 잔인한 원시 HTML을 사용하여 링크 – fl00r

+0

그것은 ActiveRecord 코드 주석에 언급되어 있습니다. 나는 망고 류가 같은 관례를 따를지도 모른다라고 추정했다. –

+0

비밀번호 재설정 양식에 대한 링크를 추가했지만이 오류가 계속 발생했습니다 : '누락 보간 인자'가 유효하지 않습니다. 비밀번호를 다시 보내려면 % {link}을 (를) 클릭하십시오. 사용자 ", : 속성 =>"비밀번호 토큰 ", : value => nil})'. Rails 3.1에서 변경된 사항이 있습니까? – David

관련 문제