Globalise3 с резервными вариантами, но без предварительного заполнения формы с резервным переводом

С

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

и

class Thing < ActiveRecord::Base
  translates :name
end

и

I18n.local = :en

и

Thing.create! :name => 'broken'

Есть ли способ предотвратить Globalize3 от возврата «сломанного» для имени, когда языковой стандарт установлен на: fr?

Мне нужны резервные варианты, но я не хочу, чтобы моя французская форма была предварительно заполнена английским переводом.

Мне не нужна многоязычная форма. Я не хочу добавлять префикс _en к каждому имени атрибута. Я просто хочу сказать globalize вернуть пустой перевод.

я надеялся

thing(:fr)

или что-то подобное будет существовать.

Я перепробовал все виды хакерства - пытался временно отключить резервные копии, пока форма заполняется и т. Д. Я мог бы написать форму сам (я использую 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

Такое ощущение, что я борюсь с драгоценным камнем или пропускаю трюк.


person marc    schedule 29.10.2011    source источник
comment
Хотя это не дубликат, вы можете найти полезным stackoverflow.com/questions/19798158/   -  person Brenes    schedule 12.11.2013