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) {