【问题标题】:Ruby on Rails i18n activerecord custom messagesRuby on Rails i18n activerecord 自定义消息
【发布时间】:2017-08-19 12:28:37
【问题描述】:

我有一个 ruby​​ on rails 应用程序。我的申请中有西班牙语和英语支持。但是,在西班牙语模式下,我得到一个翻译缺失异常。

我有以下型号:

class Company < ApplicationRecord
    validates :name,  length: { in: 5..15,  message: :bad_name }
end

en.yml

en:
  activerecord:
    errors:
      models:
        company:
          attributes:
            name:
              bad_name: 'message in english'

sp.yml

sp:
  activerecord:
    errors:
      models:
        company:
          attributes:
            name:
              bad_name: 'message in spanish'

以防万一我用英文打开应用程序时出错。我收到“英文消息”消息,没关系。

另一方面,当我用西班牙语打开并测试它时,我收到以下错误。

ActiveRecord::RecordInvalid:
   translation missing: sp.activerecord.errors.messages.record_invalid

我看不到我错过了什么,

任何建议,

谢谢。

【问题讨论】:

  • 您能分享一下您在设置区域设置和创建公司的代码的 sn-p 吗?

标签: ruby-on-rails ruby activerecord rails-i18n


【解决方案1】:

此文件中是否有其他翻译? 尝试将 sp.yml 重命名为 es.yml,因为这是“espanol”的 iso 代码。

同时尝试在您的 spansih 文件中包含一条针对 activerecord.errors.messages.record_invalid 的消息。这会显示吗?

【讨论】:

    【解决方案2】:

    实际上,要在您的语言环境中使用西班牙语,您需要设置I18n.locale = :es。我认为你混淆了你的语言环境。正确的语言文件应命名为es.yml,如下所示:

    es:
      activerecord:
        errors:
          models:
            company:
              attributes:
                name:
                  bad_name: 'message in spanish'
    

    【讨论】:

      猜你喜欢
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2014-07-27
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多