# Super global dummy method for gettext + rails 2.2

**URL:** <https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479>\
**Category:** Rails\
**Created:** [November 17, 2008, 8:05pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479 "2008-11-17T20:05:16Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 8:05pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/1 "2008-11-17T20:05:16Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 8:59pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/2 "2008-11-17T20:59:23Z")

</div>

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 B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 10:03pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/3 "2008-11-17T22:03:04Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 10:34pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/4 "2008-11-17T22:34:12Z")

</div>

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 B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid  
+1 513-295-4739  
Skype: rob.biedenharn

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 11:18pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/5 "2008-11-17T23:18:47Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 11:45pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/6 "2008-11-17T23:45:08Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 17, 2008, 11:59pm UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/7 "2008-11-17T23:59:48Z")

</div>

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 B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
> > removed\_email\_address@domain.invalid  
> > +1 513-295-4739  
> > Skype: rob.biedenharn

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid  
+1 513-295-4739  
Skype: rob.biedenharn

---

<div class="post-metadata">

**Author:** ![Olaf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/73ab20/32.png) [@Olaf](https://www.ruby-forum.com/u/Olaf)\
**Post date:** [November 18, 2008, 12:01am UTC](https://www.ruby-forum.com/t/super-global-dummy-method-for-gettext-rails-2-2/153479/8 "2008-11-18T00:01:33Z")

</div>

Glad you figured it out.  
-Rob
