我有英语和西班牙语的多语种网站。我还使用过' route_translator'宝石有翻译的路线。我在顶部菜单中创建了一个按钮来更改语言,它运行正常。
当我还需要更改网址时,问题就来了。 如果我有这样的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
我尝试改变语言,我得到这样的网址:
/es/noticias/15248/the-best-concert-in-the-world
该路线已被翻译,但' news_title' (显然)仍然是英文。
我不知道如何解决这个问题,任何想法?
P.S。:一些代码(在Ruby中还不是新手:))
我使用这个gem(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