*/ public readonly array $arguments; /** * @param string $key e.g. `LLL:EXT:core/Resources/Private/Language/Labels.xlf:HelloWorld` * @param string ...$arguments optional label arguments to be substituted */ public function __construct( public readonly string $key, string ...$arguments ) { $this->arguments = $arguments; } /** * Compiles the given label key and substituted label arguments if given. */ public function compile(TranslatorInterface $translator): string { try { return $translator->label($this->key, $this->arguments, $this->key); } catch (\ValueError $e) { return sprintf( 'Error: could not translate key "%s" and %d argument(s)!', $this->key, count($this->arguments) ); } } }