Выбрать случайный перевод I18n с параметрами

В одной из моих контактных форм есть предварительно заполненное сообщение, чтобы кандидаты избегали плохих сообщений и имели начальную хорошую основу для работы.

До сих пор я использовал один message_template, но я хотел бы внести разнообразие в случайный список.

Мой перевод нуждается в некоторых переменных для правильной работы

Изначально у меня было что-то вроде этого

# locales/en.yml
en:
  message_template: "Hello %{name}, how are you on this %{day} !"

# my_view.html.erb
<%= t(:my_template, name: @user.name, day: DateTime.now.strftime('B') %>

Я хотел бы переключиться на строку случайного перевода (т.е. выбрать случайный перевод из списка) И все же заменить переменные.

Что-то типа

# locales/en.yml
en:
  message_templates: 
    - "Hello %{name}, how are you on this %{day} !"
    - "Hi %{name}, nice %{day} isn't it ? how are you ?"

# my_view.html.erb
<%= t('my_templates.sample'), name: @user.name, day: DateTime.now.strftime('B') %>

Каким будет рабочий синтаксис?

ПРИМЕЧАНИЕ :

Я пробовал <%= t('my_templates, name: @user.name, day: DateTime.now.strftime('B')).sample %> Но я получаю строки с незамещенными значениями параметров:

Привет, %{name}, приятно %{day}, не так ли? как дела ?


person Cyril Duchon-Doris    schedule 23.03.2017    source источник
comment
Мне также интересно, как я могу это проверить (например, с помощью водосвинки)   -  person Cyril Duchon-Doris    schedule 23.03.2017


Ответы (1)


Я использовал комбинацию sample, t и I18n.interpolate

<%= I18n.interpolate(
  t('my_templates').sample, 
  name: @user.name, 
  day: DateTime.now.strftime('B') 
%>
person Cyril Duchon-Doris    schedule 23.03.2017