Forum: Ruby on Rails super global dummy method for gettext + rails 2.2

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
52e263512f6b25142063e914b9aefa87?d=identicon&s=25 Olaf (Guest)
on 2008-11-17 20:05
(Received via mailing list)
Hi,

since rails 2.2 doesn't work with gettext anymore I decided to use a
gettext dummy method until the gettext team relases a working version
for rails 2.2. My application doesn't need any i18n support right now
and this way i figured it would be very easy to integrate gettext
later. Just setup the plugin and go.

So I need a method called _ which is available in alle models, views,
controllers, helpers, doing of nothing else then:

def _(str)
  str
end

I'm still a newbie so I tried a lot but didn't come to a good
solution. I just don't know where to define this method to make it
globally available.

I would really appreciate your help!

Olaf
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2008-11-17 20:59
(Received via mailing list)
On Nov 17, 2008, at 2:04 PM, Olaf wrote:
>
Perhaps it would be acceptable in your situation to do:

class Object
> def _(str)
>  str
> end
end

somewhere in your environment.rb or in an initializer.

-Rob

Rob Biedenharn    http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
52e263512f6b25142063e914b9aefa87?d=identicon&s=25 Olaf (Guest)
on 2008-11-17 22:03
(Received via mailing list)
Thanks, I tried that, but it doesnt work. I added to the end of
enviroment.rb the following code:

class Object
  def _(s)
    s
  end
end

I also tried

class ActiveRecord::Base
  def _(s)
    s
  end
end

But I still get a method missing error for:

class Customer < ActiveRecord::Base
  validates_inclusion_of :gender, :in => ['f', 'm'],
    :allow_blank => true,
    :message => _("Required field cannot be left blank")
end

Any other ideas? What am I doing wrong?

Thanks for your help!
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2008-11-17 22:34
(Received via mailing list)
Try adding

class ActiveRecord::Base
   def self._(s)
     s
   end
end

Since _ will be called as a Class method on Customer at that point.

-Rob

On Nov 17, 2008, at 4:02 PM, Olaf wrote:

> I also tried
>  validates_inclusion_of :gender, :in => ['f', 'm'],
>>
>>> controllers, helpers, doing of nothing else then:
>>
>>
>>> I would really appreciate your help!
>>
>>> Olaf
> >

Rob Biedenharn    http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
+1 513-295-4739
Skype:  rob.biedenharn
52e263512f6b25142063e914b9aefa87?d=identicon&s=25 Olaf (Guest)
on 2008-11-17 23:18
(Received via mailing list)
I tried both

class ActiveRecord::Base
   def self._(s)
     s
   end
end

class Object
  def self._(msg)
    return msg
  end
end

but nothing worked. I also looked at the gettext gem and it looks to
me that they just have a module where the _() method is defined and
this module is then required in the enviroment.rb, so I tried that
also but without any luck.

It can't be that hard to make a method globally available, or can it?

Thanks for your help!
52e263512f6b25142063e914b9aefa87?d=identicon&s=25 Olaf (Guest)
on 2008-11-17 23:45
(Received via mailing list)
Sorry, my fault, I moved the following code to a file called

config/initializers/gettext_dummy.rb

class Object
  def self._(msg)
    return msg
  end
end

The problem was that the definition was outside the init block in the
enviroment.rb. STUPID! everithing works now! Thanks
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2008-11-17 23:59
(Received via mailing list)
You probably need both:

class ActiveRecord::Base
   def self._(s); s; end
end
class Object
   def _(s); s; end
end

Together! Not one or the other.

You might add other class methods as needed.  (FYI, I have no idea
what gettext does, but this is just Ruby stuff.)

-Rob

On Nov 17, 2008, at 5:18 PM, Olaf wrote:

>  def self._(msg)
>
>>
>>> Thanks, I tried that, but it doesnt work. I added to the end of
>>> class ActiveRecord::Base
>>>    :message => _("Required field cannot be left blank")
>>>>> since rails 2.2 doesn't work with gettext anymore I decided to
>>>>> controllers, helpers, doing of nothing else then:
>>
>>
>>>>> Olaf
>>
>> Rob Biedenharn          http://agileconsultingllc.com
>> R...@AgileConsultingLLC.com
>> +1 513-295-4739
>> Skype:  rob.biedenharn
> >

Rob Biedenharn    http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
+1 513-295-4739
Skype:  rob.biedenharn
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2008-11-18 00:01
(Received via mailing list)
Glad you figured it out.
-Rob
This topic is locked and can not be replied to.