【问题标题】:Is it possible to localize static pages URLs in Rails?是否可以在 Rails 中本地化静态页面 URL?
【发布时间】:2014-05-07 21:20:43
【问题描述】:

我最近为 Rails 4.0.4 应用程序更新了我的 routes.rb 文件,以便能够正确处理多个本地化。它看起来像这样:

scope ':locale', locale: /#{I18n.available_locales.join("|")}/ do
  # All the routing happens here
  # ...

  root "home#index", as: :locale_root
  match '*path', to: "locale#not_found", via: :all
end

# handles /
root to: redirect("/#{I18n.default_locale}")
match '*path', to: redirect(status: 307) {|params| "/#{I18n.default_locale}/#{params[:path]}"}, via: :all
match '', to: redirect("/#{I18n.default_locale}"), via: :all

我想路由能够根据当前 URL 更改 URL 的静态页面。假设我有一个通过http://mydomain/how_it_works 寻址的“工作原理”页面。使用多个本地化我想获得:

http://mydomain/en/how_it_works  # English
http://mydomain/it/come_funziona # Italian

路由器应该链接到同一个controller#action,改变显示的URL。 我一直找不到 gem 或合适的解决方案来实现这一点,所以我想知道 Rails 是否能够本地化这种静态 URL。

此外,我希望能够在视图中使用相同的 *_path 助手来处理这些 URL,“忽略”当前语言环境。埃斯。如果我使用how_it_works_path 并且语言环境是:en 我得到http://mydomain/en/how_it_works,否则如果语言环境是:it 我得到http://mydomain/it/come_funziona

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 routing url-routing


    【解决方案1】:

    我知道这是 2 年前提出的,但也许这对像我这样现在面临这个问题的人有所帮助。

    我的问题非常相似,我最终将以下 gem 用于 Rails 5 应用程序:https://github.com/enriclluelles/route_translator

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      相关资源
      最近更新 更多