0

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

但是在那里,作者在用户模型中放置了一个语言列,因此用户只能按照我理解的语言查看页面。但我希望任何用户都能像往常一样以任何语言看到我的网站。

如何才能做到这一点?

4

3 回答 3

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

就是这样!

于 2013-09-20T11:19:17.543 回答
0

您可能想看看这个很棒的Rails 指南

于 2013-09-19T11:06:16.500 回答
0

除了@Pierre-Louis 的回答,你可以看看globalize3 gem

于 2013-09-19T11:09:33.067 回答