Rails I18n:更好的内插链接方式?

Mar*_*der 6 ruby-on-rails dry internationalization

这样做是否有更清洁,content_tag-ish方式?(我不想在我的YML中使用HTML)

en.yml:

expert_security_advice: "Go <a href='{{url}}'>here</a> for expert security advice."
Run Code Online (Sandbox Code Playgroud)

layout.html.erb:

<%= t(:expert_security_advice, :url => "http://www.getsafeonline.org") %>
Run Code Online (Sandbox Code Playgroud)

M. *_*her 3

我能想到的最好的办法是:

en.yml:

expert_security_advice: "Go *[here] for expert security advice."
Run Code Online (Sandbox Code Playgroud)

布局.html.erb:

<%= translate_with_link(:expert_security_advice, "http://www.getsafeonline.org") %>
Run Code Online (Sandbox Code Playgroud)

application_helper.rb:

include ActionView::Helpers::TagHelper

def translate_with_link(key, *urls)
  urls.inject(I18n.t(key)) { |s, url|
    s.sub(/\*\[(.+?)\]/, content_tag(:a, $1, :href => url))
  }
end
Run Code Online (Sandbox Code Playgroud)