С
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
Такое ощущение, что я сражаюсь с драгоценным камнем или пропускаю трюк.