/ / Chiave I18N per modelli di rotaie raggruppati in un modulo - ruby-on-rails, ruby-on-rail-3, ruby-on-rails-3.1, internazionalizzazione

Chiave I18N per modelli di rotaie raggruppati in un modulo: ruby-on-rails, ruby-on-rails-3, ruby-on-rails-3.1, internazionalizzazione

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 № 1

Ok. 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?