diff --git a/messages/es/yii-dataview.php b/messages/es/yii-dataview.php index db417e208..8a5fa9a9c 100644 --- a/messages/es/yii-dataview.php +++ b/messages/es/yii-dataview.php @@ -5,4 +5,5 @@ return [ 'No results found.' => 'No se han encontrado resultados.', 'Page {currentPage} of {totalPages}' => 'Pagina {currentPage} de {totalPages}', + 'Actions' => 'Acciones', ]; diff --git a/messages/ru/yii-dataview.php b/messages/ru/yii-dataview.php index bb7e5f791..240e6d40e 100644 --- a/messages/ru/yii-dataview.php +++ b/messages/ru/yii-dataview.php @@ -5,4 +5,5 @@ return [ 'No results found.' => 'Результатов не найдено.', 'Page {currentPage} of {totalPages}' => 'Страница {currentPage} из {totalPages}', + 'Actions' => 'Действия', ]; diff --git a/src/BaseListView.php b/src/BaseListView.php index fbce5487a..dffaafb18 100644 --- a/src/BaseListView.php +++ b/src/BaseListView.php @@ -35,7 +35,7 @@ abstract class BaseListView extends Widget * @var TranslatorInterface A translator instance used for translations of messages. If it was not set * explicitly in the constructor, a default one created automatically in {@see createDefaultTranslator()}. */ - private TranslatorInterface $translator; + protected readonly TranslatorInterface $translator; private array $attributes = []; protected ?string $emptyText = null; @@ -57,7 +57,7 @@ abstract class BaseListView extends Widget public function __construct( TranslatorInterface|null $translator = null, private UrlGeneratorInterface|null $urlGenerator = null, - private string $translationCategory = self::DEFAULT_TRANSLATION_CATEGORY, + protected readonly string $translationCategory = self::DEFAULT_TRANSLATION_CATEGORY, ) { $this->translator = $translator ?? $this->createDefaultTranslator(); } diff --git a/src/Column/ActionColumnRenderer.php b/src/Column/ActionColumnRenderer.php index f9a5a92e3..25419f58d 100644 --- a/src/Column/ActionColumnRenderer.php +++ b/src/Column/ActionColumnRenderer.php @@ -31,7 +31,7 @@ public function renderHeader(ColumnInterface $column, Cell $cell, GlobalContext { $this->checkColumn($column); return $cell - ->content($column->header ?? 'Actions') + ->content($column->header ?? $context->translate('Actions')) ->addAttributes($column->headerAttributes); } diff --git a/src/Column/Base/GlobalContext.php b/src/Column/Base/GlobalContext.php index 43ff4a0ff..5645c71bf 100644 --- a/src/Column/Base/GlobalContext.php +++ b/src/Column/Base/GlobalContext.php @@ -4,16 +4,25 @@ namespace Yiisoft\Yii\DataView\Column\Base; +use Stringable; use Yiisoft\Data\Reader\ReadableDataInterface; +use Yiisoft\Translator\TranslatorInterface; final class GlobalContext { public function __construct( public readonly ReadableDataInterface $dataReader, public readonly array $sortLinkAttributes, - public readonly array $urlArguments = [], - public readonly array $urlQueryParameters = [], - public readonly ?string $filterModelName = null, + public readonly array $urlArguments, + public readonly array $urlQueryParameters, + public readonly ?string $filterModelName, + private readonly TranslatorInterface $translator, + private readonly string $translationCategory, ) { } + + public function translate(string|Stringable $id): string + { + return $this->translator->translate($id, category: $this->translationCategory); + } } diff --git a/src/GridView.php b/src/GridView.php index da495ca37..35de36777 100644 --- a/src/GridView.php +++ b/src/GridView.php @@ -389,6 +389,8 @@ protected function renderItems(): string $this->urlArguments, $this->urlQueryParameters, $this->filterModelName, + $this->translator, + $this->translationCategory, ); if ($this->columnsGroupEnabled) {