我需要在我的狂欢项目中添加对西班牙语的支持。 尝试了各种方法,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
并且网站已翻译。
为什么它不起作用? 如何使它工作? 还有什么我可以用来让第二语言在每个用户的基础上工作吗?
请帮我解决这个问题。
答案 0 :(得分:0)
params[:def_lang]
仅适用于注册请求,不适用于后续请求。您可能希望使用current_user && current_user.locale
而不是检查params[:def_lang]