我在rails应用程序上有一个ruby。我的申请中有西班牙语和英语支持。但是,在西班牙语模式下,我得到了一个缺少翻译的例外。
我有以下型号:
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
我看不到我错过的东西,
任何建议,
感谢。
答案 0 :(得分:0)
其他翻译是否适用于此文件? 尝试将sp.yml重命名为es.yml,因为这是“espanol”的iso代码。
还尝试在spansih文件中包含activerecord.errors.messages.record_invalid的消息。这会显示吗?
答案 1 :(得分:0)
实际上,要在您的语言环境中使用西班牙语,您需要设置I18n.locale = :es
。我认为你混淆了你的语言环境。正确的语言文件应命名为es.yml
,如下所示:
es:
activerecord:
errors:
models:
company:
attributes:
name:
bad_name: 'message in spanish'