本地化/翻译一个模型字段的不同值

时间:2016-03-13 19:00:25

标签: ruby-on-rails-4 rolify globalize3

我用来扮演Enum角色并且很容易翻译......

我采用了rolify,现在事情变得更复杂......

Rolify添加了一个表格" Roles"例如,在RoR应用程序中,您可以使用字段" name"角色。

所以我有4个角色:

  • 超级管理员
  • 管理
  • 教师

我想做的是将这四种角色翻译成不同的语言。我已经看过像gem这样的解决方案" globalize"但它似乎只允许翻译一个字段值,所以例如我可以说:

  • 老师(en)
  • 教授(pt)

但我似乎无法弄清楚如何为同一个字段翻译多个值。

我对如何做到这一点有任何想法?

修改 稍微澄清一下。角色存储在"名称"领域,因为我有4个角色," name"可以有4个不同的值(Superadmin,admin,老师,家长)。我的问题是为同一个字段翻译不同的值。

1 个答案:

答案 0 :(得分:0)

根据globalize gem

首先保存所有英语(en)值

I18n.locale = :en
Role.create(name: 'superadmin')
Role.create(name: 'admin')
Role.create(name: 'teacher')

依旧......

允许您翻译每个区域设置的属性:

Role.find_each do |role|
  I18n.locale = :pt  ##set another locale
  ##find role using id and save accordingly.
  role.update_attributes(name: 'Professor') ## it will create role with translated name in roles_translation table.
  and so on......

 ##set more locale and save values accordingly.
end

了解更多信息https://github.com/globalize/globalize#model-translations