Language setting before routing?

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

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

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