0

我需要在我的狂欢项目中添加对西班牙语的支持。尝试了各种方法,URL 方式不适合我(不想要), globalizer3 并没有真正做我想要的。其他一些扩展不起作用,一些会杀死网站等。

所以我添加了

gem 'spree_i18n', :git => 'git://github.com/spree/spree_i18n.git'
gem 'globalize3'

到我的gemfile,而全球化器很可能会被划伤(不做我想要的)。

我在“spree_users”中添加了一个“def_lang”列来存储语言环境,这是由用户注册时的下拉框设置的。可用的是“en”和“es”。

我在过去 14 小时内找到的代码和重复建议是这样的:

将以下代码添加到 application_controller.rb (或根据其他人的 base_controller.rb )

before_filter :set_locale

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

我的情况应该是

before_filter :set_locale

 protected #<-this is not in all tips
  def set_locale
  I18n.locale = params[:def_lang] || I18n.default_locale
end

简而言之,它不起作用。可以通过在“application.rb”中设置来证明对西班牙语的语言支持

config.i18n.default_locale = :es

该网站已翻译。

为什么它不起作用?如何使它工作?还有什么我可以用来让第二语言在每个用户的基础上工作的吗?

请帮我解决这个问题。

4

1 回答 1

0

params[:def_lang]仅适用于注册请求,不适用于后续请求。您可能希望使用current_user && current_user.locale它而不是检查params[:def_lang]

于 2012-08-10T05:12:54.010 回答