text = $text; foreach($params as $k => $param){ if(!($param instanceof Translatable)){ $this->params[$k] = (string) $param; }else{ $this->params[$k] = $param; } } } public function getText() : string{ return $this->text; } /** * @return string[]|Translatable[] */ public function getParameters() : array{ return $this->params; } public function getParameter(int|string $i) : Translatable|string|null{ return $this->params[$i] ?? null; } public function format(string $before, string $after) : self{ return new self("$before%$this->text$after", $this->params); } public function prefix(string $prefix) : self{ return new self("$prefix%$this->text", $this->params); } public function postfix(string $postfix) : self{ return new self("%$this->text" . $postfix); } }