2016-08-05 32 views
8

Çevirilerimi bir .yml dosyasında değil, veritabanında tutmak için i18n-active_record 0.1.0 kullanarak Rails 4 uygulamasında çalışıyorum. İyi çalışıyor. Ben ile mücadele ediyorumi18n-active_record ile I18n çeviri: aynı anahtar için aynı form

Ancak bir şey, her çeviri kayıt, yerel ayar başına bir rekor olduğunu yani onlara sıkıcı çaba güncelleme yapar

#1. { locale: "en", key: "hello", value: "hello") 
#2. { locale: "se", key: "hello", value: "hej") 

. Bir formda bir anahtarın tüm örneklerini güncelleştirmek amacıyla .: tek olarak

{ key: "hello", value_en: "hello", value_se: "hej" } 

veya benzeri yani ona sahip olmak yerine istiyoruz. Bunun hakkında bir şey bulamıyorum, bu da beni şaşırtıyor.

Bunu kolayca yapmanın bir yolu var mı? Her türlü hack de iyi olurdu.

cevap

0

Globalize'yi kullanarak kendi Çeviri işlevlerimi oluşturmayı bitirdim. I18n'ye açıkça bağlı değildir, bu yüzden bir paralel sistemdir, ancak güzel olmasa da ve I18n'nin yerine geçmediği halde çalışır, ancak bir yerel ayarı kolayca ekleyebilmenin ve tüm çevirileri tek bir biçimde ele alabilmenin önemli işlevselliğine sahiptir. anahtar ile

  • Çeviri modeli: Çeviri modelinde dize
  • :

    çevirir: değeri globalize_accessors: yerel ayarlar => I18n.available_locales: [: değeri]

=> niteliklerini

UygulamaHelper:

2

Çeviri tablosu için bir ActiveRecord nesnesi oluşturabilir ve daha sonra bu modelde okuma ve yazma işlevleri oluşturabilirsiniz.

Okuma işlevi, ilişkili tüm kayıtları çeker, ardından bunları tek bir karma haline getirir.

Yazma işlevi, tek karma girişinizi alır ve bunları yazma/güncelleştirme için birden çok kayıtta bölüştürür.

+0

Bunu teoride anladım, ancak nasıl çalıştığını mücevherle yapıp pratikte yapmak tamamen farklı bir şey. – Christoffer

İlgili konular