Language setting before routing?


#1

When processing a request, where can you obtain the language setting of
a user’s browser?

I know we can read @request.env[“HTTP_ACCEPT_LANGUAGE”] in an action
easily. But I need to access it before being routed to a controller’s
action… because the accepted language dictates my app’s language
setting programmatically and what action to take. (I’m not allowed to
ask a user to specify a preferred language using an URL.) Where in the
Rails runtime routing is done?

Any filter, plugin, or even somewhere in the Rails core? I spent 4 hours
to poke around, but didn’t get any idea.

Thanks in advance!

DD


#2

You could try to do it in routes.rb, before actual routing code. Or
make mixin and call it from here. Will it violate some Rails
philosophy? I don’t know.


olegf


#3

Thank you, Leo, for your pointer! It looks like the recognize() method
is the place to start… it has a user’s request and path. Hope to
devise a change/addition that doesn’t mess up the Rails core…

DD

Leo – wrote:

You could try to do it in routes.rb, before actual routing code. Or
make mixin and call it from here. Will it violate some Rails
philosophy? I don’t know.


olegf