Имам приложение, което е налице в EN и DE. Понастоящем, когато влизате в уебсайта www.example.com
тя не пренасочва към локалния стандарт. В идеалния случай бих искал коренът да се пренасочи незабавно, за да получа: www.example.com/en
.
Когато кликна върху връзка в root_path в приложението, той отива в първата страница, включително локала www.example.org/en
както се очаква.
Въпрос: Как да гарантирам, че потребителите влизат www.example.com
е пренасочен към www.example.com/en
веднага?
Маршрути:
Rails.application.routes.draw do
scope "(:locale)", locale: /en|de/ do
root "pages#landingpage"
Контролер на приложенията:
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options = {})
{locale: I18n.locale}
end
Отговори:
0 за отговор № 1Преди всичко, моля, преминете през това Насоки за интернационализация
Сега опитайте това в маршрутите:
scope "(/:locale)" {}
и използвайте config.default_locale
в конфигурацията. можете да конфигурирате резервни копия за локализация.
ако използвате бисквитки, за да следите вашия локал, можете да пропуснете default_url_options
, ще трябва да запазите неолокираните версии така или иначе за обратна съвместимост.