Локализация маршрутов и путей URL в Rails - PullRequest
0 голосов
/ 17 мая 2018

У меня есть многоязычный сайт на английском и испанском языках. Я также использовал гем '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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...