В моем приложении я хочу перевести строку ошибки проверки: «3 ошибки не позволили сохранить этот порядок».
Очевидно, что это можно сделать универсальным, чтобы соответствовать всем моделям, использующим этот перевод, поэтому в моемШаблон локали de.yml Я получил activerecord.errors.template.header примерно так:
activerecord:
errors:
template:
header:
one: "Konnte %{model} nicht speichern: ein Fehler."
other: "Konnte %{model} nicht speichern: %{count} Fehler."
Теперь проблема заключается в том, как вызвать эту проверку, не повторяя много раз.Очевидно, вы можете просто вызвать это через:
t('activerecord.errors.template.header', :count => @order.count, :model => Order)
Но это не будет переводить Order (Order называется Bestellung на немецком языке)
Я мог бы пойти дальше и исправить это, вызвав translate снова внутривызов перевода:
t('activerecord.errors.template.header', :count => @order.count, :model => t('activerecord.models.#{Order}'))
Но это действительно очень плохое решение, и я уверен, что для этого должен быть встроенный способ (как правило, есть более чистый способ делать грязные вещи)в Rails).
Буду признателен за любые указания относительно того, какой рекомендуемый способ работы с переводами подобен этому.