ruby-on-rails – 用于数据库表的Rails 3 I18n

ruby-on-rails – 用于数据库表的Rails 3 I18n,第1张

概述我正在寻找有关使用国际化的最佳实践的一些提示和建议.我一直在四处寻找,但我对我读到的内容并不满意.我读过的大部分文章都集中在使用I18n的yml文件,这在我的情况下是行不通的. 我目前有几个带英文文本的数据库表.其中一些表的文本字段长度只有几句,有些则是6段文本.我想用西班牙语这些字段. 我目前正在考虑的方法是使用I18n-active记录gem并拥有1个翻译表,该应用程序将用于应用程序中的所有翻 我正在寻找有关使用国际化的最佳实践的一些提示和建议.我一直在四处寻找,但我对我读到的内容并不满意.我读过的大部分文章都集中在使用I18n的yml文件,这在我的情况下是行不通的.

我目前有几个带英文文本的数据库表.其中一些表的文本字段长度只有几句,有些则是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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存