加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

国际化 – rails3 I18n:无法覆盖“1错误禁止此数据包被保存:”

发布时间:2020-12-16 19:23:00 所属栏目:百科 来源:网络整理
导读:当我在模型包上出现错误时,我总是看到第一行(英语=未翻译): 1 error prohibited this packet from being saved:Naam Gelieve het veld Naam in te vullen! 找到单个字段的错误的翻译! 虽然我在我的nl.yml中有以下内容 nl: activemodel: errors: template:
当我在模型包上出现错误时,我总是看到第一行(英语=未翻译):
1 error prohibited this packet from being saved:
Naam Gelieve het veld Naam in te vullen!

找到单个字段的错误的翻译!

虽然我在我的nl.yml中有以下内容

nl:

  activemodel:
    errors:
      template:
        header:
          one:   "1 fout voorkwam dat dit %{model} kon bewaard worden"
          other: "%{count} fouten voorkwamen dat deze %{model} kon bewaard worden"
        body:    "Er waren problemen met de volgende velden:"

  errors:
    template:
      body: "Controleer alstublieft de volgende velden:"
      header:
        one: "Kon dit {{model}} object niet opslaan: 1 fout."
        other: "Kon dit {{model}} niet opslaan: {{count}} fouten."

  activerecord:
    errors:
      template:
        header:
          one:   "1 fout voorkwam dat dit %{model} kon bewaard worden"
          other: "%{count} fouten voorkwamen dat deze %{model} kon bewaard worden"
        body:    "Er waren problemen met de volgende velden:"
      messages:
        blank: Gelieve het veld %{attribute} in te vullen!
    models:
      survey: test
      packet: woordenlijst
      user: gebruiker
    attributes:
      survey:
        name: Naam

如果一直在看很多东西,在rails-i18n上,下载了他们的nl.yml,但似乎没有任何帮助.
有人知道为什么它不起作用?

我认为这可能与其他文件发生冲突(我有两个其他宝石的本地化文件),但暂时删除这些文件并没有改变.

有人知道如何调试这个吗?

我可以以某种方式删除默认翻译,以便我得到错误,哪个翻译不会被找到?

解决方法

卫生署!找到了!愚蠢的我!

忘了在rails 3中你不再使用error_messages_for,所以在我的脚手架视图代码中有以下代码:

= form_for @packet do |f|
   -if @packet.errors.any?
     #errorExplanation
       %h2= "#{pluralize(@packet.errors.count,"error")} prohibited this packet from being saved:"

所以,难怪我无法翻译. Aaaaarrrgghh!

解决方案是要么使用dynamic-form插件(它提供与rails 2.3相同的功能),要么相应地调整视图,就像我做的那样:

-if @packet.errors.any?
    #errorExplanation
      %h2
        - if @packet.errors.count == 1
          = t 'activerecord.errors.template.header.one',:model => @packet.class.human_name
        - else
          = t 'activerecord.errors.template.header.other',:model => @packet.class.human_name,:count => @packet.errors.count
      %b= t 'activerecord.errors.template.body'
      %ul
        - @packet.errors.full_messages.each do |msg|
          %li= msg

但是,因为我们需要为每个可能有错误的视图执行此操作,这应该是部分的,或者使用上面提到的插件:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读