public static function fillPlaceholders(string $message, array $context)
    {
        $message = (string)$message;
        foreach ($context as $key => $value)
        {
            $placeholder = '{' . $key . '}';
            $strval = null;
            $pos = 0;
            while (($pos = strpos($message, $placeholder, $pos)) !== false)
            {
                $strval = $strval ?: WF::str($value);
                $message = 
                    substr($message, 0, $pos) 
                    . $strval 
                    . substr($message, $pos + strlen($placeholder));
                $pos = $pos + strlen($strval);
            }
        }
        return $message;
    }