diff --git a/administrator/components/com_fields/src/Field/FieldgroupsField.php b/administrator/components/com_fields/src/Field/FieldgroupsField.php index 65e0110c776d0..d8d4284ecb897 100644 --- a/administrator/components/com_fields/src/Field/FieldgroupsField.php +++ b/administrator/components/com_fields/src/Field/FieldgroupsField.php @@ -11,6 +11,7 @@ namespace Joomla\Component\Fields\Administrator\Field; use Joomla\CMS\Form\Field\ListField; +use Joomla\CMS\Language\Text; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -65,6 +66,11 @@ protected function getOptions() $options = $db->loadObjectList(); foreach ($options as $option) { + if (\is_string($option->text)) { + $translated = Text::_($option->text); + $option->text = $translated ?: $option->text; + } + if ($option->state == 0) { $option->text = '[' . $option->text . ']'; } diff --git a/administrator/components/com_fields/src/Model/FieldsModel.php b/administrator/components/com_fields/src/Model/FieldsModel.php index 4993a1cfd1ca0..6e25932f90449 100644 --- a/administrator/components/com_fields/src/Model/FieldsModel.php +++ b/administrator/components/com_fields/src/Model/FieldsModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\Categories\CategoryServiceInterface; use Joomla\CMS\Categories\SectionNotFoundException; use Joomla\CMS\Factory; +use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Component\Fields\Administrator\Helper\FieldsHelper; @@ -459,7 +460,17 @@ public function getGroups() $query->bind(':context', $context); $db->setQuery($query); + $groups = $db->loadObjectList(); - return $db->loadObjectList(); + if (\is_array($groups)) { + foreach ($groups as &$group) { + if (isset($group->text) && \is_string($group->text)) { + $translated = Text::_($group->text); + $group->text = $translated ?: $group->text; + } + } + unset($group); + } + return $groups; } } diff --git a/administrator/components/com_fields/src/Model/GroupsModel.php b/administrator/components/com_fields/src/Model/GroupsModel.php index 5ad10277f1c23..b6b8cd20af74a 100644 --- a/administrator/components/com_fields/src/Model/GroupsModel.php +++ b/administrator/components/com_fields/src/Model/GroupsModel.php @@ -10,6 +10,7 @@ namespace Joomla\Component\Fields\Administrator\Model; +use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; @@ -234,6 +235,12 @@ protected function _getList($query, $limitstart = 0, $limit = 0) foreach ($result as $group) { $group->params = new Registry($group->params); } + + // Translate title if it is a language constant + if (isset($group->title) && \is_string($group->title)) { + $translated = text::_($group->title); + $group->title = $translated ?: $group->title; + } } return $result; diff --git a/administrator/components/com_fields/src/View/Fields/HtmlView.php b/administrator/components/com_fields/src/View/Fields/HtmlView.php index 8f395bc2db3c7..c65aa987abe73 100644 --- a/administrator/components/com_fields/src/View/Fields/HtmlView.php +++ b/administrator/components/com_fields/src/View/Fields/HtmlView.php @@ -92,6 +92,24 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Apply language translation for titles (language overrides support) + foreach ($this->items as &$item) { + if (isset($item->title) && \is_string($item->title)) { + $translated = Text::_($item->title); + $item->title = $translated ?: $item->title; + } + } + unset($item); + + // Apply language translation for group_title + foreach ($this->items as &$item) { + if (isset($item->group_title) && \is_string($item->group_title)) { + $translated = Text::_($item->group_title); + $item->group_title = $translated ?: $item->group_title; + } + } + unset($item); + // Display a warning if the fields system plugin is disabled if (!PluginHelper::isEnabled('system', 'fields')) { $link = Route::_('index.php?option=com_plugins&task=plugin.edit&extension_id=' . FieldsHelper::getFieldsPluginId()); diff --git a/administrator/components/com_fields/src/View/Groups/HtmlView.php b/administrator/components/com_fields/src/View/Groups/HtmlView.php index b2c15e384f39e..43a8949334e7a 100644 --- a/administrator/components/com_fields/src/View/Groups/HtmlView.php +++ b/administrator/components/com_fields/src/View/Groups/HtmlView.php @@ -92,6 +92,15 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Apply language translation for group titles (language overrides support) + foreach ($this->items as &$item) { + if (isset($item->title) && \is_string($item->title)) { + $translated = Text::_($item->title); + $item->title = $translated ?: $item->title; + } + } + unset($item); + // Display a warning if the fields system plugin is disabled if (!PluginHelper::isEnabled('system', 'fields')) { $link = Route::_('index.php?option=com_plugins&task=plugin.edit&extension_id=' . FieldsHelper::getFieldsPluginId());