代码之家  ›  专栏  ›  技术社区  ›  Eliot Sykes

使用Ruby on Rails Simple i18n后端的插件,数据库中的翻译可重写?

  •  1
  • Eliot Sykes  · 技术社区  · 16 年前

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

    这就是为什么:

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

    网站1:Leprechauns r us

    网站2:独角兽R US

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

    查看全部:查看全部

    对于大多数网站来说,这个翻译很好,包括网站1(小妖精),我很乐意使用“查看所有”。

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

    多谢,

    爱略特

    1 回复  |  直到 16 年前
        1
  •  1
  •   Eliot Sykes    16 年前

    最后,我选择利用Rails的i18n::backend::Simple处理.yml文件和.rb文件作为区域设置字典的能力。

    创建的项目:

    1. 数据库迁移以创建包含列的翻译表:locale、key、text

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

    3. 类方法到翻译模型上的“locale”哈希,该转换模型根据i18n::backend::simple.load_rb的要求返回区域设置键控哈希

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

    有关源代码,请参见下面的spree扩展(抱歉,不在Rails插件结构中,如果需要,可以很容易地移到插件中):

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