【问题标题】:Symfony2 form error translationSymfony2 表单错误翻译
【发布时间】:2013-02-26 12:40:14
【问题描述】:

我在我的表单中使用 symfony2 验证和 validation.yml,我尝试使用验证器验证它。{lang}.yml 文件。

我的语言环境设置为 pt_BR,验证器文件位于:{Bundle}/Resources/translations/validators.pt_BR.yml

此外,同一捆绑包的验证文件位于: {Bundle}/Resources/config/validation.yml

不过,即使我清除了缓存,翻译后的消息也不会出现。

我的验证文件:

NC8Digital\CRMBundle\Entity\Usuario:
properties:
    id:
        - Range:
            min: 1
            minMessage: "UserBundle.Usuario.id"
            invalidMessage: "UserBundle.Usuario.id"
        - Type:
            type: numeric
            message: "UserBundle.Usuario.id"
    nome:
        - NotBlank:
            message: "UserBundle.Usuario.nome.not_blank"
        - Length:
            min: 3
            max: 90
            minMessage: "UserBundle.Usuario.nome.min_length"
            maxMessage: "UserBundle.Usuario.nome.max_length"
    sobrenome:
        - NotBlank:
            message: "UserBundle.Usuario.sobrenome.not_blank"
        - Length:
            min: 3
            max: 90
            minMessage: "UserBundle.Usuario.sobrenome.min_length"
            maxMessage: "UserBundle.Usuario.sobrenome.max_length"
    cpf:
        - NotBlank:
            message: "UserBundle.Usuario.cpf.not_blank"
        - NC8Digital\CRMBundle\Validator\Constraints\Cpf:
            message: "UserBundle.Usuario.cpf.cpf"
        - Length:
            min: 14
            max: 14
            exactMessage: "UserBundle.Usuario.cpf.exact_message"
    rg:
        - NotBlank:
            message: "UserBundle.Usuario.rg.not_blank"
        - Length:
            min: 5
            max: 25
            minMessage: "UserBundle.Usuario.rg.min_length"
            maxMessage: "UserBundle.Usuario.rg.max_length"
    celular:
        - Length:
            min: 10
            max: 15
            minMessage: "UserBundle.Usuario.celular.min_length"
            maxMessage: "UserBundle.Usuario.celular.max_length"
        - NC8Digital\CRMBundle\Validator\Constraints\Celular:
            message: "UserBundle.Usuario.celular.celular"
    telefone:
        - NotBlank:
            message: "UserBundle.Usuario.telefone.not_blank"
        - Length:
            min: 10
            max: 15
            minMessage: "UserBundle.Usuario.telefone.min_message"
            maxMessage: "UserBundle.Usuario.telefone.max_message"
        - NC8Digital\CRMBundle\Validator\Constraints\Telefone:
            message: "UserBundle.Usuario.telefone.telefone"
    sexo:
        - NotBlank:
            message: "UserBundle.Usuario.sexo.not_blank"
    data_nascimento:
        - Date:
            message: UserBundle.Usuario.data_nascimento.not_blank
    tipousuario:
        - NotBlank:
            message: "UserBundle.Usuario.tipo_usuario.not_blank"
    endereco:
        - Valid: ~
    login:
        - Valid: ~

我的翻译文件:

UserBundle:
Usuario:
    id: Código do usuário inválido.
    nome:
        not_blank: "Insira o nome."
        min_length: "Seu nome deve ter no mínimo 3 caracteres"
        max_length: "Seu nome deve ter no máximo 90 caracteres"
    sobrenome:
        not_blank: "Insira o sobrenome."
        min_length: "Seu sobrenome deve ter no mínimo 3 caracteres"
        max_length: "Seu sobrenome deve ter no máximo 90 caracteres"
    cpf:
        not_blank: "Insira o CPF."
        cpf: "Insira um CPF válido"
        exact_message: "Seu CPF deve ter 14 caracteres (incluíndo pontos e traços)."
    rg:
        not_blank: "Insira o RG."
        min_length: "O RG deve ter no mínimo 5 caracteres"
        max_length: "O RG deve ter no máximo 25 caracteres"
    celular:
        min_length: "O celular deve ter no mínimo 10 caracteres (sem separadores)."
        max_length: "O celular deve ter no máximo 15 caracteres (incluindo separadores)."
        celular: "Insira um celular válido."
    indicacoes_dia:
        min_range: "A quantidade de indicacões por dia deve ser no mínimo 0."
        max_range: "A quantidade de indicacões por dia deve ser no máximo {{ limit }}."
        type_message: "Quantidade de indicações por dia inválida."
    telefone:
        not_blank: "Insira o Telefone."
        min_message: "O telefone deve ter no mínimo 10 caracteres (sem separadores)"
        max_message: "O telefone deve ter no máximo 15 caracteres (incluindo separadores)."
        telefone: "Insira um telefone válido."
    sexo:
        not_blank: "Insira o Gênero."
    data_nascimento:
        not_blank: "Insira uma data de nascimento válida."
    tipo_usuario:
        not_blank: "Insira o Tipo de usuário."

【问题讨论】:

  • 您的 yml 文件似乎没有很好地缩进。你得到一个缩进错误?或者根本没有错误?你的配置文件中还需要这个translator: { fallback: %locale% }。
  • 由于是复制粘贴,所以是这样的。我的 yml 文件没有错误。我的配置文件中还有 codetranslator: { fallback: %locale% },唯一的区别是它是用 {} 标识的,而不是用 {} 标识的。感谢你们@Patt 和@user1452962 还有其他想法吗?

标签: php symfony translation


【解决方案1】:

我添加了 novalidate 属性来禁用 HTML5 验证。你的问题是这样的: minMessage: "UserBundle.Usuario.id" , remove " 我认为它会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2020-09-29
    • 1970-01-01
    • 2012-05-10
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多