/ / Как да получите Rails root_path за пренасочване към / en / locale? - руби на релси, интернационализация, локализация, релси-i18n

Как да получите Rails root_path за пренасочване към / en / locale? - руби на релси, интернационализация, локализация, релси-i18n

Имам приложение, което е налице в 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, ще трябва да запазите неолокираните версии така или иначе за обратна съвместимост.