setDescriptionFromPageTsConfig($result); $result = $this->translateDescriptions($result); return $result; } /** * page TSconfig can override description: * * TCEFORM.aTable.aField.description = override * TCEFORM.aTable.aField.description.en = override * * @param array $result Result array * @return array Modified result array */ protected function setDescriptionFromPageTsConfig(array $result): array { $languageService = $this->getLanguageService(); $tableName = $result['tableName']; foreach ($result['processedTca']['columns'] ?? [] as $fieldName => $fieldConfiguration) { $fieldTSconfig = $result['pageTsConfig']['TCEFORM.'][$tableName . '.'][$fieldName . '.'] ?? null; if (!is_array($fieldTSconfig)) { continue; } $pageTsConfigDescription = $languageService->translateLabel( $fieldTSconfig['description.'] ?? [], $fieldTSconfig['description'] ?? '' ); if ($pageTsConfigDescription !== '') { $result['processedTca']['columns'][$fieldName]['description'] = $pageTsConfigDescription; } } return $result; } /** * Translate all descriptions if needed. * * @param array $result Result array * @return array Modified result array */ protected function translateDescriptions(array $result): array { $languageService = $this->getLanguageService(); foreach ($result['processedTca']['columns'] as $fieldName => $fieldConfiguration) { if (!isset($fieldConfiguration['description'])) { continue; } $result['processedTca']['columns'][$fieldName]['description'] = $languageService->sL($fieldConfiguration['description']); } return $result; } protected function getLanguageService(): LanguageService { return $GLOBALS['LANG']; } }