/** * Init default localization * * @return void */ private function initDefaultLocalization() { try { // get all registered localizations $localization = $this->serviceLocator->get('Application\\Model\\ModelManager')->getInstance('Localization\\Model\\LocalizationBase'); // init default localization $this->localizations = $localization->getAllLocalizations(); $acceptLanguage = Locale::acceptFromHttp(getEnv('HTTP_ACCEPT_LANGUAGE')); $defaultLanguage = !empty($this->userIdentity['language']) ? $this->userIdentity['language'] : ($acceptLanguage ? substr($acceptLanguage, 0, 2) : null); // setup locale $this->defaultLocalization = array_key_exists($defaultLanguage, $this->localizations) ? $this->localizations[$defaultLanguage] : current($this->localizations); // init translator settings $translator = $this->serviceLocator->get('translator'); $translator->setLocale($this->defaultLocalization['locale']); // add a cache for translator $request = $this->serviceLocator->get('Request'); if (!$request instanceof ConsoleRequest) { $translator->setCache($this->serviceLocator->get('Application\\Cache\\Dynamic')); } // init default localization Locale::setDefault($this->defaultLocalization['locale']); AbstractValidator::setDefaultTranslator($translator); LocalizationService::setCurrentLocalization($this->defaultLocalization); LocalizationService::setLocalizations($this->localizations); } catch (Exception $e) { ApplicationErrorLogger::log($e); } }