0

我曾经担任枚举角色并且翻译它们很容易......

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

Rolify 将“角色”表添加到 RoR 应用程序,您可以在其中拥有角色的字段“名称”。

所以我有4个角色:

  • 超级管理员
  • 行政
  • 老师
  • 家长

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

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

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

关于我如何做到这一点的任何想法?

编辑 只是一点澄清。角色存储在“名称”字段中,因为我有 4 个角色,“名称”可以有 4 个不同的值(超级管理员、管理员、教师、家长)。我的问题是为同一字段翻译不同的值。

4

1 回答 1

0

根据全球化宝石

首先保存所有 English(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

于 2016-03-13T19:15:53.627 回答