【问题标题】:Pick random I18n translation with parameters选择带有参数的随机 I18n 翻译
【发布时间】:2017-03-23 16:10:20
【问题描述】:

在我的一张联系表上,有一条预先填写的信息,以便候选人避免不良信息,并有一个初步的良好合作基础。

到目前为止,我使用的是单个 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') %>

什么是有效的语法?

注意:

我尝试了&lt;%= t('my_templates, name: @user.name, day: DateTime.now.strftime('B')).sample %&gt; 但我获得了未替换参数值的字符串:

嗨 %{name},不错的 %{day} 不是吗?你好吗?

【问题讨论】:

  • 我也想知道如何测试(例如使用水豚)

标签: ruby ruby-on-rails-5 rails-i18n i18n-gem


【解决方案1】:

我使用了sampletI18n.interpolate 的组合

<%= I18n.interpolate(
  t('my_templates').sample, 
  name: @user.name, 
  day: DateTime.now.strftime('B') 
%>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多