我希望我的应用有多种语言。为此,我阅读了railscasts #138
但是在那里,作者为用户模型添加了一个语言列,因此用户只能按照我的理解正确地查看他们语言的页面。但是我希望任何用户都可以像往常一样用任何语言看到我的网站。
如何做到这一点?
答案 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