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:

http://www.artweb-design.de/2007/5/13/concise-localized-rails-url-helpers-solved-twice

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
routes

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

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
automagically.

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

/Morgan

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs