2010-09-14 24 views
5

Kullanıcı modelimin 'oturum açma' özniteliğini tanımlamak için kullanılan dizgiyi, bunun yerine "Kullanıcı adı" olarak tanımlamaya çalışıyorum. Bunun vendor/rails/activerecord/lib/active_record/locale/en.yml'da ayarlandığını düşündüm. Burada ve config/locales/en.yml dosyamda değiştirmeyi denedim ve her iki durumda da çalışmıyor (her değişiklikten sonra sunucuyu yeniden başlatıyorum). Böyle bitti Her iki durumda daI18n kullanarak model öznitelik adlarını geçersiz kılar - bu işe yaramaz

:

en: 
... 
    activerecord: 
    attributes: 
     user: 
      login: User Name 

i bunu test zaman mesela sahip f.label: Yeni kullanıcı biçiminde giriş, bu "Giriş" değil "Kullanıcı Adı" olarak çıkar . Bu şeylerin nasıl işlediğine dair temel bir hata altında mı çalışıyorum yoksa gerçekten çalışmıyor mu? Her iki durumda da, bana bunu nasıl düzelteceğimi söyleyen var mı? teşekkürler, maks

cevap

0

Sen en.yml dosyasında herhangi bir isim altında "Kullanıcı Adı" dizesi depolayabilir:

<%= f.label :login, t('user.user_name') %> 
+1

Merhaba yannis. Kendi özel çevirilerimi yapabildiğimi biliyorum, ancak benim anlayışım, rayların oluşturduğu şeyleri geçersiz kılabildiğimden dolayı, herhangi bir özel çeviriye hiç başvurmam gerekmediği için otomatik olarak kullanıldı. Bu konuda yanlış olabilirim. –

+0

Bu gerçekten ilginç olurdu… başka bir yerde bir çözüm bulursanız lütfen buraya bir yorum gönderin. – Yannis

1

Herhangi biriniz çeviri sorunu olmadığında, bu hata ayıklanır:

İlk olarak, günlüğe kaydetmeyi ayarlamak için komut dosyasını https://stackoverflow.com/a/10211540/474597 numaralı belgede kullanıyorum. Daha sonra sunucuyu çalıştırdığım ve sayfaları oluşturduğumda, bu günlüğünde çevirileri almak için kullanılan anahtarları görebiliyorum. Sonra kullandığım tuşların doğru olup olmadığını kontrol edebilirim.


Bir tuzak, ilk anahtarın mutlaka kullanacakları anahtar olmamasıdır. Doğru anahtarı yüklediği durumları gördüm ve daha sonra çeviriye sahip olmayan ve ingilizce çeviri ile sonuçlanan başka bir anahtar arar. Çeviriyi bu iki tuşa koymam gerekiyordu.

Örneğin: Foo has_many Bar'ım ve Bar has_many Duu ve Duu bir fiyat sütununa sahip.

:duu 
:"activerecord.attributes.duu.text" 
:"activerecord.errors.models.duu.attributes.text.blank" 
:"activerecord.errors.models.duu.blank" 
:"activerecord.errors.messages.blank" 
:"errors.attributes.text.blank" 
:"errors.messages.blank" 
:"activerecord.attributes.foo/bars/duus.text" 
2

ben isteği üzerine burada bu cevap veriyorum: log Bu sahiptir

activerecord: 
    attributes: 
     'foo/bar/duu': 
     price: "price" 

olsa: o iş için o fiyat sütunu çevirmek için , şu olması gerekir Birisi ... Bunu düzelttim ve sorumu güncellemedim, üzgünüm. Sorularımın doğru satırlarındaydım, ancak tuşlara kadar doğru "yol" a sahip değildim: görüntülendiği gibi alan adları "etiketler" olarak adlandırılıyor ve bunların dışında kendi bölümleri var: activerecord yaml ağacının bir parçası.

bunu yapmanın doğru yolu "kullanıcı" bir küçük harfli model adı ve giriş ve e-posta alanları olan

en: 
    user: 
    labels: 
     login: "User Name" 
     email: "Email Address" 

olduğunu.

İlgili konular