/ / I18N kľúč pre modely koľajníc zoskupené do modulu - ruby-on-rails, ruby-on-rails-3, ruby-on-rail-3.1, internacionalizácia

I18N kľúč pre modely koľajníc zoskupené do modulu - rubín na koľajniciach, rubín na koľajniciach-3, rubín na koľajniciach-3.1, internacionalizácia

Mám niekoľko modelov zoskupených do modulu, ako je tento:

  #/app/models/blobs/small_text.rb
class Blobs::SmallText < ActiveRecord::Base

#.. class implementation

end

Chcem nastaviť meno ľudskej triedy na „Texte Court“ vo francúzštine:

  I18n.locale = "fr"
Blobs::SmallText.model_name.human # should return "Texte Court"

Mám problémy s modulovou časťoudefinícia triedy a ako by mala byť zahrnutá do lokálnych súborov. V mojich lokalizačných súboroch som vyskúšal niekoľko kombinácií, ale nefungoval. Tu sú niektoré kombinácie, ktoré som vyskúšal:


  # /config/locales/models/blobs.fr.yml

# first attempt (does not work)
fr:
activerecord:
models:
blobs_small_text: "Texte Court"

  # /config/locales/models/blobs.fr.yml
# second attempt(does not work)
fr:
activerecord:
models:
blobs:
small_text: "Texte Court"

Nejaké nápady? Vďaka D.

odpovede:

29 pre odpoveď č. 1

Ok. Našiel som odpoveď. Ak nepoznáte, že kľúč triedy práve beží v konzole koľajníc, postupujte podľa nasledujúcich pokynov:

 Blobs::SmallText.model_name.i18n_key  # this returns :"blobs/small_text"

Teraz môžem podľa toho aktualizovať svoje miestne nastavenia:

# /config/locales/models/blobs.fr.yml
# last attempt (it works)
fr:
activerecord:
models:
blobs/small_text: "Texte Court"

Takže teraz to funguje. Som to však len ja alebo tento dohovor o pomenovávaní nerešpektuje všeobecné pomenovacie konvencie v Ruby on Rails?