Symfony 5.4含limit参数的表单约束消息翻译报错求助
解决Symfony表单约束错误消息翻译的格式错误问题
错误提示Invalid message format (error #65799)的核心原因是:你在**ICU格式的翻译文件(messages+intl-icu.yaml)**中使用了Twig的双大括号{{ limit }}变量语法,而ICU消息格式要求变量用单大括号{limit},两种语法冲突导致解析失败。
修复步骤
- 修正翻译文件的变量格式
将messages+intl-icu.yaml中的翻译内容修改为ICU兼容的语法:company.minlenght.error: Le groupe doit comporter {limit} caractères ou plus. - 修正拼写错误(可选但建议)
注意到翻译键minlenght存在拼写错误(正确应为minlength),建议同步修正:- 翻译文件键改为
company.minlength.error - PHP代码中的调用也对应修改:
'minMessage' => $this->translator->trans('company.minlength.error')
- 翻译文件键改为
补充说明
直接在PHP代码中写"Le groupe doit comporter {{ limit }} caractères ou plus."能正常工作,是因为Symfony表单约束的默认消息解析器使用Twig语法;而通过translator->trans()从ICU格式文件获取翻译时,会切换为ICU规则解析,因此必须遵循ICU的变量格式要求。
内容的提问来源于stack exchange,提问作者akio
相关产品推荐
相关产品推荐

