def translate_text()

in genai-for-marketing/backend_apis/app/main.py [0:0]


def translate_text(data: TranslateRequest
                   ) -> TranslateResponse:
    """Translate Text
    Body:
        source_text:str
        source_language_code:str | None = None
        target_language_code:str 
    Returns:
        translated_text :str
    """
    text = data.source_text
    if isinstance(text, bytes):
        text = text.decode("utf-8")
    try:
        results = []
        i = 0
        while i*128 < len(text):
            if data.source_language_code == None:
                result = translate_client.translate(
                    text[i*128:i*128+128],
                    target_language=data.target_language_code
                    )['translatedText']
            else:
                result = translate_client.translate(
                    text[i*128:i*128+128],
                    source_language=data.source_language_code,
                    target_language=data.target_language_code,
                )['translatedText']
            results.extend(result)
            i+=1
    except Exception as e:
        raise HTTPException(
            status_code=400, 
            detail="Something went wrong. Please try again."+str(e)
        )
    translated_text = ''.join(results)
    return TranslateResponse(
        translated_text=translated_text
    )