I18n和插值?

时间:2015-03-25 17:29:24

标签: ruby regex middleman string-interpolation

我希望能够在yml语言环境文件中存储的字符串内插变量。我弄清楚如何做到这一点的唯一方法是使用正则表达式。

例如在en.yml中我有

---
en:
  byline: "By <strong>{{author}}</strong>"`

然后在我的erb文件中我有:

<%= t(:byline).gsub!(/{{author}}/, current_page.data.author) %>

有更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

请参阅Rails Internationalization API RailsGuide中的Passing Variables to Translations

  

您可以在翻译消息中使用变量,并从视图中传递它们的值。

# app/views/home/index.html.erb
<%=t 'greet_username', user: "Bill", message: "Goodbye" %>

# config/locales/en.yml
en:
  greet_username: "%{message}, %{user}!"