我希望我的应用程序有多种语言。为此,我阅读了 railscasts #138
但是在那里,作者在用户模型中放置了一个语言列,因此用户只能按照我理解的语言查看页面。但我希望任何用户都能像往常一样以任何语言看到我的网站。
如何才能做到这一点?
我希望我的应用程序有多种语言。为此,我阅读了 railscasts #138
但是在那里,作者在用户模型中放置了一个语言列,因此用户只能按照我理解的语言查看页面。但我希望任何用户都能像往常一样以任何语言看到我的网站。
如何才能做到这一点?
我已经解决了。我补充说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
就是这样!
您可能想看看这个很棒的Rails 指南。
除了@Pierre-Louis 的回答,你可以看看globalize3 gem