Ho diversi modelli raggruppati in un modulo come questo:
#/app/models/blobs/small_text.rb
class Blobs::SmallText < ActiveRecord::Base
#.. class implementation
end
Vorrei impostare il nome della classe umana in "Texte Court" in francese:
I18n.locale = "fr"
Blobs::SmallText.model_name.human # should return "Texte Court"
Sto avendo problemi con la parte del modulo deldefinizione della classe e come dovrebbe essere inclusa nei file locali. Ho provato diverse combinazioni nei miei file locali, ma non funziona. Ecco alcune combinazioni che ho provato:
# /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"
Qualche idea? Grazie D.
risposte:
29 per risposta № 1Ok. Ho trovato la risposta. Quando non si conosce la chiave di classe, è sufficiente eseguire in una console rails le seguenti istruzioni:
Blobs::SmallText.model_name.i18n_key # this returns :"blobs/small_text"
Ora posso aggiornare i miei file locali di conseguenza:
# /config/locales/models/blobs.fr.yml
# last attempt (it works)
fr:
activerecord:
models:
blobs/small_text: "Texte Court"
Quindi ora funziona. Tuttavia, sono solo io o questa convenzione di denominazione non rispetta le convenzioni generali sui nomi in Ruby on Rails?