rails 3 i18n set locale不起作用

时间:2011-07-31 23:34:24

标签: ruby-on-rails-3 internationalization default locale

我希望翻译回退到:en,但默认语言环境是:de。我怎样才能做到最好? 我试过'config / application.rb'

config.i18n.default_locale = :en
config.i18n.locale = :de

但是I18n.locale仍然是:在此之后。 任何想法?

2 个答案:

答案 0 :(得分:3)

如果您将区域设置设置为以下行

I18n.locale = :de

然后在触发线后,每个访问者都会使用de区域设置,而不是默认区域设置en

所以更好的方法是

在你的application_controller.rb

before_filter: set_locale

private


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

回复Jonathan Clark:

从application_controller继承的每个控制器都将设置语言环境。

答案 1 :(得分:1)

您无法在您的环境中设置区域设置。

您必须将default_locale放在环境配置文件中,并且必须在应用程序本身中设置您的语言环境。

例如在你的application_controller.rb

before_filter: set_locale

private

  def set_locale
    I18n.locale = params[:locale] if params[:locale]
  end