protected function translateAndFormatValidationError (
		$errorMsg = '', array 
		$errorMsgArgs = [], 
		callable $replacingCallable = NULL
	) {
		$customReplacing = $replacingCallable !== NULL;
		$fieldLabelOrName = '';
		if ($this->translate) {
			$errorMsg = $this->form->Translate($errorMsg);
			$fieldLabelOrName = $this->label
				? $this->form->Translate($this->label) 
				: $this->name;
		} else {
			$fieldLabelOrName = $this->label
				? $this->label 
				: $this->name;
		}
		array_unshift($errorMsgArgs, $fieldLabelOrName);
		$formViewClass = $this->form->GetViewClass();
		if ($customReplacing) {
			$errorMsg = call_user_func(
				$replacingCallable, 
				$errorMsg, $errorMsgArgs, $formViewClass
			);
		} else if (strpos($errorMsg, '{0}') !== FALSE || strpos($errorMsg, '{1}') !== FALSE) {
			$errorMsg = $formViewClass::Format($errorMsg, $errorMsgArgs);
		}
		return $errorMsg;
	}