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.
on 2010-07-12 14:43
on 2010-07-12 14:56
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
on 2010-07-12 15:42
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
on 2010-07-12 17:36
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.