protected function replaceWith(
        /*# string */ $name,
        /*# string */ $placeholder,
        array &$context
    )/*# : string */ {
        // exact match
        if (isset($context[$name])) {
            return $this->getString($context[$name]);
        }

        // something like user.name
        $first = explode('.', $name)[0];
        if (false !== strpos($name, '.') && isset($context[$first])) {
            return $this->getSubPart($name, $placeholder, $context[$first]);
        }

        // not found
        return $placeholder;
    }