Routes, default_url_options and languages

Hello,
My app is available in 2 languages, English (en) and French (fr).

I would like all my URLs to look like this :
/fr/companies
/en/companies

I’ve setup this route :
map.connect ‘:lg/:controller/:action/:id’

I don’t want to specify the :lg parameter in every url_for calls.
The language remains the same unless the params[:change_lg] is set.

In my application.rb, I’ve written this :
def default_url_options(options)
{ :lg => params[:change_lg].nil? ? session[:language] :
params[:change_lg] }
end

My problem :
When I use <?=companies_path ?> in my view, here is the URL that is
generated :
/companies?lg=en

What I would like to have instead :
/en/companies

Has anyone an idea?
Would be much appreciated.

Thanks in advance,
Thomas.

you need to implement clean url that can be handled using a plugin from
agile or u can also do it with the routes but then if there r many such
links then its better to use plugin

in routes u need to write the controller:theaction which performs that
task and then the variable something like ‘:controller/:action/:id’

hope this helps

Are you talking about a plugin I can find here
http://agilewebdevelopment.com ?Which one are you talking about?

Hi,

did you find a solution for this?

Cheers,
derkaan

Thomas B. wrote:

Are you talking about a plugin I can find here
http://agilewebdevelopment.com ?Which one are you talking about?

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