* ***/ use TYPO3\CMS\Extbase\Utility\LocalizationUtility; /** * */ class TranslationUtility { /** * Get all interface constants per prefix */ public static function buildSelectOptionsFromOptions( $options, $column, $element, $extensionKey = null ) { $items = []; if ($addEmpty) { $items[] = ['-', '']; } foreach ($options as $option) { $translationKey = "option.$element.$column.$option"; $translation = self::getTranslation( $translationKey, $extensionKey ); if ($translation) { $items[] = [ 'code' => $option, 'label' => $translation, ]; } else { $items[] = [ 'code' => $option, 'label' => $translationKey, ]; } } return $items; } /** * shortcut to get translation * * @return void */ public static function getTranslation($key, $extensionKey) { if (version_compare(TYPO3_branch, '10.0', '>=')) { if (!$extensionKey) { $extensionKey = 'site_templates'; } return implode([ 'LLL:EXT:', $extensionKey, '/Resources/Private/Language/locallang_db.xlf:', $key ]); } else { if ($extensionKey) { $translation = LocalizationUtility::translate( $key, $extensionKey ); if ($translation) { return $translation; } } $translation = LocalizationUtility::translate( $key, 'site_templates' ); if ($translation) { return $translation; } return null; } } }