/ / Como obter o root_path do Rails para redirecionar para / en / locale? - ruby-on-rails, internacionalização, localidade, rails-i18n

Como obter o root_path do Rails para redirecionar para / en / locale? - ruby-on-rails, internacionalização, localidade, rails-i18n

Eu tenho um aplicativo que está disponível em EN e DE. Atualmente, quando você entra no site www.example.com ele não redireciona para a localidade padrão. Idealmente, gostaria que o root redirecionasse imediatamente para que eu obtivesse: www.example.com/en.

Quando eu clico em um link root_path no aplicativo, ele vai para o frontpage, incluindo o local www.example.org/en como esperado.

Pergunta: Como posso garantir que os usuários que entram www.example.com é redirecionado para www.example.com/en imediatamente?

Rotas:

Rails.application.routes.draw do
scope "(:locale)", locale: /en|de/ do
root "pages#landingpage"

Controlador de aplicativo:

def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end

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

Respostas:

0 para resposta № 1

Primeiro de tudo por favor, passar por isso Diretrizes de internacionalização

Agora tente isso nas rotas:

scope "(/:locale)" {}

e use o config.default_locale opção na configuração. você pode configurar fallbacks para localização.

Se você estiver usando cookies para manter o controle de sua localidade, você pode pular o default_url_options, você terá que manter as versões não localizadas de qualquer maneira para compatibilidade com versões anteriores.