2012-04-12 3 views
2

Я следил за этим beautiful site, чтобы создать интернационализацию на моем сайте.rails 3.1 Перезагрузите страницу с другой локалью?

Однако я не могу понять, как перезагрузить страницу с другим языком, когда пользователь нажимает кнопку языка.

Пример: Если пользователь находится здесь:

/es/events/14 

, когда пользователь нажимает на английский язык перезарядку в

/en/events/14 

Это мнение:

%li= link_to "eu", change_locale_path(:locale => "eu") 
%li= link_to "es", change_locale_path(:locale => "es") 
%li= link_to "en", change_locale_path(:locale => "en") 
%li= link_to "fr", change_locale_path(:locale => "fr") 

Этот метод в ApplicationController

def change_locale 
if current_user 
    current_user.locale = params[:locale] 
    current_user.save 
else 
    I18n.locale = params[:locale] 
end 
redirect_to root_url (this is temporal) 
end 

Что мне нужно вместо redirect_to root_url для перезагрузки страницы?

+0

вы можете вернуться к предыдущей странице, см http://stackoverflow.com/questions/4652084/ruby-on-rails-how-do-you-get-the-previous-url/ 8801313 # 8801313 – gayavat

+0

Я пробовал это раньше, но, насколько я помню, загружает страницу со старым языком, потому что локаль находится в URL-адресе –

+0

. Попробуйте проанализировать URL-адрес и изменить параметры [: locale], см. Http: // stackoverflow. com/questions/916067/how-do-i-easy-parse-a-url-with-parameters-in-a-rails-test – gayavat

ответ

3
- [:ru, :ua, :en].each do |locale| 
    %li= link_to locale, params.merge(locale: locale) 
+0

что это! благодаря –

Смежные вопросы