我正在寻找插件/ gem解决方案来扩展本地导轨i18n以将我的翻译存储到我的数据库中。也许我使用了错误的搜索条件,但是我发现的只是信息,改变后端的方式实际上是可行的,而这个blog entry描述了如何编写我自己的后端。Rails:在数据库中存储翻译
很难想象,那些所有那些rails应用程序都有他们的翻译存储在yml文件或每个开发人员写下自己的后端!
你知道这个工作解决方案吗?在yml中存储多行文本真的让我失望! ;)
感谢和问候,
乔
我正在寻找插件/ gem解决方案来扩展本地导轨i18n以将我的翻译存储到我的数据库中。也许我使用了错误的搜索条件,但是我发现的只是信息,改变后端的方式实际上是可行的,而这个blog entry描述了如何编写我自己的后端。Rails:在数据库中存储翻译
很难想象,那些所有那些rails应用程序都有他们的翻译存储在yml文件或每个开发人员写下自己的后端!
你知道这个工作解决方案吗?在yml中存储多行文本真的让我失望! ;)
感谢和问候,
乔
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
然后添加到config /初始化/ i18n.rb一个初始化与内容:
I18n.backend = I18n::Backend::ActiveRecord.new
而最后...把翻译在桌子里。例如:
locale key value
en Cool Cool
es Cool Frio
en nav.Home home
es nav.Home casa
...
截至i18n 0.5。0我相信他们将这些代码移植到了它自己的宝石中......我忘记了那个宝石被称为什么。
我终于找到了我与斯文福克斯的帮助下寻找:
Dylan Stamat的这个非常棒的插件完全可以实现名称所指示的功能,并且可以处理缓存!
斯文也提到的,国际化/ 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! ;)
好!很高兴听到你有一个很好的解决方案。感谢分享。 – 2009-08-30 21:39:37
我们与fast_gettext
它有一个带有一个控制器在网上做翻译一个DB支持后端一个很好的经验。 缓存是内置的,尽管我们必须在引导时对代码中的所有翻译进行预加载代码(速度要快得多,然后逐个缓存)。
Rails指南在这个主题上有一些内容(http://guides.rubyonrails.org/i18n.html#using-different-backends)。感谢您填补@Jason的空白! – captainpete 2013-03-08 05:40:41