2009-05-22 3 views
6

변환 파일에서 변환 된 속성과 모델 이름을 정의했으며 Modelname.human_attribute_name (...)은 올바르게 변환 된 속성 이름을 반환하지만 오류 메시지는 번역되지 않은 것입니다. 오류 메시지의 속성 이름을 변환하는 데 필요한 것은 무엇입니까? 주제에 Guide에서레일스 오류 메시지의 번역 된 속성 (레일즈 2.3.2, I18N)

+0

비슷한 문제가 있습니다. 하지만 내 애플 리케이션 번역에서 모델 이름에 대해 작동하지 않습니다. 레일스 코드의 버그일까요? 그러나 속성 이름은 올바르게 변환됩니다. –

답변

13

, 당신은 이름이 모델의 이름을 제대로 현지화 파일을 설정 및 속성해야합니다

en: 
    activerecord: 
    models: 
     user: Dude 
    attributes: 
     user: 
     login: "Handle" 

을이 YAML이기 때문에, 모든 "탭이"실제로 있는지 확인 두 개의 부드러운 공간. 그런 다음 User.human_nameUser.human_attribute_name(:login)으로 해결할 수 있습니다.

나는 복음을 받아들이지 않았습니다. 버그가 있었을 수 있습니다. 나는 그것을 테스트하고 잘 작동합니다. 나는 title이라는 속성을 가지고 Model이라는 모델을 만들었다.

<h1>New <%= Model.human_name %></h1> 
<% form_for(@model) do |f| %> 
    <%= f.error_messages %> 
    <%= Model.human_attribute_name("title") %><br /> 
    <%= f.text_field :title %> 
    <%= f.error_message_on :title %> 
... 

그리고 제대로 변환 출력의 스크린 샷 :

fr: 
    activerecord: 
    models: 
     model: "Sumfink" 
    attributes: 
     model: 
     title: "Tiltile" 

여기에 관련 뷰 코드입니다 : 이안에 http://screencast.com/t/et5FhVe1Gp

+0

자세한 답변을 주셔서 대단히 감사드립니다. 나는 새로운 프로젝트를 시도했다. 기존 프로젝트의 번역 파일을 사용하고 새 모델을 추가하여 번역을 테스트했으며 번역이 즉시 완료되었습니다. 문자열이 번역에 사용되지 않은 원래 번역 파일에 액세스 할 수 없어 내 직장에 있기 때문에 번역 할 필요가 없습니다. 나는 월요일에 다른 것을보기 위해 그것을 볼 것이다. 성공적인 번역이있는 응용 프로그램은 Linux에서 실행 중이 었으며 응용 프로그램은 Windows에서 실행됩니다. –

+0

번역 파일이 정확했습니다. 열 이름의 "_id"부분은보기의 오류 메시지에 표시되지 않았기 때문에 생략되었습니다. "model_id"대신 "model"을 사용했습니다. –

+0

스크린 샷의 링크가 끊어졌습니다. 당신이 제공 할 수있는 다른 물품이 있습니까? 고맙습니다. – mkelley33

1

명성 그냥 여기 config/localesfr.yml 파일의 단편입니다 레이블을 강조 표시하기 위해 유효성 검사에 실패 할 경우 다음과 같이 작성해야합니다.

를 작성하는 몇 가지 이유를 들어

, 그냥 좋아 :

<%= f.label "title" %><br /> 

이 번역을 표시하지 않습니다.

+2

어떤 버전의 레일을 사용하고 있습니까? 이 라벨 버그는 2.3.6에서 수정되었습니다. https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n – giraff

관련 문제