def setup_translates!(options)
options[:table_name] ||= "#{table_name.singularize}_translations"
options[:foreign_key] ||= class_name.foreign_key
class_attribute :translated_attribute_names, :translation_options, :fallbacks_for_empty_translations
self.translated_attribute_names = []
self.translation_options = options
self.fallbacks_for_empty_translations = options[:fallbacks_for_empty_translations]
include InstanceMethods
extend ClassMethods, Migration
translation_class.table_name = options[:table_name]
has_many :translations, :class_name => translation_class.name,
:foreign_key => options[:foreign_key],
:dependent => :destroy,
:extend => HasManyExtensions,
:autosave => false
after_create :save_translations!
after_update :save_translations!
if options[:versioning]
if options[:versioning].is_a?(Hash)
translation_class.versioned options[:versioning]
else
::ActiveRecord::Base.extend(Globalize::Versioning::PaperTrail)
translation_class.has_paper_trail
delegate :version, :versions, :to => :translation
end
end
translation_class.instance_eval %{ attr_accessible :locale }
end