我目前有几个带英文文本的数据库表.其中一些表的文本字段长度只有几句,有些则是6段文本.我想用西班牙语这些字段.
我目前正在考虑的方法是使用I18n-active记录gem并拥有1个翻译表,该应用程序将用于应用程序中的所有翻译
class CreateTranslations < ActiveRecord::Migration def self.up create_table :translations do |t| t.string :locale t.string :key t.text :value t.text :interpolations t.boolean :is_proc,:default => false t.timestamps end end def self.down drop_table :translations end end
这是最好的方法吗?
一方面,所有翻译都将很好地存储在一个表中.另一方面,每次用户向数据库查询I18n内容时.应用程序将在原始表中查询密钥,然后查询转换表.另一个问题是转换表将是庞大的并且具有大量行,因为它将存储应用程序的所有翻译(从章节标题[几个单词]到整个文本页面的所有内容).
任何信息表示赞赏.谢谢
解决方法 在db中存储翻译并不是一个太糟糕的解决方案.不要害怕大表 – 数据库是为此而制作的!只需确保正确配置索引并尽可能缓存.另一个更快,可能更好的解决方案是使用Redis作为I18n的后端.见http://guides.rubyonrails.org/i18n.html#using-different-backends和http://railscasts.com/episodes/256-i18n-backends.
无论你在哪里存储翻译,都没有必要尝试自己管理插值,因为I18n库处理得非常好(除非你做的是真正定制的东西,就是这样).
总结以上是内存溢出为你收集整理的ruby-on-rails – 用于数据库表的Rails 3 I18n全部内容,希望文章能够帮你解决ruby-on-rails – 用于数据库表的Rails 3 I18n所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)