簡體   English   中英

自定義斷言的symfony翻譯

[英]symfony translation for custom assert

我創建了用於檢查值的自定義斷言(僅數字),並且需要為此服裝斷言創建轉換消息。 我創建了所有需要的東西,但是在驗證之后,我得到了trans鍵而不是trans消息

[
  {
    "property_path": "phone",
    "message": "contains.numeric"
  }
]

這就是我所擁有的

\\AppBundle\Validator\Constraints\ContainsNumericValidator
class ContainsNumericValidator extends ConstraintValidator
{
private $repository;

public function __construct(UserRepository $repository)
{
    $this->repository = $repository;
}

public function validate($value, Constraint $constraint)
{
    if (!preg_match('/^[0-9]+$/', $value, $matches)) {
        $this->context->buildViolation($constraint->message)
            ->setParameter('{{ string }}', $value)
            ->addViolation();
    }
}
}


\\AppBundle\Validator\Constraints\ContainsNumeric
/**
 * @Annotation
 */
class ContainsNumeric extends Constraint
{
    public $message = 'contains.numeric';
}

在我的實體里

use AppBundle\Validator\Constraints as AppAssert;

/**
 * @ORM\Table(name="users")
 */
class User extends AbstractUser implements UserInterface
{
/**
 * @AppAssert\ContainsNumeric()
 * @ORM\Column(name="phone", type="string", nullable=true)
 */
private $phone;

和我的xlf app/Resources/translations/validators.en.xlf /Resources/translations/validators.en.xlf

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
    <body>
        <trans-unit id="contains.numeric">
            <source>contains.numeric</source>
            <target>Please enter an valid data.</target>
        </trans-unit>
    </body>
</file>
</xliff>

在翻譯文件中,您需要為resname如下屬性:

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
    <body>
        <trans-unit id="contains.numeric" resname="contains.numeric">
            <source>contains.numeric</source>
            <target>Please enter an valid data.</target>
        </trans-unit>
    </body>
</file>
</xliff>

實際上, resname值是用於選擇翻譯的鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM