2009-09-06 29 views
5

Modelimin alanlarını çevirmek için http://guides.rubyonrails.org/i18n.html talimatlarını kullandım, ancak etiketler çevrilmedi. Ne yapıyorum yanlış. ActiveRecord hata iletileri: alanlar için çeviri

Tarlada name ile User modeli var ve Brezilyalı Portugues (pt_br) çevrilmiş olmasını isterdim, bu yüzden benim pt_br.yml var: Ben sayfanın lazım

pt_br: 
    errors: "Erro!" 
    activerecord: 
     models: 
      user: "Usuário" 
     attributes: 
      name: "Nome" 
      address: "Endereço" 
     errors: 
      template: 
       body: "Por favor, corrija os campos assinalados" 
       header: "Dados inválidos" 
      messages: 
       blank: "é obrigatório" 
       taken: "já existe" 
       too_short: "incompleto" 

bir form ile:

<% form_for(@usuario) do |f| %> 
<%= f.error_messages %> 
<%= f.label :name %> 
<%= f.text_field :name %> 
<% end %> 

ben alanı "adı" olarak etiketlenmiş değil ben olmak istiyorum olarak "Nome" olarak gelmiş eşik. Ben de ne eksik benim environment.rb

yılında

config.i18n.default_locale = :pt_br 

var?

cevap

5

Sen yani, user altında özelliklerini ad alanı gerekir .:

pt_br: 
    activerecord: 
    attributes: 
     user: 
     name: "Nome" 
     address: "Endereço" 

Ayrıca otomatik etiket çevirmek i18n_label plugin yükleyebilirsiniz.

+0

Excelent! İşe yaradı, ama bağlantınızda bir sorun var (muhtemelen alt çizgi) –

+0

Çalıştığına sevindim, bağlantı şimdi düzeltilmelidir. – eremite

0

<%= f.label :name, t('activerecord.attributes.name') %>'u deneyebilirsiniz.

+0

Bu alan için çalışır, ancak (ı, örneğin boş zorunlu alanını terk olduğunda) hala hatalar çerçeve içinde çevrilmemiş metinleri olsun –

0

human_attribute_name nedir? Rails 2.1.0'dan beri var.

Ben başka çözümlere sonra daha iyi olduğunu düşünüyorum:

<%= f.label :name, User.human_attribute_name(:name) %> 
İlgili konular