Routing: Language as first part of path, for just about everything

Hi Group

Like others before me have posted to the group, I am trying to
implement routes that have language as the first part of the path,
without having to rewrite just about every url generating statement
across the codebase (my own, plugins, tests, etc).

Let’s start with an example:

map.login ‘/:lang/login’, :controller => ‘sessions’, :action => ‘new’
map.resources :categories, :path_prefix => ‘:lang’

Having looked around, I managed to find two plugins, that get’s me
half-way there:

More specifically resource_fu and localized_url_helpers

Adding either of these and setting a default language in
default_url_options, it’s easy to get a nice default value for named

def default_url_options(options)
{ :lang => ‘en’ }

But, what do I do with non-named routes?

link_to :controller => ‘categories’, :action => ‘index’
won’t work, as it won’t have the lang parameter specified

Something tells me that I am looking at this from a “less-than-
optimal” angle, so any advice is welcome