Globalise3有后备但没有预填表单和后备翻译

时间:2011-10-29 04:37:30

标签: ruby-on-rails-3 internationalization globalization formtastic

使用

config.i18n.fallbacks = { :fr => :en }

class Thing < ActiveRecord::Base
  translates :name
end

I18n.local = :en

Thing.create! :name => 'broken'

无论如何都阻止Globalize3在语言环境设置为:fr?

时为名称返回'broken'

我想要后退,但我不希望我的法语表格预先填好英文翻译。

我不想要多语言环境表单。我不想用_en为每个属性名称加前缀。我只想告诉globalize返回空白翻译。

我希望

thing(:fr)

或类似的东西会存在。

我尝试了各种各样的hackery - 试图在表单填充时暂时禁用回退等。我可以自己编写表单(我正在使用Formtastic)或嵌套翻译但是感觉我错过了某些东西

如果我没有传达,请原谅我,但是早上5:30。

有人有任何指示吗?


更新

如果不存在,Globalize3会自动为当前语言环境构建转换。由于每个值均为零,因此它们会回落。如果我循环遍历它们并在表单访问它们之前将它们全部设置为空字符串,我会得到所需的效果。

我正在使用继承的资源,因此我的模型实例称为资源。我把它放在帮助器中并在填充表单之前运行它:

if resource.respond_to?(:translations) && request[:action] == 'edit'
  resource.translated_attribute_names.each do |attribute_name|
    resource[attribute_name] = '' unless resource.translation[attribute_name].present?
  end
end

感觉我正在与宝石战斗或错过一招。

0 个答案:

没有答案