async def render(
        text: TransText,
        request: Optional['Request'],
        multi_line=False) -> Union[Text, List[Text]]:
    """
    Render either a normal string either a string to translate into an actual
    string for the specified request.
    """

    if isinstance(text, str):
        out = [text]
    elif isinstance(text, StringToTranslate):
        out = await text.render_list(request)
    else:
        raise TypeError('Provided text cannot be rendered')

    if multi_line:
        return out
    else:
        return ' '.join(out)