Exemple #1
0
 /**
  * @param Headers $headers
  *
  * @return string|null
  */
 private function getBrowseAcceptLanguage(Headers $headers)
 {
     if ($headers->has('Accept-Language')) {
         /** @var AcceptLanguage $acceptLanguageHeader */
         $acceptLanguageHeader = $headers->get('Accept-Language');
         $locales = $acceptLanguageHeader->getPrioritized();
         $languages = $this->config->getAvailableLanguages();
         /** @var LanguageFieldValuePart $locale */
         foreach ($locales as $locale) {
             // Loop through all locales, highest priority first
             if ($browserLang = \Locale::lookup($languages, $locale->getRaw())) {
                 return $browserLang;
             }
         }
     }
     return null;
 }
 private function prepareDisplayProperties($lang)
 {
     $locale = $this->config->findLocaleByLanguage($lang);
     $nameOfLanguage = \Locale::getDisplayName($lang, $locale);
     $nameOfCountry = \Locale::getDisplayLanguage($lang, \Locale::getDefault());
     $countryCode = \Locale::getRegion($locale);
     return [$nameOfLanguage, $nameOfCountry, $countryCode];
 }
Exemple #3
0
 /**
  * If shouldRedirectToRecognizedLanguage is enabled
  * or
  * If we are here: "/pl" and default language is different (ie. EN)
  *    then set lang to router, to achieve all urls with this language
  *
  * @param MvcEvent $event
  * @param string   $lang
  */
 private function setLangToRouterIfLangIsDifferentFromDefaultLangOrShouldRedirectOptionIsEnabled(MvcEvent $event, $lang)
 {
     if ($this->config->shouldRedirectToRecognizedLanguage() || $lang !== $this->config->getDefaultLanguage()) {
         /** @var SimpleRouteStack $router */
         $router = $event->getRouter();
         $router->setDefaultParam('lang', $lang);
     }
 }
Exemple #4
0
 public function testConstructor_WithNotEmptyConfig_WhenShouldRedirectIsEnabled()
 {
     $testedObject = new LangConfig($this->prepareConfig(true));
     $this->assertTrue($testedObject->shouldRedirectToRecognizedLanguage());
 }