У меня есть многоязычный сайт на английском и испанском языках. Я также использовал гем 'route_translator' для перевода маршрутов. Я создал кнопку в верхнем меню, чтобы изменить язык, и она отлично работает.
Проблемы возникают, когда мне также нужно изменить сам URL.
Если у меня есть URL-адреса, как это работает нормально:
/news (english)
/es/noticias (spanish)
Но если у меня есть что-то вроде:
/news/{news_id}/{news_title}
/news/15248/the-best-concert-in-the-world
/es/noticias/15248/mejor-concierto-del-mundo
И я пытаюсь изменить язык, я получаю URL, как это:
/es/noticias/15248/the-best-concert-in-the-world
Маршрут был переведен, но «news_title» остается (очевидно) на английском языке.
Не знаю, как это исправить, есть идеи?
P.S .: некоторый код (все еще не новичок в Ruby:))
Я использую этот камень (https://github.com/enriclluelles/route_translator) для локализации маршрутов:
localized do
get '/news/:reference/:slug', to:'news#show_by_url', as: :news
end
и
def show_by_url
news_ref = params[:reference]
slug = params[:slug]
@news = News.with_translations(I18n.locale).find_by_reference(news_ref)
if not slug.eql? @news.slug
@news = nil # I know this is crap
end
render 'show_by_url'
end