/**
  * @inheritdoc
  */
 public function init()
 {
     parent::init();
     $this->messageLength = $this->messageLength ?: Yii::t('yii', '{attribute} should have a length of {length} characters');
     $this->messageCharacters = $this->messageCharacters ?: Yii::t('yii', '{attribute} contains incorrect characters');
     $this->messageChecksum = $this->messageChecksum ?: Yii::t('yii', '{attribute} failed checksum validation');
     if ($this->length) {
         $this->validatorLength = Yii::createObject(['class' => RegularExpressionValidator::className(), 'message' => Yii::$app->getI18n()->format($this->messageLength, ['length' => $this->length], Yii::$app->language), 'pattern' => '/^.{' . $this->length . '}$/']);
     }
     if ($this->characters) {
         $this->validatorCharacters = Yii::createObject(['class' => RegularExpressionValidator::className(), 'message' => $this->messageCharacters, 'pattern' => '/^[' . $this->characters . ']+$/']);
     }
     if ($this->checksum) {
         $this->validatorChecksum = Yii::createObject(['class' => BarcodeChecksum::className(), 'message' => $this->messageChecksum, 'method' => $this->checksum]);
     }
 }
 /**
  * @param \yii\base\Model $model the data model to be validated
  * @param string $attribute the name of the attribute to be validated.
  */
 protected function validateChecksum($model, $attribute)
 {
     if ($this->checksum) {
         $this->validatorChecksum->validateAttribute($model, $attribute);
     }
 }