2017-12-05 7 views
0

EN 및 DE에서 사용할 수있는 응용 프로그램이 있습니다. 현재 웹 사이트 www.example.com을 입력하면 기본 로케일로 리디렉션되지 않습니다. 이상적으로는 루트가 즉시 리디렉션되도록하여 다음과 같이 얻을 수 있습니다. www.example.com/en.Rails root_path를/en/locale로 리디렉션하는 방법은 무엇입니까?

앱에서 root_path 링크를 클릭하면 예상대로 로케일 www.example.org/en을 포함하는 FrontPage로 이동합니다.

질문 : 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

페이지 컨트롤러에서 방문 페이지 작업을 볼 수 있습니까? – Matt

+0

거기에 아무것도 없습니다 - 그냥 페이지를 렌더링합니다. – Andy

답변

0

우선 지금은 노선이 시도이 Internationalization guidelines

통해 이동하십시오

scope "(/:locale)" {} 

및 구성에서 config.default_locale 옵션을 사용하십시오. 현지화를위한 폴백을 구성 할 수 있습니다.

쿠키를 사용하여 로케일을 추적하는 경우 default_url_options을 건너 뛸 수 있지만 이전 버전과의 호환성을 위해 현지화되지 않은 버전을 보관해야합니다.

관련 문제