I18n in Rails 3

3 views
Skip to first unread message

Albert Llop

unread,
Mar 4, 2010, 3:33:55 PM3/4/10
to rails...@googlegroups.com
Hi,
been doing some tiny app in Rails 3 to get the hang of it. From the official guide currently I don't know how to do the routes trick:

map.resources :books, :path_prefix => '/:locale'

It's probably me but I can't find proper rails 3 documentation anywhere. Anyone got a link? Didn't find any more doc on the new router than what's on the routes.rb in a new app.

Thanks!
--
{ :name => "Albert Llop" }

Kristian Mandrup

unread,
Mar 5, 2010, 11:14:41 AM3/5/10
to rails-i18n
I think you also have to add the :localize argument to all your
generated paths, fx book_path(book, :localize => 'de')
Personally I think this approach is a bit crazy, must be an easier
option. Check out my post on this for a solution

---
module ActionController::PolymorphicRoutes
...

def polymorphic_url
...
# add default locale from session (retrieved from prefix on route
path)
args << {:locale => session[:locale]} if session[:locale]
__send__(named_route, *args)
end

Michael Voigt

unread,
Mar 5, 2010, 5:23:17 PM3/5/10
to rails...@googlegroups.com
Hi,

the option :path_prefix is in rails 3 deprecated an will remove in rails
3.1.

Please use this in you routes.rb:

scope "(/:locale)" do
resources :items
end

and in your application controller:

class ApplicationController < ActionController::Base
protect_from_forgery

before_filter :set_locale
def set_locale
I18n.locale = params[:locale]
end

def default_url_options(options={})
{:locale => I18n.locale}
end
end

config/application.rb:
config.i18n.default_locale = :de

Cheers,
Michael

-- Michael Voigt Herbert-Weichmann-Str. 35 22085 Hamburg Germany

2010/3/4 Albert Llop <mrs...@gmail.com>:

> --
> You received this message because you are subscribed to the Google Groups
> "rails-i18n" group.
> To post to this group, send email to rails...@googlegroups.com.
> To unsubscribe from this group, send email to
> rails-i18n+...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rails-i18n?hl=en.
>

micha.voigt

unread,
Mar 5, 2010, 5:25:20 PM3/5/10
to rails-i18n
Hi,

the option :path_prefix is in rails 3 deprecated an will remove in
rails
3.1.

Please use this in you routes.rb:

scope "(/:locale)" do
resources :items
end

and in your application controller:

class ApplicationController < ActionController::Base
protect_from_forgery

before_filter :set_locale
def set_locale
I18n.locale = params[:locale]
end

def default_url_options(options={})
{:locale => I18n.locale}
end
end

config/application.rb:
config.i18n.default_locale = :de

Cheers,
Michael

-- Michael Voigt Herbert-Weichmann-Str. 35 22085 Hamburg Germany

Albert Llop

unread,
Mar 5, 2010, 6:45:20 PM3/5/10
to rails...@googlegroups.com
Thanks a lot!
scope should do the trick.

awesome!

--
{ :name => "Albert Llop" }


Reply all
Reply to author
Forward
0 new messages