다국어 레일 앱을 개발 중이며 각 로케일마다 경로가 달라야합니다. 그것은 나를 위해 이런 식으로 설명하기 어려운, 그래서 예를 들어 사용합니다 : 로케일을 기반으로 한 레일 경로
- 욕실을/ES/precios
나는이 대답을 발견 : Rails 4 i18n, how to translate routes where subdomain is used for the locale
그러므로 내 routes.rb은 다음과 같습니다 : 나는 또한 012을 사용하고
scope "/:locale" do
get "/", to: "pages#index", as: "index"
get "/#{I18n.t("pricing")}", :to => "pages#pricing", :as => "pricing"
end
응용 프로그램을로드 할 때 (응용 프로그램 컨트롤러 before_action), 로캘이 변경된 직후/locale 다음의 나머지 URI가 그대로 유지됩니다. 사용자가 더 이상 존재하지 않아 페이지를 다시로드하려고하면 문제가 발생합니다. 다른 로케일 URI를 가진 다른 클릭은 괜찮습니다.
나는 현재의 URI가 올바른지 아닌지 알아내는 시스템을 생각하고 있지 않다면 거기로 리다이렉트하지만, 이것은 차선책이라고 생각한다. 의견 있으십니까?
미리 감사드립니다.
불행히도 이상적인 해결책이 아니므로 보석이 필요하고 전체 구조를 재 작업해야합니다. 이상적으로 사용자가 다른 로케일을 클릭하면'reload_routes!'가 호출되어야합니다. 이것에 대한 해킹을 제안 해 주시겠습니까? 감사합니다 – kellins
나는 * 해킹 *에 잘 테스트 된 보석을 사용하는 것을 선호합니다. 사실 "재 작업"이 아닌 "리팩터링"이라고 생각하는 것이 매우 행복 할 것입니다 ... 또한 사용자가 리소스에 접근 할 때마다''reload_routes! ''를 호출하면 좋지 않을 것입니다. 그 방법을 사용하면, 또한 "재 작업"을해야합니다. 대신 네가 보석을 고려해 보라고 권하고 싶다. – dgilperez
또한 하위 도메인 대신 경로에 로케일을 포함하는 것으로 가장하는 것으로 나타났습니다. 보석과 함께 상자에서 작동해야합니다. – dgilperez