【发布时间】:2010-10-04 16:51:54
【问题描述】:
我有一个名为 human 的对象,该对象有一个名为 job 的字段。我希望用户能够添加他们自己的工作(显然会以他们自己的语言添加),但我希望在有人做 Human.job 时翻译数据库中默认的任何工作,rails 可以翻译吗如果它在视图中则为默认值,但如果它在模型中则不是,因为我有一些 sql 逻辑来测试有多少人拥有编码器的工作。
#Human
class Human < ActiveRecord::Base
validates_presence_of :job, :name
def job
if is_view?
key = job.gsub(/ /,'_')
translation = I18n.translate("jobs.#{key.downcase}")
if translation.include?('translation missing:')
job
else
translation
end
else
job
end
end
end
#en.yml
en:
jobs:
coder: 'coder'
#en-Accountants.yml
en-Accountants:
jobs:
coder: 'slave'
#fr.yml
fr:
jobs:
coder: 'le coder'
例如:
从事“编码员”工作的人类“鲍勃”应该是会计师的“奴隶”,应该是使用法语应用程序的人的“奴隶”,但我应该仍然能够为每个编码员进行查找。
【问题讨论】:
标签: ruby-on-rails activerecord internationalization model