- У меня есть модель с пользовательскими проверками. Я возвращаю подтверждение ошибок в представлении как JSON с использованием AJAX.
- Мне нужно показать сообщение об ошибке с правильной локалью, но сообщения показать по-английски (по умолчанию) для каждого языкового стандарта.
- Когда я возвращаю I18n.locale сам, а не сообщение (для устранения неполадок), он показывает «ru», независимо от того, что является установленным языковым стандартом.
- I18n в контроллерах или представлениях работает как ожидалось, эта проблема возникает только в модели.
- Единственная конфигурация, которую я сделал относительно локали, устанавливает языковой стандарт по умолчанию в конфигурации приложения и устанавливает локаль перед каждым действием в контроллере приложения.
- Еще одна вещь, которую я заметил, заключается в том, что, когда я использую root_path без предоставления языкового стандарта, он использует стандартную локаль, вместо этого сохраняя текущую локальу, как должен. Я думаю, что эти вопросы связаны
Edit:Модель Rails, использующая только стандартную локаль
- При печати параметр локали в контроллере # создать, я получаю ноль. По какой-то причине У меня нет параметра locale вообще.
модель файла:
validate :relevant_date_time
def relevant_date_time
errors.add(:date_error, I18n.t("validations.date_error")) unless date_time_is_relevant?
end
application_controller:
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
Am Я забыл?
Информация Просмотрев:
- http://guides.rubyonrails.org/i18n.html
- Access translation file (i18n) from inside rails model
- Rails 3 translations within models in production
- http://www.eq8.eu/blogs/10-translating-locales-for-rails-model-errors
- https://lingohub.com/frameworks-file-formats/rails5-i18n-ruby-on-rails/
- Change locale at runtime in Rails 3
Пытались, что сейчас, по какой-то причине он все еще показывает E сский! – MaxDBN