1

希望这里的一些有学识的 Rails 开发人员可以推荐一个现有的 Ruby on Rails 插件或 gem,它允许您继续使用 Simple I18n 后端,同时允许您选择在数据库中指定翻译。

原因如下:

我有一个用于许多网站的 Rails 应用程序。例如,我将只使用 2 个网站:

网站 1:Leprechauns R Us

网站 2:独角兽反斗城

两个网站的大多数翻译都是相同的,但有时我想覆盖翻译。例如,在我的 en-US.yml 文件中,我有以下翻译:

view_all:查看全部

对于大多数网站,这种翻译很好,包括网站 1(妖精),我很乐意使用“查看全部”。

但是,对于网站 2,我想使用“查看所有独角兽”作为 view_all 翻译,我想在数据库中指定它。出于维护原因,我不想在 YAML 文件中指定此覆盖。

非常感谢,

艾略特

4

1 回答 1

1

最后,我选择利用 Rails 的 I18n::Backend::Simple 将 .yml 文件和 .rb 文件作为语言环境字典处理的能力。

创建的工件:

  1. 数据库迁移以创建包含列的翻译表:语言环境、键、文本

  2. 映射到翻译表的翻译模型

  3. 翻译模型上的类方法 to_locale_hash 返回 I18n::Backend::Simple.load_rb 要求的语言环境键控哈希

  4. 位于 config/translations.rb 的单行文件,其中包含“Translation.to_locale_hash”行

对于源代码,请参见 Spree 扩展(抱歉不在 Rails 插件结构中,如果您需要,可以轻松移至插件):

http://github.com/eliotsykes/spree-i18n-db/tree/master

于 2009-09-03T14:55:39.927 回答