protected function mergeMessages(array $customMessages = [], array $attributes = [])
    {
        $globalMessages = [];
        if (self::$globalMessageInstance instanceof MessageInterface) {
            $globalMessages = self::$globalMessageInstance->getMessages();
        }

        // Merge rule messages
        $ruleMessages = Variable::getDefaultRuleMessages();
        if (isset($globalMessages['rule_messages']) && is_array($globalMessages['rule_messages'])) {
            $ruleMessages = array_merge($ruleMessages, $globalMessages['rule_messages']);
        }
        $this->ruleMessages = $ruleMessages;

        // Merge custom messages
        if (isset($globalMessages['custom_messages']) && is_array($globalMessages['custom_messages'])) {
            $this->customMessages = array_merge($this->customMessages, $globalMessages['custom_messages']);
        }
        if ($customMessages && is_array($customMessages)) {
            $this->customMessages = array_merge($this->customMessages, $customMessages);
        }

        // Merge attributes
        if (isset($globalMessages['attributes']) && is_array($globalMessages['attributes'])) {
            $this->attributes = array_merge($this->attributes, $globalMessages['attributes']);
        }
        if ($attributes && is_array($attributes)) {
            $this->attributes = array_merge($this->attributes, $attributes);
        }
    }