コード例 #1
0
 /**
  * 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);
 }
コード例 #2
0
 /**
  * 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];
 }
コード例 #3
0
 /**
  * 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);
 }
コード例 #4
0
 /**
  * Returns the translations
  *
  * @return void
  */
 public function getTranslationsAction()
 {
     $this->view->assign('extensions', $this->extensionRepository->findAll());
     $this->view->assign('languages', $this->languageRepository->findSelected());
 }