我想将 i18n 应用于应用程序的根路径。Rails i18n指南建议:
当然,您需要特别注意应用程序的根URL(通常是"主页"或"仪表板"(。像 http://localhost:3001/nl 这样的 URL 不会自动工作,因为 routes.rb 中的根目录 to: "books#index" 声明不会考虑区域设置。(这是正确的:只有一个"根"URL。
您可能需要映射如下网址:
# config/routes.rb
get "/:locale" => "dashboard#index"
但是,在使用 URL 帮助程序时,此配置不能很好地工作。以下内容生成一个包含查询字符串的 URL:
root_path(locale: "fr") # => "/?locale=fr"
但是我想生成一个在路径中包含区域设置的 URL:
/fr
通过定义root
和locale_root
:
# config/routes.rb
root to: "dashboard#index"
scope "/:locale" do
get "/", to: "dashboard#index", as: :locale_root
end
然后,您可以使用locale_root_path
和locale_root_url
帮助程序:
locale_root_path(locale: "fr") # => "/fr"