gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:51:44 25 4
gpt4 key购买 nike

我正在寻找有关使用国际化的最佳实践的一些提示和建议。我四处搜寻,但我对所读内容并不真正满意。我读过的大多数文章都侧重于为 I18n 使用 yml 文件,这在我的情况下不起作用。

我目前有几个包含英文文本的数据库表。其中一些表格的文本字段只有几个句子,有些是 6 段以上的文本。我也想用西类牙语显示这些字段。

我目前正在考虑的方法是使用 I18n-active record 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 内容时。该应用程序将查询原始表中的键,然后也查询翻译表。另一个问题是翻译表将非常庞大并且包含大量行,因为它将存储应用程序的所有翻译(从章节标题 [几个词] 到整页文本的所有内容)。

欢迎提供任何信息。谢谢

最佳答案

将翻译存储在数据库中是一个不错的解决方案。不要害怕大表——数据库就是为此而生的!只需确保您的索引配置正确并尽可能缓存即可。

另一种更快且可能更好的解决方案是使用 Redis 作为 I18n 的后端。参见 http://guides.rubyonrails.org/i18n.html#using-different-backendshttp://railscasts.com/episodes/256-i18n-backends .

无论您将翻译存储在何处,都无需尝试自己管理插值,因为 I18n 库可以很好地处理这个问题(除非您正在做一些真正自定义的事情)。

关于ruby-on-rails - 用于数据库表的 Rails 3 I18n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com