rails 3适用于任何用户的多种语言

时间:2013-09-19 11:02:48

标签: ruby ruby-on-rails-3.2 rails-i18n

我希望我的应用有多种语言。为此,我阅读了railscasts #138

但是在那里,作者为用户模型添加了一个语言列,因此用户只能按照我的理解正确地查看他们语言的页面。但是我希望任何用户都可以像往常一样用任何语言看到我的网站。

如何做到这一点?

3 个答案:

答案 0 :(得分:3)

我已经解决了。我添加到controllers/application_controller.rb这个:

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

private

def default_url_options(options={})
  logger.debug "default_url_options is passed options: #{options.inspect}\n"
  { :locale => I18n.locale }
end

然后我将其添加到views/layouts/_header.html.erb

<li><% if I18n.locale == I18n.default_locale %>
      <%= link_to "Türkçe", :locale=>'tr'%>
    <% else %>
      <%= link_to "English", :locale=>'en'%>
    <%end%></li>

然后到config/routes.rb这个:

scope "(:locale)", :locale => /en|tr/ do   # at the beginning
  match '/home' , to: 'static_pages#home'

  match '/help' ,  to: 'static_pages#help'

  match '/about' ,  to: 'static_pages#about'
  .....
end

多数民众赞成!

答案 1 :(得分:0)

你可能想看看这个伟大的Rails guide

答案 2 :(得分:0)

除了@ Pierre-Louis的答案外,您还可以查看globalize3 gem