【发布时间】:2018-07-26 13:05:35
【问题描述】:
我刚开始使用symfony validator,我真的很喜欢它,除了翻译部分,目前它使用我自己的翻译库,但我发现了translations for almost all languages 存储的validator.LOCALE.xlf 文件,我不知道如何使用它们。
我目前的验证人注册码是
$container->register('validator', \Symfony\Component\Validator\Validator\ValidatorInterface::class)
->setFactory(
[
new Reference('validator.builder'),
'getValidator'
]
);
$container->register('validator.builder', \Symfony\Component\Validator\ValidatorBuilderInterface::class)
->setFactory(
[
\Symfony\Component\Validator\Validation::class,
'createValidatorBuilder'
]
)
->addMethodCall(
'setTranslator',
[
new Reference('translator') // Symfony translatorInterface
]
)
->addMethodCall(
'setTranslationDomain',
[
'messages'
]
);
看起来我已经检查了整个验证器结构,如 RecursiveValidator、ContextualValidator、Contexts 等,但只是在某个地方缺少一个参数,另一方面 ConstraintViolationBuilder 只是简单地接受传递的翻译器并尝试通过它翻译约束消息,没有尝试使用任何 xlf 文件。
只是强制搜索所有验证器库文件也没有结果。
Symfony guilde 也没有帮助,因为它提供使用默认错误句子作为翻译键,并在您自己的翻译文件中使用此“键”,但是为什么要将已翻译的句子复制到您自己的文件中,以及当已经存在结构化文件(我说的是 .xlf)时,用键模式创建混乱(例如我使用蛇形案例)?
【问题讨论】:
标签: symfony