狂欢商业增加第二语言

时间:2012-08-08 19:38:00

标签: internationalization e-commerce locale spree

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

所以我添加了

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

到我的gemfile,而globalizer很可能会被划伤(并不是我想要的)。

我已将“def_lang”列添加到“spree_users”以存储区域设置,该区域由用户注册的下拉框设置。可用的是“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

并且网站已翻译。

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

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

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