protected function pairTranslatableArrayItems($value, $separator = ',')
    {
        if (empty($value) && !is_numeric($value)) {
            return null;
        }

        if ($value instanceof Translation) {
            $value = $value->data();
        }

        if ($separator instanceof \Closure) {
            $value = $separator($value);
        } else {
            // Parse each locale's collection into an array
            foreach ($value as $k => $v) {
                $value[$k] = $this->parseAsMultiple($v, $separator);
            }
        }

        // Retrieve the highest collection count among the locales
        $count = max(array_map('count', $value));

        // Pair the items across locales
        $result = [];
        for ($i = 0; $i < $count; $i++) {
            $entry = [];

            foreach ($value as $lang => $arr) {
                if (isset($arr[$i])) {
                    $entry[$lang] = $arr[$i];
                }
            }

            $result[] = $this->translator()->translation($entry);
        }

        return $result;
    }