我有一些验证,我是这样验证的:
而且我注意到当有超过1个错误时,Laravel会在消息中添加“和1(或2或4..)更多的错误”。
看看这些图片,你就会明白我的意思:
我发现这是发生在laravel框架/哪个函数:
它用一个动态键调用Translater get方法!我怎么翻译动态键??
我试了几种方法:
- 在英语/葡萄牙语“验证”翻译文件中添加带有保持器的密钥
- 添加带有数字本身的密钥(替换占位符)
没有生效,看到我的意思如下:
一个四个一个一个一个五个一个
我已经注意到有其他人有同样的问题时,在谷歌搜索,但到目前为止,我还没有找到一个解决方案,我不想做一个“字符串替换”,并使用一个更优雅的解决方案...任何人可以帮助?
有同样问题的其他人:https://github.com/laravel/framework/discussions/41230
多谢
3条答案
按热度按时间oaxa6hgo1#
需要将
(and :count more error)
和(and :count more errors)
添加到json翻译文件中,因为这不是一个“短键”,而是一个“翻译字符串”:https://laravel.com/docs/9.x/localization#using-translation-strings-as-keysmqxuamgl2#
今天在这里发表了一条评论,如果你想继续使用PHP翻译文件,这可能会解决你的问题:https://github.com/laravel/framework/pull/43837#issuecomment-1263231220
vyu0f0g13#
对我的情况有效的快速修复/解决方案(因为我只需要显示第一个错误,一次一个,而不是多个)
这将删除额外的(和1个以上的错误..):
在某些情况下,您还需要在验证规则中添加“bail”(以避免每个字段出现1个以上的错误)