在我的 haml 文件中,我想在来自 yml 文件的字符串中包含一个 link

In my haml file, I want to include a link within a string that is coming from a yml file

这是我的情况:

我的 haml 文件中有这个,...这是一个开始:

.image-credits
    %div
        %h2
            = t(:image_credits)
        %ul
            %li
                %p
                    = t(:photographer_1)

然后在我的 yml 文件中定义了这些字符串:

  image_credits : "Image Credits"
  photographer_1 : "\"Miss Kitty\" by Mike Henderson"
  photographer_1_link : "https://www.flickr.com/photos/mikehenderson/3750940230"

理想情况下,如果它被渲染成这样,我会喜欢它:

Miss Kitty”迈克·亨德森

关于如何做到这一点有什么建议吗?我一直在谷歌上搜索,但我不认为我在寻找正确的东西。

你需要做两件事:

  1. 您的 photographer_1 字符串需要呈现为 HTML,您通过将 _html 附加到键来向 Rails 发出信号(所以现在是 photographer_1_html (http://guides.rubyonrails.org/i18n.html#using-safe-html-translations)
  2. 您需要向该键传递一个参数,即您要插入的 link。因为 link 在所有语言环境中都是相同的,所以 link 可以在您的 HAML 中。参数在 t() 方法中作为选项传递。

所以你最终得到: # in en.yml photographer_1_html : "<a href='%{link}'>\"Miss Kitty\" by Mike Henderson</a>"

# in yourview.html.haml = t(:photographer_1_html, link:"https://www.flickr.com/photos/mikehenderson/3750940230")