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 № 1Primeiro 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.