/** * Index action * * @param \TYPO3\CMS\Lang\Domain\Model\LanguageSelectionForm $languageSelectionForm * @param mixed $extensions Extensions to show in form * @return void * @ignorevalidation $languageSelectionForm * @ignorevalidation $extensions */ public function indexAction(\TYPO3\CMS\Lang\Domain\Model\LanguageSelectionForm $languageSelectionForm = NULL, $extensions = NULL) { if ($languageSelectionForm === NULL) { $languageSelectionForm = $this->objectManager->get('TYPO3\\CMS\\Lang\\Domain\\Model\\LanguageSelectionForm'); $languageSelectionForm->setLanguages($this->languageRepository->findAll()); $languageSelectionForm->setSelectedLanguages($this->languageRepository->findSelected()); } if (empty($extensions)) { $extensions = $this->extensionRepository->findAll(); } $this->view->assign('languageSelectionForm', $languageSelectionForm); $this->view->assign('extensions', $extensions); }
/** * Returns the translation state for an extension * * @param string $extensionKey The extension key * @param string $locale Locale to return * @return integer Translation state */ protected function getTranslationStateForExtension($extensionKey, $locale) { if (empty($extensionKey) || empty($locale)) { return static::TRANSLATION_INVALID; } $identifier = $extensionKey . '-' . $locale; if (isset($this->translationStates[$identifier])) { return $this->translationStates[$identifier]; } $selectedLanguages = $this->languageRepository->findSelected(); if (empty($selectedLanguages) || !is_array($selectedLanguages)) { return static::TRANSLATION_INVALID; } $mirrorUrl = $this->getMirrorUrl($extensionKey); $status = $this->terConnection->fetchTranslationStatus($extensionKey, $mirrorUrl); foreach ($selectedLanguages as $language) { $stateLocale = $language->getLocale(); $stateIdentifier = $extensionKey . '-' . $stateLocale; $this->translationStates[$stateIdentifier] = static::TRANSLATION_INVALID; if (empty($status[$stateLocale]) || !is_array($status[$stateLocale])) { $this->translationStates[$stateIdentifier] = static::TRANSLATION_NOT_AVAILABLE; continue; } $md5 = $this->getTranslationFileMd5($extensionKey, $stateLocale); if ($md5 !== $status[$stateLocale]['md5']) { $this->translationStates[$stateIdentifier] = static::TRANSLATION_AVAILABLE; continue; } $this->translationStates[$stateIdentifier] = static::TRANSLATION_OK; } return $this->translationStates[$identifier]; }
/** * Index action * * @return void */ public function indexAction() { $languages = $this->languageRepository->findAll(); $selectedLanguages = $this->languageRepository->findSelected(); $extensions = $this->extensionRepository->findAll(); if ($this->request->hasArgument('updateResult')) { $extensions = $this->mergeUpdateResult($extensions, $this->request->getArgument('updateResult')); } $this->view->assign('languages', $languages); $this->view->assign('selectedLanguages', $selectedLanguages); $this->view->assign('extensions', $extensions); }
/** * Returns the translations * * @return void */ public function getTranslationsAction() { $this->view->assign('extensions', $this->extensionRepository->findAll()); $this->view->assign('languages', $this->languageRepository->findSelected()); }