Ruby on Rails与Redis,I18n键值后端

时间:2011-06-23 10:42:11

标签: ruby-on-rails internationalization redis

我遇到了I18n键值后端的问题。观看了Ryan Bates的电视剧http://railscasts.com/episodes/256-i18n-backends

我正在尝试使用redis存储我的I18n,例如:

  • locale:en
  • key:intro.label.title
  • 值:“Hello World”

但我的密钥更改为 introlabeltitle 甚至我的控制器日志如下: 参数:{“commit”=>“提交”,“authenticity_token”=>“ZYoK5MMixIz9hiN8keOd9OTkKo6dBYluATYoyQDbmrY =”,“utf8”=>“✓”,“value”=>“Hello World”,“locale”=> ;“en”,“key”=>“intro.label.title”}

在redis-cli里面,我的密钥更改为“en.intro \ x01label \ x01title”

这是我的初始化程序:

TRANSLATION_STORE = Redis.new
I18n.backend = I18n::Backend::Chain.new(I18n::Backend::KeyValue.new(TRANSLATION_STORE), I18n.backend)

和我的控制器

I18n.backend.store_translations(params[:locale], {params[:key] => params[:value]}, :escape => false)

谢谢你,抱歉我的英文不好

2 个答案:

答案 0 :(得分:0)

最近我将I18n解决方案迁移到redis。我创建了一个小脚本,我已经变成了gem i18n_redis:http://github.com/amardaxini/i18n_redis

答案 1 :(得分:0)

I18n.backend.store_translations(params[:locale], {:intro => {:label => {:title => params[:value]}}}, :escape => false)