xij*_*ijo 17 database ruby-on-rails backend internationalization
我正在寻找一个插件/ gem解决方案来扩展本机rails i18n以便将我的翻译存储到我的数据库中.也许我使用了错误的搜索词,但我找到的只是信息,改变后端实际上是可能的,这个博客条目描述了如何编写我自己的后端.
很难想象,所有那些rails应用程序都将其翻译存储在yml文件中,或者每个开发人员都编写了自己的后端!
你知道为此工作的解决方案吗?在yml中存储多行文本真的让我失望!;)
谢谢和问候,
乔
Jas*_*son 21
i18n内置支持将数据库用作翻译后端.
在迁移中使用此代码创建表:
create_table :translations do |t|
t.string :locale
t.string :key
t.text :value
t.text :interpolations
t.boolean :is_proc, :default => false
end
Run Code Online (Sandbox Code Playgroud)
然后在config/initializers/i18n.rb中添加一个包含内容的初始化程序:
I18n.backend = I18n::Backend::ActiveRecord.new
Run Code Online (Sandbox Code Playgroud)
最后......把翻译放在表格中.就像是:
locale key value
en Cool Cool
es Cool Frio
en nav.Home home
es nav.Home casa
...
Run Code Online (Sandbox Code Playgroud)
从i18n 0.5.0开始,我相信他们将这个代码移到了它自己的宝石中......我忘了那个宝石叫什么.
我终于在Sven Fuchs的帮助下找到了我想要的东西:
这个由Dylan Stamat设计的非常棒的插件完全符合名称所示,并且还可以处理缓存!
Sven还提到,i18n/active_record的当前分支也提供了ActiveRecord后端:
http://github.com/svenfuchs/i18n/blob/active_record/lib/i18n/backend/active_record.rb
关于这个主题的一些讨论正在goolge i18n用户组中进行:
http://groups.google.com/group/rails-i18n/browse_thread/thread/6b7ba3c401890a7e
问题解决了,感谢I18n Sven Fuchs 先生!;)
| 归档时间: |
|
| 查看次数: |
12327 次 |
| 最近记录: |