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ď č. 1Ok. 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?