private String TextSplitBatchTranslateText()

in athena-udfs-textanalytics/src/main/java/com/amazonaws/athena/udf/textanalytics/TextAnalyticsUDFHandler.java [962:990]


    private String TextSplitBatchTranslateText(String[] batch, String sourceLanguageCode, String targetLanguageCode, String terminologyName) throws Exception
    {
        String[] result = new String[batch.length];
        // Call translateText API in loop  (no multidocument Translate API available)
        for (int i = 0; i < batch.length; i++) {
            TranslateTextRequest translateTextRequest = TranslateTextRequest.builder()
                .sourceLanguageCode(sourceLanguageCode)
                .targetLanguageCode(targetLanguageCode)
                .text(batch[i])
                .build();
            if (! terminologyName.equals("null")) {
                translateTextRequest = translateTextRequest.toBuilder().terminologyNames(terminologyName).build();
            }
            try {
                TranslateTextResponse translateTextResponse = getTranslateClient().translateText(translateTextRequest);
                String translatedText = translateTextResponse.translatedText();  
                result[i] = translatedText;
            } 
            catch (Exception e) {
                System.out.println("ERROR: Translate API Exception.\nInput String size: " + getUtf8StringLength(batch[i]) + " bytes. String:\n" + batch[i]);
                System.out.println("EXCEPTION:\n" + e);
                // return input text untranslated
                result[i] = batch[i];
            }
        }
        // merge results to single output row
        String mergedResult = mergeText(result);
        return mergedResult;
    }