active_attr icon indicating copy to clipboard operation
active_attr copied to clipboard

I18N Scope

Open marco-martins opened this issue 12 years ago • 7 comments

It's really nice if can have i18N support, for now i try translate attributes in i18n file but it does not work.

marco-martins avatar Mar 03 '12 16:03 marco-martins

@skarface What are you using for keys? ActiveAttr doesn't do anything for i18n but it does pull in ActiveModel modules that should provide full support.

cgriego avatar Mar 06 '12 04:03 cgriego

I use normal way, in my translate file i put: activerecord: attributes: user: name: "Nome"

I try do same with ActiveAttr but translation won't work.

marco-martins avatar Mar 06 '12 13:03 marco-martins

Since ActiveAttr isn't doing anything for i18n, and only leaning on ActiveModel, you'll have to use "activemodel" as the key portion instead of "activerecord" or "activeattr".

I'll leave this issue open to consider whether we should declare our own i18n scope. It might be necessary when we create our own validators.

cgriego avatar Mar 06 '12 14:03 cgriego

Work right with ActiveModel, many thanks.

marco-martins avatar Apr 17 '12 15:04 marco-martins

Work right with ActiveModel, many thanks. (2)

@cgriego Would be great if you can add it in the README.

phstc avatar May 23 '12 13:05 phstc

Just encountered this - I see that ActiveRecord overrides the #i18n_scope method to :activerecord, but ActiveModel by default declares it as :activemodel

For now, we're going with a Monkey Patch to BasicModel of:

  def self.i18n_scope
    "activerecord"
  end

Not sure if there is a more elegant way of integrating this into the gem - I can imagine the 80%+ of users would be using this within a Rails stack, and therefore needing this patch. Might be a little beyond my modest skills now, but I'll keep a few brain cells working on it.

phantomwhale avatar Aug 10 '12 07:08 phantomwhale

Another workaround: if you don't want to monkey patch, you can simply use an alias in the translation file:

cs:
  activerecord: &model_i18n
    attributes:
      user:
        name: 'Jméno'

  activemodel: *model_i18n    

Works OK, though I guess this might double the i18n keys in memory...

borama avatar Dec 07 '12 17:12 borama