【问题标题】:Rails: translations for table's columnRails:表格列的翻译
【发布时间】:2010-06-06 15:24:58
【问题描述】:

在 Rails 应用程序中,我有两个模型:FoodDrink
食物和饮料都有一个name,必须以两种语言存储。
如何更好地实现这些表格的翻译?

我意识到的第一个解决方案是将name 列替换为name_enname_ru
另一种解决方案是使用 { :en => 'eng', :ru => 'rus' } 之类的 YAML 哈希进行编码,并将 yaml 存储为名称。

如果内容不是静态的,您会推荐什么?
也许有好文章?

【问题讨论】:

    标签: ruby-on-rails database internationalization translation


    【解决方案1】:

    第一个选项(name_enname_ru)最容易实现。

    您可以包含一个名称方法,该方法根据所选的语言环境返回正确的值。如果您要在大量模型/字段上使用它,您甚至可以创建一个模块:

    class Food < ActiveRecord::Base
    ...
      def name
        self.send("name_#{I18n.locale}")
      end
    end
    

    如果将来您必须添加其他语言,那么您当然必须添加迁移。但这应该不会太麻烦。

    第二个(使用 YAML 编码)似乎有点麻烦 - 您不必使用它进行额外的迁移,但您会失去其他功能。例如,搜索变得更加困难 - 您不能再使用 SQL 来查看描述,因为它们是在 YAML 上编码而不是纯文本。

    所以我建议有两个字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多