【问题标题】:Rails 5: i18n for prompt in select tagRails 5:i18n 在选择标签中提示
【发布时间】:2017-02-10 19:08:30
【问题描述】:

我正在尝试通过 i18n 提示我的这段代码

/views/media/medias/_newmedia.html.erb

<%= f.select :media_type, Media::Medias.i18n_media_types.map { |w| [w[0].humanize, w[0]] },
{ prompt: I18n.t('mediatypes') }, {class:"form-control m-b"} %>

在我的 /config/locales/models/media/medias.en.yml 我有这个:

en:
  media_medias_media_types:
    magazine: Magazine
    newspaper: Newspaper

/config/locales/views/media/medias.en.yml

en:
  media:
    medias:
      mediatypes: Please select media type

为模型中的枚举完成 i18n 的第一部分正在工作,但是 我无法弄清楚如何 i18n 提示

如果有任何提示我应该在哪里看,我会很高兴。谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    你可以试试:

    <%= f.select :media_type, Media::Medias.i18n_media_types.map { |w| [w[0].humanize, w[0]] }, :prompt => I18n.t('.mediatypes'), {class:"form-control m-b"} %>
    

    没有点 I18n.t('mediatypes') i18n 正在查看文件 /config/locales/en.yml

    当您以点 I18n.t('.mediatypes') 开头时,它称为惰性查找。你应该看看这个page 第 4.1.4 节

    现在 i18n 正在寻找文件 /config/locales/views/media/medias/en.yml 的翻译,如下所示(您必须为部分添加一个部分并更新文件的名称 '/medias.en .yml' 转换成 '/medias/en.yml' )

    en:
      media:
        medias:
          newmedia:
            mediatypes: Please select media type
    

    希望对你有帮助。

    【讨论】:

    • 谢谢,但这无济于事,因为它给出了错误:translation missing: en.mediatypes
    • 这样更好,不是吗?因为你之前没提过。现在,你能和我们分享一下 /config/locales/en.yml
    • 不,抱歉 - 结果相同。
    • 请查看我的评论编辑。你应该有类似 en: mediatypes: "Please select"
    • 谢谢你,一般情况下它就像你说的那样工作。在我看来,我必须这样做 { prompt: (t'.mediasubtypes') }/config/locales/views/media/medias/newmedia.en.yml 看起来像你说的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多