Forum: Rails I18n Exception is not raise with #t method on Rails 2.3.5

Posted by Mickaël (Guest)
on 2010-07-12 14:43
(Received via mailing list)
Hi folks,

I have read some documentation about I18n and exceptions, but I need
your help.

My idea is to implement an exception when my functional test watch a
missing translation like what I'm seeing in "Rails
Internationalization (I18n) API Guide" (http://guides.rubyonrails.org/
i18n.html#using-different-exception-handlers). The documentation seem
to be old.

I try some context.

Gist number 1 (http://gist.github.com/472395) works with #t method and
a correct translation key.

Gist number 2 (http://gist.github.com/472404) doesn't raise an
exception with #t method.

Gist number 3 (http://gist.github.com/472423) raise an exception but I
must specify I18n.t method to translate.

Questions are :

How to implement a raise with #t helper method ?
And, how to specify the right exception ?

Thank's for your patience and your help.

Best regards,

Mickaël.
Posted by Iain Hecker (Guest)
on 2010-07-12 14:56
(Received via mailing list)
Hi!

Unfortunately, you cannot raise in your views, because the default
view helpers will always rescue the exception:

http://github.com/rails/rails/blob/master/actionpa...

t/translate as defined in the views is not just a shortcut/alias to
I18n.t, but does a lot of stuff around it.

Either redefine this method in your own helper or use I18n.t if you
don't want it. There seems to be no other way.


Iain
Posted by Mickaël (Guest)
on 2010-07-12 15:42
(Received via mailing list)
Thank's for you response Iain.

I want to raise an exception only in test environnement, so, I prefer
to use my own helper method.
So in my test_helper.rb, I add some hack in #translate method from
module TranslationHelper like in  http://gist.github.com/472463

In my view I have #t method to call translation but they didn't raise
exception too.

Why my #translate method doesn't raise exception ?

Best regards,

Mickaël.

You are right, view helpers will always rescue the exception and
Posted by Mickaël (Guest)
on 2010-07-12 17:36
(Received via mailing list)
After some attempts, here we go ;-)

My mistake was to retrieve code directly from Iain's links
http://github.com/rails/rails/blob/master/actionpa...
but my rails app run in 2.3.5 ... so, check the right tag in Github
before past it into test_helper.rb...

Solution for Rails 2.3.5 could be found here : 
http://gist.github.com/472582

Thank's again Iain.

Best regards,

Mickaël.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.