protected function getErrorMessage(string $rule, string $field, string $label = null, string $param = null): string
	{
		// Check if custom message has been defined by user
		if (isset($this->customErrors[$field][$rule]))
		{
			$message = $this->customErrors[$field][$rule];
		}
		else
		{
			// Try to grab a localized version of the message...
			// lang() will return the rule name back if not found,
			// so there will always be a string being returned.
			$message = lang('Validation.' . $rule);
		}

		$message = str_replace('{field}', $label ?? $field, $message);
		$message = str_replace('{param}', $this->rules[$param]['label'] ?? $param, $message);

		return $message;
	}