Infinite
@Infinite
Developer

Использование русского label при генерации формы

Изучаю ROR и возник следующий вопрос, для генерации формы в учебнике используется следующий код

<%= form_for(:session, url: sessions_path) do |f| %>
      <%= f.label :email %>
      <%= f.text_field :email %>

      <%= f.label :password %>
      <%= f.password_field :password %>

      <%= f.submit "Sign in", class: "btn btn-large btn-primary" %>
<% end %>


Как правильно сделать label на русском языке?
  • Вопрос задан
  • 3106 просмотров
Решения вопроса 1
@DeFANCE
Как уже отмечалось, следует использовать локали. И все строки текста крайне рекомендуется выносить из шаблонов. Наиболее безболезненный вариант — использовать i18n (всё загайжено уже давно).
en: guides.rubyonrails.org/i18n.html
ru: rusrails.ru/rails-internationalization-i18n-api
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
HighQuality
@HighQuality
☁ Ниндзя девелопер
Менять локаль?

ru.yml

activerecord:
  attributes:
    post:
      email: 'Электропочта'
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Хм. а есть ли код «выше» этого «сгенерённого»?
А C# есть такая замечательная штука, как Data Annotations.

[Required]
[Display(Name = «Имя пользователя»)]
public string UserName { get; set; }


То есть, в представлении формы код будет выглядеть вот так:

@ Html.LabelFor(m => m.UserName, new { @ class = «control-label» })
@ Html.TextBoxFor(m => m.UserName)
@ Html.ValidationMessageFor(m => m.UserName, null, new { @ class = «help-inline» })


И текст LabelFor m.UserName заменится на прописанное в Display Name, вместо английского по умолчанию.
При этом, повторяя Вашу ситуацию, label на кнопке «выполнить вход» в оригинале был тоже английском, я его руками перевёл
/>

Попробуйте покопать в эту сторону тоже.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы