有没有办法在没有键的情况下将 Symfony 变量传递给翻译

Is there way to pass Symfony variables to translation without keys

我们现在在 PHP 中为我们的项目使用自定义翻译,我想将它们迁移到 Symfony 的。一切看起来都很棒,但我唯一担心的是变量占位符需要键才能成功绑定,我能否以某种方式更改代码以按顺序接受翻译变量(无键)?

举个例子:
我们现在的代码:

$translator->translate('For the period %date%, %data%', [$dateInterval, $additionalData]);

但这就是 Symfony 想要的:

return $this->symfonyTranslator->trans('For the period %date%, %data%', ['%date%' => $dateInterval, '%data%' => $additionalData]);

这就是我想要的:

return $this->symfonyTranslator->trans('For the period %date%, %data%', [$dateInterval, $additionalData]);

这有可能吗?我没有在文档中的任何地方找到它,Google 也没有帮助。

我自己解决了这是代码(以防万一有人需要):

基本上,它获取所有 %variables% 并将它们设置为数组键,并具有来自 $parameters 变量的相应数组值。

public function translate(string $gettextString, array $parameters = []): string
{
    $gettextString = $this->newlinesNormalizer->normalize($gettextString);

    preg_match_all('~\%(\S+)\%~m', $gettextString, $matches);

    $variables = $matches[array_key_last($matches)];

    $finalParameters = [];
    foreach ($variables as $index => $variable) {
        if (substr($variable, 0, 1) === '%' && substr($variable, -1) === '%') {
            continue;
        }

        $finalParameters['%' . $variable . '%'] = $parameters[$index];
    }

    return $this->symfonyTranslator->trans($gettextString, $finalParameters);
}