У меня есть приложение с несколькими арендаторами, и я экспериментирую с использованием драгоценного камня i18n, чтобы каждый из наших клиентов мог настроить систему по своему вкусу, меняя текст на разных страницах, настраивая электронные письма и т.д. По общему признанию, я не использую i18n, поскольку он был предназначен для использования, поскольку я фактически не переводил разные "языки", все на английском, но каждый клиент имеет РАЗЛИЧНЫЙ английский, если это имеет смысл.
Тем не менее, я столкнулся с тем, что, по моему мнению, является ужасно плохим дизайнерским решением в i18n gem: если когда-либо перевод не существует, а не просто не делает перевод и распечатывает все, что обычно будет, он поднимает ошибка. Например,
<%= distance_of_time_in_words_to_now @press_release.submitted_at %>
появляется как
translation missing: en, datetime, distance_in_words, x_days
Я имею в виду, давай! Я даже не хочу, чтобы это было переведено.
Я понимаю, что причина в том, что это происходит потому, что у меня нет загруженных по умолчанию переводов, но я использую ActiveRecord в качестве бэкэнд, и я хотел сохранить его в чистоте. "Решение" будет заключаться в том, чтобы импортировать все файлы перевода yaml в хранилище для переводов в базе данных, но это не кажется хорошей идеей. Что делать, если я буду обновлять рельсы в будущем? Мне придется беспокоиться о синхронизации всех этих переводов.
Опять же, я не могу понять, почему это поведение по умолчанию. Когда ANYBODY захочет, чтобы появилось это сообщение с фанкой, вместо того, чтобы просто использовать по умолчанию "3 дня назад"?
В любом случае, мой вопрос в том, есть ли способ автоматически отключить перевод и использовать нетранслированное сообщение, если перевод не существует? Спасибо!