【问题标题】:Rails optional /:locale routeRails 可选 /:locale 路由
【发布时间】:2011-10-01 22:38:42
【问题描述】:

我正在尝试为我的 rails 应用程序设置一个路由系统,该系统允许一个可选的路由 (/:locale) 被允许到网站的基础。

或多或少:

/en/home/ 将转到与 /home/ 相同的页面 /zh/people/ -> /people/

我遇到的唯一问题是在路由配置中进行设置。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 model-view-controller internationalization routing


    【解决方案1】:

    使用scope '(:locale)' do...end。您可以在此处查看来自Agile Web Development with Rails 的示例:

    http://intertwingly.net/projects/AWDwR4/checkdepot-30/section-15.1.html

    【讨论】:

      【解决方案2】:

      我通常做的是,config/routes.rb:

      MyApp::Application.routes.draw do
      
        scope "(:locale)", :locale => /en|fr/ do
          #here only two languages are accepted: english and french
      
        end
      end
      

      在我的ApplicationController:

      before_filter :set_locale
      
      def set_locale
        I18n.locale = params[:locale] || "en"
      end
      

      【讨论】:

      • 为什么不使用I18n.locale = params[:locale] || I18n.default_locale
      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      相关资源
      最近更新 更多