public function getLocalizer($type = self::LOCALIZER_DEFAULT, $locale = null)
    {
        // If no locale was passed use the active one
        if ($locale === null) {
            $locale = $this->locale;
        }

        // Retrieve valid input
        $input = $this->validateInput($locale);

        // Convert type to required format
        $type = ucfirst(strtolower($type));

        // Check for redirect -> !
        if (true === isset($input['redirect']) && null !== $input['redirect']) {
            return $this->getLocalizer($type, $input['redirect']);
        } else {
            return self::instantiate(
                'Doozr_I18n_Service_Localize_'.$type,
                [
                    self::getRegistry(),
                    $input['locale'],
                    null,
                    self::$config,
                    $input['configuration'],
                    $this->getTranslator($input['locale']),
                ]
            );
        }
    }