2013-11-22 4 views
0

У меня есть этот код, отображающий локализованные тексты:Перевести simple_form сообщения об ошибках

<%= f.input :full_name, :label => _('registration.form.label.name') + ':', :required => false -%> 
    <%= f.input :company, :label => _('registration.form.label.company') + ':', :required => false -%> 

Как вы можете видеть, метки переводятся с помощью цифровых клавиш и внешней системы. Часть ярлыка работает правильно. Однако сообщения об ошибках («не могут быть пустыми» и т. Д.) Не переводятся. Самый простой способ - настроить сообщения об ошибках, обернув их в тег _(), но я не могу найти, где это сделать.

Что было бы самым простым способом для перевода сообщений об ошибках? Предпочтительно использовать текущую систему перевода.

+1

Помогает ли вам [это] (http://stackoverflow.com/questions/12955208/translating-custom-error-messages)? – PinnyM

+0

Спасибо за ответ, но это не очень помогает мне. Я использую единую систему управления переводом, и изменение yml-файлов для перевода не может быть и речи. Самое простое решение - найти нужную переменную для обтекания тега _(), и все будет хорошо. – Lightheaded

ответ

-1

Решение состоит в создании пользовательских сообщений об ошибках. (Пример здесь: Customize error message with simple_form)

validates_length_of :name, :minimum => 5, :message => "blah blah blah" 

И использовать их так:

<%= f.input :name, :error_html => { :id => "name_error"} %> 
+0

Действительно ли это «ПО» решение? Я думаю, что цель состоит в том, чтобы разместить сообщения в простой форме yaml-файла ... – Matthias

+0

Извините, это единственное обходное решение, которое я нашел возможным для своей цели. – Lightheaded

+0

Конечно, не беспокойтесь. Что вы думаете об этом подходе? http://stackoverflow.com/a/36410506/5521564 – Matthias

0

Вы можете просто добавить сообщения об ошибках в activerecord YAML

en: 
    activerecord: 
    models: 
     mymodel: 
     attributes: 
      name: 
      too_short: "%{attribute} is too short." 

Таким образом, вы можете также ссылаться на имя attribute в вашем ямле.

Конечно, в идеале вы бы разместили как ярлык, так и валидацию в ящике simple_form i18n, но я не смог понять это. Любые предложения для этого приветствуются.

Смежные вопросы