Exemple #1
0
 /**
  * Sets language
  *
  * @param string $lang Used language
  * @return void
  */
 public function setLanguage($lang)
 {
     $this->lang = $lang;
     $this->languageDependencies = [];
     // Language is found. Configure it:
     if (in_array($this->lang, $this->locales->getLocales())) {
         $this->languageDependencies[] = $this->lang;
         foreach ($this->locales->getLocaleDependencies($this->lang) as $language) {
             $this->languageDependencies[] = $language;
         }
     }
 }
 /**
  * Update selected languages
  *
  * @param array $languages
  * @return array
  */
 public function updateSelectedLanguages($languages)
 {
     // Add possible dependencies for selected languages
     $dependencies = array();
     foreach ($languages as $language) {
         $dependencies = array_merge($dependencies, $this->locales->getLocaleDependencies($language));
     }
     if (count($dependencies)) {
         $languages = array_unique(array_merge($languages, $dependencies));
     }
     $dir = count($languages) - count($this->selectedLanguages);
     $diff = $dir < 0 ? array_diff($this->selectedLanguages, $languages) : array_diff($languages, $this->selectedLanguages);
     \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Configuration\\ConfigurationManager')->setLocalConfigurationValueByPath($this->configurationPath, array('availableLanguages' => $languages));
     return array('success' => count($diff) > 0, 'dir' => $dir, 'diff' => array_values($diff), 'languages' => $languages);
 }
Exemple #3
0
 /**
  * Update selected languages
  *
  * @param array $languages The languages
  * @return array Update information
  */
 public function updateSelectedLanguages($languages)
 {
     // Add possible dependencies for selected languages
     $dependencies = [];
     foreach ($languages as $language) {
         $dependencies = array_merge($dependencies, $this->locales->getLocaleDependencies($language));
     }
     if (!empty($dependencies)) {
         $languages = array_unique(array_merge($languages, $dependencies));
     }
     $dir = count($languages) - count($this->selectedLocales);
     $diff = $dir < 0 ? array_diff($this->selectedLocales, $languages) : array_diff($languages, $this->selectedLocales);
     GeneralUtility::makeInstance(ConfigurationManager::class)->setLocalConfigurationValueByPath($this->configurationPath, ['availableLanguages' => $languages]);
     return ['success' => !empty($diff), 'dir' => $dir, 'diff' => array_values($diff), 'languages' => $languages];
 }